Mon problème
Bonjour,
J’ai programmé la fermeture de mes volets au couché du soleil.
Toutefois je souhaite interdire la fermeture du volet si la fenêtre ou la porte où est située le volet est ouverte.
J’ai écrit ce petit script en python :
# ferme le volet à condition que la fenêtre ou la porte soit fermée
entity_id = data.get("entity_id")
etat_fenetre = data.get("etat_fenetre")
if entity_id is not None and etat_fenetre=="off":
service_data = {"entity_id": entity_id}
hass.services.call("cover", "close_cover", service_data, False)
Et appelé ce script dans mon automatisation :
service: python_script.fermeture_si_fenetre_fermee
target:
entity_id: cover.volet_chambre_2_st_vr_08_01
data:
etat_fenetre: states(binary_sensor.lumi_lumi_sensor_magnet_aq2_827a2b03_on_off)
Mais je ne parviens pas à passer l’information d’état (on / off) de mon capteur Aqara de Xiaomi
Lorsque je mets ‹ on › ou ‹ off › à la place de « states(binary_sensor.lumi_lumi_sensor_magnet_aq2_827a2b03_on_off) » le script fonctionne comme il faut.
Ma configuration
System Health
version |
core-2021.4.6 |
installation_type |
Home Assistant OS |
dev |
false |
hassio |
true |
docker |
true |
virtualenv |
false |
python_version |
3.8.7 |
os_name |
Linux |
os_version |
5.4.109 |
arch |
x86_64 |
timezone |
Europe/Paris |
Home Assistant Community Store
GitHub API |
ok |
Github API Calls Remaining |
4968 |
Installed Version |
1.11.3 |
Stage |
running |
Available Repositories |
785 |
Installed Repositories |
5 |
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 5.13 |
update_channel |
stable |
supervisor_version |
supervisor-2021.04.0 |
docker_version |
19.03.15 |
disk_total |
30.8 GB |
disk_used |
4.2 GB |
healthy |
true |
supported |
true |
board |
ova |
supervisor_api |
ok |
version_api |
ok |
installed_addons |
File editor (5.2.0), Samba share (9.3.1), Let’s Encrypt (4.11.0) |
Lovelace
dashboards |
1 |
resources |
2 |
views |
9 |
mode |
storage |
il ne manquerai pas quelques info pour t’aider ?
J’ai modifié mon message.
J’avais cliqué un peu trop vite 
Il te manque les quotes :
states('binary_sensor.lumi_lumi_sensor_magnet_aq2_827a2b03_on_off')
Pourquoi passer par un script python ? Plutôt que passer directement par les actions dans l’automatisation et mettre des conditions…?
Merci pour la réponse.
Je me disais bien que je n’étais pas très mais je ne voyais pas où était le problème.
Parce que je souhaite utiliser un déclencheur (couché du soleil) et un seul automatisme pour gérer la fermeture de l’ensemble des volets.
Si j’ai bien compris, si une condition n’est pas vrai alors cela mets fin à l’automatisation et donc tous les volets qui suivent ne se ferme pas.
C’est une question d’imbrication…
Avec la clé choose
tu peux avoir ce que tu veux sans script python.
Si ça t’intéresse, postes ton automatisation…
Et si ça t’intéresse pas, postes ton automatisation… 

Voilà ce que cela donne pour un volet.
Mais je ne vois pas comment faire pour plusieurs
alias: Fermeture Volets Couché Soleil
description: ''
mode: single
trigger:
- platform: sun
event: sunset
condition:
- condition: state
entity_id: binary_sensor.lumi_lumi_sensor_magnet_aq2_827a2b03_on_off
state: 'off'
action:
- service: cover.close_cover
target:
entity_id:
- cover.volet_chambre_2_st_vr_08_01
Je ferais quelque chose comme ceci :
- Au coucher de soleil :
1.1 Si la porte d’entrée n’est pas ouverte → on ferme le volet (sur la porte d’entrée ?!
)
1.2 Si la porte du salon n’est pas ouverte → on ferme le volet du salon
1.3 Si la porte de la cuisine n’est pas ouverte → on ferme la porte de la cuisine
Ce qui donne avec des choose
(pour ne pas arrêter l’exécution comme tu l’a bien compris) :
alias: Fermeture Volets Couché Soleil
description: >
Fermeture des volets au coucher du soleil.
Les volets restent ouverts si l'ouverture correspondante est ouverte.
trigger:
- platform: sun
event: sunset
condition: []
action:
- choose:
- conditions:
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.ouverture_entree
state: 'on'
sequence:
- service: cover.close_cover
target:
entity_id: cover.volet_entree
default: []
- choose:
- conditions:
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.ouverture_salon
state: 'on'
sequence:
- service: cover.close_cover
target:
entity_id: cover.volet_salon
default: []
- choose:
- conditions:
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.ouverture_cuisine
state: 'on'
sequence:
- service: cover.close_cover
target:
entity_id: cover.volet_cuisine
default: []
mode: single
Les fermetures automatiques est le meilleur moyen de se retrouver enfermé dehors… 
PS: rien ne t’empêche de raisonner sur l’ouverture fermée (off
), ce qui supprimera les conditions NOT

Un grand merci.
Je vais tester tout cela demain.