Apprendre le yaml

Bonjour,
je ne connais pas le YAML, je ne sais pas trop comment l’apprendre mais je me suis dit qu’avec un cas peut être que ça m’aiderait.
Je ne veux pas nécessairement la réponse (je crois que ChatGPT finirait par me la donner) mais plus une méthode pour y arriver.
J’ai :

state_class: measurement
unit_of_measurement: °C
device_class: temperature
friendly_name: T extérieur

ayant pour état 10.2

J’ai aussi

state_class: measurement
unit_of_measurement: °C
device_class: temperature
friendly_name: T Combles

ayant pour état 12.8000001907349

Enfin j’ai

state_class: measurement
unit_of_measurement: °C
device_class: temperature
friendly_name: T salle de jeux

avec pour état 17.2625007629395

Je voudrais créer

state_class: measurement
unit_of_measurement: °C
device_class: ratio
friendly_name: Ratio

avec pour état 4.4=T salle de jeux * (Tcombles-Text)/Text
Comment je m’y prend concrètement ???

Salut

Ce que tu veux faire n’est pas du yaml, c’est du “templating“ qui se fait en jinja2.

Tu peux tester les templates (modèles en français) dans les outils de dev/modèles où il y a quelques exemples.

Et les docs :

2 « J'aime »

Merci @Tochy , en effet je pensais que c’était pareil! Donc je peux avoir

template:
  - sensor:
    - name: "ket"
      unit_of_measurment: "°C"
      state: "{{ states('sensor.sonde_dallas_temperature_sonde_dallas') }}"

Mais comment je fais pour avoir une somme (j’ai l’impression que c’est du texte qui est retourné donc je ne peux pas les additionner)

?? Template Designer Documentation — Jinja Documentation (3.2.x)??

Je dois créer une nouvelle entrée template et y coller la bonne formule au bon endroit j’imagine (mais de là à le mettre en oeuvre :laughing:

Quand c’est du texte il faut le transformer en nombre avec |float(0) afin de pouvoir s’en servir dans des calculs.

Fais tes essais dans les outils de dev, les erreurs seront indiquées et une fois que ton template est bon tu pourras définir un template sensor (capteur de modèle) par l’Ui.

Hello,

Exemple de somme et de « moyenne »

- sensor:
    - name: "Temp_moy_exterieur"
      unit_of_measurement: "°C"
      state: >
        {% set temp_ext_veranda_ext = states('sensor.mvt_ext_veranda_ext_temperature') | float %}
        {% set temp_ext_garage_ext = states('sensor.mvt_ext_veranda_ext_temperature') | float %}
        
          {{ ((temp_ext_veranda_ext + temp_ext_garage_ext) / 2) | round(1, default=0) }}

cdt

Merci, je comprend mieux. Je trouve les entités http://192.168.1.18:8123/developer-tools/state, je copie sensor.xxxx (celui qui m’intéresse). Je teste dans http://192.168.1.18:8123/developer-tools/template et quand j’ai réussi à avoir ce que je veux je créé un sensor dans configuration (http://192.168.1.18:8123/core_configurator/ingress)

template:
  - sensor:
      - name: gaz energy
        unit_of_measurement: "m³"
        state: "{{ (states('input_number.gaz')) }}"
        icon: mdi:fire
        device_class: gas
        state_class: total
      - name:  "Temp delta"
        unit_of_measurement: "°C"
        state: >
          {% set t1 = states('sensor.texterieure_temperature') | float %}
          {% set t2 = states('sensor.sonde_dallas_temperature_sonde_dallas') | float %}
          {% set t3 = states('sensor.esp32test_combles_t') | float %}
          {{ ((t3 - t1)/t2) | round(2, default=0) }}

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.