Allumage lumière extérieur sur détection géolocalisation

Mon problème

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 :sweat_smile:

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)
Lovelace
dashboards 1
resources 2
views 3
mode storage
___

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 : sunrise comme 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'

J’avais fait la même erreur au début :nerd_face:

Bonjour,

j’ai pas fait le test mais perso j’aurais juste mit:

condition: sun
after: sunset

j’aurais aussi mit un petit décalage car quelques minutes avant le couché du soleil il fait fort sombre :wink:

J’avais regardé la doc pourtant:

La seul différence c’est l’ordre quoi…
Je vais tester comme ça on va voir.

Yup, sinon below_horizon fonctionne bien.

C’est vrai que à l’envers c’est plus cohérent :

à 22h c’est (en général) après le couché du soleil
alors qu’a 01h c’est avant le levé du soleil

dans l’ordre que tu avais mit à 22h il vérifie si c’est avant le lever du soleil et c’est faux donc pas d’action

tiens nous au courant :wink:

J’ai testé avec ceci:

id: '164553****'
  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.*******
    zone: zone.home
    event: enter
  condition:
  - condition: sun
    after: sunset
    before: sunrise
  action:
  - type: turn_on
    device_id: dd************
    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

Et voila le résultat:
test HA

Je suis bien détecté absent, puis de retour. Le soleil est bien couché mais pas d’activation de l’automation…

Voici le log de l’automation:

A priori c’est bien la condition qui bug :slightly_frowning_face:

Essaye plutot c’est condition, ca marche:

condition:
  - condition: state
    entity_id: sun.sun
    state: 'below_horizon'

comme tu fais, ca jamais fonctionner pour moi.

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.

comme ca peu être.

condition:
  - condition: sun
    after: sunset
  - condition: or
    conditions:
      - condition: sun
        before: sunrise

plutôt un and du coup non?

peu être, mais @kalu parle de or. Essaye les deux or et and

Effectivement c’est plus parlant avec ce graphique:

J’ai plus qu’a tester :smile:

1 « J'aime »

J’ai pris le temps de tester et maintenant c’est bien fonctionnelle :smiley:
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
2 « J'aime »

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€. :wink: