Die letzten Wochen habe ich mich ziemlich intensiv mit Home Assistant auseinandergesetzt. Dabei handelt es sich um eine Open-Source-Software zur Smart-Home-Steuerung. Home Assistant (HA) ist eine spezielle Linux-Distribution, die häufig auf einem Raspberry Pi ausgeführt wird. Dieser Artikel zeigt die nicht ganz unkomplizierte Integration meines Fronius Wechselrichters in das Home-Assistant-Setup. (Die Basisinstallation von HA setze ich voraus.)
Die Abbildung ist wie folgt zu interpretieren: Heute bis 19:00 wurden im Haushalt 8,2 kWh elektrische Energie verbraucht, aber 13,6 kWh el. Energie produziert (siehe die Kreise rechts). 3,7 kWh wurden in das Netz eingespeist, 0,4 kWh von dort bezogen.
Das Diagramm »Energieverbrauch« (also das Balkendiagramm oben): In den Morgen- und Abendstunden hat der Haushalt Strom aus der Batterie bezogen (grün); am Vormittag wurde der Speicher wieder komplett aufgeladen (rot). Am Nachmittag wurde Strom in das Netz eingespeist (violett). PV-Strom, der direkt verbraucht wird, ist gelb gekennzeichnet.
Fronius-Integration
Bevor Sie mit der Integration des Fronius-Wechselrichters in das HA-Setup beginnen, sollten Sie sicherstellen, dass der Wechselrichter, eine fixe IP-Adresse im lokalen Netzwerk hat. Die erforderliche Einstellung nehmen Sie in der Weboberfläche Ihres WLAN-Routers vor.
Außerdem müssen Sie beim Wechselrichter die sogenannte Solar API aktivieren. Über diese REST-API können diverse Daten des Wechselrichters gelesen werden. Zur Aktivierung müssen Sie sich im lokalen Netzwerk in der Weboberfläche des Wechselrichters anmelden. Die relevante Option finden Sie unter Kommunikation / Solar API. Der Dialog warnt vor der Aktivierung, weil die Schnittstelle nicht durch ein Passwort abgesichert ist. Allzugroß sollte die Gefahr nicht sein, weil der Zugang ohnedies nur im lokalen Netzwerk möglich ist und weil die Schnittstelle ausschließlich Lesezugriffe vorsieht. Sie können den Wechselrichter über die Solar API also nicht steuern.
Als nächstes öffnen Sie in der HA-Weboberfläche die Seite Einstellungen / Geräte & Dienste und suchen dort nach der Integration Fronius (siehe auch hier). Im ersten Setup-Dialog müssen Sie lediglich die IP-Adresse des Wechselrichters angeben. Im zweiten Dialog werden alle erkannten Komponenten aufgelistet und Sie können diese einem Bereich zuordnen.
Bei meinen Tests standen anschließend über 60 neue Entitäten (Sensoren) für alle erdenklichen Betriebswerte des Wechselrichters, des damit verbundenen Smartmeters sowie des Stromspeichers zur Auswahl. Viele davon werden automatisch im Default-Dashboard angezeigt und machen dieses vollkommen unübersichtlich.
Energieansicht
Der Zweck der Fronius-Integration ist weniger die Anzeige diverser einzelner Betriebswerte. Vielmehr sollen die Energieflüssen in einer eigenen Energieansicht dargestellt werden. Diese Ansicht wertet die Wechselrichterdaten aus und fasst zusammen, welche Energiemengen im Verlauf eines Tags, einer Woche oder eines Monats wohin fließen. Die Ansicht differenziert zwischen dem Energiebezug aus dem Netz bzw. aus den PV-Modulen und berücksichtigt bei richtiger Konfiguration auch den Stromfluss in den bzw. aus dem integrierten Stromspeicher. Sofern Sie eine Gasheizung mit Mengenmessung verfügen, können Sie auch diese in die Energieansicht integrieren.
Die Konfiguration der Energieansicht hat sich aber als ausgesprochen schwierig erwiesen. Auf Anhieb gelang nur das Setup des Moduls Stromnetz. Damit zeigt die Energieansicht nur an, wie viel Strom Sie aus dem Netz beziehen bzw. welche Mengen Sie dort einspeisen. Die Fronius-Integration stellt die dafür Daten in Form zweier Sensoren direkt zur Verfügung:
- Aus dem Netz bezogene Energie:
sensor.smart_meter_ts_65a_3_bezogene_wirkenergie
-
In das Netz eingespeiste Energie:
sensor.smart_meter_ts_65a_3_eingespeiste_wirkenergie
Je nachdem, welchen Wechselrichter und welche dazu passende Integration Sie verwenden, werden die Sensoren bei Ihnen andere Namen haben. In den Auswahllisten zur Stromnetz-Konfiguration können Sie nur Sensoren
auswählen, die Energie ausdrücken. Zulässige Einheiten für derartige Sensoren sind unter anderem Wh (Wattstunden), kWh oder MWh.
Code zur Bildung von drei Riemann-Integralen
Eine ebenso einfache Konfiguration der Module Sonnenkollektoren und Batteriespeicher zu Hause scheitert daran, dass die Fronius-Integration zwar aktuelle Leistungswerte für die Produktion durch die PV-Module und den Stromfluss in den bzw. aus dem Wechselrichter zur Verfügung stellt (Einheit jeweils Watt), dass es aber keine kumulierten Werte gibt, welche Energiemengen seit dem Einschalten der Anlage geflossen sind (Einheit Wattstunden oder Kilowattstunden). Im Internet gibt es eine Anleitung, wie dieses Problem behoben werden kann:
https://community.home-assistant.io/t/376329
https://www.home-assistant.io/integrations/integration
Die Grundidee besteht darin, dass Sie eigenen Code in eine YAML-Konfigurationsdatei von Home Assistant einbauen. Gemäß dieser Anweisungen werden mit einem sogenannten Riemann-Integral die Leistungsdaten in Energiemengen umrechnet. Dabei wird regelmäßig die gerade aktuelle Leistung mit der zuletzt vergangenen Zeitspanne multipliziert. Diese Produkte (Energiemengen) werden summiert (method: left
). Das Ergebnis sind drei neue Sensoren (Entitäten), deren Name sich aus den title
-Attributen im zweiten Teil des Listings ergeben:
- Batterieladung:
sensor.total_battery_energy_charged
- Batterieentladung:
sensor.total_battery_energy_discharged
- PV-Produktion:
sensor.total_photovoltaics_energy
Die Umsetzung der Anleitung hat sich insofern schwierig erwiesen, als die in der ersten Hälfte des Listungs verwendeten Sensoren aus der Fronius-Integration bei meiner Anlage ganz andere Namen hatten als in der Anleitung. Unter den ca. 60 Sensoren war es nicht ganz leicht, die richtigen Namen herauszufinden. Wichtig ist auch die Einstellung device_class: power
! Die in einigen Internet-Anleitungen enthaltene Zeile device_class: energy
ist falsch.
Der template
-Teil des Listings ist notwendig, weil der Sensor solarnet_leistung_von_der_batterie
je nach Vorzeichen die Lade- bzw. Entladeleistung enthält und daher getrennt summiert werden muss. Außerdem kommt es vor, dass die Fronius-Integration einzelne Werte gar nicht übermittelt, wenn sie gerade 0 sind (daher die Angabe eines Default-Werts).
Der zweite Teil des Listungs führt die Summenberechnung durch (method: left
) und skaliert die Ergebnisse um den Faktor 1000. Aus 1000 Wh wird mit unit_prefix: k
also 1 kWh.
Bevor Sie den Code in configuration.yaml
einbauen können, müssen Sie einen Editor als Add-on installieren (Einstellungen / Add-ons, Add-on-Store öffnen, dort den File editor auswählen).
# in die Datei /homeassistant/configuration.yaml einbauen
...
template:
- sensor:
- name: "Battery Power Charging"
unit_of_measurement: W
device_class: power
state: "{{ max(0, 0 - states('sensor.solarnet_leistung_von_der_batterie') | float(default=0)) }}"
- name: "Battery Power Discharging"
unit_of_measurement: W
device_class: power
state: "{{ max(0, states('sensor.solarnet_leistung_von_der_batterie') | float(default=0)) }}"
- name: "Power Photovoltaics"
unit_of_measurement: W
device_class: power
state: "{{ states('sensor.solarnet_pv_leistung') | float(default=0) }}"
sensor:
- platform: integration
source: sensor.battery_power_charging
name: "Total Battery Energy Charged"
unique_id: 'myuuid_1234'
unit_prefix: k
method: left
- platform: integration
source: sensor.battery_power_discharging
name: "Total Battery Energy Discharged"
unique_id: 'myuuid_1235'
unit_prefix: k
method: left
- platform: integration
source: sensor.power_photovoltaics
name: "Total Photovoltaics Energy"
unique_id: 'myuuid_1236'
unit_prefix: k
method: left
Damit die neuen Einstellungen wirksam werden, starten Sie den Home Assistant im Dialogblatt Einstellungen / System neu. Anschließend sollte es möglich sein, auch die Module Sonnenkollektoren und Batteriespeicher zu Hause richtig zu konfigurieren. (Bei meinen Experimenten hat es einen ganzen Tag gedauert hat, bis endlich alles zufriedenstellend funktionierte. Zwischenzeitlich habe ich zur Fehlersuche Einstellungen / System / Protokolle genutzt und musste unter Entwicklerwerkzeuge / Statistik zuvor aufgezeichnete Daten von falsch konfigurierten Sensoren wieder löschen.) Der Lohn dieser Art zeigt sich im Bild aus der Artikeleinleitung.
Quellen/Links
- https://www.home-assistant.io
- https://www.fronius.com/de-at/austria/solarenergie/installateure-partner/technische-daten/alle-produkte/anlagen-monitoring/offene-schnittstellen/fronius-solar-api-json-
- https://kofler.info/bedienung-fronius-symo-gen24
- https://www.home-assistant.io/integrations/fronius
- https://community.home-assistant.io/t/376329
- https://www.home-assistant.io/integrations/integration
Hallo,
danke erst mal für deine Arbeit. Ich habe meine Anlage nach deiner Anleitung konfiguriert. Allerdings bekomme ich folgende Fehlermedungen:
statistics_not_defined sensor.total_photovoltaics_energy
statistics_not_defined sensor.total_battery_energy_discharged
sensor.total_battery_energy_charged
Der Status dieser konfigurierten Entitäten ist derzeit nicht verfügbar:
Hast du einen Tipp?
Meine Probleme hatten damit zu tun, dass die von der Fronius-Integration gelieferten Sensoren (z.B.
sensor.solarnet_leistung_von_der_batterie
) deutsch und nicht wie in den anderen Anleitungen im Internet englisch benannt waren. Ich habe keine Ahnung warum. Du musst nachsehen, wie sie bei dir heißen.Dann kannst du unter Entwicklerwerkzeuge / Statistik nachsehen, ob die in der YAML-Konfiguration neu definierten Sensoren (
sensor.total_xxx
) vorhanden sind und funktionieren. Laut Internet-Anleitung kann das eine Weile dauern, bis die — selbst nach korrekter Konfiguration — auftauchen. Das war bei mir aber nicht das Problem. Ich habe einen neuen Screenshot in den Artikel eingebaut, die anzeigt, wie die Statistiken bei mir aussehen. Wenn ich die anklicke, bekomme ich eine Kurve mit dem Verlauf.Ich habe HA nach Konfigurationsänderungen jeweils komplett neugestartet, weil mir nicht klar war, ob das schnellere Neueinlesen der Konfiguration wirklich funktioniert. Ich hatte nicht den Eindruck.
Super Artikel, vielen Dank Michael! Hat mir sehr geholfen :-)
Sehr Geiler Artikel, danke dir Vielmals, hatte des einige Male auch mit den Anleitungen versucht, aber bin immer irgednwo ausgestiegen :) jetzt scheints zu funktionieren und ich fang das ganze langsam zu verstehen an. DANKE dir dafür :)
Hallo Zusammen,
ich habe seit zwei Tagen das Problem das mir die Solarnet Werte (Aktuelle Leistung, Autakierung, Eigenverbrauch usw…) nicht mehr im Home Assistent angezeigt werden, habt ihr das Problem auch?
Nein. Die Daten kommen ja aus Ihrem lokalen Netzwerk, also wird das Problem vermutlich auch dort sein. Der Home Assistant und der Fronius Wechselrichter kommunizieren ohne externe Cloud-Dienste miteinander.
Hallo
das hat mir sehr geholfen,danke!
Bin absolut neu im Homeassistant Universum.
Habe wie oben beschrieben integriert, leider wird die Smart Meter TS 65A-3 Bezogene Wirkenergie kummulativ angezeigt, also wieviel bisher an dem Tag aus dem Netz gezogen wurden, und nicht der aktuelle Verbrauch.
Eine Idee?
Fronius Symio Gen 24
BYD Batterie Box
Fronius Smart Meter
Danke!
Hi,
ich bin gerade in der Angebotsphase meiner PV Anlage, und über diesen Artikel gestolpert. Ich denke der wird mir dann sehr helfen. Eine Frage noch am Rande:
Der HA behält die Daten nur 14 Tage, wenn ich das richtig weiß. Aber gerade die PV Werte will ich schon länger haben, auch um zu sehen, wie die Anlage über die Jahre nachlässt.
Aber auch nur diese Werte, wie oft mein Lichtschalter ein/ausgeschaltet wird, das kann dann irgendwann weg. Wie sieht da Eure Lösung aus? Oder gibt es irgendeinen aktuellen Link ins HA Forum hier als Tipp. Ich hab im HA Forum bisher nix gefunden. Gerne Englisch.
Viele Grüße
Juergen
Ich schaff die Einbindung in die Power Flow Plus Card einfach nicht.
Könntest du da vielleicht auch so eine tolle Anleitung erstellen bitte?
Ich bekomme folgende Fehlermeldung ausgegeben:
Logger: homeassistant.config
Quelle: config.py:623
Erstmals aufgetreten: 16:06:37 (1 Vorkommnisse)
Zuletzt protokolliert: 16:06:37
Invalid config for ‚template‘ at configuration.yaml, line 21: invalid template (TemplateSyntaxError: invalid syntax for function call expression) for dictionary value ’sensor->0->state‘, got „{{ max(0, 0 – states(’sensor.solarnet_leistung_von_der_batterie‘) | float(default=0,00)) }}“
Habe alles exakt nach Anleitung gemacht :-)