Automatisation des lampes

Mon problème

Je souhaite faire une scène à choix multiple (l’imbrication de conditionnement était pratique sur feu J), imaginons un capteur de mouvement (Zigbee : Lumi/Aqara RTCGQ11LM), et une lampe (Zigbee : TS0505B), avec les modes :

  • Jour : Luminosité 100%, couleur froide (150), transition 1, délai détection 30 sec
  • Soirée : Luminosité 50%, couleur chaude (500), transition 2, délai détection 30 sec
  • Nuit : Luminosité 1%, couleur rouge, transition 5, délai détection 30 sec

Soucis rencontrés :

  • Qu’il y’a un mouvement ou non, après 30 secondes la lumière s’éteint
  • Une fois éteint, il faut attendre environ 30 secondes avant que cela refonctionne (durée de synchro des capteurs)
  • Lors de chaque passage, la transition s’effectue après (par exemple en mode nuit, quand la lumière s’allume elle flash en mode soirée avant de passer en mode nuit (une seule fois par jour, mais ça réveille la nuit)
  • Il arrive parfois que cela ne s’éteigne pas
  • Devoir avoir 3 automations / lampe (chaque mode), cela fait lourd vu le nombre d’ampoules dans la maison
  • Pas WAF du tout pour l’instant :sweat_smile:

Voici un exemple de l’automation Jour, ainsi que Nuit :

Jour

alias: Jour - Couloir
description: ""
trigger:
  - type: motion
    platform: device
    device_id: 8a3a51b3c0ee88aadf1673f24704b4b8
    entity_id: 1ecc62c4b09d57de144cfa823b34cb0a
    domain: binary_sensor
condition:
  - condition: time
    after: "09:00:00"
    before: sensor.sun_next_setting
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
      - sat
      - sun
action:
  - service: light.turn_on
    data:
      brightness_pct: 100
      color_temp: 153
      transition: 1
    target:
      device_id: e6273845c1dc27451156529a46d69d85
  - wait_for_trigger:
      - platform: state
        entity_id:
          - binary_sensor.mouvement_occupancy
        from: "on"
        to: "off"
        for:
          hours: 0
          minutes: 1
          seconds: 0
    timeout:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: light.turn_off
    data:
      transition: 1
    target:
      device_id: e6273845c1dc27451156529a46d69d85
mode: single

Nuit

alias: Nuit - Couloir
description: ""
trigger:
  - type: motion
    platform: device
    device_id: 8a3a51b3c0ee88aadf1673f24704b4b8
    entity_id: 1ecc62c4b09d57de144cfa823b34cb0a
    domain: binary_sensor
condition:
  - condition: time
    after: "00:00:00"
    before: "09:00:00"
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
      - sat
      - sun
action:
  - service: light.turn_on
    data:
      brightness_pct: 1
      transition: 5
      rgb_color:
        - 255
        - 0
        - 0
    target:
      device_id: e6273845c1dc27451156529a46d69d85
  - wait_for_trigger:
      - platform: state
        entity_id:
          - binary_sensor.mouvement_occupancy
        from: "on"
        to: "off"
        for:
          hours: 0
          minutes: 1
          seconds: 0
    timeout:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: light.turn_off
    data:
      transition: 5
    target:
      device_id: e6273845c1dc27451156529a46d69d85
mode: single

Ma configuration


[center]

System Information

version core-2023.11.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.59
arch x86_64
timezone Europe/Paris
config_dir /config
[/center]

Merci d’avance !

Bonjour,
Personellement j’ai une lumière qui s’allume par la detection d’un capteur de mouvement dans la salle de bain. Tout deux connecter en zigbee.
Pour gerer le % de luminausitée et la temperature de couleur j’utilise l’integration disponible sur HACS Adaptive Ligntning. Avec celle ci tu peux creer plusieurs configutations différentes pour agir sur des groupes de lumières et celle ci reglera leurs luminausitée et T° de couleur au cours de la journée

Concernant l’automation je me sert depuis plus d’un an du blueprint trouver sur le github de apollo1220 qui se trouve ici qui possède pas mal de paramètres optionnel mais qui peuvent être utils comme « Turn-off action » ou « Turn-off entity » qui permettent de ne pas éteindre la lumière si une condition est vrai

Une fois glisser dans le dossier /config/blueprints/automation/ du homeassistant, il est disponible dans les Blueprint dans Paramètres - Automations et scènes - Blueprints

Bien configurer et ma lumière s’allume pour 1min30 ou plus selon mes besoins en salle de bain et se règle sur la bonne T° de couleur en fonction de l’haure de la journée (pratique pour la nuit)

J’espère t’avoir bien orienté et pouvoir t’aider ! :wink:

1 « J'aime »

Incroyable, merci énormément je vais boire tout ça et tester les différentes configurations, pile ce que je cherchais j’ai l’impression.

Je pense que le soucis dans ton automation c’est la partie « wait_for_trigger »

Si je comprend bien;

from: "on"
to: "off"
for:
minutes: 1

tu lui dis d’attendre que le detecteur de mouvement passe de « détecté » à « non détécter » pendant 1 minute (donc qu’il n’y ait aucun mouvement pendant 1 minute d’affilé) MAIS

timeout:
seconds: 30

que au bout de 30 secondes si cet évènement n’est pas arrivé alors ton automation passe à l’action suivante.

Et comme tu bouge dans la pièce dans laquelle tu es OU que le detecteur ne passe pas de On à OFF PENDANT 1 minutes au bout de 30 secondes alors l’évènement n’arrive pas et l’automation passe à l’action suivante:

service: light.turn_off

Cela explique selon moi pourquoi tes lumières s’éteignent toujours au bout de 30 secondes

J’ai le meme detecteur de présence que toi, le Zigbee : Lumi/Aqara RTCGQ11LM et comme tu peux le voir sur sa page, il possède un TimeOut de 60 secondes.
60 secondes pendant lesquels le sensor reste sur ON avant de pouvoir a nouveau etre re-déclancher.
Donc si tu dis à ton automation d’attendre 30 secondes pour éteindre les lumières, il est normal de devoir attendre 30 secondes supplémentaire pour que le detecteur de mouvement puisse a nouveau être déclanché et passé en On ^^

Pour le coup je penserais à une erreur du coté Zigbee.
Tu devrais vérifier les logs de ton automation (trois petits points a droite de celle ci, puis Historique des executions) pour voir si HA a bien déclancher l’évènement light.turn_off
Si c’est le cas (et je le pense) alors tu as peut etre un soucis de réseau Zigbee tu devrais verifier les log et voir qu’il n’y a pas d’erreurs

Voila beaucoup d’infos, je te laisse voir ce que tu peux faire et nous tenir au courant mais je pense que tu t’embéteras moins avec l’integration et le blueprint que je t’ai donnée dans mon post précédent :wink: Ils ont tout deux un interface graphique qui est plus agréable que du YAML ^^

1 « J'aime »

Superbe explications, je pensais que la plage de détection était de 30 sec à l’époque ou j’avais regardé, mais effectivement ceci expliquerait cela.

Donc j’ai inversé la bonne solution, il me faut bien une plage de détection à 60 sec (30 sec inutile), mais par exemple il me faudrait un timeout à 120, ce qui fait que si à 60 toujours mouvement, on laisse allumé, et après 2 minutes cela coupe.

Ou alors je peux faire pareil mais avec 5 minutes de timeout, ce qui fait qu’il s’éteindra à 1/2/3/4 minutes selon si mouvement remonté, et sinon dans tous les cas après 5 minutes ?

Le YAML me dérange pas (on le retrouve sous Docker), c’est la logique HA qu’il faut bien que j’implémente et j’oublies les acquis des concurrents !

Merci encore.

Je me perd un peut il faudrait que je l’experimente en vrai ^^
Mais quoi qu’il en soit si tu mets un timeout et que tu restes dans la pièce, dans tout les cas la lumière s’éteindra au bout du timeout. Vu que ton detecteur sera toujours en ON il ne passera jamais a OFF pendant la durée que tu puisse lui indiqué en for. Du coup le timeout finira par s’écouler et l’automation considerant que l’evenement n’a pas pu arrivé elle passera à l’étape suivante: light.turn_off

Si ton intention est que la lumière s’éteigne lorsque tu quittes la pièce, je pense que tu devrais enlever le timeout.
En laissant uniquement le wait_for_trigger avec from on to off for Xminutes Ton automation attendra que ton capteur ne remonte plus de detection de présence pendant un certain temps avant d’éteindre la lumière

Mais oui si tu veux absolument que la lumière s’éteigne au bout de 5min dans tous les cas (que tu sois dans la pièce ou non) alors le timeout de 5min permettre de passer à light.turn_off au bout de 5 min OU lorsque le detecteur n’aura pas remonter de mouvement pendant Xminutes/secondes

Salut

Il y a plein de choses intéressantes ici : Home Assistant & Entity Controler

2 « J'aime »

Intéressant merci !

Je vais creuser tout ça (surtout AutoMoLi de ce qu’il dit), car vraiment j’ai l’impression d’avoir tout essayé, et soit la lampe ne s’allume pas quand je passe, soit elle s’eteint alors qu’il y’a mouvement, soit elle s’allume pas, désespérant.

Et si ça va pas je vais aller tenter NodeRed voir si ça me comble.