Interrupteurs Aqara D1 et deCONZ sur jeedom

Hello,

Voilà je commence doucement à m’imprégner de l’univers Zigbee, et j’essaye d’intégrer petit à petit la commu deCONZ.

Petit résumé du matériel que j’ai :
-Une Freebox Delta avec Jeedom installé (~3Go de RAM)
-Une clef Conbee II avec le plugin deCONZ sur Jeedom
-Un double-interrupteur Xiaomi Aqara D1 (Version 2020 QBKG22LM)
-Deux ampoules RGBW Xiaomi Mi Smart LED Bulb Essential
-Une ampoule RGBW Xiaomi Yeelight Smart LED Bulb

Après des nuits d’arrachage de cheveux et de potions à base de paracétamol, j’ai fini par réussir à faire fonctionner en harmonie tout ce petit monde.
C’est à dire que :
-La Conbee II est à jour
-L’app Phoscon reconnait bien la Conbee II
-deCONZ est bien configuré avec jeedom
-Jeedom reconnait bien les équipements remontés par deCONZ

Maintenant,

-L’interrupteur de gauche doit fonctionner comme un interrupteur classique, c’est à dire que quand j’appuie dessus, ça coupe le courant au niveau de l’ampoule (Et c’est configuré comme ça de base donc c’est très bien)
-L’interrupteur de droite lui par contre ne doit PAS couper le courant au niveau de l’ampoule, et c’est donc pour ça que j’ai découplé l’appuie sur le bouton du relais, en passant par deCONZ-gui et en modifiant un attribut spécifique à Xiaomi. Et ce pour la simple raison que l’ampoule associée est elle même connectée (Yeelight).

Donc c’est très bien, les interrupteurs physiques réagissent parfaitement comme je le veux …

Sauf que, le problème est que deCONZ ne remonte pas le « buttonstate » mais uniquement les states « on » et « off », qui correspondent à l’état des relais, pas à l’état de l’appuis sur un bouton…
Pourtant, dans deCONZ, il y a bien un cluster « multistate » avec un attribue qui change en fonction de l’état du bouton (un clic court, un double clic, début clic long, fin clic long) mais rien ne remonte dans l’API…

Savez-vous comment, ou vers quoi je dois me tourner pour réussir à récupérer cette info ?
C’est le ressors de qui au final ? deCONZ ? du dev de l’API ? Peut on coder quelque chose à notre niveau ?

Merci à vous :slight_smile:

Iduna

Alors j’ai pas cet interrupteur, mais a mon avis tu vas encore perdre quelques cheveux ^^.
Si je me souvient bien cet interrupteurs a du créer toute une collection d entrées lors de son inclusion, certains en light d’autres en sensors ?
Regardes du coté des sensors, il y en a un avec un champs « buttonevent » qui devrait t’intéresser.

Merci pour ta réponse :smiley:

Alors ! La première fois que j’ai appairé l’interrupteur à deCONZ, en effet, j’ai eu 4 éléments qui sont apparu (Je ne me souviens pas quoi exactement, mais certainement comme tu le dis du coups, ça serait logique).
Mais je voulais dans un premier temps découpler le relais du bouton de droite, et donc j’ai passé pas mal de temps déjà sur ça à éplucher les forum et faire des essais entre Freebox delta et Windows 10. dans cette aventure il est apparu que j’ai flashé la Conbee II via Phoscon, alors qu’elle était branché à la Freebox Delta (Et ça, c’est maaaal), je me suis retrouvée avec une clef complètement buguée, que j’ai re-flashé avec Windows 10.
Après tout ça, la VM ne voulait plus reconnaître la clef USB (lsusb), donc j’ai tout viré sur Jeedom et après encore des heures de galères, j’ai finis par tout remettre dans l’ordre en installant manuellement la beta 2.07, découplé le relais avec deCONZ-GUI et réinstallé le plugin deCONZ sur Jeedom.

Mais maintenant, que ce soit sur Jeedom, ou Phoscon, je n’ai que 2 éléments on/off qui apparaissent

Et voilà ce que j’ai sur deCONZ-GUI

Je n’ai pas cet interrupteur donc je ne saurais te dire combien de "end points " (fonctions ZigBee) il remonte lors de sa découverte durant son appairage.

Mais si l’appairage est bien complet (comme semble le montrer le screen shot deCONZ GUI) alors peut être que cela pourrait t’aider sans mettre trop les mains dans le cambouis :

C’est tout chaud, juste sortie du four :wink:

Merci pour ton aide :slight_smile:

Malheureusement, je ne peu pas suivre ton tuto (qui est top, merci !)

Car que ce soit sur la web-app Phoscon, l’ancienne interface, ou sur Jeedom. Il n’y a que ces 2 endpoints « ON/OFF lights » qui apparaissent, et donc qui sont vu comme des « lights » et pas des « switches » ou des « sensors » :sob:

Je ne comprend pas pourquoi sur deCONZ-GUI c’est bien détecté comme « Switch » et pas sur les apps ?
Je me demande, vu que pour accéder à deCONZ-GUI je dois arrêter le plugin sur Jeedom (Pas possible d’avoir les 2 en même temps), est-ce qu’ils partagent la même configuration ?
Est-ce que le deCONZ lancé par Jeedom n’est pas « bloqué » sur une ancienne config ? :thinking: Je vais vérifier ça de suite !

Dans l’intervalle je viens de regarder sur le Net.
Ton interrupteur QBKG22LM est considéré comme une « Light » ce qi est normal car c’est un actionneur càd un équipement qui agit directement sur une lampe non domotisée et sur 220V. Donc sa fonction est bien « Light » dans Phoscon. Cet interrupteur peut être commandé depuis des télécommandes (« Switch » sous Phoscon).

Les appellations entre deCONZ (et plus globalement la norme Zigbee) et l’application de haut niveau Phoscon sont malheureusement inversées ce qui prête à confusion c’est clair.
Sous Phoscon est « Light » tout actionneur 220 V (Module commutateur, prise commandée, Lampe Connectée, …), « Switch » tout ce qui est télécommande (sur pile donc), « Sensor » tout ce qui est mesure (température , humidité, …).

Donc mon Tutoriel ne te sera pas d’une grande utilité c’ets sur.

Je vois oui, effectivement c’est un interrupteur connecté dont les relais peuvent être pilotés avec une solution domotique (et donc couper ou non le courant à distance), en ce sens ils sont donc identifiés correctement par Phoscon en tant que light.

Néanmoins, il est possible, quand on passe par la gateway Aqara, de dissocier donc la fonction « relais » de la fonction « interrupteur », et donc par exemple décider que l’appuie simple allume ou éteint un autre équipement (lumière ou autre) et qu’un double-appuis lance une scène (allumer toutes les ampoules du salon en violet par exemple). Et j’imagine que si j’appuie sur l’interrupteur et que je regarde la valeur de l’attribut « Present Value » d’un cluster « Multistate Input (Basic) » il doit varier en fonction de comment j’appuis sur l’interrupteur.

Il serait donc impossible de remonter cette valeur à jeedom ?

Au vu de ton screen shot ce doit être posible si les 4 end points (01, 02, 04 et 05) sont bien remontés dans l’interface REST API deCONZ.
Sais tu comment accéder à REST API depuis ton navigateur ?
Si oui une petite requête de ce type
http://IPBOXJEEDOM5:8484/api/APIKEYGATEWAYPHOSCON/lights
devrait te remonter l’ensemble des lights. Ensuite il suffit d’y rechercher celle correspondant à ton interrupteur et d’y relever les commandes ad hoc pour les créer si besoin manuellement dans Jeedom.

Si non commence par une recherche sur ce forum REST API deCONZ je crois avoir fait il y a quelques temps déjà un pas à pas .

Peux tu sinon mettre ici la copie du JSON de ton équipement (Informations Brutes du noeud Zigbee) tel que vu par Jeedom ?

Il faut que je vois alors pour accéder à REST API depuis mon navigateur.

En attendant, voilà le JSON que j’ai sur Jeedom pour un des interrupteur :
image

Ça se présente plutôt mal coté Jeedom car seul le cluster 02 ON/OFF est visible.
Peux tu faire un screen shot du tableau des nœuds de ton réseau ZigBee Jeedom ?

Bien sûr ^•^

Donc end point 03 ON/OFF est aussi visible.
Les deux ends points ON/OFF apparaissent bien dans Jeedom et doivent te permettre de piloter chaque interrupteur depuis Jeedom de manière indépendante.

Le plug in Deconz doit te montrer deux interrupteurs séparément , non ?

Oui voilà, je peu piloter (On ou OFF) indépendamment les deux relais.

Un seul équipement apparaît sur Jeedom, mais j’ai plusieurs commandes :

Ah le petit cachotier.

Mais tout y est bien donc dans Jeedom .
Ça c’est parfait.
Donc l’état de caque bouton D et G remonte dans les Commandes info Event 02 et Event 03.
Comme ces commandes ne semblent pa sprésentes dans Phoscon deux solutions :

  • demander sur le Github Phoscon de les prendre en compte : long et peu probable d’avoir une réponse qui te convienne
  • soit de traiter les événements remontés par chacun des boutons vis scénario scénario : immédiat car ne dépend que de toi
    Reherche rapidement ici car cette dernière solution a été abodée très souvent : mot clef buttonevent et scenario

Aïe Aïe Aïe
Je suis vraiment désolée … Mais les « Event 02 » et « Event 03 » ont été crée … par moi >•<
J’ai tenté des choses (ça n’a pas marché …) et j’ai oublié de nettoyer tout ça après :x

Zut flute. C’était trop beau.

Donc reste le passage par la case REST API.

Note cependant que si ces évènements existent ce sera plutôt des
04.state::buttonevent. et 05.state::buttonevent correspondant aux end points que tu vois sous deCONZ GUI

Voilà le résultat de REST API

[GET] http://192.168.1.32:8484/api/APIKEY/lights

{
  "1": {
    "etag": "2aa529a2fefd1c1a5f86d9a8a0128484",
    "hascolor": false,
    "lastannounced": null,
    "lastseen": "2020-12-06T15:46Z",
    "manufacturername": "dresden elektronik",
    "modelid": "ConBee II",
    "name": "Configuration tool 1",
    "state": {
      "reachable": true
    },
    "swversion": "0x26680700",
    "type": "Configuration tool",
    "uniqueid": "00:21:2e:ff:ff:06:74:a4-01"
  },
  "2": {
    "etag": "213d95c535af0a02c62a88dce15bb8c2",
    "hascolor": false,
    "lastannounced": "2020-12-06T15:10:55Z",
    "lastseen": "2020-12-06T15:46Z",
    "manufacturername": "Unknown",
    "modelid": null,
    "name": "Interrupteur couloir",
    "state": {
      "alert": "none",
      "on": false,
      "reachable": true
    },
    "swversion": null,
    "type": "On/Off light",
    "uniqueid": "00:15:8d:00:05:47:82:63-02"
  },
  "3": {
    "etag": "213d95c535af0a02c62a88dce15bb8c2",
    "hascolor": false,
    "lastannounced": "2020-12-06T15:10:55Z",
    "lastseen": "2020-12-06T15:46Z",
    "manufacturername": "Unknown",
    "modelid": null,
    "name": "Interrupteur cuisine",
    "state": {
      "alert": "none",
      "on": true,
      "reachable": true
    },
    "swversion": null,
    "type": "On/Off light",
    "uniqueid": "00:15:8d:00:05:47:82:63-03"
  }
}

La même chose maintenant avec sensors au lieu de ligts dans la requête REST API

Voilà :

{
  "1": {
    "config": {
      "configured": true,
      "on": true,
      "sunriseoffset": 30,
      "sunsetoffset": -30
    },
    "etag": "5d413e02799d253652b1e8090dac10c1",
    "manufacturername": "Philips",
    "modelid": "PHDL00",
    "name": "Daylight",
    "state": {
      "dark": true,
      "daylight": false,
      "lastupdated": "2020-12-06T16:23:20.863",
      "status": 200,
      "sunrise": "2020-12-06T07:30:31",
      "sunset": "2020-12-06T15:56:02"
    },
    "swversion": "1.0",
    "type": "Daylight",
    "uniqueid": "00:21:2e:ff:ff:06:74:a4-01"
  }
}

Alors pour info, je viens de voir ça :

La mauvaise nouvelle c’est que les end points 4, 5 et 6 ne sont pas remontés dans l’interface REST API donc aucune chance qu’ils puissent être utilisés par Jeedom.
Je ne vois pas à quoi correspond le troisième end point multistate ni le end point pour une mesure analogique…