Mis en place pour ma fille, je vous propose d’allumer une lampe avec un détecteur de mouvement / luminosité.

Pour piloter mon ampoule classique j’ai installé des interrupteurs Aqara sans neutre, et voici le détecteur de mouvement

Objectifs :
– Automatique :
Entre 17h00 et 20h15 si la luminosité est inférieur à 30lux et si un mouvement est détecté, interrupteur allume la lumière.
Au bout de 1 minute sans détection de mouvement l’interrupteur éteint la lampe

-Manuelle :
Si j’allume la lampe manuellement (soit physiquement en appuyant sur l’interrupteur, soit depuis Home Assistant) la lampe restera allumée jusqu’à une nouvelle action manuelle

Pour différencier l’allumage automatique ou manuel je vais utiliser un add-on qui permet de créer des variables : Hass-variables
Je ne vais pas détailler l’installation de l’add-on qui est relativement simple et bien expliqué sur GhitHub

Pour la partie manuelle il n’y a rien à faire, on va donc entrer dans le vif du sujet avec la partie automatique 😀

On commence par créer notre variable dans configuration.yaml , elle sera utilisée pour différencier l’allumage automatique du manuel et donc de déclancher l’extinction automatique.

variable:
  allumage_auto_thomas:
    value: 0

La variable s’appelle allumage_auto_thomas et sa valeur est à 0, le but est de la faire passer à 1 lorsque la lampe s’allumera automatiquement

Maintenant nous allons créer 2 automations, dans automation.yaml, bien sur

1er Automation : Allumer la lumière via le détecteur

- id: 'allumer_chambre_thomas'
  alias: '[Lumiere] Allumer Chambre Thomas'
  description: ''
  trigger:
  - entity_id: binary_sensor.mouvement_thomas
    domain: binary_sensor
    platform: device
    type: motion
  condition:
  - condition: and
    conditions:
    - below: 30
      condition: device
      domain: sensor
      entity_id: sensor.luminosite_thomas
      type: is_illuminance
    - after: '17:00:00'
      before: '20:15:00'
      condition: time
  action:
  - entity_id: light.lumi_lumi_thomas
    domain: light
    type: turn_on
  - data:
      value: 1
      variable: allumage_auto_thomas
    service: variable.set_variable

Explication :
Le trigger (le déclencheur) est le capteur de mouvement qui se nomme binary_sensor.mouvement_thomas

Nous avons ensuite 2 conditions cumulatives (AND) il faut que les 2 conditions soient justes pour réaliser l’action.

- condition: and
    conditions:
    - below: 30
      condition: device
      domain: sensor
      entity_id: sensor.luminosite_thomas
      type: is_illuminance
    - after: '17:00:00'
      before: '20:15:00'
      condition: time

première condition : la luminosité inférieur à 30lux
seconde condition : il doit être entre 17h00 et 20h15, je ne voudrais pas que la lumière s’allume lorsque ma fille se retourne dans son lit la nuit 😉

On passe à l’action

action:
  - entity_id: light.lumi_lumi_thomas
    domain: light
    type: turn_on
  - data:
      value: 1
      variable: allumage_auto_thomas
    service: variable.set_variable

Donc ici nous avons 2 actions :
– On allume la lumière via l’interrupteur qui se nomme light.lumi_lumi_thomas en utilisant la ligne type: turn_on
– On passe la variable allumage_auto_thomas créée précédemment à 1 via service: variable.set_variable

La première automation est terminée, fais un test ! (pense à modifier l’heure et la luminosité pour que ça fonctionne tout de suite 😉 )

2de Automation : éteindre la lumière

Toujours dans aumtomation.yaml

- id: 'eteindre_chambre_tomas'
  alias: '[Lumiere] Eteindre Chambre Thomas'
  description: ''
  trigger:
  - entity_id: binary_sensor.mouvement_thomas
    domain: binary_sensor
    for:
      hours: 0
      minutes: 1
      seconds: 0
    platform: device
    type: no_motion
  condition:
  - condition: state
    entity_id: variable.allumage_auto_thomas
    state: '1'
  action:
  - entity_id: light.lumi_lumi_thomas
    domain: light
    type: turn_off
  - service: variable.set_variable
    data:
      variable: allumage_auto_thomas
      value: 0

Explications :
Le trigger est toujours le détecteur de mouvement qui se nomme binary_sensor.mouvement_thomas, l’action se déclenchera si il n’y a pas de mouvement : type: no_motion pendant 1 minute

La condition est que notre variable allumage_auto_thomas doit être à 1

condition:
  - condition: state
    entity_id: variable.allumage_auto_thomas
    state: '1'

L’action est déteindre la lumière

  action:
  - entity_id: light.lumi_lumi_thomas
    domain: light
    type: turn_off

Et de remettre notre variable à 0

  - service: variable.set_variable
    data:
      variable: allumage_auto_thomas
      value: 0

Voila, rien de plus, tout devrait être opérationnel, n’oubliez pas de recharger les automations ou de redémarrer HA 🙂

N’hésitez pas à laisser un commentaire !