Bonjour,
je voudrais un peu d’aide, pour ma porte de garage j’ai mis 2 capteurs d’ouverture de portes aqara.
Un en bas (binary_sensor.detection_porte_garage_fermee) qui quand la porte de garage est fermée est sur off et un autre (binary_sensor.detection_porte_garage_ouverte) en haut qui quand la porte et ouverte est sur off.
je voudrais donc que si binary_sensor.detection_porte_garage_fermee est à off et binary_sensor.detection_porte_garage_ouverte est à on mon nouveau binary sensor soit sur off et si non à ON.
Voici mon template, il reste tout le temps à off :
- platform: template
sensors:
garage_etat:
friendly_name: "Etat Porte de Garage"
device_class: garage_door
value_template: >-
{% if states.binary_sensor.detection_porte_garage_fermee == 'off' and states.binary_sensor.detection_porte_garage_ouverte == 'on' %}
off
{% else %}
on
{% endif %}
Merci pour votre aide
Bonsoir,
La prochaine fois que tu met du code, utilise les balises ‹ Texte préformaté › puis ‹ citation ›, cela évitera à l’éditeur de modifier ton code initial (les ''
qui se transforment en <>
) et permettra de conserver l’indentation
Pour en revenir à ton problème, il te manque la propriété .state
à la fin de chaque capteur :
states.binary_sensor.detection_porte_garage_fermee
devient
states.binary_sensor.detection_porte_garage_fermee.state
donc pour ton cas, ce qui fonctionnera est (édité):
- platform: template
sensors:
garage_etat:
friendly_name: 'Etat Porte de Garage'
device_class: garage_door
value_template: >-
{% if states.binary_sensor.detection_porte_garage_fermee.state == 'off' and states.binary_sensor.detection_porte_garage_ouverte.state == 'on' %}
false
{% else %}
true
{% endif %}
Pour aller plus loin :
le code ci-dessous te permettra de récupérer dans un sensor
et non dans un binary_sensor
l’état de la batterie de tes capteurs :
- platform: template
sensors:
detection_porte_garage_fermee_batterie:
unit_of_measurement: '%'
entity_id:
- binary_sensor.detection_porte_garage_fermee
value_template: "{{states.binary_sensor.detection_porte_garage_fermee.attributes.battery_level }}"
Pour info :
Dans la partie ‹ Outils de développement › , il y a un onglet ‹ Modèle › qui te permet de tester ton code en direct en tenant compte de l’état de tes capteurs actuels.
Cet onglet est très utile et te fait gagner un temps précieux de ‹ débug › :
N’hésite pas si tu as des questions concernant ma réponse.
1 « J'aime »
J’ai bien mit le texte preformaté mais pas la citation.
Je regarde tout ça demain matin.
Merci beaucoup en tout
Pas de soucis et fait nous un retour
Salut,
effectivement avec ton code ça fonctionne dans la partie développement lorsque j’intégre binary_sensor.garage_etat à Lovelace il reste en permanence à Off
quesque j’ai loupé encore ?
Pour la batterie j’ai une entitée spécifique sur ZHA
En tout cas la partie modèle dans dev est effectivement très pratique, merci
Bizarre, car je l’avais testé dans ‹ Modèle ›.
As tu bien relancé Home assistant pour mettre a jour le capteur ?
Et dans la partie modèle, est que le fonctionnement est correct ?
Pour être sûr de quand se fait la mise a jour de ton capteur tu peux ajouter entity_id' :
- platform: template
sensors:
garage_etat:
friendly_name: 'Etat Porte de Garage'
device_class: garage_door
entity_id: binary_sensor.detection_porte_garage_fermee, binary_sensor.detection_porte_garage_ouverte
value_template: >-
{% if states.binary_sensor.detection_porte_garage_fermee.state == 'off' and states.binary_sensor.detection_porte_garage_ouverte.state == 'on' %}
off
{% else %}
on
{% endif %}
Le fait d’ajouter entity_id
force la mise à jour du capteur lorsque l’état du ou des capteurs renseignés change.
oui dans la partie modèle le fonctionnement est correct.
je viens d’ajouter entity_id et reboot de HA, ça ne change rien il reste sur off, j’y comprends rien
En prenant exemple dans modele j’ai essayé comme ça
{% if is_state("binary_sensor.detection_porte_garage_fermee", "off") and
is_state("binary_sensor.detection_porte_garage_ouverte", "on") -%}
off
{%- else -%}
on
{%- endif %}
même résultat.
Par contre si je vais dans développement → Etats et que je force l’état à On, si mon capteur bouge garage_etat repasse à off
Vu que tu crée un binary_sensor
met plutôt true
et false
plutôt que on
et off
.
Garde is_state
car mieux géré que states.
.
C’est bien ça, true et false !
pourtant dans la doc il me semble qu’il parle de on et off
en tout cas merci beaucoup pour ton aide
Pour la doc, il est dit que l’état ne peut être que on
ou off
mais que la valeur prend on
si la formule renvoie true
.
Je viens de mettre à jour le post 2.
N’hésite pas à le marquer comme solution.