Afficher un message en fonction de conditions

Tu mets ça en lieu et place de input_select.xxx.

Il ne faut pas s’arrêter à ce qui est écrit mais la fonction utilisée :

is_state('<ENTITY_ID>' , '<ETAT>')

Regarde les exemples dans la documentation

Ce n’est pas parce que tu as l’impression que c’est un nombre que c’en est un… :innocent:

Cela dépends de la fonction que tu utilises… :innocent:

Donc pour tout ce qui est du texte ‹ dynamique ›, la seule solution est de générer ce texte via un sensor ?
Dommage qu’il n’existe pas une carte texte qui se compose dynamiquement :thinking:

Pour moi c’est le but de la carte markdown :

Après pour ‹ dynamiser › ce qu’on veut, il reste la carte qui permet de tout personnaliser :

Ah bon oui, la carte markdown gère des templates, c’est la solution :+1:

Merci Me Clemalex :slight_smile:

@Ives dans l’exemple :

saisir ou coller le code ici

sensor:
  - platform: template
    sensors:
      filtration_profil_en_cours:
        unique_id: filtration_profil_en_cours
        friendly_name: "Filtration : Profil Horaire Sélectionné"
        value_template: >-
          {% if is_state('input_select.filtration', '1') %}
            24h/24h
          {% elif is_state('input_select.filtration', '2') %}
            De 8h à 16h
          {% else %}
            Pas de filtration
          {% endif %}

il check si la valeur de l’input est = à 1 donc dans ton cas tu va demander a faire un check sur la valeur de ton sensor :

sensor:
  - platform: template
    sensors:
      filtration_profil_en_cours:
        unique_id: filtration_profil_en_cours
        friendly_name: "Filtration : Profil Horaire Sélectionné"
        value_template: >-
          {% if is_state('sensor.sensor_horaires_filtration_piscine', '1') %}
            24h/24h
          {% elif is_state('sensor.sensor_horaires_filtration_piscine', '2') %}
            De 8h à 16h
          {% else %}
            Pas de filtration
          {% endif %}

@Clemalex et @barto_95
:+1: Merci , ça fonctionne exactement comme je voulais, c’est parfait !

Il faut partager ton code :wink:

Cela permettra aux autres de voir comment adapter :+1:

1 « J'aime »

Je me permet d’ajouter un point de vue entre Sensor et carte Markdown.

  • Si le but est uniquement d’afficher un texte suivant une valeur dans l’UI, alors il faut passer par la carte Markdown.
  • Si par contre le texte doit être utilisé dans autre chose (un test, une intégration, etc), là le Sensor a son intérêt !

Pourquoi ce choix ? Et bien la carte Markdown est uniquement un élément d’interface (donc traitée dans le navigateur web ou app mobile) alors que le Sensor est une instance qui sera créé sur le serveur, donc une empreinte et une ressource de plus.

1 « J'aime »

L’objectif : afficher dans HA la plage horaire de filtration de la piscine en cours.
Cette plage horaire qui dépend de la température de l’eau est déterminée par l’intermédiaire d’un contrôleur logique KNX qui écrit une valeur comprise entre 1 et 11 dans une adresse de groupe (GA) ; il y a 10 plages horaires différentes ( le 11 est renvoyé lors de l’arrêt de la filtration).

plages horaire piscine3

type: entity
entity: sensor.filtration_profil_en_cours
name: 'Plage horaire de filtration en cours :'
card_mod:
  style: |
    ha-card{height: 80px !important;}
    .header .name{font-size: 15px;}
    .info .value{font-size: 15px;}

Fichier configuration.yaml

# KNX
knx: !include_dir_merge_named knx/
# Filtration piscine - affichage plage horaire en cours 
- platform: template
  sensors:
    filtration_profil_en_cours:
      unique_id: filtration_profil_en_cours
      friendly_name: "Filtration : Profil Horaire Sélectionné"
      value_template: >-
        {% if is_state('sensor.sensor_horaires_filtration_piscine', '1') %}
        De 11h à 16h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '2') %}
        De 8h à 16h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '3') %}
        De 8h à 17h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '4') %}
        De 8h à 18h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '5') %}
        De 8h à 19h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '6') %}
        De 8h à 20h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '7') %}
        De 8h à 22h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '8') %}
        De 8h à 23h et de 1h à 3h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '9') %}
        De 8h à 23h et de 1h à 5h
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '10') %}
        De 8h à 0h et de 0h30 à 7h30
        {% elif is_state('sensor.sensor_horaires_filtration_piscine', '11') %}
        Filtration à l'arrêt
        {% else %}
        oups
        {% endif %}

Fichier knx_sensor.yaml

#Filtration piscine - chiffre de la plage horaire (1 à11)
  - name: sensor.horaires_filtration_piscine
    state_address: "2/5/5"
    type: "tariff"
    sync_state: every 30