Filtern positive von negativen Daten in eigene Entitäten

bei mir sieht der Code nun so aus:
Ich denke nicht, dass die Bezeichnung "sensor.PowerStream-6700 Battery Input Watts" so richtig ist, denn in den tatsächlichen Namen sind keine Leerzeichen enthalten und auch keine Großbuchstaben.

Schau mal unter Entwicklerwerkzeuge => Zustände und filtere bei Entität nach Deinem Sensor, wahrscheinlich wird es etwas wie "sensor.powerstream_6700_battery_input_watts" sein am Ende, aber schau lieber nach. Das ist ein Eintrag wie dieser:
1747382591612.png
und unten steht der "friendly name", oben das, was Du in YAML verwenden musst.

Passe die Bezeichnungen entsprechend an, speichere die Datei und dann muss Home Assistant einmal komplett neu gestartet werden, damit der neue Sensor auch verfügbar ist.
 
Eigentlich zeigt HA doch so ziemlich überall eine Liste der passenden Entities an, sobald man z.B. "sensor." schreibt.

Und das geht mittlerweile auch grafisch.
Helfer -> neuer Helfer ->Template -> Sensor
Bei Template das yaml von state eintragen, den Rest auswählen, speichern, fertig.
 
Sodele :)
Jetzt hat es scheinbar geklappt.
sensor.powerstream_6700_battery_input_watts gefunden und in YAML geändert.
HA neu gestartet.
Zwei neue Sensoren waren jetzt vorhanden.
Dann zwei Integralsensoren W in kWh erstellt und im Batteriespeicher beim Energy Dashboard eingetragen.
Jetzt muss ich nur noch etwas warten, bis die Daten aktualisiert werden.

Vielen Dank für eure Hilfen (y)
 
So weit scheint es nun zu funktionieren.

Aber einen hab ich noch:
Die positiven und negativen Werte sind vertauscht.
D.h. wenn mein Akku geladen wird, sind es negative Werte.
Wenn er einspeist, positive.

Ich hab nun versucht die Rechnung anzupassen, aber da scheint es einen Fehler zu geben:
Code:
Logger: homeassistant.config
Quelle: config.py:357
Erstmals aufgetreten: 13:02:42 (1 Vorkommnis)
Zuletzt protokolliert: 13:02:42

Invalid config for 'template' at configuration.yaml, line 19: invalid template (TemplateSyntaxError: unexpected ')') for dictionary value 'sensor->0->state', got "{% if states('sensor.powerstream_6700_battery_input_watts') | float(0) <= 0 %}\n {% set varta_in = states(('sensor.powerstream_6700_battery_input_watts') | float(0)) *-1) %}\n{% else %}\n {% set varta_in= 0 %}\n{% endif %} {{ varta_in }}\n"

Hier das von mir geänderte Template:
Code:
template:
  - sensor:
    - name: "Battery Power In"
      unit_of_measurement: "W"
      state_class: measurement
      device_class: power
      state: >
        {% if states('sensor.powerstream_6700_battery_input_watts') | float(0) <= 0 %}
          {% set varta_in = states(('sensor.powerstream_6700_battery_input_watts') | float(0)) *-1) %}
        {% else %}
          {% set varta_in= 0 %}
        {% endif %}
        {{ varta_in }}
     
    - name: "Battery Power Out"
      unit_of_measurement: "W"
      state_class: measurement
      device_class: power
      state: >
        {% if states('sensor.powerstream_6700_battery_input_watts') | float(0) >= 0 %}
          {% set varta_out = (states('sensor.powerstream_6700_battery_input_watts') | float(0) %}
        {% else %}
          {% set varta_out = 0 %}
        {% endif %}
        {{ varta_out }}
 

Anhänge

  • Bildschirmfoto vom 2025-05-16 13-34-49.png
    Bildschirmfoto vom 2025-05-16 13-34-49.png
    84,7 KB · Aufrufe: 3
Zuletzt bearbeitet:
Vielleicht so
YAML:
          {% set varta_in = (states('sensor.powerstream_6700_battery_input_watts') | float(0)) * -1) %}



          {% set varta_out = states('sensor.powerstream_6700_battery_input_watts') | float(0) %}
 
Sorry, funktioniert nicht.
Code:
Logger: homeassistant.config
Quelle: config.py:357
Erstmals aufgetreten: 13:42:24 (1 Vorkommnis)
Zuletzt protokolliert: 13:42:24

Invalid config for 'template' at configuration.yaml, line 19: invalid template (TemplateSyntaxError: unexpected ')') for dictionary value 'sensor->0->state', got "{% if states('sensor.powerstream_6700_battery_input_watts') | float(0) >= 0 %}\n {% set varta_in = (states('sensor.powerstream_6700_battery_input_watts') | float(0)) * -1) %}\n{% else %}\n {% set varta_in= 0 %}\n{% endif %} {{ varta_in }}\n"
 
Jetzt scheint es zu funktionieren und gibt keine Fehlermeldung mehr.
Aber ich muss erst wieder warten, bis neue Daten berechnet wurden.
Danke!
 
Kleine Anmerkung, statt dem * -1 könnte man auch | abs schreiben, das ist die eingebaute Funktion für "absoluter Wert" - das aber nur der Vollständigkeit halber. Kann man im Prinzip machen wie man möchte, ich persönlich verwende lieber Funktionen weil mir dann auf den ersten Blick klar ist worum es geht.
 
Sorry, ich muss doch nochmal nachfragen.
Jetzt hab ich in der Konfiguration vom Energie-Dashboard folgendes gesehen:
Bildschirmfoto vom 2025-05-16 16-58-48.png
Es gibt keine Fehlermeldung mehr, aber diese Anzeige kann ich nicht nachvollziehen.
 
Du hast HA komplett neu gestartet nach der letzten Änderung in der .yaml?
Natürlich

Nachtrag:
Als das Template fehlerfrei lief, kam diese Meldung in der Konfiguration im E-Dashboard nicht.
Alles scheint auch zu funktionieren.
Wenn mein Akku voll ist, wird der nicht weiter geladen und die Energie von den Modulen wird einfach durchgelassen.
Ggf. gab es, als der Akku voll war, eine kleine Fehlübertragung.
Aktuell wird er entladen. Laden ist erst morgen wieder möglich.
Daher würde ich mal abwarten, ob der Fehler morgen nicht von alleine verschwindet, wenn es wieder entsprechende Werte vom Laden des Akkus gibt.
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.681
Beiträge
64.126
Mitglieder
6.937
Neuestes Mitglied
Blackhawk50000
Zurück
Oben