Bonjour,
Mon problème
Je souhaite lorsque je rentre dans ma zone geolocalisée via mon portable, déclencher une action de type script à la seule condition que j’ai été absent depuis 1h.
J’ai créé une automatisation avec un déclencheur smparthone qui dit que lorsque le portable rentre dans la zone il exécute l’action.
Mon problème c’est que la condition ne se réalise jamais car le changement d’état présent/absent dépend du même déclencheur smartphone.
En effet, au déclenchement de l’automatisation, l’état « personn.johndoe » passe à home et la condition si « personn.johndoe est absent depuis 1h » est toujours fausse, puisque le changement d’état s’effectue avant la vérification de la condition.
Vous auriez des idées sur comment contourner ce problème ?
Ma configuration
System Information
version |
core-2025.2.3 |
installation_type |
Home Assistant OS |
dev |
false |
hassio |
true |
docker |
true |
user |
root |
virtualenv |
false |
python_version |
3.13.1 |
os_name |
Linux |
os_version |
6.6.73-haos |
arch |
x86_64 |
timezone |
America/Guadeloupe |
config_dir |
/config |
Home Assistant Community Store
GitHub API |
ok |
GitHub Content |
ok |
GitHub Web |
ok |
HACS Data |
ok |
GitHub API Calls Remaining |
5000 |
Installed Version |
2.0.5 |
Stage |
running |
Available Repositories |
1596 |
Downloaded Repositories |
2 |
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 14.2 |
update_channel |
stable |
supervisor_version |
supervisor-2025.02.1 |
agent_version |
1.6.0 |
docker_version |
27.2.0 |
disk_total |
30.8 GB |
disk_used |
5.5 GB |
healthy |
true |
supported |
true |
host_connectivity |
true |
supervisor_connectivity |
true |
ntp_synchronized |
true |
virtualization |
kvm |
board |
ova |
supervisor_api |
ok |
version_api |
ok |
installed_addons |
Terminal & SSH (9.16.0), Mosquitto broker (6.5.0), Zigbee2MQTT (2.1.1-1), Z-Wave JS UI (3.20.0), File editor (5.8.0) |
Dashboards
dashboards |
3 |
resources |
1 |
views |
1 |
mode |
storage |
Network Configuration
adapters |
lo (disabled), enp0s18 (enabled, default, auto), hassio (disabled), docker0 (disabled), veth26a1a2e (disabled), veth418c6bb (disabled), vethecb9125 (disabled), veth2bcb09d (disabled), veth71dffc2 (disabled), vethb622393 (disabled), veth44194b6 (disabled), vethd8478a8 (disabled), veth7ac7db5 (disabled) |
ipv4_addresses |
lo (127.0.0.1/8), enp0s18 (192.168.1.18/24), hassio (172.30.32.1/23), docker0 (172.30.232.1/23), veth26a1a2e (), veth418c6bb (), vethecb9125 (), veth2bcb09d (), veth71dffc2 (), vethb622393 (), veth44194b6 (), vethd8478a8 (), veth7ac7db5 () |
ipv6_addresses |
lo (::1/128), enp0s18 (2a01:cb20:418c:5f00:99f1:5e83:bd8c:76a2/64, fe80::deff:7b62:9d9f:99dd/64), hassio (fe80::42:adff:fe3c:7110/64), docker0 (fe80::42:58ff:fe28:70b7/64), veth26a1a2e (fe80::1c67:64ff:fe14:ef21/64), veth418c6bb (fe80::fc4b:22ff:fe13:f3ad/64), vethecb9125 (fe80::8c39:5fff:fe08:2e40/64), veth2bcb09d (fe80::24c9:44ff:fe82:c507/64), veth71dffc2 (fe80::28d0:c2ff:fe3a:7ddb/64), vethb622393 (fe80::b43c:69ff:fe82:e2ca/64), veth44194b6 (fe80::1038:76ff:fe32:dfcb/64), vethd8478a8 (fe80::5c85:7cff:feb7:e413/64), veth7ac7db5 (fe80::f069:10ff:fecc:336f/64) |
announce_addresses |
192.168.1.18, 2a01:cb20:418c:5f00:99f1:5e83:bd8c:76a2, fe80::deff:7b62:9d9f:99dd |
Recorder
oldest_recorder_run |
2 février 2025 à 16:45 |
current_recorder_run |
13 février 2025 à 21:26 |
estimated_db_size |
28.28 MiB |
database_engine |
sqlite |
database_version |
3.47.1 |
Bonjour,
pour résoudre ton problème il faut créer une nouvelle automatisation qui se lance dès que tu pars de chez toi (passage de home à not home) et lancer un timer ou un délai d’une heure puis aller mettre un input number (que tu auras créé avant) à 1.
à ton retour tu lanceras ta propre automatisation (not home vers home) avec en condition l’input_number soit à 1 au lieu « personn.johndoe est absent depuis 1h » tu lances tes actions et surtout en dernière action tu n’oublies pas de remettre l’input number à 0.
on fabrique, en fait, une mémoire temporaire.
n’hésites pas à publier tes automatisations pour y jeter un coup d’oeil et t’aider si nécessaire.
Salut,
ça fonctionne mais c’est lourd comparé à ce qui est déjà prévu directement !
trigger: state
entity_id:
- person.xxxxxxxxx
to: not_home
for:
hours: 1
minutes: 0
seconds: 0
Bonjour, si j’ai bien compris cela remplace ceci
merci de tes lumières.
ça remplace tout …
Un trigger unique, qui n’est déclenché qu’après une heure
Si j’ai bien compris la demande initiale c’est au retour qu’il veut déclencher l’action que s’il est parti plus d’une heure. c’est pour cela que je proposais une mémoire
OK, donc plus précisément :
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- person.xxxxxx
to: not_home
for:
hours: 1
minutes: 0
seconds: 0
conditions: []
actions:
- wait_for_trigger:
- trigger: zone
entity_id: person.xxxxxx
zone: zone.home
event: enter
timeout:
hours: 24
minutes: 0
seconds: 0
milliseconds: 0
continue_on_timeout: false
Le trigger ne se déclenche que quand on est parti depuis plus d’une heure.
Et la suite des actions (à remplir) ne se déroulent que si on revient (optionnellement en moins de 24H) grace à continue_on_timeout: false
1 « J'aime »
Merci @Pulpy-Luke ça a le mérite d’etre, on ne peut plus clair et simple, ici on apprend tous les jours. 
1 « J'aime »
Tu as raison de poser la question, c’est plus explicite au final
Bonjour,
Merci de m’apporter vos aides.
Compte tenu que je suis débutant (3 mois d’HA), ce code (yaml je suppose) je dois le mettre où dans HA ? Je demande pour être sûr, mais vous allez probablement me dire dans le fichier automations.yaml ?
Oui mais pas en mettant ça directement dans le fichier, tu risque de tout casser.
Tu crées une nouvelle automisation. Tu la laisses vide
Tu bascules en mode yaml (en haut à droite) et tu remplace tout pas ce bout d’exemple.
Et tu rebascules en mode UI
Et pour la suite tu fais comme d’habitude.
Penses à corriger les entités person et zone
Eh bien je dois dire que ce code fonctionne super bien.
C’est tout ce que je voulais. Et au passage j’ai appris comment insérer un code yaml dans l’interface UI.
Bon il reste me à comprendre sur HA, les concepts de variable temporaire, de template, apprendre la syntaxe de jinja2, les évènements, etc. Dans 6 mois, je devrais me sentir plus à l’aise.
Merci à tous pour vos lumières.
Bon je vais voir si je peux aider quelqu’un à mon tour le forum.
Bye
1 « J'aime »