Bonjour et bienvenue sur Gladys !
Tes deux problèmes ont une explication. Je les prends dans l’ordre.
1. Extinction brutale
L’action « Eteindre les lumières » de Gladys envoie simplement {"state": "OFF"} sur zigbee2mqtt/<ton ampoule>/set. C’est Zigbee2MQTT qui applique la transition, ou pas. En principe, quand l’option transition est réglée sur l’appareil, Z2M transforme ce OFF en une baisse progressive jusqu’à 0, puis éteint.
Pour savoir de quel côté ça coince, éteins l’ampoule directement depuis l’interface de Z2M. Si c’est aussi instantané, Gladys n’y est pour rien : ça se joue entre Z2M et l’ampoule. Vérifie alors que la valeur de transition (en secondes) a bien été enregistrée.
Dans tous les cas, le plus fiable est de demander la transition directement dans le message : elle passe alors avant l’option de l’appareil. Dans ta scène, remplace « Eteindre les lumières » par l’action « Envoyer un message Zigbee2mqtt » :
- Topic :
zigbee2mqtt/NOM_DE_TON_AMPOULE/set (le nom tel qu’il apparaît dans Z2M, préfixe zigbee2mqtt/ compris)
- Message :
{"state": "OFF", "transition": 3} (3 secondes de fondu)
Il faut une action par ampoule. Si tes GU10 sont dans un groupe Z2M, un seul message sur zigbee2mqtt/NOM_DU_GROUPE/set suffit, et elles s’éteindront exactement en même temps. La même astuce marche pour la baisse, par exemple {"brightness_percent": 20, "transition": 2}.
2. Le délai qui ne repart pas de zéro
La scène ne reprend pas là où elle s’était arrêtée. Chaque mouvement lance une nouvelle exécution de la scène, en parallèle de celle qui tourne déjà, et Gladys n’annule pas la précédente.
Je suppose que ta scène ressemble à « Mouvement → allumer → Attendre 2 min → baisser → Attendre 30 s → éteindre ». Quand tu bouges pendant la phase baissée, la nouvelle exécution rallume à fond. Mais l’ancienne est toujours dans son « Attendre 30 s », et elle éteint à la fin. De plus, 2 minutes plus tard, la nouvelle exécution va baisser la luminosité, ce qui peut rallumer les lampes en faible : régler une luminosité allume une ampoule Z2M.
La solution est de ne plus compter le temps avec « Attendre » et de laisser le déclencheur le faire. Le déclencheur « Changement d’état de l’appareil » a une option prévue pour ça : « Exécuter la scène après que la condition ait été valide pendant : ». Le minuteur est annulé dès que le capteur repasse à « Mouvement détecté », et il repart de zéro au prochain « Pas de mouvement ».
Il faut donc découper en 3 petites scènes :
Scène A – Couloir : allumage
- Déclencheur : « Changement d’état de l’appareil » → détecteur du couloir = Mouvement détecté
- Actions : ta logique jour/nuit. Par exemple, une condition « Si… Alors… Sinon… » contenant une « Condition temporelle » : Alors luminosité forte, Sinon luminosité faible.
Scène B – Couloir : baisse
- Déclencheur : détecteur du couloir = Pas de mouvement, en cochant « Exécuter la scène après que la condition ait été valide pendant : 2 minutes »
- Action : baisser la luminosité
Scène C – Couloir : extinction
- Déclencheur : détecteur du couloir = Pas de mouvement pendant 150 secondes (2 min + 30 s, car les deux minuteurs démarrent au même moment)
- Action : le message Zigbee2mqtt
{"state": "OFF", "transition": 3} vu plus haut
Résultat : si tu bouges pendant la phase baissée, la scène A remet la lumière à fond et les minuteurs de B et C sont annulés. Quand tu t’arrêtes, ils repartent de zéro : 2 minutes à fond, puis 30 secondes baissé, puis extinction en fondu.
Deux conseils :
- Dans B et C, coche aussi « Exécuter seulement lorsque le seuil est passé ». Le minuteur ne démarre alors qu’au passage de « Mouvement détecté » à « Pas de mouvement ». Si le capteur renvoie « Pas de mouvement » plus tard, la baisse ne sera pas relancée, et tes lampes ne se rallumeront pas en faible.
- Le minuteur ne démarre que quand le détecteur envoie « Pas de mouvement », et chaque détecteur attend un certain temps avant de l’envoyer. Sur certains modèles, ce temps se règle dans Z2M (option
occupancy_timeout). Le délai réel est donc ce temps-là plus tes 2 minutes : ajuste en conséquence.
La durée en secondes dans le déclencheur et l’action Zigbee2mqtt sont disponibles dans la version actuelle de Gladys (5.1.3) : pense à mettre à jour si besoin.
Tiens-nous au courant !