Calcul simple

Bonjour,

Mon problème

On ne se moque pas :wink: je cherche depuis déjà 3h comment effectuer une soustraction de deux valeur :
sensor.capteur_temperature_bureau_temperature et un attribut de climate.thermostat_bureau_consigne attribut=temperature

mais cela ne fonction pas
Je trouve que des exemple a rentrer directement dans le Yaml mais je pense que on peut le faire avec nouvelle entrée Template modéliser un nombre mais je ne trouve pas la formule

voici mon dernier test

{{ (states("sensor.capteur_temperature_bureau_temperature") | float) - (state_attr('climate.thermostat_bureau_consigne', 'temperature') | float) }}

sa fonctionne dans outil de développement mais pas dans le Template de la nouvelle entrée, je pense que l’erreur est de ma part mais je ne trouve pas lol

vous l’aurez compris le but est de connaitre l’écart entre la consigne et la température arrondi a une décimal

merci de votre aide

Ma configuration


version core-2024.10.0
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.46-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.1
Stage running
Available Repositories 1428
Downloaded Repositories 11
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 13.1
update_channel stable
supervisor_version supervisor-2024.09.1
agent_version 1.6.0
docker_version 26.1.4
disk_total 30.8 GB
disk_used 10.7 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization kvm
board ova
supervisor_api ok
version_api ok
installed_addons Node-RED (18.1.1), Get HACS (1.3.1), Linky (1.5.0), Studio Code Server (5.16.3)
Dashboards
dashboards 10
resources 9
views 35
mode storage
Recorder
oldest_recorder_run 24 septembre 2024 à 09:03
current_recorder_run 4 octobre 2024 à 21:49
estimated_db_size 1590.59 MiB
database_engine sqlite
database_version 3.45.3

Bonjour,

Essaye avec

template:
  - sensor:
    - name: "Diff Temperatures"
      unique_id: 1758932f-f3ed-42af-83b5-d8f6795f5337
      state_class: measurement
      unit_of_measurement: °F
      state: >
        {{ (states('sensor.cielo_temperature') | float - state_attr('climate.cielo', 'temperature') | float) | round(1) }}

Tu peux changer l’unité en °C :slight_smile:

Cordialement,

Abel

1 « J'aime »

Ca c’est pour un fichier yaml pas pour un modèle Template

On ne peut pas passer directement par l’interface pour un calcul simple ?

Salut
Dans tous les cas il faut penser à mettre une valeur par défaut au float => float(0) par exemple

1 « J'aime »
{{ (states("sensor.capteur_temperature_bureau_temperature") | float(0)) - (state_attr('climate.thermostat_bureau_consigne', 'temperature') | float(0)) }}

Cela ne fonctionne pas

Ça fonctionne pas mais où et avec quel message d’erreur ?

Bonjour,
ça fonctionne, exemple :

{{ states('sensor.lywsd03mmc_0945_temperature') |float(0) - state_attr('climate.versatile_thermostat_salon', 'temperature') |float(0) }}

Tu peux utiliser les entrées et un template directement de l’UI.

image

1 « J'aime »

j’ai compris l’erreur j’essayai de crée une entrée Template nombre au lieu d’une entrée Template capteur et du coup sa fonctionne
Merci a vous

1 « J'aime »

dernière précision peut on arrondir a une décimal directement dans la formule pour avoir un résultat de 0.2 plutôt que 0.1987256
j’ai essayer de rajouter | round(1) a chaque entité mais cela ne fonctionne pas je pense que il faut agir sur le résultat de ce calcul

Oui,
exemple:

{{ (states('sensor.lywsd03mmc_0945_temperature') |float(0) - state_attr('climate.versatile_thermostat_salon', 'temperature') |float(0)) |round(1) }}

au lieu de :

{{ states('sensor.lywsd03mmc_0945_temperature') |float(0) - state_attr('climate.versatile_thermostat_salon', 'temperature') |float(0) }}
1 « J'aime »

merci il faut donc mettre la formule entre parenthèse puis arrondir a 1 décimal
parfait merci bcp :+1:

1 « J'aime »

exactement image

Perso moi les arrondis c’est JUSTE coté affichages… Pour les calculs, je garde la meilleure précision