Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
NAS - Linknx/MYSQL
#1
Bonjour,

J'utilise depuis un moment MYSQL (Sur un QNAP TS-119) pour mettre mes
logs des températures, luminosité, vent,etc... Chaque 5 minutes, un
script enregistre directement dans MYSQL la dernière donnée que EIBD à
dans son cache. Cela fonctionne très bien et je suis à plus de 100'000
enregistrement.

J'aimerai maintenant réaliser un log de tout les événements, et je ne
peux pas utiliser le même système, car si je prend les log d'ouverture
pour une porte, celle là peut être ouverte et fermée plusieurs fois en
5 minutes. Il me faut donc un système qui enregistre directement
l'information dans MYSQL.

Quelqu'un à t'il un script ou une idée qui permet de réaliser cela ?!

Merci de votre aide.

Chrystof



--
To unsubscribe, reply using "remove me" as the subject.
#2
On 13 avr, 13:05, Chrystof <i...@accessnight.ch> wrote:
> Quelqu'un à t'il un script ou une idée qui permet de réaliser cela ?!
Un script, non; une idée, p'têt bien ...
Perso, j'emploie un système infiniment moins sophistiqué, pour les log

Sur le fond du problème:
N'oublies pas que KNX est "event driven" et donc, dans mon cas,
j'enregistre uniquement les changements d'état, çàd que je pourrais
très bien avoir 3 changements d'état endéans la minute (et les
enregistrer comme tels) et au coup d'aprés 2 changements sur le
semaine.
Il me semble que ton approche est plustôt du genre "poll",
interrogation à intervalles fixes. J'emploie cette approche pour
l'enregistrement des températures (où le changement d'état n'a pas de
sens)


--
To unsubscribe, reply using "remove me" as the subject.
#3
> J'emploie cette approche pour
> l'enregistrement des températures (où le changement d'état n'a pas de
> sens)

J'utilise également ceci pour mes températures (toutes le 2 minutes)
et en regardant les données je me suis rendu compte que souvent
plusieurs mesures à la suite sont identique et je pensais donc
uniquement attendre un changement de température pour la sauvegarder
dans le but d'économiser un peu d'espace dans la base de donnée.

Pourquoi penses tu que l'enregistrement des températures n'a pas de
sens dans ce cas?


--
To unsubscribe, reply using "remove me" as the subject.
#4
Peux-tu partager ton script qui cherche directement la valeur dans
eibd, car moi j'utilise en plus Linknx. Si je peux économiser une
couche logiciel pour mes stats ce serait cool.

On 13 avr, 13:05, Chrystof <i...@accessnight.ch> wrote:
> Bonjour,
>
> J'utilise depuis un moment MYSQL  (Sur un QNAP TS-119) pour mettre mes
> logs des températures, luminosité, vent,etc... Chaque 5 minutes, un
> script enregistre directement dans MYSQL la dernière donnée que EIBD à
> dans son cache. Cela fonctionne très bien et je suis à plus de 100'000
> enregistrement.
>
> J'aimerai maintenant réaliser un log de tout les événements, et je ne
> peux pas utiliser le même système, car si je prend les log d'ouverture
> pour une porte, celle là peut être ouverte et fermée plusieurs fois en
> 5 minutes. Il me faut donc un système qui enregistre directement
> l'information dans MYSQL.
>
> Quelqu'un à t'il un script ou une idée qui permet de réaliser cela ?!
>
> Merci de votre aide.
>
> Chrystof


--
To unsubscribe, reply using "remove me" as the subject.
#5
Dans le fichier d' config XML de linknx il est possible de specifier
tes paramètres mysql qui logguera les changements d' état

J ai pas encore teste mais a priori c est une fonctionnalité
operationelle

Cordialement,
Yannick

Le 13 avr. 2010 à 13:05, Chrystof <info@accessnight.ch> a écrit :

> Bonjour,
>
> J'utilise depuis un moment MYSQL (Sur un QNAP TS-119) pour mettre mes
> logs des températures, luminosité, vent,etc... Chaque 5 minutes, un
> script enregistre directement dans MYSQL la dernière donnée que EIBD
> à
> dans son cache. Cela fonctionne très bien et je suis à plus de 100'0
> 00
> enregistrement.
>
> J'aimerai maintenant réaliser un log de tout les événements, et je
> ne
> peux pas utiliser le même système, car si je prend les log d'ouvertu
> re
> pour une porte, celle là peut être ouverte et fermée plusieurs
> fois en
> 5 minutes. Il me faut donc un système qui enregistre directement
> l'information dans MYSQL.
>
> Quelqu'un à t'il un script ou une idée qui permet de réaliser cela
> ?!
>
> Merci de votre aide.
>
> Chrystof
>
>
>
> --
> To unsubscribe, reply using "remove me" as the subject.
#6
> Dans le fichier d' config XML de linknx il est possible de specifier tes paramètres mysql qui logguera les changements d' état
> J ai pas encore teste mais a priori c est une fonctionnalité operationelle

Non, cela ne fonctionne malheureusement pas.

Chrystof



--
To unsubscribe, reply using "remove me" as the subject.
#7
@kraven
>Pourquoi penses tu que l'enregistrement des températures n'a pas de
sens dans ce cas?
Bof, une idée comme çà, rien de bien précis en fait, si ce n'est que
si tu veux faire un diagramme de l'évolution des températures dans le
temps, c'est mieux d'avoir une échelle linéaire, non ?
En fait tout dépend de ton application (perso, j'enregistre les
températures extérieures toutes les heures dans un buffer circulaire
de 500 entry.
Par contre, si tu veux monitorer la régulation en tepérature (d'un
four par exemple), çà a tout son sens d'enregistrer les variations
tels qu'elles se produisent.

@kraven
>Peux-tu partager ton script
Nan ! je le garde pour moi tout seul :-)

(en fait, je n'ai pas de script :-)) c'est une fonction inclus dans
l'usine à gaz)
Je voulais attirer ton attention sur le fait du "event driven" par
opposition au polling. Il y a peut-être lieu de creuser un peu dans
cette direction, cfr le post de Yannick )



--
To unsubscribe, reply using "remove me" as the subject.
#8
Dommage je comptais l utiliser prochainement

C est un bug ??? Peut être serat-il corrige dans une future version

Cordialement,
Yannick

Le 13 avr. 2010 à 13:48, "Chrisophe Bruchez" <info@accessnight.ch> a
écrit :

>
>> Dans le fichier d' config XML de linknx il est possible de
>> specifier tes paramètres mysql qui logguera les changements d' é
>> tat
>> J ai pas encore teste mais a priori c est une fonctionnalité opera
>> tionelle
>
> Non, cela ne fonctionne malheureusement pas.
>
> Chrystof
>
>
>
> --
> To unsubscribe, reply using "remove me" as the subject.
#9
> Bof, une idée comme çà, rien de bien précis en fait, si ce n'est que
> si tu veux faire un diagramme de l'évolution des températures dans le
> temps, c'est mieux d'avoir une échelle linéaire, non ?

Effectivement, mais je pensais pondre un petit algorithme pas trop
compliqué pour justement que ce soit linéaire à l'affichage.

> @kraven>Peux-tu partager ton script
>
> Nan ! je le garde pour moi tout seul :-)
>
> (en fait, je n'ai pas de script :-)) c'est une fonction inclus dans
> l'usine à gaz)

J'hésite de plus en plus à investir dans cette usine à gaz pour ne
plus avoir à bidouiller ce genre de fonction mais j'attendai la sortie
de Lifedomus pour comparer et me décider.


--
To unsubscribe, reply using "remove me" as the subject.
#10
Bonjour,

Le support de mysql directement dans linknx fonctionne mais je ne
l'inclus pas dans les binaires que je compile car cela obligerait tous
ceux qui veulent l'utiliser à installer mysql. Je l'ai tenté dans le
passé et j'ai reçu en retour pas mal de problèmes et
d'incompatibilités donc j'ai laissé tomber. On en a déjà discuté ici:
http://groups.google.com/group/domotique...94a2d048fd

J'aimerais trouver une autre solution qui n'imposerait pas de
dépendances à des librairies extérieures, voir même qui ne serait pas
spécifique à MySQL.
Pourquoi pas à base de script (php, perl, python, ... peu importe. Le
tout est de décider ce que le script doit recevoir de la part de
linknx.
Et c'est là que ça se complique. Certains diront sans aucune
hésitation "les adresses de groupe et les valeurs", mais j'y vois 2
inconvénients. Premièrement, les adresses de groupe sont des concepts
relatifs aux couches inférieures du protocole KNX (couche de liaison
je pense). L'interface avec la couche applicative se fait via des
objets de communications, pas des adresses de groupe. Et dans
certains cas, la valeur reçue sur une adresse de groupe prise
séparément n'a aucun sens, seul la combinaison des informations reçues
sur plusieures addresses de groupe qui à du sens (adresse de commande,
adresse de status feedback, adresses de commandes globales du style
"all off")
La seconde raison, qui est un peu une conséquence de la première,
c'est qu'au moment où linknx décode la valeur binaire, il ne sais déjà
plus par quelle adresse de groupe elle est arrivée, il sait juste à
quel objet de communication elle est associée.
Donc linknx pourrait fournir pour chaque "événement" l'ID de l'objet
concerné et la nouvelle valeur. Mais que doit il se passer si une
valeur est reçue sur le bus et que l'objet dans linknx a déjà cette
même valeur? L'événement doit il être transmis au script de logging ou
pas? A première vue, je pense que dans le cas d'objet "stateless" il
devrait être transmis mais pas dans le cas des objets normaux.
Un autre aspect est de savoir si on veut recevoir les eévénements pour
tous les objets ou seulement pour certains objets (sélectionnables par
config).

Jean-François


On 13 avr, 14:22, kraven <ohl.christo...@gmail.com> wrote:
> > Bof, une idée comme çà, rien de bien précis en fait, si ce n'est que
> > si tu veux faire un diagramme de l'évolution des températures dans le
> > temps, c'est mieux d'avoir une échelle linéaire, non ?
>
> Effectivement, mais je pensais pondre un petit algorithme pas trop
> compliqué pour justement que ce soit linéaire à l'affichage.
>
> > @kraven>Peux-tu partager ton script
>
> > Nan ! je le garde pour moi tout seul :-)
>
> > (en fait, je n'ai pas de script :-)) c'est une fonction inclus dans
> > l'usine à gaz)
>
> J'hésite de plus en plus à investir dans cette usine à gaz pour ne
> plus avoir à bidouiller ce genre de fonction mais j'attendai la sortie
> de Lifedomus pour comparer et me décider.


--
To unsubscribe, reply using "remove me" as the subject.
#11
On 13 avr, 14:22, kraven <ohl.christo...@gmail.com> wrote:
> > Bof, une idée comme çà, rien de bien précis en fait, si ce n'est que
> > si tu veux faire un diagramme de l'évolution des températures dans le
> > temps, c'est mieux d'avoir une échelle linéaire, non ?
>
> Effectivement, mais je pensais pondre un petit algorithme pas trop
> compliqué pour justement que ce soit linéaire à l'affichage.
J'utilise pour l'instant un outil qui trace les graphiques à partir
des logs de eibd (similaire à ce que donne vbusmonitor)
Donc j'ai uniquement les valeurs en cas de modification.
La librairie graphique que j'utilise permet de tracer les courbes à
partir d'une liste de point (heure, valeur) mais il existe (au moins)
2 manières différentes de faire.
Soit on relie simplement les points par des lignes (interpolation
linéaire), soit on considère que la valeur reste constante (ligne
horizontale partant vers la droite jusqu'à l'heure du point suivant
puis verticale pour atteindre la nouvelle valeur).
Pour des températures réelles, l'interpolation donne mieux car la
courbe semble plus lisse, plus naturelle, mais pour la consigne ça
donne assez mal. Par exemple si ton thermostat reste pendant 8H sur
"protection gel" ( = 6°) puis qu'il passe sur confort ( = 21° ), avec
l'interpolation linéaire tu vas avoir une belle oblique qui ne
correspond à rien en pratique.
A moins que tu ne configure ton thermostat pour qu'il envoie la valeur
de consigne à intervalle régulier sur le bus, mais je ne voit pas
trop l'intérêt. Et même si c'est le cas, il faut encore que le système
qui va écrire dans la DB ne "filtre" pas ces valeurs sous prétexte
qu'elles sont identiques

Jean-François


--
To unsubscribe, reply using "remove me" as the subject.
#12
> J'utilise pour l'instant un outil qui trace les graphiques à partir
> des logs de eibd (similaire à ce que donne vbusmonitor)

Je vais regarder du coté de vbusmonitor.

> Donc j'ai uniquement les valeurs en cas de modification.
> La librairie graphique que j'utilise permet de tracer les courbes à
> partir d'une liste de point (heure, valeur) mais il existe (au moins)
> 2 manières différentes de faire.

Elle a un petit nom ta bibliothèque graphique? Moi j'utilise XML/SWF
Charts mais j'ai rien trouvé dedans qui lui permette de gérer le
temps.

> Soit on relie simplement les points par des lignes (interpolation
> linéaire), soit on considère que la valeur reste constante (ligne
> horizontale partant vers la droite jusqu'à l'heure du point suivant
> puis verticale pour atteindre la nouvelle valeur).
> Pour des températures réelles, l'interpolation donne mieux car la
> courbe semble plus lisse, plus naturelle, mais pour la consigne ça
> donne assez mal. Par exemple si ton thermostat reste pendant 8H sur
> "protection gel" ( = 6°) puis qu'il passe sur confort ( = 21° ), avec
> l'interpolation linéaire tu vas avoir une belle oblique qui ne
> correspond à rien en pratique.

Est-il possible avec ta bibliothèque graphique d'avoir une courbe de
chaque sur le même graph? Ce serait pratique pour afficher la
température réelle plus la consigne sur le même graph.



--
To unsubscribe, reply using "remove me" as the subject.
#13
Sur mon réseau j'utilise RRDTool pour les graphique.
http://www.google.fr/search?q=rrd+tool&i...ent=safari

Laurent Breuillard
-- Envoyé de mon iPhone

Le 14 avr. 2010 à 07:53, kraven <ohl.christophe@gmail.com> a écrit :

>> J'utilise pour l'instant un outil qui trace les graphiques à partir
>> des logs de eibd (similaire à ce que donne vbusmonitor)
>
> Je vais regarder du coté de vbusmonitor.
>
>> Donc j'ai uniquement les valeurs en cas de modification.
>> La librairie graphique que j'utilise permet de tracer les courbes à
>> partir d'une liste de point (heure, valeur) mais il existe (au moins)
>> 2 manières différentes de faire.
>
> Elle a un petit nom ta bibliothèque graphique? Moi j'utilise XML/SWF
> Charts mais j'ai rien trouvé dedans qui lui permette de gérer le
> temps.
>
>> Soit on relie simplement les points par des lignes (interpolation
>> linéaire), soit on considère que la valeur reste constante (ligne
>> horizontale partant vers la droite jusqu'à l'heure du point suivant
>> puis verticale pour atteindre la nouvelle valeur).
>> Pour des températures réelles, l'interpolation donne mieux car la
>> courbe semble plus lisse, plus naturelle, mais pour la consigne ça
>> donne assez mal. Par exemple si ton thermostat reste pendant 8H sur
>> "protection gel" ( = 6°) puis qu'il passe sur confort ( = 21° ), a
>> vec
>> l'interpolation linéaire tu vas avoir une belle oblique qui ne
>> correspond à rien en pratique.
>
> Est-il possible avec ta bibliothèque graphique d'avoir une courbe de
> chaque sur le même graph? Ce serait pratique pour afficher la
> température réelle plus la consigne sur le même graph.
>
>
>
> --
> To unsubscribe, reply using "remove me" as the subject.
#14
> Sur mon réseau j'utilise RRDTool pour les graphique

Merci et je pense que c'est de cet outil que parlait Jef2000 car il y
a un article sur son site le concernant.


--
To unsubscribe, reply using "remove me" as the subject.
#15
J'utilise JPGraph en PHP ( http://www.aditus.nu/jpgraph/ )

Un exemple ici: http://www.bricozone.be/fr/showpost.php?...stcount=12
La courbe en rouge utilise l'interpolation et les autres utilisent des
"step"

> > Sur mon réseau j'utilise RRDTool pour les graphique
>
> Merci et je pense que c'est de cet outil que parlait Jef2000 car il y
> a un article sur son site le concernant.
RRDTool est utilisé par certains utilisateurs de linknx mais pas par
moi. Ce qui me donne une bonne occasion de rappeler que tout un chacun
est encouragé à enrichir le Wiki de ses expériences personnelles.
#16
Bonjour,


quelqu'un à t'il une solution pour enregistrer les activité sur le bus
en direct ?!?


Merci

Chrystof


--
To unsubscribe, reply using "remove me" as the subject.
#17
> quelqu'un à t'il une solution pour enregistrer les activité sur le bus
> en direct ?!?

Je viens de faire un teste avec la fonction log de linknx et c'est pas
mal.
Par contre pas moyen de compiler log4cpp sur ma Debian. Quelqu'un la
déjà fait?



--
To unsubscribe, reply using "remove me" as the subject.
#18
> Par contre pas moyen de compiler log4cpp sur ma Debian. Quelqu'un la
> déjà fait?
Non, pas sur Debian mais je ne vois pas pourquoi ce ne serait pas
possible.
C'est quoi le message d'erreur?


--
To unsubscribe, reply using "remove me" as the subject.
#19
C'est de ça qu'on parle non? Que veux tu dire par 'en direct'. Sans
faire de polling? ou bien sans passer par une application
intermédiaire? Et quelles activités? Toutes? ou seulement celles qui
t'intéressent?

On Apr 14, 10:39 am, Chrystof <i...@accessnight.ch> wrote:
> Bonjour,
>
> quelqu'un à t'il une solution pour enregistrer les activité sur le bus
> en direct ?!?
>
> Merci
>
> Chrystof


--
To unsubscribe, reply using "remove me" as the subject.
#20
> C'est quoi le message d'erreur?

BasicLayout.cpp:37: error: expected constructor, destructor, or type
conversion before '<' token

Merci


--
To unsubscribe, reply using "remove me" as the subject.
#21
Ajoutes ceci dans le fichier BasicLayout.cpp (a la suite des autres
directives #include):
#include <memory>

Le problème est déjà corrigé depuis presqu'un an mais pas de nouvelle
release depuis.
http://log4cpp.cvs.sourceforge.net/viewv...iew=markup


On Apr 14, 12:57 pm, kraven <ohl.christo...@gmail.com> wrote:
> > C'est quoi le message d'erreur?
>
> BasicLayout.cpp:37: error: expected constructor, destructor, or type
> conversion before '<' token
>
> Merci


--
To unsubscribe, reply using "remove me" as the subject.
#22
Un grand merci ça marche Smile

Il faut également modifier le fichier PatternLayout.cpp
Remplacer #include <cmath> par #include <cstdlib>

Et également ajouter LDFLAGS=-lpthread comme paremetre du configure de
log4cpp.

A+


On 14 avr, 13:16, jef2000 <jef2...@ouaye.net> wrote:
> Ajoutes ceci dans le fichier BasicLayout.cpp (a la suite des autres
> directives #include):
> #include <memory>
>
> Le problème est déjà corrigé depuis presqu'un an mais pas de nouvelle
> release depuis.http://log4cpp.cvs.sourceforge.net/viewvc/log4cpp/log4cpp/src/BasicLa...
>
> On Apr 14, 12:57 pm, kraven <ohl.christo...@gmail.com> wrote:
>
>
>
> > > C'est quoi le message d'erreur?
>
> > BasicLayout.cpp:37: error: expected constructor, destructor, or type
> > conversion before '<' token
>
> > Merci


--
To unsubscribe, reply using "remove me" as the subject.
#23
> C'est de ça qu'on parle non?Que veux tu dire par 'en direct'. Sans
> faire de polling? ou bien sans passer par une application
> intermédiaire? Et quelles activités? Toutes? ou seulement celles qui
> t'intéressent?

J'ai des détecteur d'ouverture sur toutes mes portes, et je voudrais avoir
un visuel des heures d'ouvertures et fermetures des portes.

Pour cela, je dois enregistrer dans MYSQL chaque mouvement.

Merci.

Chrystof



--
To unsubscribe, reply using "remove me" as the subject.
#24
Sans vouloir abuser maintenant que j'ai tout installé, j'ai fait un
petit fichier de config (ci dessous) mais le fichier linknx.log ne
crée pas?

<?xml version="1.0" ?>
<config>
<objects>
<object log="true" type="1.001" id="ampoule1" gad="0/0/1"><listener
gad="1/0/0" />ampoule1 platine</object>
<object log="true" id="Temperature_Salon" gad="3/0/1" type="9.xxx"
flags="cwu">Temperature du salon</object>
</objects>
<services>
<knxconnection url="ip:127.0.0.1" />
<xmlserver type="inet" port="1028"/>
<logging output="/home/christophe/linknx.log" format="%d %5p > %c %x
- %m%n" level="DEBUG"/>
</services>

</config>



On 14 avr, 13:39, kraven <ohl.christo...@gmail.com> wrote:
> Un grand merci ça marche Smile
>
> Il faut également modifier le fichier PatternLayout.cpp
> Remplacer #include <cmath> par #include <cstdlib>
>
> Et également ajouter LDFLAGS=-lpthread comme paremetre du configure de
> log4cpp.
>
> A+
>
> On 14 avr, 13:16, jef2000 <jef2...@ouaye.net> wrote:
>
>
>
> > Ajoutes ceci dans le fichier BasicLayout.cpp (a la suite des autres
> > directives #include):
> > #include <memory>
>
> > Le problème est déjà corrigé depuis presqu'un an mais pas de nouvelle
> > release depuis.http://log4cpp.cvs.sourceforge.net/viewvc/log4cpp/log4cpp/src/BasicLa...
>
> > On Apr 14, 12:57 pm, kraven <ohl.christo...@gmail.com> wrote:
>
> > > > C'est quoi le message d'erreur?
>
> > > BasicLayout.cpp:37: error: expected constructor, destructor, or type
> > > conversion before '<' token
>
> > > Merci


--
To unsubscribe, reply using "remove me" as the subject.
#25
> J'ai des détecteur d'ouverture sur toutes mes portes, et je voudrais avoir
> un visuel des heures d'ouvertures et fermetures des portes.
>
> Pour cela, je dois enregistrer dans MYSQL chaque mouvement.

Avec les log de linknx tu obtiens un fichier avec ce contenu.

2010-4-14 10:45:28 > off
2010-4-14 10:45:53 > on
2010-4-14 10:46:54 > off
2010-4-14 11:0:56 > on
2010-4-14 11:0:58 > off
2010-4-14 11:2:21 > on

Ca doit être exploitable pout tes besoins.



--
To unsubscribe, reply using "remove me" as the subject.


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)