Page 1 sur 1

Récupérer des infos dans les logs

Publié : 14 oct. 2016, 18:14
par Jihem
Bonjour,
Le sujet à peut-être déjà été traité mais le forum a tellement de succès qu'il devient difficile de retrouver un post.
Voila mon problème:
J'ai interfacé une installation Myhome Legrand avec Domoticz. La passerelle est prévu dans le hardware de DMZ
mais pour le moment, seules sont prévues les commandes de volets.
Pour les lumières il faut un petit script python (merci allezlelosc) que je mets en Action On et Off et ça marche très bien.
L’inconvénient est que lorsque le bouton physique est pressé, l'info ne remonte pas sur l'inter de DMZ , mais par contre elle apparait dans les logs.
D'où ma question: est il possible par un script de récupérer cette info dans les logs pour pour mettre à jour l'état de l'inter?

Merci d'avance

Re: Récupérer des infos dans les logs

Publié : 14 oct. 2016, 18:52
par patrice
Bonsoir
Oui c'est possible a coup de grep/sed et consorts

Tu as un exemple a montrer ?

Re: Récupérer des infos dans les logs

Publié : 14 oct. 2016, 23:27
par Jihem
Bonsoir Patrice

Dans les log j'ai cette ligne

Code : Tout sélectionner

 2016-10-14 23:05:08.336 COpenWebNet : received=*1*0*51## : NORMAL FRAME - who=Lighting - what=0 - where=51
il faudrait que je récupère " *1*0*51## "pour pouvoir mettre à jour l'état de l'interrupteur; en l’occurrence éteint dans ce cas.
Où dois je chercher ça?

merci

Re: Récupérer des infos dans les logs

Publié : 15 oct. 2016, 10:39
par patrice
Bonjour

Dans le logfile de Domoticz, regarde dans domoticz.sh ou il se situe, le log et change éventuellement l'emplacement
avec les lignes
#DAEMON_ARGS="$DAEMON_ARGS -log /tmp/domoticz.txt"
#DAEMON_ARGS="$DAEMON_ARGS -syslog"

a commenter/decommenter
attention à chaquemise à jour ce fichier est remis a l'etat de depart (sans l'ecriture des logs)

ensuite et si le log est dans /tmp/domoticztxt

Code : Tout sélectionner

cat /tmp/domoticz.txt|cut -d'=' -f2|cut -d '#' -f1
affiche *1*0*51
car n cherche le signe egal , on prend le champ 2 (f2) qui contient alors tout ce qui est a droite du egal puis on recoupe avec cut au premier # et on garde par le f1 tout ce qui est a gauche du # soit 1*0*51

ou un

Code : Tout sélectionner

cat fi.txt|cut -d'=' -f2|cut -d ':' -f1
affiche
*1*0*51##

tu mets ca dans un script sh, avec le shebang
un crontab -e
je suis etonné que tu veuilles recuperer 1*0*51
mais bon

Re: Récupérer des infos dans les logs

Publié : 15 oct. 2016, 15:54
par Jihem
Bonjour
Merci pour cette réponse bien expliquée. C'est mieux de comprendre ce que l'on fait et ça permet d'adapter à d'autres cas.

*1*0*51 me suffit pour mettre à jour l'état de mon interrupteur
1 = lumière
0 = éteint
51 = adresse de l'inter physique

Une petite question: La recherche se fait depuis la fin du fichier pour récupérer la dernière occurrence de "=" et non pas la première?

Par ailleurs il va falloir que je supprime le fichier de temps en temps pour qu'il ne devienne pas monstrueux.
Encore merci

Re: Récupérer des infos dans les logs

Publié : 15 oct. 2016, 17:07
par patrice
la recherche de fait depuis le debut du fichier par rapport au 1er signe egal, mais comme on lui dit -f2 il prend la partie apres à droite du egal
si on fit -f1 il prendrait
2016-10-14 23:05:08.336 COpenWebNet : received
-f1 a gauche
-f2 à droite

Re: Récupérer des infos dans les logs

Publié : 16 oct. 2016, 20:26
par Jihem
Bonsoir
En fait ma question était idiote; j'avais bien compris la sélection du texte sur la ligne mais je me demandais pourquoi le "cat" n'affichait que la fin du fichier.
En réalité il affiche tout le fichier mais seule la fin apparait dans la fenêtre du terminal :oops:

Dans le paramétrage

Code : Tout sélectionner

#DAEMON_ARGS="$DAEMON_ARGS -log /tmp/domoticz.txt"
y-a-til possibilité de n'enregistrer que les status (ou les erreurs) des logs et pas la totalité du fichier?
Meci

Re: Récupérer des infos dans les logs

Publié : 16 oct. 2016, 21:12
par patrice
Bonsoir
A ma connaissance : non
D'autres avis ?