Du möchtest wissen, wie viel Geld du eigentlich durch den selbsterzeugten Solarstrom deiner (Balkon)Solaranlage gespart hast? Du hast einen variablen Stromtarif oder dein Strompreis wird bald erhöht oder du bist dir nicht sicher, wie man das ausrechnen kann?
Hier zeige ich dir, wie du die gesparten Kosten in Euro ausrechnest, minutengenau anhand der Einspeisung in Watt deiner Solaranlage und des Strompreises in EUR/kWh 🙌
Das ganze funktioniert zwar erst ab dem Zeitpunkt, an dem du es in Home Assistant eingerichtet hast, ist dafür aber sehr genau.
Hinweis zur Powerfox API
Die API von Powerfox wurde inzwischen verbessert, sodass zumindest bei mir keine langwierigen Aussetzer mehr vorkommen.
Lediglich für 20-30 Sekunden, im Extremfall mal 5 Minuten, was aber natürlich auch am eigenen DSL liegen kann. Siehe hier: https://go.simon42.com/PowerOptiWattVerlauf
Mehr Informationen hier: In Home Assistant Stromzähler ⚡️ auslesen mit Powerfox 🦊
Inhaltsverzeichnis
- Empfohlenes Vorwissen
- Voraussetzungen
- Konfigurierte Entitäten
- Code für mein Solar-Dashboard mit aktuellen Werten
- Fazit
Empfohlenes Vorwissen
Voraussetzungen
Dein Stromzähler muss bereits in Home Assistant eingelesen werden, z.B. über einen PowerOpti und deine Balkonsolaranlage muss schon im Energie-Dashboard eingerichtet sein.
- In Home Assistant Stromzähler ⚡️ auslesen mit Powerfox 🦊
- Balkonsolaranlage in Home Assistant einrichten (Energie Dashboard)
Konfigurierte Entitäten
Input-Nummer für den aktuellen Strompreis
Anzulegen unter Einstellungen → Geräte und Dienste → Helfer → Helfer erstellen → Nummer.

Template-Sensor Eigenverbrauch in Watt & Ersparnis in Euro pro Stunde anlegen(configuration.yaml)
template: # Berechnet anhand des Stromzählers und der Solarerzeugung in Watt den Eigenverbrauch - name: Solar Eigenverbrauch (Watt) v2 unique_id: "BalkonsolarEigenverbrauchWatts" state_class: measurement icon: mdi:transmission-tower unit_of_measurement: W device_class: power state: > {% if is_number(states('sensor.strom_eg_aktuell')) and states('sensor.strom_eg_aktuell') | float(0) < 0 %} {{ ( (states('sensor.strom_eg_aktuell') | float(0) ) + (states('sensor.balkonsolar_power') | float(0) ) ) | round (3) }} {% else %} {{ states('sensor.balkonsolar_power') | round (3) }} {% endif %} # Zweiter Sensor für Ersparnis in Euro pro Stunde, basiert auf dem obigen Sensor (Solar Eigenverbrauch (Watt) v2) und dem aktuellen Strompreis in EUR/kWh - name: Balkonsolar Vorteil unique_id: "BalkonsolarVorteil" unit_of_measurement: EUR/h state: > {{ states('sensor.solar_eigenverbrauch_watt_v2')|float(0) * states('input_number.aktueller_strompreis')|float(0)/1000 }}
Die Entitäten sensor.strom_eg_aktuell
(Aktueller Stromverbrauch der Wohnung in Watt vom Stromzähler ausgelesen) und sensor.balkonsolar_power
(Aktueller Erzeugung der Balkonsolaranlage in Watt) müssen natürlich ggf. durch deine eigenen Entitäten ersetzt werden.
Riemann-Summenintegralsensor für Umrechnung in Gesamtersparnis
Anzulegen unter Einstellungen → Geräte und Dienste → Helfer → Helfer hinzufügen. Quellsensor ist der vorher angelegte Template-Sensor (Balkonsolar Vorteil) in der configuration.yaml.

Code für mein Solar-Dashboard mit aktuellen Werten
Die Entitäten (Verbrauchszähler) für die täglichen Werte in kWh müssen natürlich vorher von dir wie in diesem Video gezeigt angelegt und ggf. die Entitäten durch deine eigenen ersetzt werden. Das Dashboard ist als Ansichtsart Panel (1 Karte) konfiguriert.

type: vertical-stack title: Live-Werte cards: - type: horizontal-stack cards: - type: gauge entity: sensor.balkonsolar_power max: 600 needle: true severity: green: 200 yellow: 350 red: 450 name: Balkonsolar - type: entities entities: - entity: sensor.balkonsolar_kwh_taglich name: Täglich - entity: sensor.balkonsolar_energy name: Gesamt - entity: switch.balkonsolar name: Status state_color: false - type: horizontal-stack cards: - type: gauge entity: sensor.zuruck_zum_netz_watt_v2 max: 600 needle: true severity: green: 200 yellow: 350 red: 450 name: Zurück zum Netz - type: entities entities: - entity: sensor.zuruck_zum_netz_kwh_taglich name: Täglich - entity: sensor.zuruck_zum_netz_kwh_v2 name: Gesamt - entity: sensor.solar_eigenverbrauch_watt_v2 - type: horizontal-stack cards: - type: gauge entity: sensor.strom_eg_aktuell name: Stromverbrauch - type: entities entities: - entity: input_number.aktueller_strompreis - entity: sensor.balkonsolar_vorteil - entity: sensor.balkonsolar_vorteil_in_euro
Fazit
Jetzt kannst du auch über die Zeit genau verfolgen, wie viel Geld du durch deinen selber erzeugen Solarstrom eigentlich sparst. Und das Beste daran ist, dass wenn du deinen Strompreis anders einstellst, die Berechnung ab dem Zeitpunkt sofort korrigiert wird.
Außerdem kannst du die Entität mit deinem aktuellen Strompreis natürlich auch dynamisch berechnen lassen (Template-Sensor) oder durch Automationen verändern, sodass du ebenfalls “dynamische” Stromtarife abbilden kannst.
Wenn du Fragen oder Anmerkungen hast, zögere nicht, sie mir unten in den Kommentaren mitzuteilen und ich werde mein Bestes tun, um dir zu helfen. Vielen Dank fürs Zuschauen!
Hallo Simon,
bei mir scheint das Ausleseintervall des Balkonkraftwerks nicht ganz syncron zum Stromzähler zu sein. Außerdem schaltet mein Wechselrichter von Solarman nach Sonnenuntergang ab und hat dann auch immer 2W als Ausgangsleistung in der entsprechenden Entität stehen. Letzteres habe ich gelöst, indem ich die {% else %} Anweisung
in ein {% elif %} geändert habe un dort abfrage, ob die Anlage auf “Connected” steht
Allerdings bekomme ich nun den negativen Vorteil aus der Entität “Balkonsolar Vorteil” nicht in den Griff. Wenn ich mir den Verlauf des Sensors Eigenverbrauch anschaue habe ich dort in der Grafik für einen Zeitpunkt sogar drei Werte. Um die Hauptkurve legt sich dann eine Art Wolke herum.Diese zeigt mir dann min, max und Mittel für einen Zeitpunt an. Das kann ich mir nur damit erklären, daß entweder mein Wechselrichter oder das Balkonkraftwerk mehrfach in der Minute den Wert ändert. HomeAssistant nimmt dann offenbar immer den min Wert aus der Entität Eigenverbrauch.
Wie kann ich die if Abfrage so ändern, daß er mir entweder den “Mittel”-Wert nimmt oder analog zur Excel Funktion =max(0;Eigenverbrauch) rechnet?
Kann ich das lösen, indem ich eine verschachtelte if then Anweisung schreibe und wie würde ich das lösen?
VG
Christian
Hallo zusammen,
ich schließe mich diesbezüglich gleich mit einer Frage zum aktuellen Thema an…
@ Simon, was verstehst du bitte unter…
" (Aktueller Stromverbrauch der Wohnung in Watt vom Stromzähler ausgelesen) " ?
Habe leider k.A. was dein Zähler genau ausgibt…
Möglichkeiten:
würde mich sehr über eine Antwort freuen!
lG, Mani
Hi, ich bin etwas spät zu dem Thema für mich aber gerade aktuell da ich jetzt neu ein Balkonkraftwerk habe.
Die Integration von SML Stromausleser und das auslesen des Balkonkraftwers über Shelly pm mini funktioniert soweit. Ich wollt jetzt den Vorteil in EUR wie Simon es im Video und Blogbeitrag gezeigt hat. Bei mir wächst der Wert allerdings grundsätzlich ins negative. Ich habe eigentlich 1zu1 die Template sensoren von Simon übernommen und nur meine entitäten angepasst…
Nachtrag:
Das sind die Sensoren dazu, vermutlich müsste ich irgendwo *-1 hinzufügen? damit aus der negativen Zahl einfach eine positive wird? An welcher Stelle müsste ich das machen?