jeedom-zigate/jeedom-plugin-zigate

Problème Aqara Wall switchs filaires sans neutre deux boutons nouveau modèle D1

Closed this issue · 21 comments

Bonjour
J’ai un souci avec 2 interrupteurs filaires Zigbee Aqara sans neutre à deux boutons, le nouveau modèle, je crois, le D1.

Ils allument correctement physiquement la lumière, mais pour ce qui est de l’intégration dans le plugin Zigate de Jeedom…
Ils sont reconnus comme lumi switch b2lacn02.

Après intégration, découverte de l’équipement et rafraîchissement, j’ai un tas de commande info et quelques commandes action, mais rien qui me permette d’allumer ou éteindre la lumière avec Jeedom.

Je n’ai connecté qu’un bouton, mais aucune commande action ne fonctionne. Et pourtant, j'ai pléthore de commandes action et info. En autres, en action, j’ai :

Off, Off4, Off5 et Off6
On, On4, On5 et On6
Toggle, toggle4, toggle5 et toggle6.
Rien de tout cela n’agit.

Par contre, dans les infos j’ai en particulier un OnOff3 (!!) qui passe à 1 quand j’allume avec le bouton et à 0 quand j’éteins.

Il me semblait avoir lu que les Wall switchs étaient compatibles, mais peut être que ces D1 sont différents ?
Pour info, ils ne sont pas reconnus par Deconz (aucune intégration)…

Je suis en plugin 1.7.0, firmware 3.1.c, lib 0.40.4. Jeedom 4.0.61 Debian 9 Stretch NUC Intel
Une chance de les avoir en fonctionnement correct pour les deux boutons dans Zigate ? Ou bien quelqu’un qui aurait réussi à les faire fonctionner ?
Merci d’avance
Nota : j'ai posté la même question dans le forum Jeedom, mais j'espère avoir plus de réponses dans le Github directement

doudz commented

Si les actions Off et On (Off, Off4, Off5...) sont bien là alors ça devrait fonctionner.
Idéalement il faudrait relancer le démon en mode debug et actionner les boutons pour voir ce qu'il se passe
Par contre, ce qui me surprend c'est le OnOff3, le 3 indique que c'est l'endpoint 3, aussi il devrait y avoir l'action Off3 et On3

Idéalement il faudrait poster ici le contenu du fichier zigate.json

Bonjour doudz, merci pour la réponse.
Je vais réinclure le module que j'ai supprimé pour d'autres tests. Les boutons actions n'arrivent qu'après plusieurs refresh et autres découvrir l'équipement. J'ai trouvé bizarre aussi le OnOff3, mais j'ai aussi d'autres OnOff qui ne réagissent pas à l'appui du bouton
Je vais essayer en mode debug.
Quant au zigate.json, je veux bien le poster si on m'explique où je le trouve.
Merci

doudz commented

Le fichier est présent dans un répertoire du plugin
sinon il me semble que le contenu est visible dans la page de configuration "Arbre zigate" (désolé je n'ai pas de jeedom à portée de main)

Malgré de multiples lancement de découverte de l'équipement et rafraichissement, je n'arrive pas à récupérer toutes les commandes action que j'avais tout à l'heure. J'ai juste récupérer le on, le off et le toggle (et bien entendu le refresh qui est là dès le départ).
Toutes les infos OnOff sont bien là (les infos arrivent tout de suite) et seul le OnOff3 change de valeur quand j'appuis sur le bouton physique. (Il y a aussi un OnOff et OnOff4, 5 et 6).
Quant à la log en mode debug, avec tous les autres équipements qui discutent, c'est un vrai fouillis, en tous cas il ne se passe rien quand je fais On, Off ou toggle.

J'ai trouvé le json dans zigate/resource/zigated :
zigate.json.txt

J'espère que je l'ai joint correctement, pas l'habitude de Github.
zigatelog2.txt

Récupérée après avoir été vidée, et excéuté le on, le toggle, puis testé le onoff3 pour différentes valeurs.

Merci

Je peux joindre la log égalemen :

doudz commented

extrait du fichier zigate.json

{
            "addr": "57bf",
            "discovery": "auto-discovered",
            "endpoints": [
                {
                    "clusters": [
                        {
                            "attributes": [
                                {
                                    "attribute": 0,
                                    "name": "zcl_version",
                                    "value": null
                                },
                                {
                                    "attribute": 1,
                                    "name": "application_version",
                                    "value": null
                                },
                                {
                                    "attribute": 2,
                                    "name": "stack_version",
                                    "value": null
                                },
                                {
                                    "attribute": 3,
                                    "name": "hardware_version",
                                    "value": null
                                },
                                {
                                    "attribute": 4,
                                    "data": "LUMI",
                                    "name": "manufacturer",
                                    "value": "LUMI"
                                },
                                {
                                    "attribute": 5,
                                    "data": "lumi.switch.b2lacn02",
                                    "name": "type",
                                    "type": "str",
                                    "value": "lumi.switch.b2lacn02"
                                },
                                {
                                    "attribute": 6,
                                    "name": "datecode",
                                    "value": null
                                },
                                {
                                    "attribute": 7,
                                    "name": "power_source",
                                    "value": null
                                },
                                {
                                    "attribute": 16,
                                    "name": "description",
                                    "value": null
                                }
                            ],
                            "cluster": 0
                        }
                    ],
                    "device": 6,
                    "endpoint": 1,
                    "in_clusters": [
                        0,
                        3,
                        1,
                        2,
                        25,
                        10
                    ],
                    "out_clusters": [
                        0,
                        10,
                        25
                    ],
                    "profile": 260
                },
                {
                    "clusters": [
                        {
                            "attributes": [
                                {
                                    "attribute": 0,
                                    "data": true,
                                    "name": "onoff",
                                    "type": "bool",
                                    "value": true
                                },
                                {
                                    "attribute": 61440,
                                    "data": 56082176
                                }
                            ],
                            "cluster": 6
                        }
                    ],
                    "device": 0,
                    "endpoint": 2,
                    "in_clusters": [],
                    "out_clusters": [],
                    "profile": 0
                },
                {
                    "clusters": [
                        {
                            "attributes": [
                                {
                                    "attribute": 0,
                                    "data": false,
                                    "name": "onoff3",
                                    "type": "bool",
                                    "value": false
                                },
                                {
                                    "attribute": 61440,
                                    "data": 56082176
                                }
                            ],
                            "cluster": 6
                        }
                    ],
                    "device": 0,
                    "endpoint": 3,
                    "in_clusters": [],
                    "out_clusters": [],
                    "profile": 0
                },
                {
                    "clusters": [
                        {
                            "attributes": [
                                {
                                    "attribute": 0,
                                    "data": true,
                                    "name": "onoff4",
                                    "type": "bool",
                                    "value": true
                                }
                            ],
                            "cluster": 6
                        }
                    ],
                    "device": 0,
                    "endpoint": 4,
                    "in_clusters": [],
                    "out_clusters": [],
                    "profile": 0
                },
                {
                    "clusters": [
                        {
                            "attributes": [
                                {
                                    "attribute": 0,
                                    "data": true,
                                    "name": "onoff5",
                                    "type": "bool",
                                    "value": true
                                }
                            ],
                            "cluster": 6
                        }
                    ],
                    "device": 0,
                    "endpoint": 5,
                    "in_clusters": [],
                    "out_clusters": [],
                    "profile": 0
                },
                {
                    "clusters": [],
                    "device": 0,
                    "endpoint": 6,
                    "in_clusters": [],
                    "out_clusters": [],
                    "profile": 0
                },
                {
                    "clusters": [],
                    "device": 83,
                    "endpoint": 8,
                    "in_clusters": [
                        12
                    ],
                    "out_clusters": [],
                    "profile": 260
                }
            ],
            "generictype": "",
            "info": {
                "addr": "57bf",
                "assumed_state": true,
                "bit_field": "0100000000000001",
                "descriptor_capability": "00000000",
                "ieee": "00158d0004a07754",
                "last_seen": "2020-08-19 13:45:18",
                "lqi": 201,
                "mac_capability": "10000100",
                "manufacturer_code": "1037",
                "max_buffer": 127,
                "max_rx": 100,
                "max_tx": 100,
                "rejoin_status": false,
                "server_mask": 1
            },
            "name": ""
        },

Heu, j'avais posté le json en fichier texte non ?
Je fais quoi avec cet extrait ?
Merci

doudz commented

L'extrait c'est juste pour rendre les choses plus visible pour tout le monde.
je ne suis pas sûr que le fichier soit à jour car pour avoir les commandes ON, OFF et TOGGLE, il faut avoir le cluster 6 dans la liste in_clusters mais là je ne le vois pas 🤔
il faudrait poster à nouveau le fichier, la sauvegarde n'était peut-être pas terminée

doudz commented

ça pourrait être intéressant de voir aussi le log lorsqu'on lance la découverte de l'équipement

OK, alors j'ai relancé une découverte après avoir vidé la log.
Voici la log récupérée après coup (je ne sais pas combien de temps il faut attendre, j'espère que c'est complet). Pas d'action supplémentaire, hélas.

zigatelogdecouverte.txt

Et revoici le fichier Json, récupéré après la log. Incapable de dire si c'est complet ou pas (la taille est plus importante).

ZigateJsonV2.txt

A noterqu'ily a dns le même répertoire un zigate.json.0 mais il est du 17 février.

En espérant que ça puisse aider pour une solution.
Merci

doudz commented

ok, on va devoir faire forcer les choses avec ce modèle.
On va faire un essai d'abord, il faudrait modifier le fichier zigate.json à la main dans un premier temps :

  • Arrêter le démon (très important sinon les modifs ne seront pas prises en compte)
  • Modifier le fichier zigate.json en ajoutant 6 à dans les in_clusters (ci-joint le fichier modifié)
  • Relancer le démon
  • Les commandes ON, OFF et TOGGLE devraient arriver
  • Tester et me dire lesquels fonctionnent

zigate.json.txt

Hello
Alors j'ai fait ce que tu m'as dit (enfin je n'ai pas rajouté 6, j'ai juste copié ton fichier à la place du mien - après en avoir fait une copie bien sûr).
Du coup, j'ai les on et Off 2, 3, 4, 5, 6.
Le On 3 et le Off3 fonctionnent - normal puisque le OnOff me donnait la bonne valeur.
Le toggle3 fonctionne également.
Malheureusement, je ne peux pas tester le second bouton tout de suite, il faudrait que je trouve une douille. J'ai commandé des fils de lampe chez Amazon pour faire des tests avec les 2 interrupteurs en même temps, mais je ne les aurai que demain. Je vais fouiller encore,
En attendant, quelque chose à faire ? je suppose que la moindre mise à jour va remodifier le json changé à la main ?
Merci

doudz commented

Rien à faire de spécial, il faut juste éviter de refaire une découverte sur cet équipement.
Quand on aura toutes les informations je pousserai une mise à jour pour supporter cet équipement

Alors, contrairement à ce que je pensais, le bouton 2 fonctionne quand le 1n'est pas branché.
c'est le On2 qui fait fonctionner le bouton 2. le Off2 éteint, et le toggle2 fonctionne également sur le 2e bouton.

par contre, je n'ai pas de OnOff2, donc pas d'état sur le second bouton, comment je peux le rajouter ?
Merci

doudz commented

Pas facile à faire pour l'instant, il faudrait relancer une découverte mais on peut pas sinon ça va casser la modif faite à la main

doudz commented

pour moi les actions 3, 4, 5, 6 ne servent à rien

On ne peut pas l'ajouter comme tu l'as fait pour les actions dans le fichier que tu as envoyé ?
Et pourquoi une découverte trouverait elle un onoff2 ? Parce qu'il est connecté alors qu'il ne l'était pas ?
A noter que je n'ai pas été capable de retrouver les modifications que tu as faite au json. J'ai recherché avec l'adresse courte et le nom du device, sans succès.
Merci

Tu dis :
...pour moi les actions 3, 4, 5, 6 ne servent à rien...
Attetion, l'action 3, si !!! Elle sert à allumer ou éteindre la lumière branchée sur L1, donc le bouton 1
On a :

  • L1 = bouton 1 = On3, Off3, toggle3, OnOff3
  • L2 = Bouton 2 = On2, Off2, toggle2, (et donc probablement aussi OnOff2)

Ces interrupteurs existent aussi en version 3 boutons, peut être que Xiaomi a prévu le L3 su on1 et off1 ? Ou le 4 ? ET peut êtte qu'ils ont prévus des interrupteurs à 6 boutons ?
En tous cas, le 3 est indispensable
Merci

doudz commented

ok si je résume les endpoints qui servent sont le 2 et 3
ceux qui ne servent pas les 1, 4, 5 et 6.
avec ça je vais pouvoir faire le template

Super...
Je guette donc !
A noter encore une fois qu'il exitse des 3 boutons, mais n'en ayant pas, je ne peux pas aider pour ceux là.

doudz commented

mise à jour dispo dès demain sur le market

Bravo et grand merci pour ton efficacité, ta disponibilité, ta réactivité