Comparer des valeurs dans une automatisation

Bonjour,
J’aimerais comparer les valeurs deux entités de température entre-elles dans mon automatisation

L’idée est assez simple :

(1) Déclencheur : Quand Thermomètre Extérieur.temperature change

(2) Condition : Si Thermomètre Extérieur.temperature est supérieur ou égal à Thermomètre Intérieur.temperature

(3) Action : Alors envoie un message Telegram « Il fait chaud dehors, ferme les volets. »

Je ne sais pas comment arriver à transcrire l’étape 2 dans mon automatisation.

Un petit coup de pouce serait bienvenu !

Ma configuration


System Health

version core-2022.6.7
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.12
os_name Linux
os_version 5.15.32-v8
arch aarch64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4982
Installed Version 1.25.5
Stage running
Available Repositories 1072
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 8.2
update_channel stable
supervisor_version supervisor-2022.07.0
agent_version 1.2.1
docker_version 20.10.14
disk_total 28.4 GB
disk_used 4.5 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons File editor (5.3.3), Duck DNS (1.15.0), Mosquitto broker (6.1.2), Zigbee2MQTT (1.26.0-1), Terminal & SSH (9.4.0), Samba share (10.0.0)
Dashboards
dashboards 1
resources 0
views 3
mode storage
Recorder
oldest_recorder_run 27 juin 2022 à 05:35
current_recorder_run 5 juillet 2022 à 22:55
estimated_db_size 144.78 MiB
database_engine sqlite
database_version 3.34.1

Salut,

C’est tout bien expliqué dans la doc pourtant

1 « J'aime »

Ah…il faut passer par du templating…
Je ne connais pas encore comment fonctionne la syntaxe. Je vais me pencher dessus.

Pour écrire la bonne syntaxe aide toi d’un modèle dans les outils de développements

Ou du Node-Red, pas forcément plus simple, mais dès qu’on veut faire un truc qui dépasse l’automatisation de base (si température > 28°, descend le store), est indispensable.

p.e.

{{ states('sensor.nspanel_temperature') > states('sensor.sensor_gang_temperature') }}

Bien qu’étant utilisateur de NodeRed pour mes automatisations, je n’irai pas jusque là.
Les logiques des automatisations de HA et de NodeRed sont différentes. Mais, dire que l’une est mieux ou plus puissante que l’autre , non. C’est vraiment une histoire de goût et de compréhension. Rien de plus… ce qui est faisable dans l’un est faisable avec l’autre.

1 « J'aime »

C’est très curieux…

Voici mon automatisation. Elle n’est pas tout à fait finie, mais le principal y est.

alias: Il fait plus chaud dehors
description: ''
trigger:
  - type: temperature
    platform: device
    device_id: a17c4f6c9c504e811b73d13ce8303476
    entity_id: sensor.thermometre_exterieur_temperature
    domain: sensor
    above: 19
condition:
  - condition: template
    value_template: >-
      {{ states('sensor.thermometre_exterieur_temperature') >
      states('sensor.thermometre_interieur_temperature') }}
action:
  - service: notify.telegram_jeremy
    data:
      message: '"Ça se réchauffe dehors. Tu devrais fermer les volets."'
  - wait_for_trigger:
      - platform: template
        value_template: >-
          {{ states('sensor.thermometre_exterieur_temperature') <
          states('sensor.thermometre_interieur_temperature') }}
  - service: notify.telegram_jeremy
    data:
      message: '"La température extérieure est redescendue. Tu peux ouvrir la maison."'
mode: single

Sur la condition, le bouton « TEST » de l’interface graphique me renvoie une erreur.

template value should be a string for dictionary value @ data['value_template']. Got None

Mais quand j’exécute l’automatisation, j’ai bien mon message Telegram

Donc à priori la comparaison des deux valeurs fonctionne.
Pourquoi le test de l’interface graphique me renvoie un fail ?

Merci à toi, mis à part le petit message d’erreur, c’est bien ce que je voulais. :slight_smile: !