Template Sensoren werden nicht angezeit

atrost

Active member
Hallo Forum,
ich - Beginner - habe einige Template-Sensoren erstellt.
In den Videos kann der aktuelle Status in den Entwicklerwerkzeugen angezeigt werden. Das klappt bei mir aber nicht. Warum?
Ich sehe weder "sensor.wp_leistung" noch "sensor.wp_verbraucht" und kann diese daher auch nicht auf einer Karte darstellen.

YAML:
template:
  - sensor:
    - name: "WP_Leistung"
      device_class: "power"
      state_class: "measurement"
      unit_of_measurement: "KW"
      state: >
            {% set l1_power = states('sensor.shelly_em3_channel_a_power') | float(0) }
            {% set l2_power = states('sensor.shelly_em3_channel_b_power') | float(0) }
            {% set l3_power = states('sensor.shelly_em3_channel_c_power') | float(0) }
              
            {{ (l1_power + l2_power + l3_power) / 1000) | round(3, default = 0) }}
              
    - name: "WP_Verbrauch"
      unit_of_measurement: "KWh"
      device_class: "power"
      state_class: "measurement"
      state: >
            {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) }
            {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) }
            {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) }
              
            {{ (l1_energy + l2_energy + l3_energy + input_number.wp_zaehler_real) | round(1) }}
 
Hast du danach einmal neu gestartet?

Zudem würde ich die unique_id: mit eintragen

YAML:
template:
  - sensor:
    - name: "WP Leistung"
      unique_id: wp_leistung
      device_class: "power"
      state_class: "measurement"
      unit_of_measurement: "KW"
      state: >
          {% set l1_power = states('sensor.shelly_em3_channel_a_power') | float(0) }
          {% set l2_power = states('sensor.shelly_em3_channel_b_power') | float(0) }
          {% set l3_power = states('sensor.shelly_em3_channel_c_power') | float(0) }         
          {{ (l1_power + l2_power + l3_power) / 1000) | round(3, default = 0) }}
             
    - name: "WP Verbrauch"
      unique_id: wp_verbrauch
      unit_of_measurement: "KWh"
      device_class: "power"
      state_class: "measurement"
      state: >
          {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) }
          {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) }
          {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) }
          {{ (l1_energy + l2_energy + l3_energy + input_number.wp_zaehler_real) | round(1) }}
 
Vielen Dank für den Tipp. Das mit der unique_id hatte ich sowieso schon gesucht.
Es liegt jedoch am Syntaxfehler:
- im state: fehlte am Ende hinter float(0) ein %
- in der Summen Formel fehlte ein Klammer-zu ")"
Eure Tipps führen aber immer zum Erfolg 😉👍
 
Vielen Dank für den Tipp. Das mit der unique_id hatte ich sowieso schon gesucht.
Es liegt jedoch am Syntaxfehler:
- im state: fehlte am Ende hinter float(0) ein %
- in der Summen Formel fehlte ein Klammer-zu ")"
Eure Tipps führen aber immer zum Erfolg 😉👍
Auf den Syntax habe ich gerade garnicht geachtet -sorry-
 
Noch eine Frage:
Die Summenformel für WP_Verbrauch enthält einen Helfer "input_number.wp_zaehlerstand".
In den Entwicklerwerkzeugen sehe ich den Wert, der "sensor.wp_verbrauch" zeigt jedoch "unavailable". Nehme ich den Wert aus der Formel, ist alles in Ordnung.
Fehlt da noch etwas?
 
Da input_number.xyz + input_number.xyz generell als String behandelt wird - eventuell hilft es, input_number.wp_zaehlerstand in der Berechnung noch zu float zu konvertieren.
 
Noch eine Frage:
Die Summen Formel für WP_Verbrauch enthält einen Helfer "input_number.wp_zaehlerstand".
In den Entwicklungerwerkzeugen sehe ich den Wert, der sensor.wp_verbrauch zeigt jedoch "unavailable". Nehme ich den Wert aus der Formel, ist alles in Ordnung.
Fehlt da noch etwas
 
Lösung!
Ich hatte Nival richtig verstanden, das jedoch falsch umgesetzt.
Nun habe ich es richtig gemacht und den Wert "input_number.wp_zahlerstand" in einer eigenen Zeile umgewandelt.
Jetzt geht es.

YAML:
- name: "WP_Verbrauch"
      unique_id: "wp_verbrauch"
      unit_of_measurement: "KWh"
      device_class: "power"
      state_class: "measurement"
      state: >
            {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) %}
            {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) %}
            {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) %}
            {% set l4_energy = states('input_number.wp_zaehlerstand') | float(0) %}
              
            {{ (l1_energy + l2_energy + l3_energy  + l4_energy) | round(1) }}
 
Zuletzt bearbeitet:
Also hier schreibst Du das der Helfer
„input_number.wp_zaehlerstand“
heißt, aber in der Formel hast du:
„input_number.wp_zaehler_real“ stehen.

Ich denke da kann es nur um ein Bennenungsproblem gehen.
 
Danke für den Hinweis, ich hatte das mit den Namen probiert, weil ich dachte, daß der Fehler daran lag.
Jetzt habe ich so langsam das System verstanden. Es muß halt ein String in Float gewandelt werden.
Jetzt habe ich auch einen Multiplikator eingefügt, der die 1-prozentige Fehlerquote der Shelly EM3 ausgleicht.
Somit sieht das Ganze jetzt so aus und funktioniert super:
YAML:
 - name: "WP_Verbrauch"
      unique_id: "wp_verbrauch"
      unit_of_measurement: "KWh"
      device_class: "energy"
      state_class: "total_increasing"
      state: >
            {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) %}
            {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) %}
            {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) %}
            {% set l4_energy = states('input_number.wp_zaehlerstand') | float(0) %}
            {% set konst = states('input_number.wp_faktor') | float(0) %}
             
            {{ ((l1_energy + l2_energy + l3_energy  + l4_energy) * konst) | round(1) }}
 
Grundsätzlich gut, um dem sytax gerecht zu werden und auf dauer kompatibel zu bleiben sollte man sich angewöhnen immer zwei Leerzeichen einzurücken, die Leerzeile kann auch weggelassen werden.
Der Name (name: benötigt keinen unterstrich
Nur unique_id sollte Zusammenhängend geschrieben werden ob mit _ oder . spielt keine Rolle.

YAML:
- name: "WP Verbrauch"
    unique_id: "wp_verbrauch"
    unit_of_measurement: "KWh"
    device_class: "energy"
    state_class: "total_increasing"
    state: >
      {% set l1_energy = states('sensor.shelly_em3_channel_a_energy') | float(0) %}
      {% set l2_energy = states('sensor.shelly_em3_channel_b_energy') | float(0) %}
      {% set l3_energy = states('sensor.shelly_em3_channel_c_energy') | float(0) %}
      {% set l4_energy = states('input_number.wp_zaehlerstand') | float(0) %}
      {% set konst = states('input_number.wp_faktor') | float(0) %}
      {{ ((l1_energy + l2_energy + l3_energy  + l4_energy) * konst) |
 

Zurzeit aktive Besucher

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
5.366
Beiträge
53.163
Mitglieder
5.150
Neuestes Mitglied
derBremser
Zurück
Oben