Template Sensor Temperature

Mon problème

Bonjour,
Depuis plusieurs jours, je tente de configurer un capteur de temperature avec un template.
Il s’agit d’un capteur de temperature relié à mon IPX800.
Cet IPX800 est configuré sous HA.
L’affichage fonctionne sans problème sur lovelace mais il affiche une valeur ‹ brute › qu’il faut convertir.
C’est justement cette conversion qui me pose problème.

Voici mon code correspondant dans le configuration.yaml

*sensor: !include sensors.yaml*

*ipx800v4:*
*  - name: IPX800*
*    host: "192.168.0.60"*
*    api_key: *************
*    devices:*
*    *
*    # Entrées analogiques : *
*      - component: sensor*
*        name: temp_buanderie*
*        icon: mdi:coolant-temperature*
*        type: analogin*
*        id: 1*
*        unit_of_measurement: "°C"*

Coté sensors.yaml :

 *- platform: template*
*   sensors:*
*      temp_buanderie:*
*        friendly_name: "temp_buanderie"*
*        unit_of_measurement: '°C'*
*        device_class: temperature*
*        value_template: "{{ (states('sensor.temp_buanderie_2') | float * 0.0050354 - 50) | round(1)}}*

La syntaxe semble bonne car pas d’erreur.
Le problème est que ma conversion n’est pas prise en compte.
Comme si la config du sensors.yaml n’existait pas.

Je débute juste donc j’ai du oublier quelque chose ou mal fait…

Merci par avance pour vos retours!

Ma configuration


Version core-2023.3.5
Type d’installation Home Assistant OS
Développement false
Supervisor true
Docker true
Utilisateur root
Environnement virtuel false
Version de Python 3.10.10
Famille du système d’exploitation Linux
Version du système d’exploitation 5.15.84-v8
Architecture du processeur aarch64
Fuseau horaire Europe/Paris
Répertoire de configuration /config

Home Assistant Community Store

GÉRER

GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4904
Installed Version 1.31.0
Stage running
Available Repositories 1248
Downloaded Repositories 3

Home Assistant Cloud

GÉRER

Connecté false
Accéder au serveur de certificats ok
Accéder au serveur d’authentification ok
Accéder à Home Assistant Cloud ok

Home Assistant Supervisor

Système d’exploitation hôte Home Assistant OS 9.5
Mise à jour stable
Version du Supervisor supervisor-2023.03.1
Version de l’agent 1.4.1
Version de Docker 20.10.22
Taille total du disque 234.0 GB
Taille du disque utilisé 3.3 GB
Sain true
Prise en charge true
Tableau de bord rpi3-64
API du Supervisor ok
Version API ok
Modules complémentaires installés File editor (5.5.0), Terminal & SSH (9.6.1), Samba share (10.0.0), Duck DNS (1.15.0)

Dashboards

GÉRER

Tableaux de bord 2
Ressources 1
Vues 3
Mode storage

Recorder

Heure de démarrage de l’exécution la plus ancienne 5 mars 2023 à 20:46
Heure de démarrage de l’exécution actuelle 18 mars 2023 à 10:19
Taille estimée de la base de données (en Mio) 9.21 MiB
Moteur de la base de données sqlite
Version de la base de données 3.38.5

Il faut utiliser les outils de developpement dans Home assistant

Pour moi, avec un sensor a moi ca me donne :

{{ (states('sensor.detecteur_porte_d_entree_temperature') | float * 0.0050354 - 50) | round(1)}}

Type de résultat: number

mais mon sensor.detecteur_porte_d_entree_temperature est déjà un number (ce qui n’est peut etre pas ton cas )

au cas où, test avec des parenthèse en plus :

{{ ((states('sensor.detecteur_porte_d_entree_temperature') | float) * 0.0050354 - 50) | round(1)}}

La logique des parenthèse et autres

- platform: template
   sensors:
      temp_buanderie:
        friendly_name: "temp_buanderie"
        unit_of_measurement: '°C'
        device_class:  "temperature"
        value_template: "{{ (states('sensor.temp_buanderie_2') | float * 0.0050354 - 50) | round(1)}}

donc :
device_class: "temperature"

comme dit @roumano test dans compléments:

Température {{ states('sensor.radiateur_salon_device_temperature')}}
Calcul {{ (states('sensor.radiateur_salon_device_temperature') | int * 0.0050354 - 50) | round(1)}}

Température {{ states('sensor.oregon_12801temperature')}}
Calcul {{ (states('sensor.oregon_12801temperature') | int * 0.0050354 - 50) | round(1)}}

J’ai oublié de préciser que oui j’avais testé avec l’outil de developpement.
Tout est marqué correct et redemarrage autorisé : donc syntaxe bonne.

J’ai meme testé ce template dans ‹ Outils Developpement › > Modèle.
Et dans la fenetre de droite, le resultat du value template est 14.6°C.
Donc parfait ! voir ci-dessous.

- platform: template
   sensors:
      temp_buanderie:
        friendly_name: "temp_buanderie"
        unit_of_measurement: '°C'
        device_class: temperature
        value_template: "14.6"

C’est juste que l’affichage dans lovelace de mon entité/capteur « temp_buanderie » reste à l’état brute, soit 12837 °C.
Idem après redémarrage du système…

Ok,
Il doit y avoir un autre sensor avec nom différent car tu as déjà le 1er qui à été remonté.

sensor.temp_buanderie_2

Cherche dans tes entités, ou force le nom d’un unique id dans ton code !

 unique_id: sensor.temp_buanderie_calcul

bonjour
j’ai aussi un IPX800V4, et j’arrive bien a faire remonter la température.

dans mon sensors.yaml j’ai :

- platform: template
  sensors:
    ipx800_temperature_abri:
      friendly_name: "IPX800 temperature abri"
      value_template: "{{ (((states('sensor.ipx800_analogique_1') | float(0) * 0.0050354) - 50) | round(1) )}}"
      unit_of_measurement: "°C"

sensor.ipx800_analogique_1 je le défini dans mon configuration.yaml:

ipx800v4:
  - name: IPX800
    host: "192.168.1.67"
    api_key: "apikey"
    devices:
        - component: sensor
        device_class: temperature
        name: ipx800 analogique 1
        type: analogin
        id: 1
        unit_of_measurement: "°C"
      - component: sensor
        device_class: temperature
        name: ipx800 analogique 2
        type: analogin
        id: 2
        unit_of_measurement: "°C"
      - component: sensor
        name: ipx800 ph brute
        type: virtualanalogin
        id: 31
      - component: sensor
        name: ipx800 redox brute
        type: virtualanalogin
        id: 32

Merci pour vos retours.

Effectivement le problème était que j’ai du recréer une nouvelle carte avec la bonne entité sur Lovelace.
Tout simplement…!
Merci du guidage!

Et merci a cocof aussi pour ton partage de code d’IPX, ca m’aide à apprendre et à avancer.