Integration unseres Balkonkraftwerks in openHAB
Als erstes einmal vorweg: Der Bosswerk Wechselrichter ist aktuell nicht nativ in openHAB bei mir zu Hause integriert. Ich habe noch keine zufriedenstellende Lösung für mich gefunden! Habt Ihr ggf. eine Idee wie man einen solchen Wechselrichter komplett in openHAB integrieren kann?
Aktuell habe ich die Integration über einen Shelly bei mir in das System vorgenommen.
Integration Shelly in openHAB
Die Shelly-Lösung (auf Basis 1PM) ist für meinen Anwendungsfall aktuell ausreichend und liefert mir alle notwendigen Daten (für den Betrieb in den ersten “Test-Monaten”).
Der Shelly wird einfach per openHAB Binding in das System integriert. Das Ergebnis sieht in der Visualisierung dann bei mir so aus.
Things
Nach der Installation habe ich manuell das Thing in der Konfiguration erstellt.
/* Shelly 1 PM */ Thing shelly:shelly1pm:xxx "Shelly 1 PM - xxx" @ "Garage" [deviceIp="xxx.xxx.xxx.xxx", userId="", password=""]
Items
Die Items habe ich auch entsprechend manuell angelegt.
/* Shelly 1 PM */ Switch shelly_xxx_Relay_Output "Betrieb" {channel="shelly:shelly1pm:xxx:relay#output"} Switch shelly_xxx_Relay_Input "Eingang" {channel="shelly:shelly1pm:xxx:relay#input"} Number:Power shelly_xxx_Meter_CurrentWatts "Leistung" {channel="shelly:shelly1pm:xxx:meter#currentWatts"} Number shelly_xxx_Meter_TotalKWH "Gesamtverbrauch" {channel="shelly:shelly1pm:xxx:meter#totalKWH"} Number shelly_xxx_Device_WifiSignal "Signalstärke" {channel="shelly:shelly1pm:xxx:device#wifiSignal"} Number shelly_xxx_Gesamt "PV [%.1f €]" Number shelly_xxx_Dummy "PV [%.1f kWh]"
Rules
In der Regel habe ich ein paar Anpassungen an den Werten für den Strompreis vorgenommen. Leider werden die Werte vom Shelly auch nur bis zum nächsten Neustart dort gespeichert d.h. ein manuelles Hinzufügen der bereits generierten kWh kann hier Sinn ergeben.
rule "Convert Wh to KWh" when Item shelly_xxx_Meter_CurrentWatts received update then logInfo("INFO", "Shelly.rules - PV (Generiert): " + shelly_xxx_Meter_TotalKWH.state) shelly_xxx_Dummy.postUpdate((shelly_xxx_Meter_TotalKWH.state as Number) + 76.574) // 37,6 kWh für vorherigen Betrieb vor Regel eingefügt logInfo("INFO", "Shelly.rules - PV (Total kWh): " + shelly_xxx_Dummy.state) end rule "Generierter Strom" when Item shelly_xxx_Dummy received update then shelly_xxx_Gesamt.postUpdate(shelly_c45bbe7995cb_Dummy.state as DecimalType * 0.3) // 0,30 Cent pro kWh angenommen logInfo("INFO", "Shelly.rules - PV (Total Euro): " + shelly_xxx_Gesamt.state) end
Sitemap
Für die Visualisierung wurde die Sitemap entsprechend ergänzt.
Text label="Shelly" icon="solarplant" { Switch item=shelly_xxx_Relay_Output label="Betrieb" icon="lightbulb" Text item=shelly_xxxb_Device_WifiSignal label="Signalstärke" icon="network" Text item=shelly_xxxb_Meter_CurrentWatts label="Leistung" icon="energy" Text item=shelly_xxxb_Meter_TotalKWH label="Gesamtverbrauch" icon="energy" Text item=shelly_xxxb_Gesamt label="Gesamt" icon="piggybank" Text item=shelly_xxx_Dummy label="Total" icon="piggybank Frame label="Shelly - Aktuelle Leistung (W)" { Switch item=Chart_Zeitraum_D_W_M_Y label="" mappings=[0="Tag", 1="Woche", 2="Monat", 3="Jahr"] Chart item=shelly_xxx_Meter_CurrentWatts service="rrd4j" period=D refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==0, Chart_Zeitraum_D_W_M_Y=="Uninitialized"] Chart item=shelly_xxx_Meter_CurrentWatts service="rrd4j" period=W refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==1] Chart item=shelly_xxx_Meter_CurrentWatts service="rrd4j" period=M refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==2] Chart item=shelly_xxx_Meter_CurrentWatts service="rrd4j" period=Y refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==3] } Frame label="Shelly - Gesamte Leistung (kWh)" { Switch item=Chart_Zeitraum_D_W_M_Y label="" mappings=[0="Tag", 1="Woche", 2="Monat", 3="Jahr"] Chart item=shelly_xxx_Dummy service="rrd4j" period=D refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==0, Chart_Zeitraum_D_W_M_Y=="Uninitialized"] Chart item=shelly_xxx_Dummy service="rrd4j" period=W refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==1] Chart item=shelly_xxx_Dummy service="rrd4j" period=M refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==2] Chart item=shelly_xxx_Dummy service="rrd4j" period=Y refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==3] } }
Integration Bosswerk (SOLARMAN) in openHAB
Alternativ vor vorherigen Lösung ist eine Integration des Bosswerk Wechselrichters auch per aktivierter API möglich.
Ein Lösungsvorschlag wird hier im Forum diskutiert. Man greift die Daten über die API (RESTful) entsprechend ab und übergibt Sie über den Call direkt an openHAB.
Meine Tests sind aktuell nur mi postman durchgeführt worden. Über die Dokumentation und die Beispiele ist ein Zugriff per Webservice sehr Einfach auf die Daten möglich. Die komplette Intgetration in openHAB über ein Binding habe ich aber noch nicht vorgenommen (das ist dann eher etwas für den nächsten Winter).
Fazit
Die Integration über den Shell ist sehr einfach mit Bordmitteln in openHAB möglich (hier über den Weg der manuellen Konfiguration oder über die GUI). Die Integration der nativen API benötigt etwas mehr Einarbeitung und Wissen über Webservices (darum habe ich dies erst einmal nach Hinten gestellt).
Mit dem oben beschriebenen Weg ist es aber sehr schnell und einfach möglich den Bosswerk Wechselrichter (und auch jeden anderen Wechselrichter) in ein openHAB-System zu integrieren.