Je possède un Sonoff ZBMini en zigbee pour piloter un interrupteur relié à un éclairage extérieur. Je souhaite qu’il s’allume pour 5mn quand il détecte mon arrivée dans la zone Maison. J’ai testé avec comme trigger moi qui entre dans la zone c’est ok. Par contre je souhaite rajouté que cet éclairage ne s’allume que quand il fait noir logique
Et la cela ne fonctionne plus, le script ne s’active pas lors de mon arrivée dans la zone. Voici mon automatisation en yaml:
- id: '**********'
alias: Lumière extérieur avant Détection présence
description: Détecte lorsque le téléphone entre dans la zone maison
trigger:
- platform: zone
entity_id: person.toto_toto
zone: zone.home
event: enter
condition:
- condition: sun
before: sunrise
after: sunset
action:
- type: turn_on
device_id: ************************************
entity_id: switch.0x00***************
domain: switch
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- type: turn_off
device_id: **************************
entity_id: switch.0x00***************
domain: switch
mode: single
Cela me semnle pourtant correct non?
Ma configuration
System Health
version
core-2022.2.9
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.9.7
os_name
Linux
os_version
5.10.98
arch
aarch64
timezone
Europe/Paris
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
4962
Installed Version
1.23.0
Stage
running
Available Repositories
999
Downloaded Repositories
6
Home Assistant Cloud
logged_in
false
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 7.4
update_channel
stable
supervisor_version
supervisor-2022.01.1
docker_version
20.10.9
disk_total
113.9 GB
disk_used
8.7 GB
healthy
true
supported
true
board
odroid-n2
supervisor_api
ok
version_api
ok
installed_addons
ESPHome (2022.2.5), Zigbee2mqtt (1.23.0-1), Mosquitto broker (6.0.1), Studio Code Server (4.1.0), Joal (2.1.29), Let’s Encrypt (4.12.0), UniFi Network Application (1.1.4)
Non, ce n’est pas correct. Erreur courante pourtant expliquée dans la doc officielle: ici
Traduction:
Si seul « before » est utilisé, la condition sera vraie de minuit jusqu’au lever/coucher du soleil.
Si seul « after » est utilisé, la condition sera vraie du coucher/lever du soleil jusqu’à minuit.
Par conséquent, pour couvrir le temps entre le coucher et le lever du soleil, il faut utiliser after : sunset et before : sunrisecomme deux conditions distinctes et les combiner en utilisant « or ».
Solution équivalente en une seule ligne (c’est ce que j’utilise pour allumer la terrasse qd qq’un de la famille rentre le soir ou de nuit):
condition:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
L’intérêt pour moi de passer par after et before c’était de pouvoir ajouter un décallage éventuellement… Je vais tester par l’état on va bien voir. Merci pour le coup de main.
J’ai pris le temps de tester et maintenant c’est bien fonctionnelle
Pour info voici l’automatisation que j’utilise avec un offset de 20mn avant et après:
id: '1645537720988'
alias: Lumière extérieur avant Détection présence
description: Détecte lorsque le téléphone entre dans la zone maison
trigger:
- platform: zone
entity_id: person.toto
zone: zone.home
event: enter
condition:
condition: or
conditions:
- condition: sun
after: sunset
after_offset: -00:20:00
- condition: sun
before: sunrise
before_offset: +00:20:00
action:
- type: turn_on
device_id: ddad**************
entity_id: switch.0x*****************
domain: switch
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- type: turn_off
device_id: ddad***********
entity_id: switch.0x************
domain: switch
mode: single
Perso, j’ai fabriqué un capteur de lux avec un D1 sous esphome, ça m’a éviter toutes ces galères.
Car celon la météo, ça va jouer également… J’ai eu le problème, d’où la création d’un capteur de lux, ça revient à 15€.