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 !
Laisser un commentaire