Plus d'alternance d'état de prise

Bonjour,

Petite présentation de la scène :

  • Un bouton Xiamoi
  • Une prise connectée avec le ventilateur branché dessus.
  • Si je clique sur le bouton, l’état de la prise s’inverse pour allumer ou éteindre le ventilateur.

J’ai eu un souci avec une prise connectée, elle semble morte (lorsque je clique dessus, elle s’allume un instant puis s’eteint).

J’ai donc changé de prise mais ça ne fonctionne plus, même après suppression de la scène.

Si la prise est éteinte, un clic l’allume mais impossible de l’éteindre via un autre clic ou via un double clic (pour le test).
Pourtant visuellement le commutateur devient bleu et il est également actif sur zigbee2mqtt.

J’ai dû faire un if bien plus compliqué :

Si tu viens de connecter ta prise et qu’elle n’a jamais été utilisée, elle n’a sûrement pas encore d’état dans Gladys et donc l’inversion peut ne pas fonctionner

Je te conseille d’activer la prise depuis Gladys 1 fois et après l’inversion fonctionnera :wink:

Elle était déjà connue de Gladys et j’ai activé, désactivé x fois manuellement depuis Gladys.

Ok, et ça marche avec le if compliqué ?

Car le « inverser les prises » fait exactement la même chose qu’un if compliqué

Oui avec le IF, ça passe.

Tu es vraiment sûr que ça ne marche pas « inverser les prises » ? Tu n’as pas un double scène qui pourrait faire que tu inverses 2 fois la prise ?

Je viens de tester chez moi, et ça marche très bien

J’ai refait un tour dans mes scènes et je n’ai rien vu…

Les messages envoyés indiquent toujours que le ventilateur vaut 1.

Avec une autre prise ça fonctionne bien.
Cela serait lié au materiel ?

Le code fait exactement la même chose que ton « if » donc si ça marche avec le « if », je vois pas pourquoi ça ferait pas pareil

Source: Gladys/server/lib/scene/scene.actions.js at master · GladysAssistant/Gladys · GitHub

Y a moyen de mettre un point d’arrêt là dessus que je vois ce qui se passe ?
Ou au pire que j’ajoute un console.log ?

A mon avis il faut essayer de comprendre à quelle étape ça ne marche pas !

C’est une prise connectée de quelle intégration ?
Est-ce que tu as moyen de voir si la prise reçoit quelque chose ?

Alors :

  • elle s’allume et s’éteint manuellement via Gladys
  • si je l’eteints manuellement et que j’appuie sur mon bouton, ça s’allume
  • si je l’allume manuellement et que j’appuie sur mon bouton, ça ne s’éteint pas

Comment je peux voir ce qu’elle reçoit ?
Zigbee2mqtt
Lorsque j’appuie sur le bouton, zigbee2mqtt recoit toujours :
info <small>2025-06-23 16:46:15</small>`z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Prise Girier ventilateur', payload '{"child_lock":"UNLOCK","current":0.14,"energy":0.01,"indicator_mode":"off","linkquality":27,"power":30,"power_outage_memory":"on","state":"ON","voltage":237}'

Et si je l’eteints manuellement via Gladys :
info <small>2025-06-23 16:46:18</small>`z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Prise Girier ventilateur', payload '{"child_lock":"UNLOCK","current":0.14,"energy":0.01,"indicator_mode":"off","linkquality":36,"power":30,"power_outage_memory":"on","state":"OFF","voltage":237}'

Salut @Hizo
Ton z2m est géré par Gladys ou externe ?
Quelle est la version de ton z2m ?
Quand tu le pilotes depuis z2m (on/off), elle répond bien ?

Salut @mutmut

Ton z2m est géré par Gladys ou externe ?

Par Gladys

Quelle est la version de ton z2m ?

1.42.0

Quand tu le pilotes depuis z2m (on/off), elle répond bien ?

Oui

Tu peux essayer d’appliquer la dernière mise à jour de Gladys, qui apporte la prochaine version majeure de Zigbee2MQTT (2.x), ça pourrait corriger le problème (le support de certains équipements équipements).

@Hizo j’ai une petite idée, je me demande si ce n’est pas un problème de type de variable, le « 1 » est peut être un string et ainsi le last_value === 0 est toujours faux ce qui fait que ça envoie un OFF systématiquement !

Mais du coup il faudrait comprendre pourquoi pour cette prise spécifiquement ça enverrait un string. L’autre prise sur laquelle ça marche vient aussi de Zigbee2mqtt ?

À mon avis ça n’a pas de rapport, c’est un problème de scènes je pense :slight_smile:

En effet, c’est le piège des triples = :slight_smile:

J’ai cliqué sur la mise à jour mais il ne s’est pas passé grand chose…

Dans mon test avec l’autre prise, je l’ai ajoutée au même bloc que celle qui ne fonctionne pas.

Je me note de tester le comportement en fin de semaine pour voir si c’est bien un problème de type :slight_smile:

En attendant, si ça marche avec le « if » tant mieux :wink: