Code Editor für Sensor-Templates

atrost

Member
Hallo Forum,
ich bin ja noch relativ neu hier und komme mit der Oberfläche von HA super klar - Respekt an die Entwickler.
Ich habe für meinen Shelly EM3 ein Sensor-Template erstellt, um die Momentanleistung der 3 Phasen zu summieren (Shelly bietet diese Info nicht als Entität). Die Summe wird mir in Watt mit einer Nachkommastelle angezeigt.
Jetzt habe ich im Forum gesehen, dass man über den Code Editor oder den File Editor nachträglich Anpassungen vornehmen kann, z.B. mit "round(0)".
Leider finde ich weder den das Sensor-Template noch einen Code Editor im Helfer. Auch die "Genauigkeit" bringt mich nicht weiter (siehe Bild).
Wie kann ich das nun so korrigieren, daß mir der Wert ohne Nachkommastelle angezeigt wird.
 

Anhänge

  • Screenshot 2023-02-04 16.14.32.png
    Screenshot 2023-02-04 16.14.32.png
    50,1 KB · Aufrufe: 17
Leider weiß ich - als nicht-HA-Profi - garnicht genau, wo Du da grade bist :D aber wenn die drei Entitäten vorhanden sind kannst Du die auf jeden Fall in einem eigenen Sensor addieren und dort dann auch weiter editieren.

Zum testen könntest Du erstmal unter Entwicklerwerkzeuge => Zustände schauen, wie genau diese drei Entitäten heissen, das notieren, dann weiter zu Entwicklerwerkzeuge => Template gehen und dort, entsprechend mit angepassten Namen, vermutlich dieses eintragen:
YAML:
{{ states ('sensor.xyz1')|float + states ('sensor.xyz2')|float + states ('sensor.xyz3')|float }}

Das sollte zumindest funktionieren, wenn die gesuchten Werte unter Entwicklerwerkzeuge => Zustände als "Zustand" abgebildet sind, sind sie unter "Attribute" zu finden muss man das noch etwas anders machen.
 
Moin!

Du hast einen Helfer erstellt, keinen Template-Sensor. Was via GUI erstellt wird, lässt sich in den meisten Fällen auch nicht via Editor bearbeiten. Ein Helfer ist so ein Fall.

Den Editor kannst via Einstellungen -> Add-Ons installieren.

Dann kannst du - wir helfen auch gerne - einen Template-Sensor erstellen, der dir das anzeigt, was du vorhast.

Sensoren via Editor schreiben ist für Anfänger (das meine ich nicht abwertend) zwar zuerst kompliziert, aber auf lange Sicht kommt man da fast nicht drum herum.
 
Ok, ich habe mir das schon gedacht, zumal ich via Youtube in einigen Videos bereits darauf hingewiesen wurde.
So werde ich mich dann mit der nächsten Stufe im Umgang mit HA beschäftigen. Spannend ist es allemal!
 
Wenn du Hilfe brauchst, sag bescheid.

Und das wichtigste, wenn man mit dem Editor rumspielt: immer unter Entwicklerwerkzeuge die Config prüfen! Und wenn da ein Fehler angezeigt wird, schnellstmöglich korrigieren.
 
Hallo Forum,
ich habe nun alles erreicht, was ich wollte.
Dies war der erste Einstieg in Yaml. Folgend der Code, der vielleicht anderen hilft.....
Anmerkung: Die Darstellung mit den Einrückungen wird hier im Texteditor herausgenommen, wenn ich auf Speichern klicke!

template:
- sensor:
- name: "WP-Leistung"
unit_of_measurement: "KW"
state: >
{% set L1_Power = states('sensor.shelly_em3_channel_a_power') | float %}
{% set L2_Power = states('sensor.shelly_em3_channel_b_power') | float %}
{% set L3_Power = states('sensor.shelly_em3_channel_c_power') | float %}

{{ ((L1_Power + L2_Power + L3_Power) / 1000) | round(3, default = 0) }}

- name: "WP-Verbrauch"
unit_of_measurement: "KWh"
state: >
{% set L1_Energy = states('sensor.shelly_em3_channel_a_energy') | float %}
{% set L2_Energy = states('sensor.shelly_em3_channel_b_energy') | float %}
{% set L3_Energy = states('sensor.shelly_em3_channel_c_energy') | float %}

{{ (L1_Energy + L2_Energy + L3_Energy) | round(1) }}
 
Da fehlt aber noch was, so wirst du im Log Warnmeldung bekommen.
Hinter jedem |float musst du noch einen Default definieren.

Code:
{{....... |float(0) }}

So wäre richtig.
 
Und wenn man dann das ganz noch mit seinem Stromzähler abgleichen möchte,
nimmt man noch einen Helfer "Input_Number" in dem man den Wert des Stromzählers einträgt den der beim Einbau des Shellys hatte.


YAML:
- sensor:
    name: "Energie vom Netz"
    unit_of_measurement: "KWh"
    device_class: energy
    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 Energy_Offset = states('input_number.startwert_stromzahler_netz') | float(0) %}
      {{ (L1_Energy + L2_Energy + L3_Energy + Energy_Offset) | round(1) }}
 
Zuletzt bearbeitet:
Leider weiß ich - als nicht-HA-Profi - garnicht genau, wo Du da grade bist :D aber wenn die drei Entitäten vorhanden sind kannst Du die auf jeden Fall in einem eigenen Sensor addieren und dort dann auch weiter editieren.

Zum testen könntest Du erstmal unter Entwicklerwerkzeuge => Zustände schauen, wie genau diese drei Entitäten heissen, das notieren, dann weiter zu Entwicklerwerkzeuge => Template gehen und dort, entsprechend mit angepassten Namen, vermutlich dieses eintragen:
YAML:
{{ states ('sensor.xyz1')|float + states ('sensor.xyz2')|float + states ('sensor.xyz3')|float }}

Das sollte zumindest funktionieren, wenn die gesuchten Werte unter Entwicklerwerkzeuge => Zustände als "Zustand" abgebildet sind, sind sie unter "Attribute" zu finden muss man das noch etwas anders machen.
Nach stundenlangem Lesen im Forum hat mich dieser Beitrag zum Ziel gebracht. Danke
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.708
Beiträge
47.998
Mitglieder
4.351
Neuestes Mitglied
Misiaczek
Zurück
Oben