Script avec Comparaison de valeurs ne fonctionne pas

Bonjour,

Mon problème

Je ne parviens pas à faire fonctionner le script ci dessous, qui doit permettre de basculer une entrée logique en fonction de la comparaison de la valeur d’une entrée (input text) et de celle d’un capteur. Elle reste invariablement dans l’état « désactivé »
Je soupçonne le format de la consigne ‹ input_text.temp_min_presence_jour › ou bien le format du texte renvoyé par le capteur ‹ sensor.pir_motion_sensor_3_air_temperature_2 › ou bien le template qui convertit les texte en float, mais comment en être sûr ?..

Valeurs de test :
‹ input_text.temp_min_presence_jour › = « 24,0 °C » (saisie manuelle)
‹ sensor.pir_motion_sensor_3_air_temperature_2 › affiche « 20,7°C »
‹ input_boolean.temp_consigne › reste dans l’état ‹ désactivé ›

Test réalisé par la commande « exécuter »

Yaml du script :

alias: Chauffage Présence Jour ON
sequence:
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.presence
            state: "on"
          - condition: state
            entity_id: binary_sensor.journee
            state: "on"
          - condition: template
            value_template: >-
              {{ states('sensor.pir_motion_sensor_3_air_temperature_2') |
              float(0) < states('input_text.temp_min_presence_jour') | float(0)
              }}
    then:
      - target:
          entity_id: input_boolean.temp_consigne
        action: input_boolean.turn_on
        data: {}
description: ""
icon: mdi:radiator

Ma configuration


System Information

version core-2024.9.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.31-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in true
subscription_expiration 2 juin 2025 à 02:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled true
google_enabled true
remote_server eu-central-1-19.ui.nabu.casa
certificate_status ready
instance_id *****************************
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 13.1
update_channel stable
supervisor_version supervisor-2024.08.0
agent_version 1.6.0
docker_version 26.1.4
disk_total 234.0 GB
disk_used 6.4 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.15.0), Advanced SSH & Web Terminal (19.0.0), Z-Wave JS (0.7.0)
Dashboards
dashboards 3
resources 0
views 1
mode storage
Recorder
oldest_recorder_run 8 septembre 2024 à 08:47
current_recorder_run 8 septembre 2024 à 10:47
estimated_db_size 31.80 MiB
database_engine sqlite
database_version 3.45.3
___

Bonjour @Charles
Pour le type de tes données tu peux regarder ce post : Colorer text mais d’un attribut d’une entité - Entraide Home Assistant - Home Assistant Communauté Francophone (hacf.fr)

Tu n’utilises pas un thermostat disponible dans HA pour ton chauffage !

Bob

Merci, bob !
Mais je ne vois pas d’indice sur ce post, n’ayant pas de valeur ‹ en dur › dans le template.
Que veux-tu dire par « Tu n’utilises pas un thermostat disponible dans HA » ? (mes capteurs de température fonctionnent très bien)

Je voulais dire qu’avec cette commande dans les outils de DEV tu connaitras le type de valeur de tes sensors.

{{ states('input_text.temp_min_presence_jour') | typeof }}

En fait tu veux faire quoi exactement avec ton input_boolean.temp_consigne !
Bob

Et ce bout de code, il te donne quoi comme résultat sur la page : https://homeassistant.local/developer-tools/template

Attention à ton nom de domaine :wink:

En effet … merci à toi ! :slight_smile:

Ah ! intéressant, merci ! je ne connaissais pas encore cet outil super.
ça donne ‹ false › tout le temps.
Or :
{{ states('sensor.pir_motion_sensor_3_air_temperature_2') |float(0) }}
donne 20.7 (correct !)

{{ states('input_text.temp_min_presence_jour') | float(0) }}
donne 0 quel que soit le texte saisi
(j’ai testé 24.0 24,2 24,2°C )
C’est donc là le problème… Mais je ne vois pas lequel.

Comme je le faisais avant sous Domoticz : je récupère la valeur d’un capteur de température pour piloter mon vieux poêle à pellets :slight_smile: ça a fonctionné un hiver, nickel.
Une fois l’automatisme au point, input_boolean.temp_consigne sera remplacé par la commutation « ON » du switch Z-Wave qui joue le rôle de thermostat externe.

Salut
Pourquoi avoir choisi un input_text pour stocker un nombre ?
Un input_number aurai peut être été plus judicieux surtout si tu veux faire calcul ou comparaison avec.

Bonjour,
Hélas les input_number ne permettent de saisir que des nombres entiers.

Je crois pas non

Alors ça c’est pas mal ! Je n’ai pas la même page de paramétrage :


Et je ne peux que passer d’entier en entier.

Au lieu de mettre curseur met champ de saisie dans les paramètres de ton input_number

Ca te donne quoi cela :

{{ states('input_text.temp_min_presence_jour') }}

Tu es sûr du nom de ton input_text …

… ?? Ou ça ?

Moi j’ai ça


Du coup je me demande sur quelle version de ha tu es ?
Dans tous les cas quand tu le crée normalement tu as le choix. Essai d’en recréer un

Toute ma config est copié dans l’énoncé (core-2024.9.1, OS 6.6.31-haos-raspi). ça m’arrangerais bien ce paramétrage ! Quelle est ta version ?
J’ai retenté, c’est inchangé.

La dernière en haos sur un nuc. Donc a part la machine comme toi.

Après investigation il faut activer le mode avancé sur home assistant dans paramètres de l’utilisateur (quand tu cliques sur ton nom tout en bas du menu)