Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Plugin Abeille

graouxx
Timide
Messages : 53
Inscription : 09 févr. 2018, 22:17

Re: Plugin Abeille

Message par graouxx » 25 févr. 2018, 20:13

Je viens de regarder d'un peu plus près.
A priori c'est le parser qui occupe la CPU, j'ai killé les daemons les uns après les autres et c'est cette ligne qui pose problème :

Code : Tout sélectionner

/usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleParser.php /dev/ttyUSB0
Dernière édition par graouxx le 25 févr. 2018, 21:05, édité 1 fois.

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 25 févr. 2018, 20:40

Oui c est aussi ma conclusion. Je pense que c est la boucle d attente sur les messages venant de la zigate. Probablement le read n est pas bloquant et ça boucle en permanence.

graouxx
Timide
Messages : 53
Inscription : 09 févr. 2018, 22:17

Re: Plugin Abeille

Message par graouxx » 25 févr. 2018, 21:13

J'ai essayé de basculer le fichier "input" sur le tmpfs de jeedom dans /tmp/jeedom et ce n'est pas mieux.

jdkart
Timide
Messages : 34
Inscription : 18 févr. 2018, 14:57

Re: Plugin Abeille

Message par jdkart » 25 févr. 2018, 21:27

>Les Xiaomi envoient des infos propriétaires soient sur appui du bouton lateral soient des temps en temps. L'un de ces champs n'est/n'était pas >transmis par la zigate. Une proposition a été incluse dans les derniers firmware de la zigate mais je n'ai pas encore vérifié le bon fonctionnement. >C'est un sujet en cours de dev et c est dans la liste des choses a faire.
>Dans un premier temps attendez une journée pour voir si effectivement aucune info ne remonte, essayez aussi avec le dernier firmware et >partagez votre experience.


Bonsoir,
Merci pour réponse et votre travail
- Je suis prêt à réaliser à réaliser des tests, par contre je suis novice et je rencontre quelques difficultés :
J'ai suivi votre recommandation en installant la dernière version du firmware Zigate 30d et ai voulu consulter les logs pour regarder si je trouvai une trace de la commande batterie. Mais je rencontre des difficultés.
Comment faut-il procéder pour analyser les informations qui remontent ? en consultant les logs ? J'ai essayé de regarder mes logs mais je ne retrouve pas d'informations. ce qui me parait étrange est que mes logs AbeilleParser sont vides et AbeilleParser.php.log renvoie uniquement l'information "protocolDatas -1".
Pouvez-vous me guider ?
- Autrement, je sais qu'avec le firmware Zigate 30d, les données concernant la batterie remontent. J'ai un ami qui avait le même problème sur Domotics, et qui depuis l'installation a réussi à récupérer les commandes

Merci,

graouxx
Timide
Messages : 53
Inscription : 09 févr. 2018, 22:17

Re: Plugin Abeille

Message par graouxx » 25 févr. 2018, 22:30

kiwihc16 a écrit :
25 févr. 2018, 20:40
Oui c est aussi ma conclusion. Je pense que c est la boucle d attente sur les messages venant de la zigate. Probablement le read n est pas bloquant et ça boucle en permanence.

J'ai trouvé une solution assez simple. Dans le fichier includes/fifo.php il faut s'inspirer de ce qui est fait ici :
http://php.net/manual/fr/function.posix ... .php#95385

Il faut par contre ajuster le paramètre $tv_usec de la fonction stream_select (http://php.net/manual/fr/function.stream-select.php). Avec 15 usec je reste à 30% de cpu, en passant à 1500 le process php n'apparait plus dans la commande top. Et niveau utilisation je ne vois pas de différence.

Concrètement, cela donne ça dans le fichier fifo.php :

Code : Tout sélectionner

 function read() {
	// reads a line from a fifo file
       $readers = array($this->fp); 
        if (stream_select($readers, $writers = null, $except = null, 0, 1500) == 1) { 
		$line = '';
		do 
		{
			$c = fgetc( $this->fp );
			if( ($c != '') and ($c != "\n") and !feof( $this->fp ) ) $line .= $c;
		} while( ($c != '') and ($c != "\n") and !feof( $this->fp ) );
		return $line;
	}
}

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 25 févr. 2018, 22:34

graouxx a écrit :
25 févr. 2018, 21:13
J'ai essayé de basculer le fichier "input" sur le tmpfs de jeedom dans /tmp/jeedom et ce n'est pas mieux.
Le fichier est un pipe donc pas de changement.

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 25 févr. 2018, 22:42

graouxx a écrit :
25 févr. 2018, 22:30
kiwihc16 a écrit :
25 févr. 2018, 20:40
Oui c est aussi ma conclusion. Je pense que c est la boucle d attente sur les messages venant de la zigate. Probablement le read n est pas bloquant et ça boucle en permanence.

J'ai trouvé une solution assez simple. Dans le fichier includes/fifo.php il faut s'inspirer de ce qui est fait ici :
http://php.net/manual/fr/function.posix ... .php#95385

Il faut par contre ajuster le paramètre $tv_usec de la fonction stream_select (http://php.net/manual/fr/function.stream-select.php). Avec 15 usec je reste à 30% de cpu, en passant à 1500 le process php n'apparait plus dans la commande top. Et niveau utilisation je ne vois pas de différence.

Concrètement, cela donne ça dans le fichier fifo.php :

Code : Tout sélectionner

 function read() {
	// reads a line from a fifo file
       $readers = array($this->fp); 
        if (stream_select($readers, $writers = null, $except = null, 0, 1500) == 1) { 
		$line = '';
		do 
		{
			$c = fgetc( $this->fp );
			if( ($c != '') and ($c != "\n") and !feof( $this->fp ) ) $line .= $c;
		} while( ($c != '') and ($c != "\n") and !feof( $this->fp ) );
		return $line;
	}
}
Ajouté au master.

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 25 févr. 2018, 22:46

jdkart a écrit :
25 févr. 2018, 21:27
>Les Xiaomi envoient des infos propriétaires soient sur appui du bouton lateral soient des temps en temps. L'un de ces champs n'est/n'était pas >transmis par la zigate. Une proposition a été incluse dans les derniers firmware de la zigate mais je n'ai pas encore vérifié le bon fonctionnement. >C'est un sujet en cours de dev et c est dans la liste des choses a faire.
>Dans un premier temps attendez une journée pour voir si effectivement aucune info ne remonte, essayez aussi avec le dernier firmware et >partagez votre experience.


Bonsoir,
Merci pour réponse et votre travail
- Je suis prêt à réaliser à réaliser des tests, par contre je suis novice et je rencontre quelques difficultés :
J'ai suivi votre recommandation en installant la dernière version du firmware Zigate 30d et ai voulu consulter les logs pour regarder si je trouvai une trace de la commande batterie. Mais je rencontre des difficultés.
Comment faut-il procéder pour analyser les informations qui remontent ? en consultant les logs ? J'ai essayé de regarder mes logs mais je ne retrouve pas d'informations. ce qui me parait étrange est que mes logs AbeilleParser sont vides et AbeilleParser.php.log renvoie uniquement l'information "protocolDatas -1".
Pouvez-vous me guider ?
- Autrement, je sais qu'avec le firmware Zigate 30d, les données concernant la batterie remontent. J'ai un ami qui avait le même problème sur Domotics, et qui depuis l'installation a réussi à récupérer les commandes

Merci,
Les infos qui remontent sont visibles dans le log AbeilleParser. Pour ce faire il faut que le plugin soit en mode débug.
Le message "protocolDatas -1" était du a un probleme entre la zigate et le passer. Normalement cette situation n'existe plus. Tu dois avoir une version un peu "vieille" du plugin. Quelle version as tu ?

Avec la 30D et les dernières versions d'Abeille les infos remontent, j'avais fait des tests pour vérifier.

jdkart
Timide
Messages : 34
Inscription : 18 févr. 2018, 14:57

Re: Plugin Abeille

Message par jdkart » 26 févr. 2018, 12:52

Bonjour,
Ma version du plugin semble être à jour, J'utilise la version Jeedom3.1.7 du 2018-02-17 06:14:14 ?
Merci,

jdkart
Timide
Messages : 34
Inscription : 18 févr. 2018, 14:57

Re: Plugin Abeille

Message par jdkart » 26 févr. 2018, 17:19

Je viens de vérifier le mode debug est bien activé.
Ma version du plugin est bien à jour, j'utilise la version Jeedom3.1.7 du 2018-02-17 06:14:14.
Les autres logs AbeilleMQTTCmd et AbeilleSerialRead fonctionnent, seul le AbeilleParser est vide.
Merci

Tao67
Timide
Messages : 27
Inscription : 23 nov. 2017, 17:26

Re: Plugin Abeille

Message par Tao67 » 27 févr. 2018, 10:46

Bonjour,

J'aimerais savoir si c'est normal que les remontées d'information des sondes carré xiaomi soient si espacées. Il se passe parfois 20 mn voire des heures avant de recevoir quelque chose. Est ce normal?
Elles ne devraient pas envoyer à intervalle régulier les données? (sinon c'est pas très utile)
Y a t'il un réglage à faire?
Merci pour le plugin. Il est pas mal du tout!

Tao67
Timide
Messages : 27
Inscription : 23 nov. 2017, 17:26

Re: Plugin Abeille

Message par Tao67 » 27 févr. 2018, 10:59

Bonjour,

J'aimerais savoir si c'est normal que les remontées d'information des sondes carré xiaomi soient si espacées. Il se passe parfois 20 mn voire des heures avant de recevoir quelque chose. Est ce normal?
Elles ne devraient pas envoyer à intervalle régulier les données? (sinon c'est pas très utile)
Y a t'il un réglage à faire?
Merci pour le plugin!

edgd1er
Timide
Messages : 80
Inscription : 11 sept. 2017, 23:44

Re: Plugin Abeille

Message par edgd1er » 27 févr. 2018, 11:18

Tao67 a écrit :Bonjour,

J'aimerais savoir si c'est normal que les remontées d'information des sondes carré xiaomi soient si espacées. Il se passe parfois 20 mn voire des heures avant de recevoir quelque chose. Est ce normal?
Elles ne devraient pas envoyer à intervalle régulier les données? (sinon c'est pas très utile)
Y a t'il un réglage à faire?
Merci pour le plugin!
Bjr,

Les remontées sont faites par la sonde, pas par la zigate. Si pas de remontée = pas de changement (normalement). De ce que comprends, La sonde interroge/envoie des infos a intervalle a la zigate. La zigate ne devrait pas pouvoir réveiller les périphériques afin de preserver la batterie.

Voila pour la théorie, j ai eu plusieurs cas ou je n avais plus de remontée. La zigate qui passe de ttyUSB0 a ttyUSB1, la sonde qui n est plus considéré comme appartenant au reseau zigate donc ignorée. Relancer les démons permet parfois de récupérer les infos. Le plugin est encore a ses débuts, c est peut être liée a un bug. Un appui court sur le bouton lateral mets-il a jour jeedom?

Envoyé en utilisant Tapatalk


kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 27 févr. 2018, 15:25

Tao67 a écrit :
27 févr. 2018, 10:46
Bonjour,

J'aimerais savoir si c'est normal que les remontées d'information des sondes carré xiaomi soient si espacées. Il se passe parfois 20 mn voire des heures avant de recevoir quelque chose. Est ce normal?
Elles ne devraient pas envoyer à intervalle régulier les données? (sinon c'est pas très utile)
Y a t'il un réglage à faire?
Merci pour le plugin. Il est pas mal du tout!
Soit on a des infos tout le temp, soit on a une batterie qui tient des mois. Je n'ai pas le soft des capteurs mais il est fort probableme qu'il n'envoie les infos que lorsqu'il y a des changements. Temperature qui change de plus de x degrés, tension batterie qui change de plus de 0,xV.
Si aucun changement pourquoi envoyer une info qu on a deja ?
Je n'ai pas d'historique en stock pour regarder la frequence d envoie.
Pour tester un appuie sur le bouton lateral doit provoquer la remontée d'infos sur ces capteurs.

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 27 févr. 2018, 15:32

jdkart a écrit :
26 févr. 2018, 17:19
Je viens de vérifier le mode debug est bien activé.
Ma version du plugin est bien à jour, j'utilise la version Jeedom3.1.7 du 2018-02-17 06:14:14.
Les autres logs AbeilleMQTTCmd et AbeilleSerialRead fonctionnent, seul le AbeilleParser est vide.
Merci
Si le log AbeilleParser est vide et que les autres sont pleins c'est que AbeilleParser ne recoit pas d'info venant de la Zigate.
Est ce que le Demon est au vert en Ok ?
Peux tu nous donner le resultat de la commande "ps -ef | grep Abeille" ?

jdkart
Timide
Messages : 34
Inscription : 18 févr. 2018, 14:57

Re: Plugin Abeille

Message par jdkart » 27 févr. 2018, 17:12

Le démon est bien au statut OK

Et Voilà le résultat de la commande:
pi@raspberrypi:~ $ ps -ef | grep Abeille
www-data 6663 1 0 févr.22 ? 00:00:02 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleSerialRead.php /dev/ttyUSB0 debug
www-data 6666 1 28 févr.22 ? 1-10:46:32 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleParser.php /dev/ttyUSB0 127.0.0.1 1883 jeedom jeedom 0 debug
www-data 6668 1 0 févr.22 ? 00:03:57 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleMQTTCmd.php /dev/ttyUS B0 127.0.0.1 1883 jeedom jeedom 0 debug
pi 9485 9029 0 17:06 pts/0 00:00:00 grep --color=auto Abeille

Merci

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 27 févr. 2018, 17:30

Dans "AbeilleMQTTCmd.php /dev/ttyUS B0", l espace entre US et B0 est juste un probleme de copie/colle ou il y a bien un espace ?
Que donne un "ls -l /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input" ?
Que donne un "cat /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input" lorqu'il y a du traffic zigbee ?
Que donne un "fuser /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input" ? suivi d'un "ps -ef" ?

Avatar de l’utilisateur
marie
Actif
Messages : 1076
Inscription : 20 févr. 2014, 19:39
Localisation : Lyon (ou presque)

Re: Plugin Abeille

Message par marie » 27 févr. 2018, 17:38

Bonjour,

Le plugin Abeille étant une passerelle domotique avec zigate, je me permets de déplacer le sujet dans Plugins Jeedom > catégorie "Passerelle domotique"

J'espère que cela ne vous choquera pas ;)

jdkart
Timide
Messages : 34
Inscription : 18 févr. 2018, 14:57

Re: Plugin Abeille

Message par jdkart » 27 févr. 2018, 17:47

1/ l espace entre US et B0 est jsute un problème de copier coller
2/ Que donne un "ls -l /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input" ?
voila le résultat :
prwxrwxr-x 1 www-data www-data 0 févr. 27 17:33 /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input
3/ Que donne un "cat /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input" lorqu'il y a du traffic zigbee ?
Le fichier est bien mis à jour dès qu'il y a une action, j'ai testé avec mon capteur de présence
pi@raspberrypi:~ $ cat /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input
8102002a4b55b2ae010000ff010042001d0121c70B0328120421a81305216d00062401000000000A21000064100075
8102000Ed86fa55001000600000010000101d8
8102000Ecb71a55001000600000010000101d5
8102000Ec972a55001000600000010000100d5
4/ Que donne un "fuser /var/www/html/plugins/Abeille/resources/AbeilleDeamon/input" ? suivi d'un "ps -ef" ?
le fuser ne renvoie rien.
avec le ps -ef, je trouve ces 3 lignes :
www-data 6663 1 0 févr.22 ? 00:00:02 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleSerialRead.php /dev/ttyUSB0 debug
www-data 6666 1 28 févr.22 ? 1-10:57:14 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleParser.php /dev/ttyUSB0 127.0.0.1 1883 jeedom jeedom 0 debug
www-data 6668 1 0 févr.22 ? 00:03:59 /usr/bin/php /var/www/html/plugins/Abeille/core/class/../../resources/AbeilleDeamon/AbeilleMQTTCmd.php /dev/ttyUSB0 127.0.0.1 1883 jeedom jeedom 0 debug

Merci

kiwihc16
Actif
Messages : 1866
Inscription : 08 févr. 2016, 12:40

Re: Plugin Abeille

Message par kiwihc16 » 27 févr. 2018, 20:45

Est ce quelqu'un aurait un Gateway Philips, des ampoules, une zigate est des bases informatiques pour faire une capture du traffic lorsqu'une ampoule Hue s'associe à la gateway ?

Répondre

Revenir vers « [Catégorie] Passerelle Domotique »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités