Eleroha retour d'état

Bonjour,

J’utilise le plugin Eleroha pour contrôler mes volets, malheureusement le retour d’état ne fonctionne pas du tout. Quelqu’un aurait une idée ?

Merci

Même chose ici, en fait. Mais il n’y a pas que le retour d’état qui coince.

L’envoi de séquences trop rapprochées fait que certaines sont tout simplement ignorées, et les retours d’états aussi sont jetés s’il y a des collisions. J’ai testé avec un scénario 5 volets avec une temporisation, il faut en gros 15 secondes entre chaque instruction si on veut avoir un résultat prévisible…

Bref, il manque peut être un buffer ou un truc dans le genre qui ferait la police dans les infos. Je suis pas assez pointu pour savoir si c’est le port série qui coince ou si c’est à un niveau plus haut.

Merci pour le retour, pareil pour moi pour ce qui est de la tempo. J’ai fais le choix de ne pas avoir 15s de délai entre mais 3 et de relancer 5 fois les actions, ça marche dans 99% des cas. J’ai pour ma part 5 volets également, je ne lance pas plus de 3 actions en parallèle.

Oui, j’ai craqué avant ta réponse, retour a mon openhab sur rpi séparé, je peux de nouveau lancer 5 fermetures simultanées sans soucis et les retours sont OK.

Dommage. Mais ça m’a parmi de clarifier la situation ET de me convaincre encore une fois de dissocier les éléments physiques et les instructions via des virtuels, ca évite de tout avoir à reprogrammer a chaque tests :slight_smile:

Ok donc le problème est vraiment le logiciel et pas le matériel

Bonsoir,

Avez-vous des traces dans vos logs que je puisse regarder ?

Je gère quotidiennement 2 volets sans problème particulier sauf le retour d’état qui me pose problème parfois.

Bonsoir @openhomeautomation,

Voici les logs en mode debug ou j’essaye de faire une mise à jour pour récupérer l’état:

2020-09-30 19:02:46][DEBUG] : readQueue() Called
[2020-09-30 19:02:46][DEBUG] : delQueue() Called
[2020-09-30 19:02:46][DEBUG] : readQueue() Called
[2020-09-30 19:02:46][DEBUG] : delQueue() Called
[2020-09-30 19:02:46][DEBUG] : execute()-ln:531 LogicalId: refresh
[2020-09-30 19:02:46][DEBUG] : execute()-ln:532 EqLogic_id: 137
[2020-09-30 19:02:46][DEBUG] : execute()-ln:533 options: {"utid":"1601485288432"}
[2020-09-30 19:02:46][DEBUG] : execute()-ln:536 Action: getinfo
[2020-09-30 19:02:46][DEBUG] : execute()-ln:549 Data send: {"apikey":"xxx","cmd":"getinfo","device":{"id":"3","EqLogic_id":"137","cmd":"getinfo"}}
[2020-09-30 19:02:46][DEBUG] : Client connected to [127.0.0.1:54217]
[2020-09-30 19:02:46][DEBUG] : Message read from socket: {"apikey":"xxx","cmd":"getinfo","device":{"id":"3","EqLogic_id":"137","cmd":"getinfo"}}
[2020-09-30 19:02:46][DEBUG] : Client disconnected from [127.0.0.1:54217]
[2020-09-30 19:02:46][DEBUG] : read_socket() New message received
[2020-09-30 19:02:46][DEBUG] : read_socket() Device ID: 3
[2020-09-30 19:02:46][DEBUG] : read_socket() Device EQLOGIC_ID: 137
[2020-09-30 19:02:46][DEBUG] : read_socket() Device CMD: getinfo
[2020-09-30 19:02:46][DEBUG] : todelQueue() Called
[2020-09-30 19:02:46][DEBUG] : delQueue() Called
[2020-09-30 19:02:46][DEBUG] : prepare_send_eleroha() Called
[2020-09-30 19:02:46][DEBUG] : easyInfo() Called
[2020-09-30 19:02:46][DEBUG] : makeCS() Called
[2020-09-30 19:02:46][DEBUG] : makeCS() to int 170
[2020-09-30 19:02:46][DEBUG] : makeCS() to int 4
[2020-09-30 19:02:46][DEBUG] : makeCS() to int 78
[2020-09-30 19:02:46][DEBUG] : makeCS() to int 0
[2020-09-30 19:02:46][DEBUG] : makeCS() to int 4
[2020-09-30 19:02:46][DEBUG] : makeCS() total 256
[2020-09-30 19:02:46][DEBUG] : prepare_send_eleroha() BILT frame : ['aa', '04', '4e', '00', '04', '00']
[2020-09-30 19:02:46][DEBUG] : send_eleroha() Called (deamon=>Elero stick)
[2020-09-30 19:02:46][DEBUG] : flushOutput serial port
[2020-09-30 19:02:46][DEBUG] : flushInput serial port
[2020-09-30 19:02:46][DEBUG] : send_eleroha() Write frame to serial port
[2020-09-30 19:02:46][DEBUG] : Write data to serial port : AA 04 4E 00 04 00
[2020-09-30 19:02:46][DEBUG] : send_eleroha() Send frame : aa044e000400
[2020-09-30 19:02:46][DEBUG] : readQueue() Called
[2020-09-30 19:02:46][DEBUG] : delQueue() Called
[2020-09-30 19:02:47][DEBUG] : read_eleroha() message: AA 05 4D 00 04 01 FF
[2020-09-30 19:02:47][DEBUG] : decodeAck() Called
[2020-09-30 19:02:47][DEBUG] : makeCS() Called
[2020-09-30 19:02:47][DEBUG] : makeCS() to int 170
[2020-09-30 19:02:47][DEBUG] : makeCS() to int 5
[2020-09-30 19:02:47][DEBUG] : makeCS() to int 77
[2020-09-30 19:02:47][DEBUG] : makeCS() to int 0
[2020-09-30 19:02:47][DEBUG] : makeCS() to int 4
[2020-09-30 19:02:47][DEBUG] : makeCS() to int 1
[2020-09-30 19:02:47][DEBUG] : makeCS() total 257
[2020-09-30 19:02:47][DEBUG] : decodeAck() CS ok
[2020-09-30 19:02:47][DEBUG] : decodeAck() OK channel: 3 status: 01
[2020-09-30 19:02:47][DEBUG] : read_eleroha() message: OK
[2020-09-30 19:02:47][DEBUG] : targetQueue() Called
[2020-09-30 19:02:47][DEBUG] : delQueue() Called
[2020-09-30 19:02:48][DEBUG] : read_eleroha() message to Jeedom sent
[2020-09-30 19:02:48][DEBUG] : readQueue() Called
[2020-09-30 19:02:48][DEBUG] : delQueue() Called
[2020-09-30 19:02:48][DEBUG] : readQueue() Called
[2020-09-30 19:02:48][DEBUG] : delQueue() Called
[2020-09-30 19:02:48][DEBUG] : Send to jeedom :  {'info': {'EqLogic_id': u'137', 'channel': '3', 'value': '01'}}
[2020-09-30 19:02:48][DEBUG] : Starting new HTTP connection (1): 192.168.94.194
[2020-09-30 19:02:48][DEBUG] : http://192.168.94.194:80 "POST /plugins/eleroha/core/php/jeeEleroha.php?apikey=xxx HTTP/1.1" 200 90
[2020-09-30 19:02:48][DEBUG] : readQueue() Called
[2020-09-30 19:02:48][DEBUG] : delQueue() Called
[2020-09-30 19:02:48][DEBUG] : readQueue() Called
[2020-09-30 19:02:48][DEBUG] : delQueue() Called

Une idée ? Dis moi si tu as besoin d’autre chose.

Merci !!!

Bonsoir, merci pour tes logs.
De ce que je vois l’état qui est lu est « ouvert », tu confirmes que ton volet était ouvert ?

Je vais regarder pourquoi l’info est mal intégrée.

Pour compléter, voici une info à propos du fonctionnement du stick :

« The stick has no buffer or queue for the commands »
J’ai bien une gestion de queue mais à la relecture elle mérite d’être refaite. A suivre.

Oui effectivement le volet était ouvert à ce moment là, mais l’icone elle, indque ouvert à moitié (comme tous mes volets d’ailleurs peut importe qu’ils soient ouvert ou fermés). On dirait bien que l’état de l’icone ne varie pas en fonction de l’état réel du volet.

Bonsoir deimosfr, voici des infos sur la remontée d’état du stick :

Envoi d’une commande (monter, descendre …)
→ attendre 10 secondes
Rafraichir afin d’obtenir l’état en cours
→ attendre 3 minutes
Rafraichir afin d’obtenir l’état final

j’ai simplifié une partie de la communication avec le stick et je regarde pour intégrer cette séquence.

1 « J'aime »

Ca me parait pas mal @openhomeautomation. Préviens moi quand tu fais la mise à jour que je puisse te donner du feedback.

Merci

Bonsoir @deimosfr, je viens de passer une mise à jour, je pense qu’elle sera dispo sur jeedom demain.

J’ai modifié la doc afin d’y ajouter les valeurs des états mais aussi les limitations du sticks.

Merci @openhomeautomation, j’ai fais la mise à jour et lu la doc associée. Malheureusement je ne vois aucune différence, le retour des états n’est toujours pas prit en compte :frowning:

Pour te donner plus d’info, voici un refresh + demande d’état derrière:

[2020-10-05 09:36:38][DEBUG] : read_stick() Called
[2020-10-05 09:36:38][DEBUG] : execute()-ln:530 LogicalId: refresh
[2020-10-05 09:36:38][DEBUG] : execute()-ln:531 EqLogic_id: 137
[2020-10-05 09:36:38][DEBUG] : execute()-ln:532 options: null
[2020-10-05 09:36:38][DEBUG] : execute()-ln:535 Action: getinfo
[2020-10-05 09:36:38][DEBUG] : execute()-ln:548 Data send: {"apikey":"xxx","cmd":"getinfo","device":{"id":"3","EqLogic_id":"137","cmd":"getinfo"}}
[2020-10-05 09:36:38][DEBUG] : Client connected to [127.0.0.1:49923]
[2020-10-05 09:36:38][DEBUG] : Message read from socket: {"apikey":"xxx","cmd":"getinfo","device":{"id":"3","EqLogic_id":"137","cmd":"getinfo"}}
[2020-10-05 09:36:38][DEBUG] : Client disconnected from [127.0.0.1:49923]
[2020-10-05 09:36:38][DEBUG] : read_jeedom() Called
[2020-10-05 09:36:38][DEBUG] : read_jeedom() New message received
[2020-10-05 09:36:38][DEBUG] : read_jeedom() Device ID: 3
[2020-10-05 09:36:38][DEBUG] : read_jeedom() Device EQLOGIC_ID: 137
[2020-10-05 09:36:38][DEBUG] : read_jeedom() Device CMD: getinfo
[2020-10-05 09:36:38][DEBUG] : easyInfo() Called
[2020-10-05 09:36:38][DEBUG] : makeCS() Called
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 170
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 4
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 78
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 0
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 4
[2020-10-05 09:36:38][DEBUG] : makeCS() total 256
[2020-10-05 09:36:38][DEBUG] : Put frame 'aa044e000400' into CMD_TO_SEND queue
[2020-10-05 09:36:38][DEBUG] : write_stick() Called
[2020-10-05 09:36:38][DEBUG] : Ready write frame to stick serial port
[2020-10-05 09:36:38][DEBUG] : flushOutput serial port
[2020-10-05 09:36:38][DEBUG] : flushInput serial port
[2020-10-05 09:36:38][DEBUG] : Write data to serial port : AA 04 4E 00 04 00
[2020-10-05 09:36:38][DEBUG] : Write frame : aa044e000400
[2020-10-05 09:36:38][DEBUG] : Put frame 'aa044e000400' into CMD_IN_PROCESS queue
[2020-10-05 09:36:38][DEBUG] : read_stick() Called
[2020-10-05 09:36:38][DEBUG] : read_jeedom() Called
[2020-10-05 09:36:38][DEBUG] : read_stick() Called
[2020-10-05 09:36:38][DEBUG] : read_stick() message: AA 05 4D 00 04 01 FF
[2020-10-05 09:36:38][DEBUG] : decodeAck() Called
[2020-10-05 09:36:38][DEBUG] : decodeAck() Called
[2020-10-05 09:36:38][DEBUG] : makeCS() Called
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 170
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 5
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 77
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 0
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 4
[2020-10-05 09:36:38][DEBUG] : makeCS() to int 1
[2020-10-05 09:36:38][DEBUG] : makeCS() total 257
[2020-10-05 09:36:38][DEBUG] : decodeAck() CS ok
[2020-10-05 09:36:38][DEBUG] : decodeAck() OK channel: 3 status: 01
[2020-10-05 09:36:38][DEBUG] : read_stick() Ack: OK
[2020-10-05 09:36:38][DEBUG] : Send to jeedom :  {'info': {'EqLogic_id': u'137', 'value': '01'}}
[2020-10-05 09:36:38][DEBUG] : Starting new HTTP connection (1): 192.168.94.194
[2020-10-05 09:36:38][DEBUG] : http://192.168.94.194:80 "POST /plugins/eleroha/core/php/jeeEleroha.php?apikey=xxx HTTP/1.1" 200 90
[2020-10-05 09:36:38][DEBUG] : read_stick() message to Jeedom sent
[2020-10-05 09:36:38][DEBUG] : read_jeedom() Called

Le retour depuis les logs à l’air correct, on voit bien 01 et mon volet est ouvert. Je pense que le soucis est l’envoie d’info à Jeedom, car quand j’essaye de chopper l’état depuis le testeur d’expression, j’ai «  » comme retour. Pour info, j’utilise la version 4 de Jeedom.

J’espère que ça t’aide

Bonsoir.

Le problème des retours d’état non pris en compte vient d’une mauvaise configuration de la clef API utilisée par le plugin dans Jeedom. Chez certain l’accès API était désactivé.

Dans la dernière version un test permet de passer ce paramètre à « localhost » à l’installation ou à la mise à jour du plugin.

Dans la dernière version du plugin j’ai :

  • réécrit la partie qui communique avec le stick Elero afin d’améliorer la stabilité,
  • modifié les commandes des équipements en ajoutant une commande valeur et une commande état. La commande état est la traduction human readable de la commande valeur,
  • supprimé le widget afin que vous puissiez gérer cette partie comme vous le souhaitez
  • ajouté la gestion d’une file d’attente sur les commandes d’action puisque le stick Elero n’en gère pas.

Un grand merci @deimosfr pour ses échanges constructifs et ses conseils.

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.