Commande absente Sirene HS2WD-E

je ne sais rien faire avec un log de scénario.
chez moi les commandes switch fonctionnent comme il faut, on ou off

edit: j’ai mis en ligne une nouvelle version pour désactiver le bout de code qui cause problème chez toi, de toute façon cette partie n’est pas nécessaire sur les commandes action/Défaut.
la nouvelle version est déjà dispo sur le market

Hello.
Hier soir j’ai remis en urgence un backup du jour même pour palier à ce problème.
Il faudrait que je maj le plugin de nouveau avec la dernière bêta.

Pour info je suis un peu dans le même cas de Xavax avec les problèmes de retour d’état. (J’ai une Atlas, broker dans un LXC) Ce point me semble plus important à traiter pour le moment.

Quand j’aurais du temps je regarderais ce que ça donne à nouveau avec la dernière bêta.

Bonjour Mips,

Je suis passé sous la toute dernière version Beta que tu as déployé.

J’ai effectué des tests et voici en:

  • Vert ce qui fonctionne parfaitement → Action/Info bien synchroniser.
  • Rouge le bouton test ne donne rien donc l’etat de cette action reste null . Comme prevu

Je confirme que OUI, c’est toujours 10 secondes peux importe la « max_duration » :frowning:
Avec les mises a jour que tu as apporté dernièrement dirais tu qu’il n’y a aucun moyen de contourner cela ? As tu des améliorations encore à apporter ou si c’est ma sirène qui est incompatible.

Potentiel amélioration:
Outre l’aspect sonore, il n’y a pas de commande stroboscope qui remonte. En faisant les tests également à vue sur la sirene je me suis rendu compte qu’elle était toujours éteinte. Dans Z2M l’exposition ci dessous montre un slider de 0 a 10. Cela correspond a un style de clignotement du moins allumé au plus allumé sur un cycle

On pourrait envisager une commande « strobe_set » et info « strobe »


Exemple sur un cycle.

  • 0 = 100% éteint
  • 1= allumé 10% éteint 90%…
  • 2= allumé 20% éteint 80%…
  • 5 = allumé et éteint à 50%
  • …
  • 9 = allumé 90% éteint 10%
  • 10 = Toujours allumé.

Concernant les 2 commandes actions « Définir durée » et « Définir volume », peux-tu modifier les commandes en action/curseur au lieu de action/défaut, c’est une erreur de ma part qui sera corrigée avec la prochaine beta mais si tu changes manuellement ca revient au même.

Ces 2 commandes ne sont pas supposées « ne rien faire » évidemment :wink:
Comme déjà expliqué, elles sont sensées permettre de mettre à jour les commandes info correspondantes qui seront elle-même utilisées lorsque la sirène est allumée.


Aucun équipement n’est jamais incompatible, plugin-mqttdiscovery ne s’occupe pas de la compatibilité des équipements.

1 « J'aime »

Non, je n’envisage rien: plugin-mqttdiscovery recoit ses intructions via les infos de découvertes et applique ce qui est décrit. Comme déjà dit, il est inutile de chercher à comparer avec d’autres plugins.

Donc:

  • soit c’est décrit et ca doit être géré par le plugin (et peut-être que ce n’est pas encore le cas ou qu’il y a un bug)
  • soit ce n’est pas décrit et je ne vais rien inventer.

Puis-je avoir les infos de découvertes pour que l’on puisse vérifier si tout est géré à présent ou s’il manque des commandes?

Bonjour Mips.

D’accord, je comprends bien que si la sirene ne donne rien comme info forcement MQTTDiscovery ne peux rien inventer.

J’aimerais bien te communiquer a nouveau les infos de découverte mais le champs est vide. (je penses que c’est a cause du plugin en beta…)

[]

Non, c’est probablement parce que le broker ou le plugin a redémarré et que le flag retain n’était pas activé sur zigbee2mqtt

Lorsqu’un message est publié sur un broker, il est immédiatement distribué au client qui ont souscrit au topic et ensuite il est « oublié », Il n’y a aucun état qui reste sur le broker… sauf si le client qui publie (zigbee2mqtt ici) a expressément demandé de retenir cette information, le flag retain.

Attention, il peut y avoir des désavantages à activer ce flag=> cela veut dire qu’à chaque démarrage plugin-mqttdiscovery va recevoir l’entièreté des infos de découvertes et il va donc les traiter; en fonction de la capacité de la machine, cela peut prendre du temps (cf le sujet Mqtt Discovery ne remonte pas les informations - #31 par Mips)

Concrétement 2 options:

  • redémarrer zigbee2mqtt tant que plugin-mqttdiscovery, il va alors republier toutes les infos et le plugin les gardera en « cache » jusqu’à son prochaine démarrage; à faire chaque fois que nécessaire du coup
  • activer l’option retain en sachant l’impact et redémarrer zigbee2mqtt aussi

Ceci dit, je réfléchis aussi à ajouter une option ou config dans le plugin pour être en mode « nouvelle découverte uniquement » de sorte de garder les infos en « cache » pour ce qu’il connait déjà et ne plus en tenir compte au démarrage du démon afin d’optimiser le démarrage et traiter seulement les infos pour celles qu’il ne connait pas encore… mais je ne sais pas exactement qd je vais travailler la dessus… il me faut du temps

1 « J'aime »

et en fait avant de partir sur un autre sujet, qu’en est-il des commandes pour définir la durée et le volume et du coup la commande pour allumer la sirène? c’est en ordre maintenant?
autrement dit, est-ce que le choix de la durée et du volume est bien pris en compte lors de « ON »?

Je test ca demain demain.

Pour le moment j’ai bien changer les action/curseur


Je ferais donc des tests avec différentes valeur voir si cela a un impact ou non.


Je n’ai pas bien compris, j’ai reboot Z2M et je n’ai pas d’info découverte pour autant, j’ai reboot le demon du plugin mqtt discovery et pareil toujours pas d’info découverte.

le plugin ne décide pas de publier ou pas des infos de découvertes
si ces données n’existent plus sur le broker, la passerelle gérant l’équipement (zigbee2mqtt) doit les publier

Bonjour Mips,

Je n’ai pas eu beaucoup temps a me consacrer sur le sujet c’est dernier jour.
Je viens de maj a nouveau le plugin avec la dernière beta.

Je te repartage les « infos de découvertes » qui sont de nouveau visible depuis

{"sensor":{"battery":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"default_entity_id":"sensor.sirene_battery","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"device_class":"battery","enabled_by_default":true,"entity_category":"diagnostic","object_id":"sirene_battery","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_class":"measurement","state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_battery_zigbee2mqtt_nano","unit_of_measurement":"%","value_template":"{{ value_json[\"battery\"] }}"},"linkquality":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"default_entity_id":"sensor.sirene_linkquality","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:signal","name":"Linkquality","object_id":"sirene_linkquality","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_class":"measurement","state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_linkquality_zigbee2mqtt_nano","unit_of_measurement":"lqi","value_template":"{{ value_json[\"linkquality\"] }}"},"last_seen":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"default_entity_id":"sensor.sirene_last_seen","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"device_class":"timestamp","enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:clock","name":"Last seen","object_id":"sirene_last_seen","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_last_seen_zigbee2mqtt_nano","value_template":"{{ value_json.last_seen }}"}},"number":{"max_duration":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"command_topic":"zigbee2mqtt_nano/Sirene/set/max_duration","default_entity_id":"number.sirene_max_duration","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"entity_category":"config","max":600,"min":0,"name":"Max duration","object_id":"sirene_max_duration","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_max_duration_zigbee2mqtt_nano","unit_of_measurement":"s","value_template":"{{ value_json[\"max_duration\"] }}"}},"siren":{"siren":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"available_tones":["emergency"],"command_off_template":"{\"warning\": {\"mode\": \"stop\"}}","command_template":"{\"warning\": {\"mode\": \"{{ tone | default('emergency') }}\", \"level\": \"{% if volume_level is defined %}{% if volume_level | float <= 0.25 %}low{% elif volume_level | float <= 0.5 %}medium{% elif volume_level | float <= 0.75 %}high{% else %}very_high{% endif %}{% else %}medium{% endif %}\", \"duration\": {{ duration | default(10) }}}}","command_topic":"zigbee2mqtt_nano/Sirene/set","default_entity_id":"siren.sirene","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"name":null,"object_id":"sirene","optimistic":true,"origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"support_duration":true,"unique_id":"0x84fd27fffe044e2a_siren_zigbee2mqtt_nano"}}}

Et les commandes fonctionnent ou pas?
Le trio pour choisir la durée, le volume et allumer.

Bonjour Mips,

Changer la valeur de la commande Définir durée alarme modifie bien la valeur info Durée alarme
Changer la valeur de la commande Définir volume alarme modifie bien la valeur info Volume alarme

Cependant que le Volume alarme soit a 1% ou 99% cela n’a aucun impact sur le volume (toujours le meme). Idem avec la Durée alarme que ce soit 50sec ou 2sec l’alarme sonnera 10sec-12sec.

Seul la Max duration a un impact. pouvant être régler de 0 à 600 mais s’arrêtera quoi qu’il en soit après 10 secondes.

En d’autre terme, lancer la commande Sirenemergency envoi toujours le meme volume, ignonrant la durée alarme et en appliquant une durée défini uniquement par Max duration compris entre 0 et 10sec (parfois 12 mais jamais plus)

{"sensor":{"battery":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"default_entity_id":"sensor.sirene_battery","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"device_class":"battery","enabled_by_default":true,"entity_category":"diagnostic","object_id":"sirene_battery","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_class":"measurement","state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_battery_zigbee2mqtt_nano","unit_of_measurement":"%","value_template":"{{ value_json[\"battery\"] }}"},"linkquality":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"default_entity_id":"sensor.sirene_linkquality","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:signal","name":"Linkquality","object_id":"sirene_linkquality","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_class":"measurement","state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_linkquality_zigbee2mqtt_nano","unit_of_measurement":"lqi","value_template":"{{ value_json[\"linkquality\"] }}"},"last_seen":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"default_entity_id":"sensor.sirene_last_seen","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"device_class":"timestamp","enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:clock","name":"Last seen","object_id":"sirene_last_seen","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_last_seen_zigbee2mqtt_nano","value_template":"{{ value_json.last_seen }}"}},"number":{"max_duration":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"command_topic":"zigbee2mqtt_nano/Sirene/set/max_duration","default_entity_id":"number.sirene_max_duration","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"entity_category":"config","max":600,"min":0,"name":"Max duration","object_id":"sirene_max_duration","origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt_nano/Sirene","unique_id":"0x84fd27fffe044e2a_max_duration_zigbee2mqtt_nano","unit_of_measurement":"s","value_template":"{{ value_json[\"max_duration\"] }}"}},"siren":{"siren":{"availability":[{"topic":"zigbee2mqtt_nano/bridge/state","value_template":"{{ value_json.state }}"}],"available_tones":["emergency"],"command_off_template":"{\"warning\": {\"mode\": \"stop\"}}","command_template":"{\"warning\": {\"mode\": \"{{ tone | default('emergency') }}\", \"level\": \"{% if volume_level is defined %}{% if volume_level | float <= 0.25 %}low{% elif volume_level | float <= 0.5 %}medium{% elif volume_level | float <= 0.75 %}high{% else %}very_high{% endif %}{% else %}medium{% endif %}\", \"duration\": {{ duration | default(10) }}}}","command_topic":"zigbee2mqtt_nano/Sirene/set","default_entity_id":"siren.sirene","device":{"hw_version":5,"identifiers":["zigbee2mqtt_0x84fd27fffe044e2a"],"manufacturer":"Heiman","model":"Smart siren","model_id":"HS2WD-E","name":"Sirene","via_device":"zigbee2mqtt_bridge_0x24d660fffe72f807"},"name":null,"object_id":"sirene","optimistic":true,"origin":{"name":"Zigbee2MQTT","sw":"2.13.0","url":"https://www.zigbee2mqtt.io"},"support_duration":true,"unique_id":"0x84fd27fffe044e2a_siren_zigbee2mqtt_nano"}}}

Donc il me faudra les logs

Evidemment,

J’ai fais aller chaque commande avant.

[2026-10-12 11:20:03] INFO  : Publishing '{"warning": {"mode": "emergency", "level": "medium", "duration": 10}}' on 'zigbee2mqtt_nano/Sirene/set'
[2026-10-12 11:20:09] INFO  : Publishing '300' on 'zigbee2mqtt_nano/Sirene/set/max_duration'
[2026-10-12 11:20:11] INFO  : Publishing '{"warning": {"mode": "emergency", "level": "medium", "duration": 10}}' on 'zigbee2mqtt_nano/Sirene/set'
[2026-10-12 11:22:45] INFO  : Publishing '200' on 'zigbee2mqtt_nano/Sirene/set/max_duration'
[2026-10-12 11:22:58] INFO  : Publishing '{"warning": {"mode": "emergency", "level": "medium", "duration": 10}}' on 'zigbee2mqtt_nano/Sirene/set'

De ce que je vois, Durée alarme et Volume alarme ne sont pas publié comme c’est le cas pour max_duration

Effectivement, ca explique pourquoi ca joue toujours 10s
Je peux voir le détail de la commande « emergency »?

Name Sirenemergency

Configuration

"component_type":"siren","command_template":"{\"warning\": {\"mode\": \" tone | default('emergency') \", \"level\": \"{% if volume_level is defined %}{% if volume_level | float <= 0.25 %}low{% elif volume_level | float <= 0.5 %}medium{% elif volume_level | float <= 0.75 %}high{% else %}very_high{% endif %}{% else %}medium{% endif %}\", \"duration\":  duration | default(10) }}","payload":"ON","command_topic":"zigbee2mqtt_nano\/Sirene\/set","minValue":"","maxValue":""}

template

{"dashboard":"core::default","mobile":"core::default"}

J’ai mis en ligne un nouvelle beta qui devrait résoudre le problème

La commande Durée alarme fonctionne. On a bien atteint 30 secondes.
Pas de changement de volume

10% de volume & 30sec

[2026-10-12 12:13:34] INFO  : Publishing '{"warning": {"mode": "emergency", "level": "medium", "duration": 30}}' on 'zigbee2mqtt_nano/Sirene/set'

100% de volume & 30sec

[2026-10-12 12:17:19] INFO  : Publishing '{"warning": {"mode": "emergency", "level": "medium", "duration": 30}}' on 'zigbee2mqtt_nano/Sirene/set'
[2026-10-12 12:17:34] INFO  : Publishing '{"warning": {"mode": "stop"}}' on 'zigbee2mqtt_nano/Sirene/set'

ok j’ai besoin du log DEBUG dans ce cas, je n’ai pas le matos pour reproduire comme il faut donc je suis dans le noir.

lors de l’action:

  • dans le log du plugin il devrait y avoir une ligne debug du genre : "Publish {$payload} on {$topic}"
  • dans le log du démon il y aura en debug: "Generating payload %s with context: %s" avant la ligne INFO "Publishing '%s' on '%s'"