Für wen ist diese Anleitung?
Ihr nutzt eine Shelly 3EM um den Stromverbrauch eures Hauses oder Wohnung zu messen. Gleichzeitig betreibt ihr eine Photovoltaik-Anlage, deren Überschuss über in das öffentliche Netzeingespeist wird (und diese ist nicht an einen separaten Stromzähler oder dergleichen angeschlossen). Ihr nutzt bereits Home Assistant, um euren Energieverbrauch zu messen oder eure Home Automation darüber zu steuern. Ihr wollt genau sehen, wieviel von eurem produzierten Strom ins Stromnetz eingespeist wird und wie hoch der Eigenverbrauch ist, habt aber das Problem, dass die Shelly 3EM dies leider korrekt darstellen kann, weil die Shelly (noch) nicht saldieren kann. Mit dieser Anleitung helfe ich euch dieses Problem zu lösen.
Changelog
2023-07-03:
- Ich arbeite an einem “Konfigurator”, der eurer individuelle Konfigurator erzeugt.
- “power_solargen” wurde der Konfiguration hinzugefügt, da manche Probleme mit mit “power_export_daily” hatten.
Warum kann ich nicht direkt in der Shelly 3EM sehen, wieviel Strom ich aus Photovoltaik eingespeist habe?
Grundsätzlich muss man sagen, die Shelly 3EM macht alles korrekt und man sieht den Strom der eingespeist wird technisch korrekt dargestellt. “Abrechnungstechnisch” stimmt das jedoch nicht. Denn wenn ihr den Stromverbrauch in der Shelly mit den auf deinem Stromzähler vergleicht, werdet ihr teils erhebliche Differenzen feststellen.
Warum: Dein Stromzähler saldiert, die Shelly 3EM nicht. Was bedeutet das?
Dazu muss man kurz ausholen: Dein Haushaltsstrom kommt über drei Phasen zu Dir nach nach Hause – das nennt man Dreiphasenwechselstrom und ist ein europäischer Standard. Kurz gesagt: In dein Haus / Wohnung kommen drei Stromleitungen mit 230V Spannung. Jeder deiner Verbraucher (Lampe, Steckdose, usw) hängt an einer der drei Phasen. Auch das Balkonkraftwerk. Wenn dein Balkonkraftwerk mehr Strom erzeugt als die Verbraucher an der Phase gerade an Strom benötigen, wird der überschüssige Strom ins Netz eingespeist. Der überschüssige Strom kann auch nicht auf die anderen beiden Phasen überspringen, das geht technisch nicht.
Dein Stromzähler ist – fast immer – saldierend. Bei saldierenden Zählern werden Verbräuche und Erträge aller drei Phasen noch vor der Anzeige auf dem Stromzähler miteinander verrechnet. So sieht man also nicht, wie viel auf den jeweiligen Phasen verbraucht beziehungsweise erzeugt wurde. Stattdessen sieht man nur das Ergebnis der Verrechnung. Genauso verhält sich der Zähler, wenn du Strom auf einer Phase einspeist. Der saldierende Stromzähler verrechnet die Einspeisung auf einer Phase mit dem Verbrauch der anderen beiden Phasen. Dies ist besonders vorteilhaft, da man andernfalls weniger Nutzen davon hätte, sich ein Balkonkraftwerk anzuschaffen.
Der Shelly 3EM kann nicht saldieren – er schaut sich Phase für Phase an. Zwar war vor längerem schon man angekündigt worden, dass dieses Feature durch ein Software Update nachgereicht werden soll, aber bis zum aktuellen Zeitpunkt ist das noch nicht der Fall. Das ist aber kein Problem, denn wir bilden das einfach in HomeAssistant ab, was bei mir ohnehin im Betrieb ist.

In HomeAssistant bekommt man gute Übersichten, auf denen man sehr übersichtlich sehen kann, wieviel Kilowattstunden man aus dem Netz bezogen hat. Darüber hinaus wird angezeigt, wieviel Solarenergie produziert worden ist, sowie wieviel davon selbstbezogen worden ist.
Wie sieht der Aufbau der Anlage aus?

- Das PV Modul hängt an eurem Mikrowechselrichter. Bei mir nennt man das Balkonkraftwerk (BKW).
- Der Mikrowechselrichter ist mit einem Shelly Plug S verbunden. Dieser smarte Aus- und Einschalter misst den Stromverbrauch, hier die Stromgenerierung durch das PV Modul.
- Der generierte Strom des PV Moduls landet an einer der drei Phasen im “Sicherungskasten”.
- Im Sicherungskasten ist die Shelly 3EM installiert und überwacht die Stromverbräuche – sowohl den bezogenen Strom als auch den eingespeisten Strom. Eine Anleitung wie man die Shelly 3EM installiert findet ihr hier.
Vorraussetzung
Diese Anleitung geht davon aus, das eure Shelly 3EM korrekt in Betrieb ist und in eurem Netzwerk eingebunden ist. Ebenfalls setzt diese Anleitung voraus, dass im gleichen Netzwerk Home Assistant installiert ist und dort bereits die Shelly 3EM mit der Shelly Integration eingebunden ist.
Schritt für Schritt Anleitung zum Saldieren
1. Das File Editor Add-On in Home Assistant installieren
Um in Home Assistant die Konfigurationsdatei zu öffnen, solltet ihr euch zunächst das Addon “File Editor” installieren. Auf diese Weise kann man am einfachsten die Konfiguration verändern. Um dies zu erreichen, geht wie folgt vor:
- Öffne HomeAssistant in einem Browser
- Klicke auf “Settings”
- Klicke dann auf “Add-ons”
- Klicke auf “Add-On Store”
- Gibt im Suchfeld “File editor” an
- Klicke auf “Installieren”.
- Aktiviere folgende Parameter:
“Start on Boot”
“Show in Sidebar” - Nach der Installation solltet ihr im Menü an der linken Seite den Menüpunkt “File editor” sehen, klickt auf diesen.
- Danach solltet ihr oben einen Ordner-Symbol sehen, dieses anklicken.
- In der Dateiliste dann die Datei “configuration.yaml” öffnen
2. Die “configuration.yaml” ändern
Als nächstes kopiert den nachstehenden Yaml-Code in die Datei “configuration.yaml”, die ihr mit dem File Editor aus dem vorherigen Schritt geöffnet habt. Fügt es einfach ganz am Ende an und verändert die bestehende Konfiguration nicht.
Es kann sein, dass ihr etwas Anpassen müsst: In der Datei findet ihr wiederkehrend die drei Namen der Phasen der Shelly 3EM in Home Assistant sensor.shelly3em_channel_a_power, sensor.shelly3em_channel_b_power, sensor.shelly3em_channel_c_power.
Diese müsst ihr mit euren jeweiligen Namen für die “Power” Entity der Shelly 3EM ersetzen. Im Zuge der Integration des Shelly 3EM in HomeAssistant wurden die Namen bei mir automatisch erstellt. Solltet ihr dieselben Namen verwenden, dann ist alles gut.
Konfigurator
Ihr habt die Möglichkeit die Konfiguration mit Hilfe des nachstehenden Textfile selbst anzupassen oder ihr lasst euch mit Hilfe des Konfigurator alles generieren.
sensor: - platform: template sensors: # Template sensor for values of power import (active_power > 0) power_import: friendly_name: "Power Import" unit_of_measurement: 'W' value_template: >- {% if (states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float) > 0 %} {{ states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float }} {% else %} {{ 0 }} {% endif %} availability_template: "{{ [ states('sensor.shelly3em_channel_a_power'), states('sensor.shelly3em_channel_b_power'), states('sensor.shelly3em_channel_c_power') ] | map('is_number') | min }}" # Template sensor for values of power export (active_power < 0) power_export: friendly_name: "Power Export" unit_of_measurement: 'W' value_template: >- {% if (states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float) < 0 %} {{ (states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float) * -1 }} {% else %} {{ 0 }} {% endif %} availability_template: "{{ [ states('sensor.shelly3em_channel_a_power'), states('sensor.shelly3em_channel_b_power'), states('sensor.shelly3em_channel_c_power') ] | map('is_number') | min }}" # Template sensor for values of power consumption power_consumption: friendly_name: "Power Consumption" unit_of_measurement: 'W' value_template: >- {% if (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) < 0 %} {% elif (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) > 0 %} {{ (states('sensor.power_solargen')|float(0)) - states('sensor.power_export')|float(0) }} {% else %} {{ states('sensor.power_import')|float(0) + states('sensor.power_solargen')|float(0) }} {% endif %} # Template sensor for values of energy Solar generation (solar_power > 0) # YOU NEED TO UPDATE THE NAMES BELOW!!! power_solargen: friendly_name: "Power Solar Generation" unit_of_measurement: 'W' value_template: >- {% if (states('your_pv_source_1.power')|float(0) + states('your_pv_source_2.powerplugs2')|float(0)) > 0 %} {{ (states('your_pv_source_1.power')|float(0) + states('your_pv_source_2.powerplugs2')|float(0)) }} {% else %} {{ 0 }} {% endif %} # Sensor for Riemann sum of energy import (W -> Wh) - platform: integration source: sensor.power_import name: energy_import_sum unit_prefix: k round: 2 method: left # Sensor for Riemann sum of energy export (W -> Wh) - platform: integration source: sensor.power_export name: energy_export_sum unit_prefix: k round: 2 method: left # Sensor for Riemann sum of energy consumption (W -> Wh) - platform: integration source: sensor.power_consumption name: energy_consumption_sum unit_prefix: k round: 2 method: left utility_meter: energy_import_daily: source: sensor.energy_import_sum name: Energy Import Daily cycle: daily energy_import_monthly: source: sensor.energy_import_sum name: Energy Import Monthly cycle: monthly energy_export_daily: source: sensor.energy_export_sum name: Energy Export Daily cycle: daily energy_export_monthly: source: sensor.energy_export_sum name: Energy Export Monthly cycle: monthly energy_consumption_daily: source: sensor.energy_consumption_sum name: Energy Consumption Daily cycle: daily energy_consumption_monthly: source: sensor.energy_consumption_sum name: Energy Consumption Monthly cycle: monthly
Nachdem ihr die Konfiguration am Ende der “configuration.yaml” angefügt habt bitte die folgenden Schritte durchführen:
- Klicke unten links im Hauptmenü auf “Developer Tools”
- Klicke dann auf “Check configuration”
- Kommt dann die Meldung “Configuration will not prevent Home Assistant from starting” passt alles.
- Klickt danach auf “Restart”
- Nach 1-2 Minuten ist HomeAssistant wieder erreichbar und hat die neue Konfiguration geladen.
3. Das Energy Dashboard konfigurieren
Im letzten Schritt konfigurieren wir noch das Energy Dashboard, damit die neuen Entities dort auch eingebunden sind und die richtigen Werte angezeigt werden. Dazu gehen wir wie folgt vor:
- Klicke unten links im Hauptmenü auf “Settings”.
- Klicke dann auf “Dashboards”.
- Klicke dann auf das “Energy” Dashboard.
- Füge die neue Entity “Energy Import Daily” bei “Grid Consumption” hinzu.
- Füge die neue Entity “Energy Export Daily” bei “Return to Grid” hinzu (Achtung: Unter Umständen dauert es einige Stunden, bis diese Entity auswählbar ist!)
- Bei den “Solar Panels” bitte den Zähler für eure PV Produktion hinzufügen. In meinem Fall sind das zwei Shelly Plug S, weil ich zwei Module habe.
Am Ende sieht die Konfiguration bei mir wie folgt aus:


Hier seht ihr das Ergebnis im Home Assistant Energy Dashboard
Ihr seht nun schon übersichtlich den Stromverbrauch aus dem Netz und eurer Photovoltaik Anlage und wieviel eures selbst produzierenden Stroms durch euch verbraucht worden ist – zumindest rechnerisch.

Bitte beachten:
1. Es dauert eine Weile bis ihr Daten im Energie Dashboard seht. Es dauert mindestens eine Stunde, kann aber auch bis zu 3 Stunden benötigen. Habt ein wenig Geduld! Insbesondere wird unten in den Kommentaren oft berichtet, dass “Energy Export Daily” nicht ausgewählt werden kann.
2. Ich habe zu Testzwecken eine neue Home Assistant Installation gemacht. Ich konnte dies reproduzieren, “Energy Export Daily” war unmittelbar nicht auswählbar. Aber nach einige Stunden hingegen war er vorhanden und ich konnte ihn einbinden. Habt ein wenig Geduld. Jede weitere Veränderung der Konfiguration führt unweigerlich dazu, dass es noch länger dauert!
3. “Energy Export Daily” wird erst dann auf tauchen, wenn ihr Stromüberschuss ins Netz eingespeist habt. Ist das noch nicht erfolgt, wird die Riemann Integration nicht aktiv. Siehe Kommentar von @Uwe.
Hinterlasst mir gerne Kommentare wenn die Beschreibung Schwächen hat, oder verbessert werden kann! Vielen Dank an James von dem die Ursprungsversion kam.
Hi
das ist eine super Anleitung, ich habe dazu aber eine Frage und zwar, gibt es auch ein Code bei dem das BKW noch vor dem Shelly sitzt oder kann man diese konfiguration nicht richtig auslesen?
Wenn die PV Anlage im Stromkreis vor der Shelly sitzt, dann wüsste ich nicht, wie das funktionieren soll. Du kannst dann nicht mehr unterscheiden, ob der selbst benötigte Strom aus dem Netz oder von der PV Anlage kommt. Kannst du es nicht ändern, dass die PV Einspeisung hinter der Shelly stattfindet?
Das dürfte nicht funktionieren. Ich kann es mir zumindest nicht vorstellen. Kannst du die Einspeisung nicht hinter die Shelly hängen?
Super Anleitung. Eine Verständnisfrage hätte ich noch, der ‘sensor.power_solargen’ bei “Power Consumption” wird ebenfalls durch die “Power” Entity des Shelly EM beim BKW (in meinem Fall) ersetzt?
Richtig! Und wenn du mehrer “Zähler” hast, zählst du die am besten vorab zusammen:
# Template sensor for values of energy Solar generation (solar_power > 0)
power_solargen:
friendly_name: “Power Solar Generation”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.pv_power’)|float(0) + states(‘sensor.pv_power_2’)|float(0)) > 0 %}
{{ (states(‘sensor.pv_power’)|float(0) + states(‘sensor.pv_power_2’)|float(0)) }}
{% else %}
{{ 0 }}
{% endif %}
Hallo Klaus,
ich hab einen Shelly Pro 3EM im Zählerschrank und einen EM beim Balkonkraftwerk. Wie wirkt sich das auf die Datei aus? Was muss ich ändern?
Grüße
Vielen Dank für die tolle Anleitung! Bei mir kann ich leider die Entitäten nicht auswählen. Scheinen aus dem Skript nicht übernommen zu sein. Leider weis ich nicht wie ich überprüfen kann wo der Fehler liegt. “Check configuration” ist bestanden. In den logs nichts zu sehen. Jemand eine Idee wo ich suchen sollte oder woran es liegen könnte?
Hast du nachdem du die neue Konfiguration getestet hast, Home Assistant auch neu gestartet?
Wenn ja, dann lösche mal den Cache deines Browsers. Home Assistant cached recht viel am Client.
Ich habe es hin bekommen. Fehler war:
In meiner configuration.yaml habe ich “sensor:” über einen Ordner inkludiert. Darin befinden sich wiederum einzelne *.yaml.
Habe dein Skript natürlich mit “Sensor:” am Anfang übernommen. Das weg, , formatiert, nun funktioniert es wie beschrieben. Vielen dank nochmal, auch für den schnellen Support!
Super, ich freu mich, dass es klappt!
Die Arbeit von Ihnen finde ich sehr gut. Bei mir ist das Problem das ich diese “Energy Export Daily” Entitität nicht aus wählen kann in dem Reiter “Return to Grid”.
Ich finde die Ursache dafür jedoch nicht. Hat jemand eine Idee woran das liegen kann?
Wäre für Hilfe dankbar
Aber den Energy Import kannst du hingegen auswählen? Vielleicht kannst du Online mal deine Konfiguration hochladen, damit ich mal einen Blick darauf werfen kann.
Habe leider das gleiche Problem.
Alles wie im Beispiel übernommen, die Entitäten sind auch vorhanden und zählen fleissig aber ich kann sie nicht auswählen..
Auch schade, dass die utility_meter-Entitäten nicht unter Helfer angezeigt werden, wie die manuell erstellten.
Fehler gefunden.
Da HA so abartig viel loggt und DB somit viel zu schnell wächst, habe ich die recorder-config so angepasst, dass ich nur include-entities als Statistik aufzeichne.
Dort müssen dann auch die Sensoren vom utility-meter rein.
recorder:
include:
entity_globs:
– sensor.energy_consumption_*
Nach einem HA-Neustart haben die Entitäten einen Verlauf und können dann auch im Energy-Dashboard ausgewählt werden..
Hattest du schon vorher an der Recorder Config was gemacht? Bei mir ist die noch jungfräulich und bislang konnte ich dein Problem nicht reproduzieren.
Den Energy Import Daily kann ich ja auswählen. Meinst Du die Config.yaml die ich laden soll ? Gerne hänge ich die hier mal an:
sensor:
– platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: “Power Import”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.shelly3em_channel_a_power’)|float + states(‘sensor.shelly3em_channel_b_power’)|float + states(‘sensor.shelly3em_channel_c_power’)|float) > 0 %}
{{ states(‘sensor.shelly3em_channel_a_power’)|float + states(‘sensor.shelly3em_channel_b_power’)|float + states(‘sensor.shelly3em_channel_c_power’)|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: “{{
[ states(‘sensor.shelly3em_channel_a_power’),
states(‘sensor.shelly3em_channel_b_power’),
states(‘sensor.shelly3em_channel_c_power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power export (active_power –
{% if (states(‘sensor.shelly3em_channel_a_power’)|float + states(‘sensor.shelly3em_channel_b_power’)|float + states(‘sensor.shelly3em_channel_c_power’)|float) –
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
– platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
– platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
– platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Hallo Klaus,
Bitte um Hilfe, habe soeben im HA die configuration.yaml wie oben beschrieben angepasst, geprüft, neu gestartet, kann aber leider die 2 Entitäten (Energy Import Daily, Energy Export Daily)im Energy Dashboard nicht auswählen, fällt dir an meiner configuration.yaml etwas besonderes auf?
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text to speech
tts:
– platform: google_translate
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor:
– platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: “Power Import”
unit_of_measurement: “W”
value_template: >-
{% if (states(‘sensor.shelly3em_channel_a_power’)|float + states(‘sensor.shelly3em_channel_b_power’)|float + states(‘sensor.shelly3em_channel_c_power’)|float) > 0 %}
{{ states(‘sensor.shelly3em_channel_a_power’)|float + states(‘sensor.shelly3em_channel_b_power’)|float + states(‘sensor.shelly3em_channel_c_power’)|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: “{{
[ states(‘sensor.shelly3em_channel_a_power’),
states(‘sensor.shelly3em_channel_b_power’),
states(‘sensor.shelly3em_channel_c_power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power export (active_power –
{% if (states(‘sensor.shelly3em_channel_a_power’)|float + states(‘sensor.shelly3em_channel_b_power’)|float + states(‘sensor.shelly3em_channel_c_power’)|float) –
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
– platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
– platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
– platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Danke.
Hallo, ich hatte das gleiche Problem. Bei mir lag es wohl das meine Sensoren anders heißen. Anstelle von
sensor.shelly3em_channel_…
=>
sensor.shelly_em3_channel_…
Nach der Änderung und Neustart konnte ich beide auswählen. Vielleicht mal das prüfen.
Grüße
Scheinbar bin ich ja nicht der einzige der das Problem hat ! Ich habe jetzt testweise erstmal “Energy Export Monthly” ist die kleinste Option die ich dort auswählen kann.
Hat sonst noch keiner eine Lösung für unser Problem gefunden ?
Gruß Lothar
Schau mal unter Entwicklerwerkzeuge / Statistik, bei mir war da ein Problem mit energy_export daily wegen der Einheit, da kannst du auf beheben klicken, dass hat bei mir geholfen.
Markus
Hi Markus,
habe das selbe Problem der Energy Export Daily wird einfach nicht als Sensor bei Return to Grid angezeigt, allerdings kann ich in der Statistik nicht auf beheben klicken, der Punkt wird mir nicht angezeigt.
Alle anderen Sensoren haben eine Einheit (kwh) nur das Feld bei Energy Export Daily ist leer.
Hat jemand eine Idee.
Ich habe zu Testzwecken eine neue Home Assistant Installation gemacht. Ich konnte dies reproduzieren, “Energy Export Daily” war unmittelbar nicht auswählbar. Aber nach einige Stunden hingegen war er vorhanden und ich konnte ihn einbinden. Habt ein wenig Geduld. Jede weitere Veränderung der Konfiguration führt unweigerlich dazu, dass es noch länger dauert!
Ich erhalte im Dashboard leider die Fehlermeldung: statistics_not_defined (für sensor.energy_import_daily
sensor.energy_export_daily)
Woran kann das liegen?
Viele Grüße und vielen Dank für die tolle Anleitung
Benny
Hallo Klaus,
vielen Dank für die Anleitung.
Danke für die super Anleitung.
Eine Frage hätte ich aber noch. Nimmt man bei dem Energiedashboard bei Solar Produktion den Sensor kWh Total oder Wh daily?
Gruß Phil
Hi,
hier keine der “Hilfs”-Variablen aus der yaml-Konfiguration nehmen. Hier musst du deine “PV-Produktionszähler” hinzufügen. Bei mir sind das zwei Shelly Plug S. Siehe Bild unter 3) im Blog Beitrag.
Grüsse,
Klaus
Hallo, das mit dem Produktionszähler ist schon klar, aber hier muss ich doch den Tageswert nehmen, da du bei grid consumption doch auch einen Tageswert nimmst ( Energy import daily)
Oder sehe ich das falsch?
Ja, genau. wenn du alles gleich benannt hast, dann folge genau diesen Schritten mit diesen Bezeichnungen:
1. Klicke unten links im Hauptmenü auf “Settings”.
2. Klicke dann auf “Dashboards”.
3. Klicke dann auf das “Energy” Dashboard.
4. Füge die neue Entity “Energy Import Daily” bei “Grid Consumption” hinzu.
5. Füge die neue Entity “Energy Export Daily” bei “Return to Grid” hinzu.
6. Bei den “Solar Panels” bitte den Zähler für eure PV Produktion hinzufügen. In meinem Fall sind das zwei Shelly Plug S, weil ich zwei Module habe.
Hallo Klaus,
super ausführliche Anleitung! Danke dafür :)
Ich habe das Problem das ich bei Return to Grid die “Energy Export Daily” Entität nicht auswählen kann.
Den Code habe ich 1:1 von dir kopiert, lediglich den Name des Shelly EM3 habe ich geändert, hast du eine Idee an was das liegen kann?
Gruß
Erik
Der Code dürfte nicht vollständig erklärt werden – habe das gleiche Problem. Es reicht offenbar nicht nur die drei Phasen umzubenennen – sondern offenbar müssen auch auch “sensor.power_export” und “sensor.power_solargen” in der jeweiligen Installation angepasst werden. Nur ist mir im Moment nicht ganz klar, was ich da nehmen soll (habe keine Shelly, sondern die SolisCloud wo ich die Verbräuche geliefert bekomme)
Hallo Klaus,
ich hänge mich mal an die Frage von Erik, denn ich habe dasselbe Problem und dieselben Voraussetzungen (Code kopiert, Name des Shellys angepasst, Energy Import Daily kann ich auswählen, Energy Export kommt nicht in der Auswahl vor)
Grüße Sebastian
Hallo Erik,
ich hatte ebenfalls das Problem. Anfangs konnte ich Energy Export Daily und Monthly nicht im Dashboard wählen. Die Energy Import Daily und Monthly standen gleich zur Verfügung. Unter Entwicklerwerkzeug – Statistik waren bei diesen die Einheit leer. Am nächsten Tag war die Einheit bei Energy Export Monthly von alleine verfügbar. Bei Energy Export Daily hat sich auch nach mehreren Tagen/Neustarts keine Einheit “gebildet” obwohl im Verlauf die Leistung angezeigt wurde.
Unter Entwicklerwerkzeug – Zustände habe ich dann die fehlenden Einträge analog der funktionierten ergänzt (unit_of_measurement: kWh und device_class: energy). Ich bin HA Laie muss ich anmerken, die eigentliche Ursache zu finden wäre natürlich besser. Ich habe den Code kopiert und nur den Namen der der Shelly geändert.
Gruß
Mario
Ich habe zu Testzwecken eine neue Home Assistant Installation gemacht. Ich konnte dies reproduzieren, “Energy Export Daily” war unmittelbar nicht auswählbar. Aber nach einige Stunden hingegen war er vorhanden und ich konnte ihn einbinden. Habt ein wenig Geduld. Jede weitere Veränderung der Konfiguration führt unweigerlich dazu, dass es noch länger dauert!
Hallo,
super Arbeit. Ich habe den code auch 1:1 übernommen.
Auch ich habe das Problem das “Energy Export Daily” im Energy Dashboard nicht ausgewählt werden kann.
In den Statistiken der Entwicklertools konnte ich sehen das das Entity “Energy Export Daily” das einzige Entity ist welches keine Unit aufweist. Also kein kWh wie alle anderen gelisteten Entitys. Ich denke deshalb kann es nicht ausgewählt werden. Werte sind vorhanden. Nun ist die Frage warum bei dem Entity der Unit Wert “kWh” nicht vom Sensor übernommen wird.
Irgend jemand eine Idee wie dies gefixt werden kann? Home Assistant bietet mir keinen automatischen fix an.
Gruß
Cleo
Ich habe zu Testzwecken eine neue Home Assistant Installation gemacht. Ich konnte dies reproduzieren, “Energy Export Daily” war unmittelbar nicht auswählbar. Aber nach einige Stunden hingegen war er vorhanden und ich konnte ihn einbinden. Habt ein wenig Geduld. Jede weitere Veränderung der Konfiguration führt unweigerlich dazu, dass es noch länger dauert!
Hallo nochmal,
für alle die Probleme haben “Energy Export Daily” bei der Konfiguration des Energy Dashboards aus zu wählen kann ich einen workaround anbieten. Ich habe keine Ahnung warum es nicht funktioniert vielleicht ist es ein bug im home assistant.
Mir hat es geholfen im GUI einen neuen “Energy Export Daily2” zu erzeugen und diesen Einzubinden.
Hier das Vorgehen:
Links im GUI Einstellungen-> Geräte & Dienste-> Tab Helfer wählen.
Unten rechts Helfer erstellen-> Verbrauchszähler
Neuen Namen vergeben
Bei Eingangszähler “energy_export_sum” wählen
Zähler reset Zyklus “Täglich”
Rest auf standard lassen und Absenden drücken.
Anschließend den gerade erstellten Verbrauchszähler wie oben beschrieben ins Energy Dashboard einbinden.
Bei mir hats geklappt.
Danke dir für den Workaround, jetzt kann ich den “neuen” Zähler angeben.
Er zeigt mir allerdings statistics_not_defined sensor.strom_ruckgabe in der Dashboard config an.
Im Dashboard selbst steht “Netzneutralität konnte nicht berechnet werden” sowie “Selbst verbrauchte Solarenergie konnte nicht berechnet werden”
Hat jemand ähnliche Phänomene, oder muss mir hier auch erstmal 2 Stunden warten bis das Dashboard richtig rechnet?
Gruß
Erik
Bitte warte min 2 Stunden, dann sollten die Meldungen verschwunden sein!
Hallo zusammen,
ich hätte auch eine kurze Frage bzw. zwei:
1. Das sensor.power_solargen wird genau durch was ersetzt? Die Phase wo das BKW drauf hängt vom 3EM oder kommt hier der shelly vom BKW rein? Es kommt ja insgesamt 4 mal vor, wo kommt genau was rein?
Bei mir saldiert das Skript aktuell die Einspeisung plus den Netzbezug zusammen, was ja falsch ist.
2. Der Sensor Daily export erscheint bei mir, allerdings habe ich in der config beim Dashboard folgenden Fehler dazu: Unerwartete Geräteklasse
Die folgenden Entitäten haben nicht die erwartete Geräteklasse:
sensor.energy_export_daily
Wie behebe ich dieses Problem?
Vielen Dank vorab
Hallo gemeinsam,
ich versuche gerade die Anzeige im Energy Dashboard von Kilowatt auf Watt bzw. von Kilowattstunden auf Wattstunden anzupassen.
Wo bzw. wie kann ich das denn ändern?
VG J
Hallo Johannes,
das weiß ich offen gesagt auch nicht. Hat jemand anderes eine Idee?
Grüsse,
Klaus
Hallo!
Vielen danke für die Anleitung!
Habe leider ein Problem welches ich nicht in den griff bekomme :(
Unter Entwicklerwerkzeuge->Zustände steht “sensor.energy_export_monthly” und “sensor.energy_export_sum” auf unknown.
Folglich kann ich auch im Energiedashboard “Energy export Daily” nicht auswählen.
Habe mittlerweile 24 stunden gewartet.. Davor schon x-male meine Shelly Sensoren überprüft, komme aber auf keinen Fehler. Mich verlässt langsam der Mut :(
Über eine Hilfestellung oder Tipp würde ich mich sehr freuen, bin leider noch blutiger Anfänger was Home Assistant angeht.
Anbei meine config.yaml
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text to speech
tts:
– platform: google_translate
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor:
– platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: “Power Import”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.shellyem3_485519dc3fef_channel_a_power’)|float + states(‘sensor.shellyem3_485519dc3fef_channel_b_power’)|float + states(‘sensor.shellyem3_485519dc3fef_channel_c_power’)|float) > 0 %}
{{ states(‘sensor.shellyem3_485519dc3fef_channel_a_power’)|float + states(‘sensor.shellyem3_485519dc3fef_channel_b_power’)|float + states(‘sensor.shellyem3_485519dc3fef_channel_c_power’)|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: “{{
[ states(‘sensor.shellyem3_485519dc3fef_channel_a_power’),
states(‘sensor.shellyem3_485519dc3fef_channel_b_power’),
states(‘sensor.shellyem3_485519dc3fef_channel_c_power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power export (active_power –
{% if (states(‘sensor.shellyem3_485519dc3fef_channel_a_power’)|float + states(‘sensor.shellyem3_485519dc3fef_channel_b_power’)|float + states(‘sensor.shellyem3_485519dc3fef_channel_c_power’)|float) –
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
– platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
– platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
– platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Hallo,
würde das ganze auch mit einer FritzDect 200 Steckdose in Verbindung mit dem Shelly 3m funktionieren?
Ja, das müsste auch mit einer Fritzdect klappen, wenn du diese in HomeAssistant integrieren kannst. Davon gehe ich aber aus!
Vielen Dank,
es hat tatsächlich geklappt mit der Fritz Dect Steckdose.
Dank deiner Beiträge kann sogar ich als absoluter Anfänger etwas mit Homeassistant basteln.
Anfänglich hatte ich Probleme, da mein Shelly3em mit komplett anderen Bezeichnungen als in deinem Script daher kam. Konnte es aber fixen durch umbenennen der Entitäten heißt es glaub.
Als nächstes möchte ich eine Powerstation bei Stom Überschuss laden, da hast du ja auch eine schöne Anleitung um die entsprechende Steckdose zu schalten.
Danke nochmals
Hallo,
das Projekt läuft ja jetzt theoretisch schon eine Weile. Hast du mal die Werte vom Zähler mit den Werten in HomeAssistant verglichen? Passt das zueinander? mich würde mal interessieren wie groß die Abweichung ist.
Beste Grüße
Hallo Christian,
leider habe ich erst vor 4 Wochen einen Zweirichtungszähler durch den Netzbetreiber installiert bekommen. Auf Basis des ersten Monats liegt die Abweichung bei 5%, sowohl beim Bezug aus dem Netz als auch für die Einspeisung. in 2-3 Monaten mach ich hier mal ein Update mit validen Vergleichen.
Grüsse, Klaus
Hallo, gibts schon neue Erkenntnisse? :)
Hallo aus Wien,
zuerst danke für den tollen Skript! Ich als Laie, würde das so nicht hinbekommen ohne mich sehr in Python einzuarbeiten.
Ich habe die Namen des 3EM Shelly angepasst und aktuell läuft alles gut. Nur auf den Sensor “Energy Export Daily” warte ich schon seit mehr als einen halben Tag. Der Sensor “Energy Export Monthly” war nach ein paar Stunden verfügbar und habe ihn temporär eingesetzt anstelle des Daily Sensors.
Ist das so normal, oder habe ich etwas falsch gemacht? Welcher Sensor misst den Solarstrom (habe den Shelly EM in Verwendung)
LG Rudi
Hast du HomeAssistant testweise auch mal neu gestartet?
ja schon mehrmals
LG Rudi
Was mir aufgefallen ist, ist dass der Export Daily sensor im Übersichtsdashboard sichtbar ist und Daten anzeigt. Allerdings ohne Einheiten Kwh.
ja genau das problem habe ich auch …. auch nach 48 stunden
wenn man unter zustand bei export daily = unit_of_measurement: kWh einfügt geht es auch für paar stunden bis es wieder auf ohne kWh angepasst wird
Hallo,
ich habe leider das selbe Problem. Auch nach mehreren Tagen ist Export Daily nicht auswählbar.
Auch bei mir ist der Sensor unter Statistik sichtbar mit Daten, aber ohne Einheit.
Ich habe mehrfach neugestartet, gewartet und auch schon das Skript entfernt und neu aufgesetzt.
Leider komme ich nicht weiter.
Hat noch jemand eine Idee?
Gruß
Sascha
Hallo,
bei mir das gleiche Problem. Export Daily sensor lässt sich auch nach Neuinstallation, tagelangen Warten etc. nicht integrieren. Bei mir wird der sensor auch unter Statistik angezeigt, nur ebenfalls ohne Einheit.
Hat noch jemand eine Idee, ich bin am Verzweifeln?
Danke
Sascha
Hallo zusammen, erstmal vielen Dank für die Zusammenfassung.
Ich habe das Script so übernommen (ausschließlich die Entitäts-ID angepasst).
Allerdings steht überall “Unbekannt” oder “Nicht verfügbar”, Wartezeit ca. 2h. Muss ich noch länger warten oder wie kann ich mir den Fehler erklären?
Vielen Dank und Gruß
Erst einmal, super Arbeit! Das hat mir extrem geholfen. Zudem ist die Genauigkeit auch wirklich gut! Alles klappt.
Aber ich habe eine Verständnisfrage.
Im Export / Return to grid, werden natürlich die Daten sauber erfasst. Dass soll ja so auch sein.
Problem ist aber, in der Gesamttabelle wird dieser Wert ebenfalls mit einbezogen so das die „return to grid“ Werte vom Verbrauch Einfalls abgezogen werden. Das stimmt doch bei den neuen Smart Metern nicht mehr. Der Strom den ich einspeise, der ist ja quasi futsch.
Also müsste der Wert doch aus der Berechnungstabelle ausgenommen werden?!?
Hallo,
danke für das tolle script. Ich bastele auch schon seit Tagen an meiner Solar Inegration.
Habe eine Frage an alle Shellyem3 Benutzer:
states(‘sensor.shelly3em_channel_a_power’),
states(‘sensor.shelly3em_channel_b_power’),
states(‘sensor.shelly3em_channel_c_power’)
das scheinen ja die einzelnen Leistungsmessungen der drei Phasen zu sein, gemessen in Watt.
Wenn jetzt die Solaranlage bei euch auf einer Phase mehr einspeist als verbraucht wird, wird der Wert dann negativ beim Shelly? und wird Dieser dann als z.B “Phase A: -120W” angezeigt?
Danke und Gruß
Dirk
Yes, da sollte dann ein negativer Wert stehen. Schau mal ich habe im einen Screenshot von Homeassistant eingefügt: Meine PV läuft auf Phase C und da ist es negativ:
@IAMKLAUS:
Dankeschööön!
Habe keinen Shelly, versuche das aber gerade für mein Home Energy Meter Gen5 System anzupassen ;-)
Die Fehlermeldung “Unerwartete Geräteklasse” beim Hinzufügen der Entitäten zum Energie Dashboard hatte ich auch. Lösung ist, die Template Sensoren wie power_import, power_export, power_consumption, power_solar benötigen jeweils noch folgende Zeile:
device_class: power
Die Fehlermeldung beim Hinzufügen der Entitäten zum Energie Dashboard, dass diese keine Statistik haben, hatte ich auch, hier war die Lösung, dass mach sicher stellen muss, dass die Recorder Komponente nicht nur die Sensoren sondern auch die Utility Meter mit aufzeichnet, also auch die mit _sum und _sum_cost am Ende. Beispiel:
recorder:
include:
entities:
– sensor.power_export
– sensor.power_import
– sensor.power_consumption
– sensor.power_solar
– sensor.energy_consumption_sum
– sensor.energy_consumption_sum_cost
– sensor.energy_export_sum
– sensor.energy_export_sum_cost
– sensor.energy_import_sum
– sensor.energy_import_sum_cost
– sensor.energy_solar_sum
– sensor.energy_solar_sum_cost
Hallo (IAM)Klaus, auch von mir ein herzliches Dankeschön für diesen Blogbeitrag, der mir sehr geholfen hat, mehr vom ganzen Thema zu verstehen.
Anfangs ging es mir wie vielen, die hier kommentiert haben, dass nichts ging. Daher habe ich versucht zu verstehen, woran es liegen kann und habe mir erstmal https://siytek.com/home-assistant-automation-tutorial-for-dummies/ angesehen um das Thema Entity und ID zu verstehen.
Dabei ist mir klargeworden, dass man das obige Skript nur 1:1 nutzen kann, wenn man die verwendeten Entitäten der Shelly auch so benennt, wie sie im Skript stehen, oder im Skript so benennt, wie sie nach der Integration der Shelly benannt wurden.
Ich habe daher mit Notepad++ im Skript
‚sensor.shellyem3_‘ durch ‚sensor.shellyem3_485519dc0971_‘ ersetzt, wobei shellyem3_485519dc0971 die unikale ID meiner Shelly ist und ihr natürlich Eure nehmen müsst.
Voila nach 1h klappt alles. Ich würde mich freuen, wenn es anderen hilft.
Ich möchte mich dem Dank der Vorredner an Klaus anschließen :-)
Leider muss ich mich auch in die Reihe derer einreihen, die „Energy Export Daily“ im Energiedashboard nicht auswählen können :-(
Ich habe alles beachtet und versucht (Neu starten, geduldig warten). Ich kann im Dashboard eine Gauge mit “Energy Export Daily” erstellen, *NUR* im Energy-Dashboard ist die Entität nicht auswählbar.
In meiner Not habe ich mal probiert einen zweiten Sensor für die Riemann-Summe des Exports und ein Utility Meter (Energy Export Daily3) zu erstellen. Es war sofort auswählbar und nach wenigen Minuten begann die Statistik.
Hat irgendjemand eine Idee, warum das so ist?
Hallo mit einander ,
vielem dank erstmal für die tolle Anleitung. Ich habe siebumgesetzt und sie funktioniert auch.
Nur ich habe noch ein Problem! Ich habe insgesamt 3 shelly 3em. Wie kann ich jetzt alle 3 hinzufügen? Welchen Namen muss ich dann alles ändern? reicht es das Skript 3 mal auszuführen mit 3 verschiedenen shelly namen angepasst? Da komme ich grade nicht weiter. Weiß einer Rat? Danke!
Hast du eine Übersicht wie dein Aufbau aussieht? Hast du 3 Stromanschlüsse in einem Haus die du überwachen willst oder hast du 3 Häuser?
Nach 2 Tagen intensiver Analyse und den beiden oben stehenden “verzweifelt-hoffenden” posts glaube ich die Ursache für das Problem mit “Energy Export Daily” gefunden zu haben – auch warum es bei manchen gleich geht und bei manchen auch nach längerer Wartezeit nicht. Bei mir ist es nämlich aktuell noch so, dass ich mit der 3em erstmal testweise messe und dort wo ich messe erfolgt Null-Stromeinspeisung. Also ist der Wert für “power_export” konstant Null (Zeile 30). Mit einem konstanten Wert startet allerdings die Berechnung der Riemannsumme (Zeile 60) nicht/nie. Ich habe daher in Zeile 30 folgendes eingesetzt:
{{ -(range(1, 49) | random) }}
Damit liefert der sensor “power_export” eine Zufallszahl, die allerdings weiterhin konstant ist und nichts geht.
Es klappt erst, wenn man am Ende des Skriptes noch dafür sorgt, dass der Sensor z.B. 1x pro Sekunde aktualisiert wird.
Bei den Script-Snippets hat mir ChatGPT super geholfen.
Ich hoffe das hilft auch dem einen oder anderen :-)
#### Am Ende einfügen
automation:
– alias: “Update Random Number Sensor”
trigger:
platform: time_pattern
minutes: “/1”
action:
service: homeassistant.update_entity
entity_id: sensor.power_export
Danke für deine investigative Tätigkeit :-) Ich habe deinen Hinweis oben in der Anleitung mit aufgenommen.
Halo Uwe,
danke für Deine Recherche. Leider führt aber die Erweiterung:
Zeile 44 (bei mir):
{{ -(range(1, 49) | random) }}
und am Ende zugefügt:
automation:
– alias: “Update Random Number Sensor”
trigger:
platform: time_pattern
minutes: “/1”
action:
service: homeassistant.update_entity
entity_id: sensor.power_export
zu vielen Fehermeldungen:
=============
duplicated mapping key (116:1)
113 | source: sensor.energy_consu …
114 | name: Energy Consumption Mo …
115 | cycle: monthly
116 | automation:
——-^
117 | – alias: “Update Random Number …
118 | trigger:
============
Wenn man bei den Entwicklerwerkzeuge das YAML prüfen lässt kommt folgendes:
Integration error: service – Integration ‘service’ not found.
Integration error: entity_id – Integration ‘entity_id’ not found.
Integration error: minutes – Integration ‘minutes’ not found.
Integration error: – – Integration ‘–’ not found.
Integration error: platform – Integration ‘platform’ not found.
Integration error: trigger – Integration ‘trigger’ not found.
Integration error: action – Integration ‘action’ not found.
Gruß
Rudi
Hallo Rudolf,
der Fehler “duplicated mapping key” wird mir im Fileeditor auch angezeigt. Trotzdem klappt es (irgendwie).
Unter Entwicklerwerkzeuge finde ich keine weiteren Fehler. Komisch. Mir ging es eigentlich auch nur drum zu verstehen, warum es bei Manchen (und mir) gar nicht ging.
Nimm mal die Invertierung der Zufallszahl in besagter Zeile raus: Aus
{{ -(range(1, 49) | random) }} mache {{ range(1, 49) | random }}. Da hatte bei mir im Energy-Dashboard was falsch saldiert.
Hallo,
so ich habe für mich eine Lösung gefunden:
Ans Ende der YAML config folgendes stellen:
homeassistant:
customize:
sensor.energy_export_daily:
unit_of_measurement: kWh
device_class: energy
Seither hat der Sensor Energy_export_daily eine Einheit (kWh) und ist im Dashboard abrufbar!
In jeden Fall noch bei den Entwicklerwerkzeuge/Statistik nach Problemen suchen und diese beheben lassen (so war es bei mir)
Nun läuft alles gut. Den Till habe ich von HA Forum!
Viel Erfolg!
Hallo,
nach meinen Post hier noch eine weitere Hilfestellung da der Export Sensor immer wieder verloren ging…..
Zuerst benötigt HA eine fixe IP Adresse. Dies ist bei Einstellungen/System einzustellen. Bei den Shelly (in meinen Fall der 3EM und der EM) ist noch folgendes zu machen (siehe Bild). Seither klappt alles super.
Also bei mir bleibt der Energy Export Daily nicht verfügbar für das Energie Dashboard.
Ich habe im Sensor folgende Settings angezeigt so das es eigentlich passen sollte:
sensor.energy_export_daily
Energy Export Daily
1.16 state_class: total_increasing
source: sensor.energy_export_sum
status: collecting
last_period: 0.54
last_valid_state: 1.70
meter_period: daily
cron pattern: 0 0 * * *
last_reset: 2023-09-05T22:00:00.019139+00:00
icon: mdi:counter
friendly_name: Energy Export Daily
unit_of_measurement: kWh
device_class: energy
Die gleichen Settings natürlich bis meter-period und cron pattern habe ich beim Energy Export Monthly und diesen könnte ich im Dashboard auswählen.
In einem Standard Dashboard kann ich den Export Daily natürlich einwandfrei anzeigen lassen.
Ich bin ratlos. und natürlich habe ich immer Stunden gewartet. Auch habe ich heute dafür gesorgt das 1kw export überschritten wird damit keine 0 vorne steht. Alles nix gebracht
Also ein sher kurioser Weg den jemand hier schon gegangen ist hat nun funktioniert!
Ich habe ein weiteres UtilityMeter für Export Daily angelegt:
energy_export_daily2:
source: sensor.energy_export_sum
name: Energy Export Daily2
cycle: daily
Das war dann innerhalb Minuten verfügbar. Verstehe das wer will.
Möglicherweise sollte man das Meter nicht anlegen bis Daten unter dem sensor.energy_exort_sum verfügbar sind.
Ich habe die erste Konfig gemacht während meine OpenDTU keine Daten geliefert hat weil es Nacht war.
Ich würde mal als Tipp mit aufnehmen die gesamte Konfig mit Ausnahme des UtilityMeter energy_export_daily anzulegen, für einige Stunden laufen zu lassen und dann diese Utility Meter hinzuzufügen.
Damit sind beim erstellen Daten da und ich vermute das damit die richtige Zuordnung passiert.
Hallo!
Bis zum Core 2023.4.6 hat alles super funktioniert.
Alle Updates des Cores seit dem haben bei mir folgenden Fehler:
PowerConsumption zeigt “Unbekannt” an, wenn ich keinen Strom beziehen.
Beziehe ich Strom, bleibt der Wert irgendwann hängen auf z.B. 560W und geht nicht auf Null, wenn ich Strom mit der PV erzeuge und einspeise.
Ich spiel dann das Gesamt-Backup mit Core2023.4.6. ein, damit geht alles super.
Aktuell sieht meine Installation so aus:
Home Assistant 2023.4.6
Supervisor 2023.06.1
Operating System 10.2
Frontend 20230411.1 – latest
Kann mir jemand helfen, wo ich ansetzen kann, dass es auch mit nem neuerem Core wieder funktioniert?
LG Daniel
Hallo Daniel,
ich hatte zuletzt die Mai-Version und hier keine Probleme festgestellt. Über deinen Kommentar hier hab ich reingeschaut und gesehen, dass ich das Juni das letzte Update noch nicht gemacht habe. Dieses habe ich vor ca. 15 min gemacht. Diesmal hat das Update ungewöhnlich lange gebraucht, fast 10 min bis alles wieder da war. Bis jetzt scheint aber alles wie gewohnt zu funktionieren. Hier meine Daten:
Home Assistant 2023.6.0
Supervisor 2023.06.1
Operating System 10.2
Frontend 20230607.0 – latest
Wie du siehst unterscheidet sich bei uns die Frontend Version und die Home Assistant Version. Hast du den Server neu gestartet und mal deinen Browser Cache geleert? Irgendwie scheint dein Update noch nicht durch zu sein oder ist hängen geblieben.
LG Klaus
Hallo Klaus,
vielen lieben Dank auch von meiner Seite für die Yaml-Datei. Bei mir hat alles gut geklappt. Ich musste nur die Shelly Sensoren umbenennen müssen (Namen der Entitäten aus meiner Shelly Integration) und natürlich meine PV Anlage für den Energie Input (Name aus meiner OpenDTU).
Ich bin mit allen Werten so weit auch einverstanden die erhoben / gezeigt werden, bis auf einen.
Im Energie Dashboard wird die Energieverteilung noch richtig wie folgt dargestellt:
Solar 3,5 kwh
Netz – 1,4 kwh (Einspeisung) / + 0,4 kwh (Bezug)
Zuhause 2,4 kwh
Dann habe ich noch eine Anzeige die heisst “Ins Netz eingespeist” und dort steht jetzt 1,02 kwh. Das ist in meinen Augen nicht richtig, da ich ja 1,4 kwh eingespeist habe und nicht die Differenz zwischen Einspeisung und Bezug (1,4 kwh – 0,4 kwh= 1,02 kwh)
Entweder ist also der Name der Anzeige falsch oder die Berechnung. Kann man dies irgendwo ändern?
Vielen lieben Dank,
Christian
Hallo Christian,
kannst du einen Screenshot hier als Kommentar einfügen?
Danke,
Klaus
Hallo Klaus,
anbei der Screenshot.
Hier ist die deutsche Übersetzung der UI leider irreführend. Was das unten stehende Barometer sagen will: Du hast 1,4 kWh eingespeist und 0,4 kWh bezogen. 1,4 – 0,4 kWh = 1,02 kWh. Wenn du Home Assistant in Englisch betreibst, steht da: “Net consumed from the grid”. “Ins Netz eingespeist” ist definitiv die falsche Übersetzung.
Das Barometer soll im übrigen nur ein Indiz geben, ob deine PV Anlage die richtige Größe besitzt. In deinem Fall sagt Home Assistant, dass deine PV Anlage eigentlich zu groß dimensioniert ist, bzw. der Grundverbrauch zu gering ist. Ist stell aber generell die Sinnhaftigkeit des Barometers in Frage. Die Kachel “Energy Distribution” ist viel wichtiger.
Eigentlich ist das genau richtig mit “Ins Netz eingespeist” Er hat 1.4 kwh eingespeist und nur 0.4 bezogen. Damit hat er immer noch 1,02kwh eingespeist. Ist der zeiger auf lila hast du mehr eingespeist als bezogen. Für das optimumm sollte der Zeiger gerade nach oben zeigen. (Es sei denn du bist Einspeiser)
Hallo Klaus,
danke für die Mühe! Ja die englische Beschreibung macht in der Tat mehr Sinn. Ich schaue in der Regel auch nur auf die Kachel „Energieverbrauch“ (siehe Anhang), wo ich alle Informationen auf einen Blick habe.
Ja ich verschenke viel Strom, aber eine kleinere Anlage hätte nicht viel weniger gekostet und ich hätte über den Tag nicht so eine gute Abdeckung (ein Westmodul / ein Ostmodul). Eher evtl mal einen 1kwh Speicher nachrüsten wenn die Technik bezahlbar und erprobt ist.
LG
Christian
Kleiner Korrekturvorschlag und wichtiger Hinweis, damit die Einbindung funktioniert:
Im Artikel unter 2. fehlt ein Hinweis, dass im Code auch die Entität “sensor.power_solargen” überprüft werden muss, da wahrscheinlich der Power Sensor des Shelly Plug S am Balkonkraftwerk einen anderen Namen trägt.
Wenn man diesen sofort ersetzt, klappt auch die Konfiguration des Energiepanels sofort, vorausgesetzt die Sonne scheint und es entsteht ein Überschuss, der eingespeist wird.
Hallo,
ich stehe auch vor dem “Problem”, dass “export_Daily” nicht ausgewählt werden kann. Dann habe ich deinen Ansatz verfolgt, jetzt wird “energy export daily” angezeigt aber ohne Einheit (siehe Screenshot), und im Dashboard immer noch nicht auswählbar?!
VG
Thomas
Magst du vielleicht mal den neuen “Konfigurator” probieren? Weil einige Schwierigkeiten mit der Yaml-Sache haben, habe ich etwas gebaut, dass die Erzeugung der Konfiguration vereinfachen soll: https://iamklaus.org/de/home-assistant-config-generator
Danke,
Klaus
Jetzt habe ich gestern zum Test mal den “Export monthly” verwendet, hat funktioniert.
Heute zeigt mir die Energieverteilungs-Grafik allerdings auch für den Netzbezug 0 kWh an ?
Energy import daily steht auf 0 kWh obwohl natürlich STrom aus dem Netz verbraucht wird und noch kaum PV erzeugt wird.
Achja, für die fehlenden kWh beim “daily” hatte ich einen Workaround benutzt und manuell hinzugefügt…über Nacht wieder verschwunden :-(
Super Anleitung. Vor allem hat sie mir den Knoten im Kopf durchgehauen, dass der Hauszähler ein saldierender Zähler ist und der 3EM eben von Haus aus nicht.
Ich habe das ganze etwas angepasst, sodass die Template-Sensoren der “modernen” Integration folgen und die Statistikfunktionen genutzt werden können, den Rest hab ich mir schamlos geklaut. Vielen Dank.
https://git.commander1024.de/Commander1024/homeassistant-config/commit/4d2c5b0cbaf15c4b4bd63d789630887a47e23c03
Cool! Ich wollte die Konfi ohnehin mal auf das neue Format aktualisieren und stehl mir dazu deine Vorarbeit, wenn ok ist.
Aber selbstverständlich. Das ist ja der Open-Source Gedanke und deswegen hab ich das hier gepostet.
Guck Dir die Files selbst (unabhängig vom git-diff) noch mal an, ich hatte noch Winzigkeiten danach geändert wie Rundung auf eine Nachkommastelle.
Hallo, ich bin noch ziemlich neu in dem Thema, habe aber versucht mich aktiv einzubringen, besonders in die häufige Frage warum der DailyExport oft nicht funktioniert. Den Grund habe ich allerdings mehr durch Heuristik als “Wissen und Verstehen” ermittelt und hier dokumentiert: https://www.grunewald.one/solarpower-homeautomation/
Frage: Was hat mit der “modernen” Integration auf sich? Ist das Splitten der YAML-Dateien?
Freue mich auf eine Antwort und ergänze dann gern meinen Blog. LG, Uwe
Hallo Uwe,
ich hatte ja weiter oben schon meine Probleme geschildert. Ich bin jetzt deinem Beispiel gefolgt, und habe meine Sensoren (3EM und 1PM) analog wie du “grid” und “solar” genannt und dein YAML übernommen.
Im Grunde leider das fast gleich Ergebnis…”export daily” steht nicht zur Auswahl im Energy-Dashboard, und beim Sensor fehlt auch die Einheit.
Was neu ist, ich kann im Energy-Dashboard jetzt auch keine “solar_power” auswählen, nur “solar_energy”?!
Du, oder irgendjemand eine Idee?
Ich bin noch blutiger HA-Anfänger, aber das lässt mich schon ein bisschen verzweifeln…
VG
Thomas
Hallo Thomas, da auch ich mich noch als Anfänger bezeichnen muss und über die Ferne ist guter Rat etwas teuer. Wie sehen denn die Werte Deiner Sensoren aus? S. Screenshot. Die rot markierten Werte dürfen nicht nicht null sein. Da Du meinen Blog gelesen hast findest Du meinen Kontakt dort und kannst gern mal direkt einen Screensharing-Termin mit mir machen. Direkt geht es vielleicht einfach/schneller als über eine “anonyme” Diskussion ;-)
Sorry, ich muss natürlich “solar_energy” auswählen…es wird zu viel :-(
Jetzt bekomme ich aber plötzlich folgenden Fehler:
Unexpected device class
The following entitites do not have the expected device class:
– sensor.energy_export_daily
Ich dreh echt durch…ganz abgesehen davon, dass export daily immer noch ohne Einheit daher kommt – das kann ich 100x manuell in die entity eintragen. Bei der nächsten Wert-Änderung ist es wieder weg…verstehe ich nicht.
Bitte um Hilfe!!!
Danke
Thomas
Kontaktiere mich doch bitte mal direkt. Ich fürchte, über das Forum wird es nix
Magst du vielleicht mal den neuen “Konfigurator” probieren? Weil einige Schwierigkeiten mit der Yaml-Sache haben, habe ich etwas gebaut, dass die Erzeugung der Konfiguration vereinfachen soll: https://iamklaus.org/de/home-assistant-config-generator
Danke,
Klaus
Hallo zusammen, ich bin ebenfalls neu im Thema und schlage mich mit der HA-Integration des Shelly 3EM rum. Ich habe meine config.yaml entsprechend der Anleitung editiert und lediglich die Bezeichnung meiner Sensoren angepasst. Prüfung der Config in Entwicklerwerkzeugen gab keine Fehler. HA Neustart klappt auch. Nur leider kann ich im Energie Dashboard weder “Daily Import” noch “Daily Export” auswählen. Zur Verfügung stehen mir nur “energy_import_sum” und “energy_export_sum”. Wenn ich diese bei “Netzverbrauch” bzw. “Zurück ins Netz” auswähle, erhalte ich folgende Fehlermeldungen:
statistics_not_defined
-sensor.energy_export_sum
-sensor.energy_import_sum
Entität nicht verfügbar
Der Status dieser konfigurierten Entitäten ist derzeit nicht verfügbar:
-sensor.energy_export_sum (unavailable)
-sensor.energy_import_sum (unavailable)
Hat jemand eine Idee wo der Fehlerliegen könnte?
Danke, Michael
Achso, hier meine config.yaml :
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text-to-speech
tts:
– platform: google_translate
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor:
– platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: “Power Import”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.shelly3em_485519DCAF16_channel_a_power’)|float + states(‘sensor.shelly3em_485519DCAF16_channel_b_power’)|float + states(‘sensor.shelly3em_485519DCAF16_channel_c_power’)|float) > 0 %}
{{ states(‘sensor.shelly3em_485519DCAF16_channel_a_power’)|float + states(‘sensor.shelly3em_485519DCAF16_channel_b_power’)|float + states(‘sensor.shelly3em_485519DCAF16_channel_c_power’)|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: “{{
[ states(‘sensor.shelly3em_485519DCAF16_channel_a_power’),
states(‘sensor.shelly3em_485519DCAF16_channel_b_power’),
states(‘sensor.shelly3em_485519DCAF16_channel_c_power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power export (active_power –
{% if (states(‘sensor.shelly3em_485519DCAF16_channel_a_power’)|float + states(‘sensor.shelly3em_485519DCAF16_channel_b_power’)|float + states(‘sensor.shelly3em_485519DCAF16_channel_c_power’)|float) –
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
– platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
– platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
– platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Hallo Michael,
wie lange hast du den gewartet?
Magst du vielleicht mal den “Konfigurator” probieren? Weil einige Schwierigkeiten mit der Yaml-Sache haben, habe ich etwas gebaut, dass die Erzeugung der Konfiguration vereinfachen soll: https://iamklaus.org/de/home-assistant-config-generator
Danke,
Klaus
Hallo Klaus,
ich habe den Fehler gefunden. Ich hatte tatsächlich nur einen Schreibfehler in der Shelly-Sensor-Bezeichnung ;-)
Vielen Dank aber trotzdem für Deine Unterstützung!
Gruß, Michael
Hallo,
vielen Dank für die Anleitung. Im Prinzip hat alles geklappt.
Nur habe ich aktuell keinen Stromverbrauch in der Nacht. Scheint als würde der erst starten
wenn die Wechselrichter aufgewacht sind.
Habe ich da etwas übersehen?
Gruß Heinz
Hast du mal die Shelly direkt abgeschaut, ob du da Nachts einen Stromverbrauch siehst? Nicht, dann die Shelly oder HomeAssistant Nachts nicht erreichbar ist.
Moin,
ich häng mich hier auch mal dran. Erstmal vielen Dank für die super Arbeit! Ich hab seit ein paar Tagen ein BKW und habe mich nach stundenlangem Herumgoogeln für die Variante Shelly 3EM plus Shelly Plug S plus Home Assistant entschieden. Ich hatte erst überlegt, ob ich mir den (sauteuren und kaum lieferbaren) Smart Meter von Solarman hole; den hätte man dann in die Solarman-App einbinden können. Aber wie gesagt – teuer, kaum zu bekommen, und einem Forenthread zufolge hat das Teil offenbar dasselbe Problem wie der Shelly 3EM, dass er nicht korrekt saldiert.
Dein Konfigurator scheint im Moment nicht zu funktionieren, jedenfalls passiert bei mir nach Klick auf “Generate Config” nichts. Allerdings bin ich einigermaßen zuversichtlich, dass ich die configuration.yaml korrekt geändert habe. Die Strings meiner 3 Shellysensoren habe ich (sehen im Prinzip so aus wie bei Dir, nur dass hinter “shelly3m” noch die MAC-Adresse steht). Dass es passen müsste, mache ich auch daran fest, dass als ich unmittelbar nach dem Restart bei der Auswahl der Entity “Energy Import Daily” irgendein gelber Error aufpoppte, was nicht mehr der Fall war, als ich es ein paar Minuten später nochmal probierte. Und die Werte im Energy Panel machen auch Sinn.
Was bis jetzt nicht geht, ist, die Entity “Energy Export Daily” auszuwählen. Diese ist im Dropdownfeld nicht vorhanden.
Jetzt hast Du ja gesagt, dass es ein paar Stunden dauern kann, bis da was kommt. Bei mir ist es jetzt aber schon ca. 12 Stunden her, dass ich da rumgebastelt habe.
Frage: Kann es sein, dass diese Entity erst dann erscheint, wenn das BKW tatsächlich etwas ins Netz einspeist, sprich also, wenn auf der Phase, wo das BKW hängt, zu irgendeinem Zeitpunkt weniger Strom verbraucht wurde, als das BKW erzeugt? Wenn das so wäre, dann wäre das möglicherweise der Grund, warum ich den Eintrag noch nicht sehe, da dieser Fall in den letzten Stunden nicht eintrat. An der Phase, wo das BKW hängt, hängt u.a. ein (kleines) Meerwasseraquarium und eine Poolpumpe; beides zusammen zieht auf jeden Fall mehr, als das BKW erzeugt. Leider hab ich heute tagsüber nicht dran gedacht, mal eins von beiden auszuschalten, um auf der Phase tatsächlich einen Überschuss zu haben, sonst wüsste ich bereits, ob’s daran liegt.
Danke!
Probiere es nochmal. Wahrscheinlich hat du keinen Cookie Consent gegeben. Wenn der nicht gegeben war, hat es einen Javascript Fehler gegeben.
Jo, daran lag’s, danke!
Ich krieg’s trotzdem nicht hin… :(
Ich hab mit Deinem Konfigurator die Config erstellt. Die Sensornamen der Shelly 3EM beinhalten bei mir die MAC-Adresse, heißen also
sensor.shellyem3_xxxxxxxxxxxx_channel_a_power
sensor.shellyem3_xxxxxxxxxxxx_channel_b_power
sensor.shellyem3_xxxxxxxxxxxx_channel_c_power
Das BKW hängt an einem Shelly Plus Plug, dessen Sensor heißt
sensor.pv_anlage_power
Das Hinzufügen von “sensor.energy_import_daily” bei “Netzverbrauch” und “sensor.pv_anlage_energy” bei “Solarproduktion” funktioniert. Wenn ich aber “sensor.energy_export_daily” bei “Zurück zum Netz” hinzufüge, kommt der hier in den Kommentaren mehrfach erwähnte Fehler
Unerwartete Geräteklasse
Die folgenden Entitäten haben nicht die erwartete Geräteklasse:
– sensor.energy_export_daily
Im Energiepanel wird “Energy Export Daily” unten aufgeführt, steht aber permanent auf “-0 kWh”.
Die von Andreas in seinem Kommentar vom 25.05. gezeigte Lösung löst das Problem bei mir nicht. Was hingegen zur Lösung führt, ist die Lösung von Rudolf vom 05.06., also an’s Ende der config folgendes anhängen:
homeassistant:
customize:
sensor.energy_export_daily:
unit_of_measurement: kWh
device_class: energy
Damit erscheint der o.g. Fehler beim Hinzufügen des Sensors nicht mehr. Allerdings ist es genau wie vorher, d.h. im Energiepanel wird “Energy Export Daily” unten aufgeführt, steht aber permanent auf “-0 kWh”.
Daran ändert sich auch nach längerem Warten nichts. Den Punkt, dass hier erst was passiert, wenn das BKW mehr in die Phase einspeist, als auf dieser Phase verbraucht wird, hatte ich selber schon rausgefunden; daran kann’s aber auch nicht liegen. Das BKW produziert jetzt schon seit mind. 3 Stunden einen Überschuss auf seiner Phase (Phase 1). Der Verbrauch auf Phase 1 lt. Shelly 3M liegt aktuell bei ca. minus 450W.
Wenn Du noch eine Idee hast…
TIA!
Wenn du eine Möglichkeit des Screensharing hast, können wir uns dass nächste Woche mal gemeinsam ansehen?
Oh, das wäre natürlich super! Können wir gerne machen. Du siehst ja meine Mailadresse. Schreib mir einfach kurz, dann antworte ich und wir machen was aus.
Vielleicht noch ein Hinweis, wobei ich nicht glaube, dass es damit zu tun hat: Ich betreibe HA erst seit ein paar Tagen und in der Core-Version auf meinem Qnap-NAS. Da ich jetzt schon hin und wieder gemerkt habe, dass die vollständige Version eigentlich cooler wäre, überlege ich, ob ich mich über’s Wochenende mal daran mache und HA auf einem kleinen Tiny-PC einzurichte, der ansonsten eh nur ungenutzt in der Ecke steht. Vielleicht bin ich bis zum Screensharing-“Date” schon so weit, aber wie gesagt – ich kann mir nicht vorstellen, dass es damit zu tun hat.
Auf jeden Fall schon mal vielen lieben Dank!
Der Konfigurator ist ja echt das “Tollste” was ich seid langem gesehen habe. Ich habe jetzt eine config damit erstellt und nach kürzester Zeit war alles da und alles konnte eingestellt werden wie es sein muss.
Einfach top !!!
Leider läufts hier weiterhin nicht rund… :(
Erstmal habe ich das Wochenende damit verbracht, HA auf einem Mini-PC zu installieren, den ich noch rumliegen und den ich vergessen hatte. Die Beschränkungen der Core-Version auf dem Qnap waren doch irgendwie etwas nervig.
An dem Thema hier hat sich jedoch nichts geändert. Mit der vom Konfigurator erstellten Config plus den 5 Zeilen aus meinem letzten Kommentar sind die Sensoren zwar alle und ohne Fehlermeldung auswählbar, aber der export_daily füllt sich einfach nicht. Wenn ich mir die anderen Sensoren anschaue, dann scheint das daran zu liegen, dass auch in export_monthly und export_sum nichts drinsteht. Die Sensoren sind da, haben auch eine Einheit, aber sind halt leer. In der Entitätenübersicht wird dieser Sensor (und nur dieser) mit einem roten Ausrufezeichen ganz rechts angezeigt. Auf der Statistikseite sind die Import-Sensoren alle sichtbar, von den Export-Sensoren aber nur der export_daily, der steht dort auch ohne Error. Aber die anderen beiden stehen da nicht.
Es liegt definitiv nicht daran, dass auf der Phase, an der das BKW hängt, kein Überschuss erzeugt wird. Ich kontrolliere dies mehrfach am Tag. Die Phase ist tagsüber, wenn das BKW ordentlich liefert, fast immer im Minusbereich…
Hallo zusammen,
ich bin echt begeistert von der Beschreibung. Ich bin ganz neu in dem Thema shelly pro EM3 und Home Assistant.
Ich habe ein Balkonkraftwerk – die Werte habe ich schon in Home Assistant integriert.
Ausserdem lese ich schon länger mit einem raspi und volkszaehler per IR Diode meinen Stromzähler aus.
Den shelly pro 3EM habe ich erst heute montiert. Die Verkabelung sollte passen. Die Werte sind etwas verwirrend. Aktuell (22:45) Balkonkraftwerk ist aus – zeigt active Power negative Watt Werte – das kann doch nicht sein. Aktuell beziehe ich ja den gesamten Strom aus dem Netz.
Ich habe Eure .yaml Erweiterungen eingetragen und die Sensor Namen angepasst – dennoch sehe ich nach Stunden die daily Sensoren nicht. Alles neu gestartet etc.
Ich finde Home Assistant und die Möglichkeiten super – aber warum muss man alles über .yaml code programmieren – schade, dass das nicht einfacher geht.
Habt Ihr noch Tipps, was ich versuchen kann? Ich hänge mal ein Bild der shelly Daten mit dran – sind die für Euch Experten schlüssig? DANKE für Eure Hilfe!
Noch eine Ergänzung – mich verwirrt, dass Energy Import konstant und unverändert bleibt (seit ca .3h) aber Energy Export ständig gestiegen ist. Das sollte doch anders ein. Ich Importiere zum Abend hin doch immer mehr vom Netz – oder hab ich die Logik nicht verstanden?
Hallo Markus,
da ist sicherlich deine Shelly 3EM nicht korrekt installiert. Wahrscheinlich sind die Wandler in falscher Richtung angebracht.
Grüsse,
Klaus
Hallo Klaus,
danke für die Rückmeldung. Habe das nochmal geprüft. Der Pfeil auf den Wandlern zeigt zum Haus – wie in der Anleitung und zahlreichen YouTube Videos beschrieben.
Meine Werte kommen jetzt auch in Home Assistant an – passen aber von der Logik nicht, weil ich jetzt mehr vom Netz ziehe.
Soll ich die Wandler umdrehen? Pfeil in Richtung Netz?
Hallo Klaus,
Du hattest recht! Ich habe nochmals alles geprüft. Die Wandler habe ich gelassen – Pfeil in Richtung Haus. Aber die 3 Stromverbindungen waren nicht stimmig.
Ich habe jetzt alle Kabel geprüft und die Verbindungen zum Stromkreis auf die richtigen Phasen verbunden – stimmig zu den Wandlern.
Jetzt sieht das für mich gut aus.
Was meint das geschulte Auge?
Man sieht deutlich den Unterschied zur Anzeige über Nacht.
Sieht so aus, als ob es nun passt!
So, Freunde der Sonne… ich muss mich für meine Blödheit entschuldigen… :( :D
Ich habe einen total bescheuerten Denkfehler gemacht. Ich ging die ganze Zeit davon aus, dass die Exportsensoren anfangen müssten, sich zu füllen, sobald auf der Phase, an der das BKW hängt, eine negative Leistung entsteht. Das ist aber natürlich Schwachsinn. Denn tatsächlich füllen sich die Sensoren ja erst, wenn über alle 3 Phasen hinweg ein negativer Ertrag entsteht. Was ja auch genau der Punkt ist, warum der ganze Zinnober mit Riemann usw. erforderlich ist. Andernfalls würde ja der vom Shelly gelieferte Returnwert ausreichen.
Keine Ahnung, wie man so blöd sein kann… :( Liegt wahrsch. auch daran, dass der Zustand, dass tatsächlich mal Mehr Solarenergie erzeugt wird, als wir in Summe verbrauchen, hier eigentlich nie eintritt. Ich habe, als mir mein Denkfehler heute morgen einfiel, gezielt einige Verbraucher abgeschaltet, bis tatsächlich über alle 3 Phasen hinweg ein negativer Ertrag entstand. Und oh Wunder – schon begannen die Exportsensoren sich zu füllen… :D
Letztlich funzt also nun alles mit der Config, die der Konfigurator rausgehauen hat, ergänzt um die erwähnten Zeilen am Ende, wobei ich inzw. ziemlich sicher bin, dass das wahrscheinlich gar nicht nötig gewesen wäre, wenn ich vorher schon mal dafür gesorgt hätte, dass das BKW einen tatsächlichen Überschuss liefert. Wenn die Zeilen definitiv nötig wären, bräuchten alle anderen sie ja auch, was lt. den Kommentaren ja nicht der Fall zu sein scheint.
Das Gute ist, dass ich durch das intensive Mit-der-Materie-Befassen jetzt Dinge gelernt habe, mit denen ich mich ansonsten aus reiner Bequemlichkeit nicht befasst hätte. Und der HA läuft jetzt mit super Performance auf einem ausgedienten Tiny-PC. Auf dem ich auch gleich noch EVCC eingerichtet habe, was nach anfänglichen Schwierigkeiten jetzt auch super läuft. Beides als Dashboard auf ‘nem Echo 15 – macht richtig Spaß! :D
Also – alles gut, wieder hinlegen und weitermachen… :D
Und danke, Klaus, für die Arbeit mit dem Konfigurator!
Danke, und für mich ein Anstoß das Skript weiter zu entwickeln, dass es auch ohne Einspeisung ins Netz funktioniert.
Naja, aber das Script ist doch, wenn ich jetzt nicht schon wieder einen fatalen Denkfehler habe, gerade eben genau dafür da, dass man in HA korrekt sehen kann, wieviel die Solaranlage erzeugt und wieviel davon EFFEKTIV, also quasi aus meiner Sicht bzw. aus Sicht des Stromzählers, ins Netz verbraten wird.
Ich habe ja gelernt, dass der Strom auf der Phase, an der das BKW hängt, rein physisch nicht auf die anderen Phasen übergehen kann, d.h. wenn ich auf z.B. Phase 1 (mit BKW dran) einen negativen Ertrag habe, weil das BKW mehr produziert, als auf dieser Phase verbraucht wird, dabei aber gleichzeitig auf den Phasen 2 und 3 mindestens genau dieser Überschuss verbraucht wird, dann speise ich zwar rein physisch durchaus Strom ins Netz ein (eben genau jenen negativen Ertrag auf Phase 1), aber da der Stromzähler die 3 Phasen saldiert, verbrauche ich aus dessen Sicht (und somit auch aus meiner, und somit auch kostentechnisch) trotzdem den gesamten Strom des BKW selbst, weil ich auf Pase 2 und 3 den auf 1 eingespeisten Überschuss einspare.
Und genau das ist ja der Punkt! Ohne dieses Problem bräuchte man ja überhaupt kein Script. Dann würde es ja reichen, bei Import die 3 Phasensensoren vom Shelly zu konfigurieren, und bei Export die drei Exportsensoren vom Shelly (wobei da ja dann nur der von der Phase mit dem BKW dran relevant wäre).
Deswegen sag ich ja, dass ich total bescheuert bin, dass ich eben genau den Punkt, um den es hier ja geht und wegen dem ich überhaupt erst hierher gefunden hatte, vergessen hatte… :D
Vielleicht sollte für ähnliche Temporärdeppen wie mich einfach in die Anleitung der Hinweis mit rein, dass die Exportsensoren erst dann anfangen, was anzuzeigen, wenn die SUMME ALLER DREI Shelly-Sensoren für A, B und C ZUSAMMEN einen negativen Wert erreicht. Kann man ja in HA, oder auch in der Shelly-App, völlig problemlos sehen. Und dass es dafür halt ggf. erforderlich ist, mal für einen Moment ein paar Sachen abzuschalten. Wie gesagt – ich bin inzw. sicher, dass auch diese 5 zusätzlichen Zeilen nicht nötig gewesen wären, wenn ich das berücksichtigt hätte.
Nicht ganz richtig. Wenn du keinen Strom einspeist, dann wird export_daily laufen bestimmte Berechnungen nicht. Also muss ich in diesem Fall HomeAssistant anweisen den Wert “0” zu speichern.
Moin Klaus,
danke für deine Arbeit an der Übersetzung und Erweiterung, auch der Konfigurator ist super! Solltest du den Konfigurator noch einmal angehen kommen hier ein paar Feature requests:
– Aktualisierung Beschreibung für power_current (ist die gleiche wie bei power_import..)
– Erweiterung zur Berechnung der Amortisation der PV-Anlage (zu dem Thema gibt es hier einen Thread https://forum.heimnetz.de/threads/amortisierung-balkonkraftwerk-berechnen.1109/)
Danke für den Input, das seh ich mir mal an!
Hey, großes Lob an diesen Artikel. Meiner Meinung der beste im Netz, super erklärt und mit dem Konfigurator natürlich ne Macht! Vielen Dank dafür.
Ich fand es in der Shelly App eigentlich immer ganz cool, die Watt zu sehen. Also wieviel produziere ich gerade, was braucht das Haus, wieviel bleibt davon übrig.
Man müsste die ganze Sache anstatt mit kWh auch nur mit W darstellen können? Aber auch dazu müsste man doch per Code rechnen, da der EM3 auch mit W die falschen Werte ausgibt?
Gibt es dafür eine einfache Lösung?
Hallo Michi, im Energy Dashboard, das fester Bestandteil von HA ist, ist eine Umstellung der Einheiten nicht möglich – zumindest ist mir nichts dazu bekannt. Für das was du machen möchtest, könntest du dir ein weiteres Dashboard erstellen. Intern sind die Werte als Watt gespeichert. Bei mir besteht das Dashboard nur aus einer Kachel mit diesen Momentwerten (siehe Anhang). Da kann man sich sicherlich aber noch viel mehr auslassen und ein richtiges fancy Dashboard bauen. Der Screenshot fand Abends statt. Daher gibt es keine PV Erzeugung. Und weil ich gerade unterwegs war, wird gerade nur die Grundlast vom Netz bezogen. Grüsse, Klaus
Hmmm… Ich hab das mal nachgebaut, aber die beiden Werte Power Export und Import springen bei mir alle 5 Sekunden um. Es zeigen auch nie beide etwas an, sondern immer einer 0W und der andere irgendeinen Wert.
Hallo Klaus,
vor ein paar Tagen hab ich mir das Skript mit Deinem Generator erzeugt und eingebunden, allerdings bleiben bei mir die “Energy Import Daily” und “Energy Export Daily” seit Tagen an bei “0” hängen. Screenshot von den Entwicklertools, Statistik anbei.
Dass ich einen Shelly Pro 3EM habe, daran sollte es ja nicht liegen.
Meine solare Einspeisung hängt an Phase a und es kommt auch vor, dass ich saldiert über alle 3Phasen ins Netz einspeise (siehe Screenshot). Die solare Leistung in “W” ziehe ich mir von der Solarman Integration (Deye WR).
Hast Du einen Tipp, was ich falsch mache? Neu gestartet hatte ich natürlich auch. Danke!
Hier mein Skript:
sensor:
– platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_current:
friendly_name: “Power Current”
unit_of_measurement: ‘W’
value_template: >-
{{ states(‘Shelly Pro 3EM phase a active power’)|float + states(‘Shelly Pro 3EM phase b active power’)|float + states(‘Shelly Pro 3EM phase a active power’)|float }}
availability_template: “{{
[ states(‘Shelly Pro 3EM phase a active power’),
states(‘Shelly Pro 3EM phase b active power’),
states(‘Shelly Pro 3EM phase a active power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: “Power Import”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘Shelly Pro 3EM phase a active power’)|float + states(‘Shelly Pro 3EM phase b active power’)|float + states(‘Shelly Pro 3EM phase a active power’)|float) > 0 %}
{{ states(‘Shelly Pro 3EM phase a active power’)|float + states(‘Shelly Pro 3EM phase b active power’)|float + states(‘Shelly Pro 3EM phase a active power’)|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: “{{
[ states(‘Shelly Pro 3EM phase a active power’),
states(‘Shelly Pro 3EM phase b active power’),
states(‘Shelly Pro 3EM phase a active power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power export (active_power –
{% if (states(‘Shelly Pro 3EM phase a active power’)|float + states(‘Shelly Pro 3EM phase b active power’)|float + states(‘Shelly Pro 3EM phase a active power’)|float) –
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
# Template sensor for values of energy Solar generation (solar_power > 0)
power_solargen:
friendly_name: “Power Solar Generation”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.solarman_total_ac_output_power_active’)|float(0)) > 0 %}
{{ (states(‘sensor.solarman_total_ac_output_power_active’)|float(0)) }}
{% else %}
{{ 0 }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
– platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
– platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
– platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Hier mein Script
Hallo Thomas, du verwendest die falschen Bezeichungen von deinem Shelly 3EM. Da sind Leerzeichen drin. Sieht mir mehr wie der Anzeigename aus als der “technische” Name, den HA verwendet. Du musst die Entity-IDs verwenden. Siehe Screenshot.
Danke schön. Nicht clever von mir.
Gestern Abend geändert und bei der “Energy Import Daily” sehe ich jetzt Werte, bei der “Energy Export Daily” noch alles null. Beide nicht auswählbar im Energy Dashboard.
Aber es regnet hier, bzw. ist grau in grau, da komme ich nicht in einen “Einspeisemodus” auf meiner Phase a, also warte ich erstmal noch weiter ab und beobachte, bevor ich die nächste Frage stelle, falls nötig. Das nur als Zwischenstandsmeldung…. danke Dir!
Riesen Lob für das Script, hat ansich alles sofort geklappt, das einzige was ich nicht hinbekomme (warscheinlich ein dummer Denkfehler) ist die Shelly Plug S einzubingen. Ich sehe nur den Sensor energy aber nicht power. Eventuell eine Idee woran das liegen könnte?
Vielen Dank :)
Hallo Sergio, dann ist alles in Ordnung. Du musst an dieser Stelle Energy auswählen, das ist vollkommen richtig. Ist bei meiner Anleitung auch so im Screenshot abgebildet! Grüsse, Klaus
Hallo,
zuerst nochmals vielen Dank für den Skript und die Hilfe hier. Ich habe aber noch eine Frage zu Energy export daily:
Mir ist der “Sensor” soweit klar, dass er den gesamt Überschuss darstellt. Warum ist er erst Sichtbar und wählbar wenn Überschuss registriert wurde? Weiters ist mit nicht klar warum oftmals (in letzter Zeit jeder Nacht) die Kurve und auch der Sensor Energy Export daily verschwindet. Das muss irgendwie mit der Situation zusammenhängen, dass über längere Zeit nichts eingespeist wurde, oder es gibt eine Kalkulation im Skript oder Dashboard der dies provoziert wenn lange Zeit nichts eingespeist wird. Siehe das Bild unten.
Was meint Ihr dazu?
LG
Rudi
so langsam verzweifel ich mit HA und den 3EM . Habe von dir den gernerator genutzt und es sind nur
”Energy Import Monthly” und ” Energy Consumption Monthly” Herausgekommen.
Wo liegt der fehler?
sensor:
– platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_current:
friendly_name: “Power Current”
unit_of_measurement: ‘W’
value_template: >-
{{ states(‘sensor.shelly_em3_channel_a_power’)|float + states(‘sensor.shelly_em3_channel_b_power’)|float + states(‘sensor.shelly_em3_channel_c_power’)|float }}
availability_template: “{{
[ states(‘sensor.shelly_em3_channel_a_power’),
states(‘sensor.shelly_em3_channel_b_power’),
states(‘sensor.shelly_em3_channel_c_power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: “Power Import”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.shelly_em3_channel_a_power’)|float + states(‘sensor.shelly_em3_channel_b_power’)|float + states(‘sensor.shelly_em3_channel_c_power’)|float) > 0 %}
{{ states(‘sensor.shelly_em3_channel_a_power’)|float + states(‘sensor.shelly_em3_channel_b_power’)|float + states(‘sensor.shelly_em3_channel_c_power’)|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: “{{
[ states(‘sensor.shelly_em3_channel_a_power’),
states(‘sensor.shelly_em3_channel_b_power’),
states(‘sensor.shelly_em3_channel_c_power’)
] | map(‘is_number’) | min
}}”
# Template sensor for values of power export (active_power –
{% if (states(‘sensor.shelly_em3_channel_a_power’)|float + states(‘sensor.shelly_em3_channel_b_power’)|float + states(‘sensor.shelly_em3_channel_c_power’)|float) –
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
# Template sensor for values of energy Solar generation (solar_power > 0)
power_solargen:
friendly_name: “Power Solar Generation”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.photovoltaik_garage_power’)|float(0) + states(‘sensor.shellyplus1pm_4855199d8b30_switch_0_power’)|float(0)) > 0 %}
{{ (states(‘sensor.photovoltaik_garage_power’)|float(0) + states(‘sensor.shellyplus1pm_4855199d8b30_switch_0_power’)|float(0)) }}
{% else %}
{{ 0 }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
– platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
– platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
– platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Hi, tolle Arbeit! Vor allem mit dem Konfigurator. Gibt es schon eine Konfig die für die separierte Yaml?
Gruß
Noch nicht!
Hallo aus Wien,
Ich möchte das neue Skript ausprobieren bin mir aber nicht sicher was damit gemeint ist:
your_pv_source_1.power
your_pv_source_2.powerplugs2
ist das damit gemeint?
Shelly EM channel 1 power
Shelly EM channel 1 energy returned
Gruß
Rudi
Hallo,
habe heute im Protokoll folgende Fehlermeldung erhalten. Habt Ihr auch diese Meldungen schon erhalten?
ChatGPD sowie das HA -Forum meinen dass ein Wert hier fehlt:
ChatGPD:
It seems like you’re creating a template sensor for power consumption based on various conditions involving solar power generation and export/import. The first condition checks if power is being exported and if the difference between solar generation and export is negative, but you haven’t specified what value to use in that case.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HA Forum
What is the sensor state if that first if test revolves to true?
# Template sensor for values of power consumption
power_consumption:
friendly_name: “Power Consumption”
unit_of_measurement: ‘W’
value_template: >-
{% if (states(‘sensor.power_export’)|float(0)) > 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %}
{{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }}
{% else %}
{{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }}
{% endif %}
XXXXXXXXXXXXXXXXXXXXXXXx Hier das Protokoll:
Logger: homeassistant.helpers.event
Source: components/sensor/__init__.py:594
First occurred: 10. August 2023 um 07:58:05 (964 occurrences)
Last logged: 14:37:38
Error while dispatching event for sensor.power_import to <Job track state_changed event {'sensor.power_import', 'sensor.power_solargen', 'sensor.power_export'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=191822>: <RenderInfo Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=191822> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({‘sensor.power_solargen’, ‘sensor.power_export’}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.power_import to <Job track state_changed event {'sensor.power_import', 'sensor.power_solargen', 'sensor.power_export'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=193700>: <RenderInfo Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=193700> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({‘sensor.power_solargen’, ‘sensor.power_export’}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.power_import to <Job track state_changed event {'sensor.power_import', 'sensor.power_solargen', 'sensor.power_export'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=194128>: <RenderInfo Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=194128> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({‘sensor.power_solargen’, ‘sensor.power_export’}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.power_import to <Job track state_changed event {'sensor.power_import', 'sensor.power_solargen', 'sensor.power_export'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=194206>: <RenderInfo Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=194206> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({‘sensor.power_solargen’, ‘sensor.power_export’}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.power_import to <Job track state_changed event {'sensor.power_import', 'sensor.power_solargen', 'sensor.power_export'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=194230>: <RenderInfo Template 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) 0 and (states(‘sensor.power_solargen’)|float(0) – states(‘sensor.power_export’)|float(0)) > 0 %} {{ (states(‘sensor.power_solargen’)|float(0)) – states(‘sensor.power_export’)|float(0) }} {% else %} {{ states(‘sensor.power_import’)|float(0) + states(‘sensor.power_solargen’)|float(0) }} {% endif %}) renders=194230> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({‘sensor.power_solargen’, ‘sensor.power_export’}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/sensor/__init__.py”, line 590, in state
numerical_value = int(value)
^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ”
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/event.py”, line 274, in _async_dispatch_entity_id_event
hass.async_run_hass_job(job, event)
File “/usr/src/homeassistant/homeassistant/core.py”, line 627, in async_run_hass_job
hassjob.target(*args)
File “/usr/src/homeassistant/homeassistant/helpers/event.py”, line 1156, in _refresh
self.hass.async_run_hass_job(self._job, event, updates)
File “/usr/src/homeassistant/homeassistant/core.py”, line 627, in async_run_hass_job
hassjob.target(*args)
File “/usr/src/homeassistant/homeassistant/helpers/template_entity.py”, line 362, in _handle_results
self.async_write_ha_state()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 742, in async_write_ha_state
self._async_write_ha_state()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 810, in _async_write_ha_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 748, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/sensor/__init__.py”, line 594, in state
raise ValueError(
ValueError: Sensor sensor.power_consumption has device class ‘None’, state class ‘None’ unit ‘W’ and suggested precision ‘None’ thus indicating it has a numeric value; however, it has the non-numeric value: ” ()
Ahhh das war ein Gedankenfehler von mir. Du hast ja 2 Paneele und daher 2 Shelly Plug S und ist in der YAML abgebildet.
Hallo, habe das ganze gestern erfolgreich umgesetzt. Keinerlei Probleme. Was sehr schön wäre: auf der “Energie”-Seite wird die aktuell erbrachte Leistung der PV-Anlage in Watt angezeigt. Vielleicht ist das möglich? Dankesehr! :-)
Meinst du damit die Anzeige im Energy Dashboard? Wenn ja, dann müsstest du dich hier an die Entwickler von Home Assistant wenden. Denn das liegt leider nicht in meiner Hand :-(