KiwiHC16 / Abeille

Abeille pour Jeedom (Gateway ZiGate)
GNU Affero General Public License v3.0
60 stars 52 forks source link

Switch Livolo #570

Closed KiwiHC16 closed 4 years ago

KiwiHC16 commented 5 years ago

Info found on the net:

I see "Beacon Requsts" packets from the sniffer. They are on the channel 0x1A (26)

Device with modelID 'TI0001 "TI0001 " - 10th spaces after TI0001 :)

There is also a 2 channels variant of this switch, I think it's possible that both switches have the same firmware, so I added ep: {'left': 1, 'right': 2, 'both': 3},

The gateway sends to the switch a command: ZCL Level Control: Move to Level Level: 108, Transition Time: 0.1 sec - to on Level: 1, Transition Time: 0.1 sec - to off

I've found out that to toggle the second (right) switch you would have to change transition to 0.2 in published message, like this: { "brightness": 108, "transition": 0.2 }

Received zigbee message of type 'devChange' with data '{"cid":"genOnOff","data":{"onOff":3}}' where onOff is 3 if both switches are on, 2 if only right is on, 1 if only left and 0 if both are off.

Livolo always answers about its state

So, there is the last problem (at least for me). If I unplug then plug the coordinotor my switch sends 'Rejoin request', it's ok, but if I power off the switch itself, it sends 'Association request'. It's the reason why 'permit_join' has to be always 'true'.

We need to use the specific channelId and extPanId. We need to send ZCL OnOff: Toggle after the device is connected to the coordinator (only once). Poll the device ZCL OnOff: Read to get the current state of buttons.

KiwiHC16 commented 5 years ago

Si je me mets en écoute sur 26, j'ai des beacon requests toutes les 0.8s et si je debranche l inter, plus de beacon, si je rebranche immédiatement beacon.

KiwiHC16 commented 5 years ago

Need to add the Channel selection command before going to next step.

KiwiHC16 commented 5 years ago

Et voila c est dans Abeille. Reste une petite modif pour le firmware de la zigate et on aura le retour d'état. Il faut aussi que j ajoute la selection du Channel. Je push dans master cette premiere version.

KiwiHC16 commented 5 years ago

J'ai le retour d etat sur un getEtat qui est fait automatiquement, il faut donc mettre les boutons associés:

AbeilleParser 2019-01-30 18:37:18[DEBUG];Type; 8102; (Attribut Report)(Processed->MQTT); SQN: fb; Src Addr : 0D1a; End Point : 06; Cluster ID : 0006; Attr ID : 0000; Attr Status : 00; Attr Data Type : 10; Attr Size : 0001; Data byte list : 03

KiwiHC16 commented 5 years ago

Mettre dans le modele deux commandes info virtuel pour separer le retour d état des interrupteurs. Bon ca ne fonctionne pas. Je laisse la donnée brute et met dans la doc la solution virtuel pour les utilisateurs.

KiwiHC16 commented 5 years ago

Si j'interroge trop vite pour avoir le retour d'etat alors la valeur n'est pas a jour. Mais si je mets un delai alors je ralenti tout le monde.

KiwiHC16 commented 5 years ago

Donate

Je ne possede pas ce produit en version 1 bouton alors si la cagnotte le permet j'en acheterai un.

graouxx commented 5 years ago

Hello @KiwiHC16 Si je comprends bien tu as réussi à faire fonctionner le switch 2 boutons. J'ai une dizaines de switches, je peux faire des tests si tu le souhaites. Comment as tu géré le fait que les switch renvoi des demandes de join régulièrement ? Sur zigbee2mqtt on est obligé de laissé en permit join le coordinateur. Pour le retour d'état, tu sondes à interval régulier ? Car sur mon réseau à partir de quelques switch (7/8), le coordinateur n'arrive plus à suivre et plante. À bientôt

KiwiHC16 commented 5 years ago

Salut, Oui j'avais vu le permit join mais pas besoin avec zigate. Depuis j'ai remplacé mon module deux boutons par un module un bouton mais lui ne tient pas longtemps contrairement au 2 boutons. Pas eu le temps de regarder plus en détail pourquoi....

KiwiHC16 commented 5 years ago

Je pense avoir trouvé une solution qui fait qu'il tient dans le réseau. Il est toujours alors que j'écris et cela fait plusieurs minutes alors que sinon il serait deja dans les choux. Rest a voir comment je mets ca dans le code.

graouxx commented 5 years ago

Si tu arrives à le faire fonctionner en continu tu es mon dieu <3

J'ai équipé la maison, mais c'est loin d'être parfait avec z2mqtt ...

KiwiHC16 commented 5 years ago

Trop d'honneur. J'ai vu que tu participais à la discussion. En fait j'ai collecté les infos z2m et utilisé la GW Livolo pour sniffer et je pense tout avoir. Il faut que je relance Akila pour avoir le retour d'état du fait de messages propriétaires ;-(

KiwiHC16 commented 5 years ago

C est dans le master

KiwiHC16 commented 5 years ago

reste l integration du retour d etat dans la zigate.

graouxx commented 5 years ago

reste l integration du retour d etat dans la zigate.

Est ce qu'on peut avoir un retour d'état manuel en déclenchant une commande en attendant une éventuelle solution automatique ? Je vais essayer de tester ce week end ce que tu as fait.

KiwiHC16 commented 5 years ago

J'ai une version de la zigate avec les modifs qu'il faut. Je vais tester ce week end.

graouxx commented 4 years ago

Je viens de tester, cela fonctionne plutôt pas mal. 8 interrupteurs connectés dont 6 simples.

J'ai pas encore regardé si le retour d'état était ok, mais j'ai cru comprendre qu'il fallait mettre à jour le fwk de la zigate ? Que dois-je te faire passer pour que tu puisses rajouter le livolo 1 way switch ? (1 bouton) La ça fonctionne, la zigate les reconnait en 2 boutons et le On 1 / Off 1 sont ok.

Je vérifie demain que tous les inters sont encore dans le réseau.

Edit : comment fonctionne la commande état ? Il n'y a qu'une commande mais 2 switch. J'ai l'impression qu'elle peut prendre comme valeur 0, 1 ou 2

KiwiHC16 commented 4 years ago

Les deux device sont identiques. Si tu as un bouton, tu ne rends pas visible le deuxième bouton dans Jeedom et le tour est joué.

Pour le retour d'état il faut la 3.1a (Bizarre j ai mis l inverse dans la doc, je ne sais plus) si mes souvenirs sont bons mais je ne suis pas sure que cela est completement integré dans Abeille. Je ne me souviens plus. Il faut que je regarde.

D'après mes notes, le Livolo envoie: 0: Inter 1 et 2 à Off 1: Inter 1 On et 2 Off 2: Inter 1 Off et 2 On 3: Inter 1 et 2 On

Je pense qu'Abeille ne modifie pas cette valeur.

Il faudrait que je vérifie l integration dans Abeille et que je fasse la doc: https://abeilledocsphinx.readthedocs.io/fr/latest/Livolo.html

graouxx commented 4 years ago

merci @KiwiHC16 Je regarde ça à mon retour de congés

KiwiHC16 commented 4 years ago

Le retour d'etat n'est pas encore dans Abeille, je viens de voir la fonction en cours de dev et surtout il faut une mise a jour du firmware (pas encore dispo) que je suis entrain de testé.

KiwiHC16 commented 4 years ago

Voila c est fait. Il faut une version Firmware en cours de dev (3.1b) et la version master de ce jour. Retour d'etat quand on pilote depuis abeille mais aussi quand on utilise physiquement l'interrupteur.

KiwiHC16 commented 4 years ago

Comme je vais déplacer la doc je mets le nouveau chemin: http://kiwihc16.free.fr/Livolo.html

KiwiHC16 commented 4 years ago

Comme tout est ok en dev, je clos le sujet. Pour la prod il faudra attendre la prochaine verison zigate et stable abeille (ou prendre master pour impatient).

graouxx commented 4 years ago

j'ai hâte de tester ça. J'ai un des interrupteurs qui est un peu capricieux avec la zigate. J'ai vu dans la doc que tu invitais à refaire l'association. J'ai essayé mais c'est pas mieux. Une idée ? Par capricieux j'entends, il ne répond pas toujours aux commandes.

graouxx commented 4 years ago

J'ai voulu tester .... mais peu de doc pour compiler les sources de la zigate (3.1b), du coup pour le moment je n'ai pas pu tester. Sinon pour le moment tout semble ok sur les interrupteurs simple. Par contre pour les doubles (j'en ai 2) je perds systématiquement la synchro et je suis obligé de refaire une inclusion.