Inverser l'état d'un binaire

Mon problème

J’ai des capteurs d’ouverture filaires sur mes portes et fenêtres. ils sont en NO et raccordés sur un IPX800. Le souci est que la porte fermée est On, soit l’inverse de ce qu’attends HA.
Voici un exemple de ma configuration (dans configuration.yaml) :

template:
  - binary_sensor: 
    - name: ouverture fenetre ch amis
      state: "{{states.sensor.ipx_cellier_entrees_num.attributes.IN1}}"
      device_class: window

Comment faire pour avoir l’état inverse simplement ?

Ma configuration


[center] |Version|core-2023.8.0|
| — | — |
|Type d’installation|Home Assistant OS|
|Développement|false|
|Supervisor|true|
|Docker|true|
|Utilisateur|root|
|Environnement virtuel|false|
|Version de Python|3.11.4|
|Famille du système d’exploitation|Linux|
|Version du système d’exploitation|6.1.34|
|Architecture du processeur|x86_64|
|Fuseau horaire|Europe/Paris|
|Répertoire de configuration|/config|

Home Assistant Community Store

GÉRER

GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.32.1
Stage running
Available Repositories 1336
Downloaded Repositories 47

Home Assistant Cloud

GÉRER

Connecté false
Accéder au serveur de certificats ok
Accéder au serveur d’authentification ok
Accéder à Home Assistant Cloud ok

Home Assistant Supervisor

Système d’exploitation hôte Home Assistant OS 10.3
Mise à jour stable
Version du Supervisor supervisor-2023.07.1
Version de l’agent 1.5.1
Version de Docker 23.0.6
Taille total du disque 30.8 GB
Taille du disque utilisé 12.0 GB
Sain true
Prise en charge true
Tableau de bord ova
API du Supervisor ok
Version API ok
Modules complémentaires installés Terminal & SSH (9.7.1), Mosquitto broker (6.2.1), Zigbee2MQTT (1.32.2-1), Let’s Encrypt (4.12.9), ESPHome (2023.7.1), Studio Code Server (5.10.0), Samba Backup (5.2.0), Samba share (10.0.2), Advanced SSH & Web Terminal (15.0.6), Z-Wave JS (0.1.85)

Husqvarna Automower

Joindre le serveur de jetons Husqvarna. ok

Dashboards

GÉRER

Tableaux de bord 4
Ressources 27
Vues 15
Mode storage

Recorder

Heure de démarrage de l’exécution la plus ancienne 30 juillet 2023 à 18:22
Heure de démarrage de l’exécution actuelle 4 août 2023 à 21:47
Taille estimée de la base de données (en Mio) 1019.77 MiB
Moteur de la base de données sqlite
Version de la base de données 3.41.2

Métriques du Core

Utilisation du processeur

15.4 %

Utilisation de la mémoire

15.1 %

Métriques du Supervisor

Utilisation du processeur

0.1 %

Utilisation de la mémoire

3.3 %[/center]


Essaie avec ça.

    binary_sensor:
      - platform: template
        sensors:
          toncapteur_contact_inverse:
            value_template: '{{ is_state("binary_sensor.toncapteur_contact", "off") }}'

Merci @telenaze, ça fonctionne.
Ceci dit, je me demandais si ce n’était pas possible d’avoir l’inversion directement dans la déclaration de mon binary sensor ?
J’ai essayé avec not et avec ! mais sans succès.

Je ne peux pas te dire, j’avais noté celui là au cas ou j’en aurait eu besoin.

Bonjour,

tu parle de ça ?

template:
  - binary_sensor:
      - name: ouverture fenetre ch amis
        state: >
          {% if is_state('states.sensor.ipx_cellier_entrees_num', 'off') %}
            on
          {% else %}
            off
          {% endif %}
        device_class: window

Merci pour ta réponse @WarC0zes.
Le binary sensor reste toujours à off.
A priori, soit cela ne fonctionne pas avec les attributs soit c’est parce que la valeur de l’attribut est 0.

  - binary_sensor: 
    - name: ouverture fenetre test24
      state: "{{states.sensor.ipx_cellier_entrees_num.attributes.IN24}}"
      device_class: window

  - binary_sensor:
    - name: ouverture fenetre test24 inverse
      state: >
        {% if is_state('states.sensor.ipx_cellier_entrees_num.attributes.IN24', 'off') %}
          on
        {% else %}
          off
        {% endif %}
      device_class: window

C’est quoi le format du test pour comparer avec 0 ou 1 ?

Hello,

Dans ton sensor tu fais un test de la valeur off alors que ton équipement renvoit 0 ou 1.
Il suffit donc de remplacer la valeur « off » dans ton state par 0 (ou 1 selon ton besoin)

state: >
        {% if is_state('states.sensor.ipx_cellier_entrees_num.attributes.IN24', '0') %}
          

@+

je sais pas a quoi correspond 0 et 1 , 0 = on 1 = off . Adapte le code, et teste de c’est facon:

 - binary_sensor:
    - name: ouverture fenetre test24 inverse
      state: >
        {% if is_state_attr('sensor.ipx_cellier_entrees_num', 'IN24', 1) %}
          on
        {% else %}
          off
        {% endif %}
      device_class: window

C’est parfait ! Ca marche ! Merci bcp.
C’est exactement ce que je cherchais.

1 « J'aime »