Gestion des Groupes et Binding avec Deconz

Salut @alexp je me permet de te remonter juste quelques petites erreurs dans le log.

[Fri Feb 19 23:27:19.319620 2021] [php7:notice] [pid 15391] [client 127.0.0.1:57546] PHP Notice:  Undefined index: scenes in /var/www/html/plugins/deconz/core/class/deconz.class.php on line 462
[Fri Feb 19 23:28:02.735765 2021] [php7:notice] [pid 22765] [client 127.0.0.1:57634] PHP Notice:  Undefined offset: 0 in /var/www/html/plugins/deconz/core/php/jeeDeconz.php on line 43
[Fri Feb 19 23:28:02.791916 2021] [php7:warn] [pid 2098] [client 127.0.0.1:57630] PHP Warning:  Division by zero in /var/www/html/plugins/deconz/core/php/jeeDeconz.php on line 110
[Fri Feb 19 23:28:02.791984 2021] [php7:warn] [pid 2098] [client 127.0.0.1:57630] PHP Warning:  Division by zero in /var/www/html/plugins/deconz/core/php/jeeDeconz.php on line 111
Stack trace:
#0 {main}
thrown in /var/www/html/plugins/deconz/core/php/jeeDeconz.php on line 84
[Fri Feb 19 23:34:02.936783 2021] [php7:notice] [pid 22765] [client 127.0.0.1:58404] PHP Notice:  Undefined offset: 0 in /var/www/html/plugins/deconz/core/php/jeeDeconz.php on line 83
[Fri Feb 19 23:34:02.941913 2021] [php7:error] [pid 22765] [client 127.0.0.1:58404] PHP Fatal error:  Uncaught Error: Call to a member function getCmd() on null in /var/www/html/plugins/deconz/core/php/jeeDeconz.php:84

Ok merci je regarde ça en début de semaine.

1 « J'aime »

Je viens de regarder, mais je ne trouve pas l’erreur, ou plutôt cette erreur ne peut normalement pas se produire…
Par déduction ou avec les logs de DeConz, t’est-il possible de voir de quel groupe il s’agit et de m’envoyer ses infos ?


Peux-tu supprimer tous les équipements « groupes » dans Jeedom et refaire une synchro pour les recréer ? Il est possible qu’avec toutes les modifs faites il y ait un reliquat de mauvaise conf.

Pour l’erreur [Fri Feb 19 23:27:19.319620 2021] [php7:notice] [pid 15391] [client 127.0.0.1:57546] PHP Notice: Undefined index: scenes in /var/www/html/plugins/deconz/core/class/deconz.class.php on line 462
J’ai remplacé la ligne incriminée par if (array_key_exists($_device, 'scenes')){

1 « J'aime »

Bonjour,

@alexp : Je viens de t’envoyer un MP, je suis chaud pour tester.

Je rejoins la communauté domotique grâce à Lidl (je ne pensais pas dire ça un jour).
Je suis en train de voir comment je peux gérer tout ça et je me laisse tenter par le combo Raspberry / Jeedom / Raspbee / Deconz. Et effectivement la gestion des groupes me semble un must have, notamment pour gérer un luminaire en entier.

Merci à la commu et à ce thread pour les devs, les liens et les explications.

1 « J'aime »

Merci Reb, j’attends tes retours avec impatience !

Bonjour @alexp, attends-tu d’autres retours car pour l’instant les modifs fonctionnent en prod chez moi et RAS.

Oui j’attends encore un peu, j’ai de nouvelles personnes qui sont en train de tester. Et ne je suis pas sûr que Loïc ait du temps à consacrer à ça pour l’instant… Il faut vraiment que je lui envoi un truc quasi clé en main et rapide à checker pour lui !

J’ai ajouté le 3 lignes proposées dans le post ci-dessus dans deconz.class.php, le zip est à jour si vous voulez le re-télécharger

1 « J'aime »

Merci, du coup souhaites-tu que je teste des choses en particulier ?

Pour les tests non pas vraiment, remonte juste les éventuels problèmes.

En cours de test, déjà bravo tous les groupes remontent bien, cela va permettre de sortir les doublons avec le plugin groupe.

J’attends avec envie une version qui évitera de remonter les groupes de binding. Avec une flopée d’interrupteurs modifiés, cela fait beaucoup de groupes.

Pense tu possible d’avoir les groupes sur une page dédiée et non pas mélangé à tous les modules ?

Merci pour ton travail :+1:

Et le plugin groupe ne gère pas du tout les ampoules de la même façon !

Oui il faut que je me penche là-dessus… Mais bon comme c’est juste cosmétique, j’avoue que j’ai pas encore trouvé la motivation :frowning:

Cela doit être possible, mais je ne le ferai pas, mon but n’est pas de me substituer à Loïc pour le dev.
En plus, si je lui fais un pull request de 1000 lignes, ça va pas le faire ! :slight_smile:

3 « J'aime »

Oui, c’est juste cosmétique mais à chaque synchronisation tous les groupes supprimés remontent de nouveau dans jeedom, en attendant je vais créer un object « Zzzz » :grin: :wink:

En effet, je comprend, tu as un paquet de switch !!!

Plugin Rested dans Firefox :



Le paramètre hidden n’apparait pas !! Tu as le même résultat chez toi ?

Voici la doc : https://dresden-elektronik.github.io/deconz-rest-doc/endpoints/groups/#set-group-attributes

Si ça déconne il va falloir trouver un autre moyen pour masquer les groupes, j’ai une petite idée mais c’est plus compliqué…

Je peux pas tester cela, je ne suis pas chez moi avant lundi prochain.

Alors, je suis chez moi et j’ai installé firefox :wink:

Une bonne nouvelle, il y a bien une différence entre les groupes binding créés à l’inclusion d’un module et que l’on peut géré via Phoscon 2016 et les groupes créés sur Phoscon.

Groupe binding :

{
  "action": {
    "alert": "none",
    "bri": 127,
    "colormode": "hs",
    "ct": 0,
    "effect": "none",
    "hue": 0,
    "on": true,
    "sat": 127,
    "scene": null,
    "xy": [
      0,
      0
    ]
  },
  "devicemembership": [
    "132"
  ],
  "etag": "9a0fb3ca1a479eadda76329129c6c4d6",
  "id": "16388",
  "lights": [
    "44",
    "48"
  ],
  "name": "ZBT-Remote-Plafond",
  "scenes": [],
  "state": {
    "all_on": true,
    "any_on": true
  },
  "type": "LightGroup",
  "uniqueid": "00:15:8d:00:03:61:d5:24"
}

Groupe Phoscon

{
  "action": {
    "alert": "none",
    "bri": 127,
    "colormode": "hs",
    "ct": 0,
    "effect": "none",
    "hue": 0,
    "on": false,
    "sat": 127,
    "scene": null,
    "xy": [
      0,
      0
    ]
  },
  "devicemembership": [],
  "etag": "f21b356b6a13c204af8f406a1938646e",
  "id": "69",
  "lights": [
    "4"
  ],
  "name": "Btn applique tv",
  "scenes": [],
  "state": {
    "all_on": false,
    "any_on": false
  },
  "type": "LightGroup"
}

Vérifié sur plusieurs groupes, la ligne devicemembership est vide sur les goupes non binding, donc si on remonte dans le plugin que les groupes qui ont devicemembership vide on aura bien que les groupes créé dans Phoscon.

Attention / Warning :
Ne pas supprimer de groupe depuis réseau deconz/noeuds, si vous avez des binds, ceux-ci seront supprimés. Conseil d’une personne s’étant fais avoir :rofl:

Bon, je vous quitte, j’ai tous mes binds à refaire.

Oui en effet, devicemembership semble pouvoir être utilisé pour faire le tri, d’ailleurs je vois ici que certains l’utilisent déjà à cette fin.

Une autre approche serait de pouvoir, via une case à cocher dans l’onglet des nœuds, choisir les équipements à synchroniser ou non.

Je ne sais pas ce qui serait le mieux.

De mon point de vue, tous les groupes bind devrait être cachés, cela évitera déjà les boulettes comme j’ai fait de suppression et quand je vois le nombre d’utilisateurs qui ne savent pas ou est Phoscon alors pour Phoscon 2016…

Modifie la ligne 351 de deconz.class.php comme ceci :
if(!isset($group['id']) || $group['type'] != "LightGroup" || $group['devicemembership'] != ""){

Cela va bloquer la synchro des groupes dont l’attribut devicemembership n’est pas vide.

Attention, cette simple modif ne supprime pas les groupes de binding de la liste des noeuds, ça bloque juste leurs synchro.