Conversion capteur d'ouverture

Ci dessous, le code pour convertir un capteur quelconque vers un capteur d’ouverture de porte.

@pierrot#5652 sur Discord demande :




En gros, un capteur créé par l’intégration Zwave ne remonte pas le bon domaine (plus de détails) :

La méthode est donc la suivante :

Il faut créer un nouveau capteur de type binary_sensor remontant le bon domaine (ici le domaine door ) :

binary_sensor:
  - platform: template
    sensors: 
      test_hacf_conversion:
        friendly_name: "Conversion d'un capteur en ouverture"
        device_class: door
        value_template: >-
          {% if is_state("TYPE.NAME", "VAR_OPEN") %}
            true
          {% elif is_state("TYPE.NAME", "VAR_CLOSE") %}
            false
          {% else %}
            unknown
          {% endif %}
        icon_template: >-
          {% if is_state("TYPE.NAME", "VAR_OPEN") %}
            mdi:window-open-variant
          {% elif is_state("TYPE.NAME", "VAR_CLOSE") %}
            mdi:window-closed-variant
          {% else %}
            mdi:alert-circle-outline
          {% endif %}
  • Il faut remplacer TYPE.NAME par le capteur à convertir (pour @pierrot : sensor.door_sensor_garage_jeromine_access_cxxxx)

  • Remplacer également : VAR_OPEN et VAR_OPEN par les valeurs que renvoit le capteur TYPE.NAME (pour @pierrot : VAR_OPEN par 22 et VAR_CLOSE par 23)

  • device_class: définit le domaine et donc son interprétation par Home Assistant

  • icon_template: définit l’icône en fonction de l’état du capteur

  • friendly_name: définit le nom affiché sur les pages Lovelace

chrome-capture (5)

N’hésitez pas à demander plus de précisions !

:man_teacher:t2:

2 « J'aime »

Quelle efficacité @Clemalex !
Ca fonctionne chez moi du 1er coup, je commence a comprendre l’utilité du « binary template »
Et encore merci de m’avoir créer ce post ! :relaxed:

1 « J'aime »

Oui, c’est très puissant et tu peux même ajouter des attributs…

Il y a pas mal d’utilisation des templates

Et si je veux par exemple ne pas mettre ce bout de code dans le ficher « configuration.yaml », je dois le mettre dans le fichier « customize.yaml » ou « sensor.yaml » ?
Je pose cette question parce que j’aimerai garder mon fichier « configuration.yaml » un minim propre, et aussi parce que je vais rajouter d’autres capteur.

Si tu mets dans le fichier configuration.yaml :

#Capteurs booléens
binary_sensor: !include_dir_merge_list binary_sensors/

Alors, tu peux créer un dossier binary_sensors et y mettre tous tes capteurs binary_sensors :
Fichier: /binary_sensors/test_hacf_conversion.yaml

- platform: template
  sensors: 
    test_hacf_conversion:
      friendly_name: "Conversion d'un capteur en ouverture"
      device_class: door
      value_template: >-
        {% if is_state("input_number.test_hacf_conversion", "22.0") %}
          true
        {% elif is_state("input_number.test_hacf_conversion", "23.0") %}
          false
        {% else %}
          unknown
        {% endif %}
      icon_template: >-
        {% if is_state("input_number.test_hacf_conversion", "22.0") %}
          mdi:window-open-variant
        {% elif is_state("input_number.test_hacf_conversion", "23.0") %}
          mdi:window-closed-variant
        {% else %}
          mdi:alert-circle-outline
        {% endif %}

Cela fait partie de la configuration séparée :

Mais il y a la méthode de packages qui est plus puissantes en terme d’arborescence :

Autant partir sur une configuration à minima en packages et pourquoi pas à la méthode de @frenck qui est utilisé au moins par @oncleben31 (si tu as des questions :wink:)

1 « J'aime »

Pfiou ! Tu m’a perdu là :sweat_smile:
Il faut que je potasse le sujet avant de comprendre …

Pour faire court, toute la configuration de HA peut tenir dans le fichier configuration.yaml.

On utilise une configuration découpée (split) afin de ne pas surcharger ce fichier et rendre le maintient du code plus aisé.

Et il y à 2 écoles : soit avec la méthode chacuns dans son dossier (la première que je cite), soit tout le monde rangé non pas par type mais par fonctions, pièces… (la méthode packages).

Et si tu veux, @oncleben31 partage sa configuration d’une utilisation de packages

Yes, j’ai compris :innocent:
Je suis tomber sur un post de de @oncleben31 et toi.
Je regarde en ce moment même sa configuration et celle de Frenck (GitHub - frenck/home-assistant-config: My Home Assistant configuration, a bit different that others :) Be sure to 🌟 this repository for updates!).
J’essaye de mettre leur méthode en oeuvre.

1 « J'aime »

La configuration en mode packages avance bien mais j’ai pas mal d’erreur dans la verification de la configuration :

Invalid config for [binary_sensor]: expected a dictionary. Got OrderedDict([(‹ default_config ›, {}), (‹ tts ›, [OrderedDict([(‹ platform ›, ‹ google_translate ›), (‹ language ›, ‹ fr ›)])]), (‹ group ›, {}), (‹ automation ›, [OrderedDict([(‹ alias ›, « Création quotidienne d’un SnapShot »), (‹ initial_state ›, ‹ on ›), (‹ trigger ›, [OrderedDict([(‹ platform ›, ‹ time ›), (‹ at ›, ‹ 03:00:00 ›)])]), (‹ condition ›, [OrderedDict([(‹ condition ›, ‹ time ›), (‹ weekday ›, [‹ mon ›, ‹ tue ›, ‹ wed ›, ‹ thu ›, ‹ fri ›, ‹ sat ›, ‹ sun ›])])]), (‹ action ›, [OrderedDict([(‹ service ›, ‹ hassio.snapshot_full ›), ('data_te… (See ?, line ?).

Alors maintenant je me demande si dans le fichier « configuration.yaml » il doit y avoir que la ligne :

homeassistant:
  # Load packages
  packages: !include_dir_named integrations

C’est le contenu du fichier de configuration.yaml de frenck et @oncleben31

Est ce que je dois virer tout le reste ? :grimacing:

Tout doit être présent dans un fichier yaml dans ton dossier integration., oui.

Edit:
Il faut que tout soit présent hors du fichier configuration.yaml sinon ça provoque des plantages (du moins chez moi…)

bon j’avais mal intégré le packages (copier/merder au lieu de copier/coller)…

1 « J'aime »

ahh … Bon là je suis revenus sur un snapshot … C’était trop le bordel …

1 « J'aime »

La transition peut être un peu complexe.

Mais tu peux ajouter le concept de package sans rien changer d’autre à ton fichier de configuration.yaml initial.
Et tu migreras le contenu du fichier petit à petit dans les fichiers packages. Cette migration il faut le faire par petits morceaux pour vérifier à chaque fois que la mise en forme et syntaxe des fichiers packages est correcte.
Donc l’objectif est de changer intégration par intégration et composent par composent en rechargeant HA à chaque fois. Tu verras qu’une fois les premiers fait tu vas prendre confiance, et les morceaux seront de plus en plus gros.

1 « J'aime »

Effectivement, je commence petit à petit :stuck_out_tongue: mais je commence déjà à prendre la confiance :slight_smile: merci en tout cas !!

1 « J'aime »

Salut à tous,

Merci pour ce topic, ca m’a bien aidé.

j’aimerais savoir si il est possible de mettre la valeur ouverte en rouge et fermée en vert?

merci à tous encore pour votre aide

A+

1 « J'aime »

Bienvenue @Captain, n’hésite pas à te présenter :arrow_forward: #communaute:presentations



Concernant :

@Clemalex, d’apres le Tuto, il s’agit de la couleur des icones.
Je chercherais plutot à rentre le texte rouge ou vert en fonction de l’état.
c’est possible?

merci

Oui, fait un nouveau topic dans #support-home-assistant:interfaces avec ta demande et le code de ta carte.

Pour coller du code, suit les instructions.