Template fonctionne mais sensor n'apparait pas

Bonjour à tous,

En grenouillant sur internet j’ai terminé mon template mais visiblement je dois rater quelquechose car le sensor ne vas pas apparaitre, impossible de le trouver (via dev. tools, etc)

Contexte :
J’ai une pince amperemétrique. Quand la mesure est négative cela veut dire que je consomme depuis le réseau, quand elle est positive cela veut dire que je réinjecte dans le réseau.
C’est la réinjection que je veux mesurer, donc uniquement quand la valeur est positive.

Solution :
Pour faire ça, j’ai fini par trouver une solution en promenant ici et là sur les forums (exemple : ICI )

Syntaxe :

"{{ [ states('sensor.owon_pc321_pince_power_l1') | float(0), 0.0 ] | max }}"

Elle fonctionne bien visiblement car quand je suis en positif la valeur est là, quand c’est négatif la valeur est bien mise à zéro.
Ci-dessous un screenshot du template editor :

Une fois mon template validé, je le rajoute dans mon fichier template.yaml et là c’est le drame :slight_smile:
Le fichier est ok, pas de problème remonté par HA mais mon sensor ne veut pas apparaitre.
Voici le fichier templates.yaml :


  - sensor:
      - name: "Compteur eau Total"
        unit_of_measurement: "m³"
        device_class: water
        state_class: total_increasing
        state: "{{ (states('sensor.compteur_eau') | int) / 1000 }}"
        unique_id: compteur_eau_total
  - sensor:
      - name: "Pince Phase 1 Positive power values only"
        unique_id: pince_Injection_Solaire
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        state: "{{ [ states('sensor.owon_pc321_pince_power_l1') | float(0), 0.0 ] | max }}"


  - trigger:
      - platform: webhook
        webhook_id: xxxxxxxxx
        local_only: true

    sensor:
      # Keep track of water qty
      - name: "Water3"
        state: "{{ (states('sensor.compteur_eau') | int) + 0 }}" #### 0 liters of approx
        unit_of_measurement: "L"

En allant dans Developper tools et States je devrais trouver un sensor nommé :
pince_Injection_Solaire
Malheureusement ce n’est pas le cas.

Avez-vous une idée de ce qui cloche ? (J’ai bien restart HA :slight_smile: )
Merci à vous

Certaineme,t un problème de syntaxe, et en particulier d’indentation.
Il me semble par exemple que tu as 4 espaces et pas 2 devant les lignes « - name ». Puex-tu essayer de décaler ces lignes vers la gauche de 2 espaces,

  • - sensor: s’écrit qu’une fois.
  • Pas de majuscule dans l’ID

Good catch ! En effet, HA ne va pas aimer :slight_smile:

Essaie comme ça pour voir:

Salut

Et surtout n’oublies pas de redémarrer après modification du configuration.yaml

Il y a aussi la solution de créer ton template par l’UI. Ca évite les problèmes de syntaxe en yaml.

Non, pas besoin !
Le rechargement via outil dev suffit !

1 « J'aime »

Oui je n’ai pas employé le bon terme mais il ne faut pas l’oublier c’est ce que je voulais dire.

1 « J'aime »

Je n’ai qu’un mois d’ancienneté dans HA mais il me semble que si les capteurs ne remontent pas, c’est qu’ils sont mal identifiés lors de l’analyse. J’ai intégré ce code ci dessous dans mon fichier Config et je vois bien tes capteurs dans ETATS. L’indentation est importante.

  - platform: template
    sensors:
      compteur_eau_total:
        friendly_name: "Compteur eau Total"
        unit_of_measurement: "m³"
        device_class: water
        value_template: "{{(states('sensor.compteur_eau') | int) / 1000 }}"

      pince_injection_solaire:
        friendly_name: "Pince Phase 1 Positive power values only"
        unit_of_measurement: "W"
        device_class: power
        value_template: "{{ [ states('sensor.owon_pc321_pince_power_l1') | float(0), 0.0 ] | max }}"   
 

Par contre, les « state_class » ne sont pas admis à ce niveau.
J’espère que ça va aller pour toi.

Il n’y a pas de raison que le template ne fonctionne pas.
Pour exemple, ci-dessous le template de mon compteur de gaz:

  - sensor:
    - name: "Compteur de gaz"
      unit_of_measurement: "kWh"
      device_class: "gas"
      state_class: "total_increasing"
      state: "{{ states('sensor.gazpar_lixee_zipulses_summation_delivered') | float(0) * states('input_number.conversion_zipulses_gaz_kwh') | float(0)}}"
      availability: "{{ states('sensor.gazpar_lixee_zipulses_summation_delivered') not in ['none', 'unknown', 'unavailable'] }}"

Bonsoir à tous,
Merci pour tous ces retours !
Vraiment sympa !

Je viens de supprimer les majuscules de mon entity id, de supprimer la ligne sensor en doublon.
Pour le moment le résultat est identique, je vais vérifier mon indentation maintenant :blush:
Je bosse et je vous dis :+1:

Hello,
Bon visiblement le mystère est pour le moment entier.

  • Majuscule enlevée comme suggérée
  • Ligne sensor en double enlevée
  • Indentation uniformisée sur la partie concernée

Je viens de tout « casser » / supprimer pour simplifier au maximum

Mon fichier templates.yaml complet resemble à ca désormais :

- sensor:
  - name: "Compteur eau Total"
    unit_of_measurement: "m³"
    device_class: water
    state_class: total_increasing
    state: "{{ (states('sensor.compteur_eau') | int) / 1000 }}"
    unique_id: compteur_eau_total
  - name: "Pince Phase 1 Positive power"
    unique_id: mapince_injection_solaire
    unit_of_measurement: "W"
    device_class: power
    state_class: measurement
    state: "{{ [ states('sensor.owon_pc321_pince_power_l1') | float(0), 0.0 ] | max }}"
  - name: "TEST 25"
    unique_id: testprisesimple
    unit_of_measurement: "W"
    device_class: power
    state_class: measurement
    state: "{{ states('sensor.nous_prise_zigbee_power') }}"

J’ai ajouté un autre bloc identique le plus simple possible

Vous voyez un truc choquant ?
La je vois plus le problème :confused:

Merci

Je viens de trouver !

Je ne sais pas depuis combien de temps cela fonctionnait mais en fait le problème était visiblement que ce n’est pas le unique_id qui est utilisé pour servir de base pour le sensor :frowning:
En fait c’est le name qui est utilisé et si il y a un espace il remplace par un _
Je viens de comprendre en écrivant 25 (cf ma config Test 25) et là :

Le sensor s’appelle : sensor.test_25 donc je ne le trouvais pas avant en écrivant un morceau de l’ID ou en cherchant avec un copier/coller du nom car l’espace devenait un _
Donc : name = sensor.name et l’unique_id lui en revanche doit être bien caché.

Résultat :

:grin:

Merci à tous
Je vais remettre mon fichier au complet et finir de le nettoyer

1 « J'aime »

Salut,

J’ai exactement la même pince que vous et pour moi c’est exactement l’inverse quand je suis négatif je réinjecte et quand je suis positif j’importe du réseau.
Je pense que vous avez votre pince à l’envers.
J’ai créé tous les templates pour avoir puissance réel maison, puissance solaire non consommée, puissance solaire consommée,puissance importé si ça vous intéresse je peux partager

Hello,
Oui ma pince est dans le sens inverse de la tienne, après c’est pas grave tant que nous mesurons dans le bon sens :blush:
Mon template est basique c’est clair, pour le moment ça fait le taf (petit template simple et des helpers pour basculer en kwh) après si tu as le temps de partager je suis preneur ça me permettra de comparer et apprendre et surtout je pense que tu vas pouvoir aider d’autres personnes qui vont utiliser cette pince.
D’ailleurs elle est pas mal, son mini défaut serait une remontée pas trop rapide (je dirais entre 45 secondes et 60 secondes) mais c’est déjà suffisant :blush:

Merci