Intelligentes Messsystem (iMSys): Von Innovation zu Irritation – Mein kritischer Erfahrungsbericht mit bayernwerk

Seit Oktober 2020 habe ich das intelligente Messsystem (iMSys) von bayernwerk in Kombination mit meiner Wärmepumpe und meinem Niedrigenergiehaus im Einsatz, weil ich anfangs hoffte, damit eine zukunftsweisende Steuerung in mein SmartHome-System openHAB integrieren zu können. Als einer der ersten Kunden war ich gespannt auf die Möglichkeiten der HAN-Schnittstelle, die mir eine effiziente Laststeuerung und somit einen wertvollen Beitrag zur Energiewende ermöglichen sollte. Schnell wurde jedoch deutlich, dass sich hinter der innovativen Fassade ein langwieriges und frustrierendes Fiasko verbarg.

Der lange Weg vom ersten Kontakt bis zur ersten Lösung

Schon zu Beginn meines Einsatzes stellte sich heraus, dass der Zugang zur HAN-Schnittstelle nahezu unmöglich ist. Zwischen Oktober 2020 und Oktober 2023 unternahm ich zahlreiche Versuche, den gewünschten Zugang zu realisieren. Trotz intensiver Tests und wiederholter Kontaktaufnahmen blieb der Erfolg aus, und ich erhielt immer wieder Rückmeldungen, in denen der Fehler fälschlicherweise auf meiner Seite gesucht wurde, obwohl alle Indizien eindeutig auf Probleme im System hindeuteten. Ständige Fehlermeldungen wie „Update ist noch nicht abgeschlossen“ und die immer wieder generierten, jedoch falschen Zugangsdaten führten zu einer stetig wachsenden Frustration.

Technische und kommunikative Herausforderungen

Die technische Problematik manifestierte sich vor allem in der starren Systemgestaltung: Die Software des Zählers erlaubt es nicht, die IP-Adresse zu ändern, sodass eine dynamische Zuweisung über DHCP nicht möglich ist. Diese Einschränkung erschwert die Integration des iMSys in ein bestehendes lokales Netzwerk erheblich und stellt für technisch ambitionierte Endkunden eine enorme Hürde dar. Parallel dazu verschärften sich auch die kommunikativen Schwierigkeiten. Über diverse Kanäle wie Livechat, Telefon und E-Mail wechselten die Ansprechpartner ständig, und es wurden diverse Ticketnummern vergeben, ohne dass der erhoffte technische Support jemals zielführend zur Lösung beitrug. Immer wieder wurde ich an externe Partner wie den Hersteller ITRON und den Softwareanbieter TRuDI verwiesen, die als Privatperson jedoch keine Unterstützung bieten konnten. Einzig der Energielieferant ESB zeigte sich als kompetenter Ansprechpartner, blieb aber in der praktischen Lösungsfindung letztlich machtlos.

Konsequenzen und Lösungsansätze

Nach Jahren der Fehlersuche und endlosen Interaktionen – ab November 2023 bis Februar 2025 dokumentierte ich nahezu wöchentlich jeden einzelnen Kontakt, um letztlich eine Grundlage für einen möglichen Rechtsstreit zu schaffen – wurde erst am 08.01.2025 der Fehler mit den falschen Zugangsdaten behoben, sodass der Zugriff über TRuDI und direkt am Zähler kurzfristig möglich war. Doch selbst dieser Erfolg war nur von kurzer Dauer, denn die Unmöglichkeit, die IP-Adresse des Messsystems zu ändern, blieb ein gravierendes Problem. Die vom Betreiber getätigte Aussage, dass die HAN-Schnittstelle für Endkunden in den meisten Fällen schlicht nicht nutzbar sei und stattdessen lediglich die manuelle Messwertvisualisierung im Portal vorgesehen ist, verdeutlicht, dass individuelle Lösungen und Flexibilität nicht im Fokus der Systemgestaltung stehen. Für mich bedeutete dies, dass ich alternative Wege in Betracht ziehen musste – etwa durch den Einsatz eines Mini-Routers und die Einrichtung eines eigenen VLANs, um die feste bayernwerk-IP-Adresse in mein lokales Netzwerk zu routen. Diese Lösung erfordert jedoch zusätzliche Hardware und technisches Know-how, was insbesondere für weniger versierte Kunden kaum zu bewerkstelligen ist.

Ausblick und offene Fragen

Die gesamte Erfahrung mit dem iMSys von bayernwerk zeigt, wie innovative Technologien an den eigenen technischen und kommunikativen Mängeln scheitern können. Für technikaffine Endkunden, die aktiv zur Energiewende beitragen wollen, bedeutet dies, dass sie in ein System investiert werden, das von vornherein auf eine maximale Abhängigkeit vom Betreiber ausgelegt ist. Diese starre Systemarchitektur und die mangelhafte Kundenbetreuung stellen ernsthafte Hürden dar, die über den rein technischen Aspekt hinausgehen. Die Frage bleibt daher: Ist es nur an meiner spezifischen Kombination aus PV-Anlage, Wärmepumpe und SmartHome-System, oder handelt es sich um ein generelles Problem, das auch andere Anwender betrifft? Auch die mangelnde Flexibilität bei der Netzwerkintegration und die unzureichende Unterstützung seitens des Betreibers werfen grundlegende Fragen zur Zukunft des Systems auf.

 

openHAB 4.3.0: Die neuesten Features für ein noch smarteres Zuhause

Die neueste Version von openHAB, 4.3.0, bringt zahlreiche spannende Neuerungen und Verbesserungen für Smart-Home-Enthusiasten. In diesem Artikel werfen wir einen Blick auf die wichtigsten Features und Änderungen, die diese Version mit sich bringt, und wie sie das Smart-Home-Erlebnis verbessern.

Ein Blick auf die Highlights der neuen Version

Mit der Veröffentlichung von openHAB 4.3.0 markiert diese Version nicht nur das Ende der 4.x-Serie, sondern legt auch den Grundstein für die Weiterentwicklung in Richtung openHAB 5. Zu den Hauptneuerungen gehören:

  • Log Viewer: Ein neuer integrierter Log Viewer, der es ermöglicht, Protokolle direkt im Browser anzusehen und zu filtern
  • UI-Unterstützung für Thing-Aktionen: Ermöglicht die Nutzung von Thing-Aktionen direkt in UI-basierten Regeln
  • Interaktive SVG-Canvas: Neue Möglichkeiten für individuelle Dashboards durch SVG-Grafiken

Diese Verbesserungen machen openHAB 4.3 zu einem robusten Fundament für die kommenden Entwicklungen.

Community-Engagement und Aktivitäten

Die openHAB-Community war erneut hochaktiv und hat beachtliche Beiträge geleistet. Hier einige Statistiken zur Version 4.3:

  • Core: 104 Pull Requests mit 23 Bugfixes und 52 Verbesserungen
  • Add-ons: 18 neue Add-ons, 557 Pull Requests mit 164 Bugfixes und 221 Verbesserungen
  • Web-UIs: 174 Pull Requests mit 61 Bugfixes und 71 Verbesserungen

Dank der engagierten Entwicklergemeinschaft und Maintainer konnte diese Version rechtzeitig als Weihnachtsgeschenk für die Community fertiggestellt werden.

Neue Funktionen und Verbesserungen im Detail

Log Viewer

Mit dem neuen Log Viewer können Benutzer die openHAB-Logs direkt im Browser einsehen. Der Viewer bietet Funktionen wie Filterung, Text-Hervorhebung und die Möglichkeit, spezifische Einträge zu kopieren oder als CSV herunterzuladen.

Thing-Aktionen in der Benutzeroberfläche

Benutzer können nun Thing-Aktionen direkt in UI-Regeln nutzen. Dies vereinfacht komplexe Automatisierungen, z. B. das Steuern von Batteriemanagementsystemen oder das Abrufen von berechneten Werten aus Bindings wie dem Astro-Binding.

Neue SVG-Canvas-Funktionalitäten

Das interaktive SVG-Canvas bietet völlig neue Gestaltungsmöglichkeiten für Dashboards, die nun individuell und dynamisch anpassbar sind.

Pre-Compile von Skripten

openHAB 4.3 führt die automatische Pre-Kompilierung von Skripten ein. Dadurch werden Skripte beim Systemstart kompiliert, was die Ausführung beschleunigt und Syntaxfehler frühzeitig erkennt.

Verbesserte Persistenz-Konfiguration

Eine neue Funktion erlaubt es, Items oder Gruppen von der Persistenz auszuschließen. Dies reduziert den Konfigurationsaufwand erheblich.

Ausblick auf openHAB 5

openHAB 4.3 ist die letzte große Veröffentlichung der 4.x-Serie. Zukünftige Versionen, beginnend mit openHAB 5, werden nur noch 64-Bit-Systeme unterstützen. Nutzer werden ermutigt, bereits jetzt auf 64-Bit-Systeme umzusteigen.

Fazit

openHAB 4.3.0 bringt innovative Funktionen und erhebliche Verbesserungen, die das Smart-Home-Erlebnis auf die nächste Stufe heben. Mit dem Blick auf openHAB 5 bietet diese Version eine solide Grundlage für die Zukunft. Jetzt ist der ideale Zeitpunkt für ein Upgrade!

Das vernetzte Zuhause: Wie der digitale Zwilling dein SmartHome optimiert

In den letzten Jahren hat sich der Begriff des „digitalen Zwillings“ in der Industrie fest etabliert. Unternehmen nutzen digitale Zwillinge, um Produktionsprozesse zu simulieren, den Zustand von Maschinen in Echtzeit zu überwachen und Wartungen vorausschauend zu planen. Doch was genau ist ein digitaler Zwilling und wie kann diese Technologie auch in den privaten Bereich Einzug halten – insbesondere in SmartHomes, die auf Open-Source-Systeme wie openHAB setzen?

Was ist ein digitaler Zwilling?

Ein digitaler Zwilling ist im Wesentlichen eine virtuelle Nachbildung eines physischen Objekts oder Systems. In der Industrie kann dies eine Maschine, ein Produktionsprozess oder gar ein komplettes Werk sein. Der digitale Zwilling sammelt in Echtzeit Daten vom physischen Objekt und spiegelt dessen Zustand und Verhalten wider. Diese Daten ermöglichen es, die Leistung zu optimieren, vorausschauende Wartungen durchzuführen und sogar mögliche zukünftige Szenarien zu simulieren.

Der digitale Zwilling in der Industrie

In der Industrie ist der digitale Zwilling bereits weit verbreitet, vor allem in Sektoren wie Fertigung, Energie und Logistik. Unternehmen nutzen diese Technologie, um den Betrieb zu verbessern, Kosten zu senken und Ausfallzeiten zu minimieren. Durch die Echtzeit-Überwachung und Analyse von Produktionsprozessen können Probleme frühzeitig erkannt und behoben werden. Die Möglichkeit, virtuelle Tests und Simulationen durchzuführen, bevor physische Änderungen vorgenommen werden, ist ein weiterer Vorteil, der Zeit und Geld spart.

Der digitale Zwilling für dein SmartHome

Während der digitale Zwilling in der Industrie bereits fest etabliert ist, steckt sein Potenzial im privaten Bereich – speziell im SmartHome – noch in den Kinderschuhen. Doch genau hier kann diese Technologie einen erheblichen Mehrwert bieten. Stell dir vor, du hast eine digitale Kopie deines Zuhauses, die nicht nur alle vernetzten Geräte umfasst, sondern auch deren aktuellen Zustand und Nutzungsmuster in Echtzeit überwacht und optimiert.

openHAB – eine Open-Source-Plattform für Heimautomatisierung – bietet die perfekte Grundlage für die Implementierung eines digitalen Zwillings im SmartHome. openHAB ist darauf ausgelegt, verschiedene SmartHome-Geräte und -Systeme miteinander zu verbinden, und kann damit als zentrale Plattform für deinen digitalen Zwilling dienen. Durch die Integration aller Geräte und Sensoren in ein einziges System kannst du dein gesamtes SmartHome in Echtzeit überwachen und steuern.

Wie der digitale Zwilling dein SmartHome optimiert

Energieeffizienz und Kostenersparnis

Der digitale Zwilling kann kontinuierlich den Energieverbrauch deines Zuhauses überwachen und analysieren. Auf Basis dieser Daten kannst du erkennen, welche Geräte oder Systeme besonders viel Energie verbrauchen. Mit den Informationen des digitalen Zwillings kannst du Anpassungen vornehmen oder Automatisierungen einrichten, die den Energieverbrauch senken – beispielsweise durch die intelligente Steuerung der Heizung oder Klimaanlage in Abhängigkeit von Wetterdaten und Raumbelegung.

Vorausschauende Wartung und Fehlererkennung

Wie in der Industrie kann der digitale Zwilling auch im SmartHome potenzielle Probleme frühzeitig erkennen. openHAB sammelt kontinuierlich Daten von deinen Haushaltsgeräten, Sensoren und vernetzten Systemen. Sollte ein Gerät Anzeichen von Verschleiß oder Fehlfunktionen zeigen, kann der digitale Zwilling dich darüber informieren, bevor das Problem eskaliert. So verhinderst du größere Schäden und teure Reparaturen.

Sicherheit und Überwachung

Ein digitaler Zwilling kann dein SmartHome sicherer machen. Durch die Integration von Sicherheitskameras, Bewegungsmeldern und Türsensoren in openHAB kann der digitale Zwilling potenzielle Sicherheitsbedrohungen erkennen. Er kann ungewöhnliche Aktivitäten sofort melden und dir Benachrichtigungen schicken, sodass du schnell reagieren kannst. Außerdem kannst du durch Simulationen verschiedene Sicherheits-Szenarien durchspielen und so Schwachstellen identifizieren und beheben.

Personalisierung und Automatisierung

Der digitale Zwilling lernt deine Vorlieben und Gewohnheiten im SmartHome. Basierend auf diesen Daten kann er deine Geräte und Automatisierungen optimal auf dich abstimmen. Zum Beispiel könnte er dafür sorgen, dass dein Zuhause immer auf die richtige Temperatur eingestellt ist, wenn du von der Arbeit nach Hause kommst, oder die Beleuchtung anpassen, wenn die Dämmerung einsetzt. Dies geht weit über einfache Automatisierungen hinaus, da der digitale Zwilling auf Echtzeitdaten und langfristige Nutzungsanalysen zurückgreift.

Simulation und Planung

Ein weiterer Vorteil eines digitalen Zwillings im SmartHome ist die Möglichkeit, verschiedene Szenarien zu simulieren. Du kannst zum Beispiel testen, wie sich eine Änderung der Heizungseinstellungen auf deinen Energieverbrauch auswirkt, bevor du diese Änderung tatsächlich vornimmst. Ebenso kannst du bei der Anschaffung neuer Geräte simulieren, wie diese in dein bestehendes System integriert werden und welche Auswirkungen sie auf den Energieverbrauch oder die Gesamteffizienz haben könnten.

Fazit

Der digitale Zwilling eröffnet völlig neue Möglichkeiten für die Optimierung deines SmartHomes. Mit openHAB als zentrale Plattform kannst du alle deine vernetzten Geräte und Systeme in Echtzeit überwachen und steuern, deinen Energieverbrauch reduzieren, die Sicherheit erhöhen und dein Zuhause perfekt auf deine Bedürfnisse abstimmen. Diese Technologie, die in der Industrie bereits erfolgreich eingesetzt wird, hat das Potenzial, auch im privaten Bereich die Zukunft der Heimautomatisierung zu gestalten.

Investiere in die digitale Zukunft deines Zuhauses – mit einem digitalen Zwilling und openHAB.

Das neue SOLARMAN-Binding in openHAB 4.3

Mit der Veröffentlichung der Beta-Version von openHAB 4.3 kommen spannende neue Möglichkeiten für die Integration von Geräten ins Smart Home. Besonders hervorzuheben ist das SOLARMAN-Binding, das in dieser Version erstmals eingeführt wird. openHAB 4.3 wird voraussichtlich Ende des Jahres veröffentlicht. In diesem Blog-Beitrag werfen wir einen genaueren Blick auf das SOLARMAN-Binding und wie es zur Optimierung der Energieverwaltung in deinem Smart Home beitragen kann.

Was ist das SOLARMAN-Binding?

Das SOLARMAN-Binding ermöglicht die nahtlose Integration von Solarmodulen und Wechselrichtern, die auf der SOLARMAN-Datenplattform basieren, in das openHAB-Ökosystem. SOLARMAN ist eine weit verbreitete IoT-Plattform, die von vielen Herstellern von Solaranlagen genutzt wird. Mit diesem Binding können Anwender ihre Solaranlagen und die damit verbundenen Daten direkt in ihre Smart-Home-Umgebung integrieren und überwachen.

Bis jetzt konnte / musste man SOLARMAN über das HTTP-Binding per WebService noch manuell in seine bestehende openHAB-Umgebung integrieren. Die manuelle Integration in mein Umfeld habe ich in diesem Beitrag bereits beschrieben.

Vorteile des SOLARMAN-Bindings

  1. Zentrale Überwachung deiner Solaranlage: Mit dem SOLARMAN-Binding kannst du in Echtzeit Informationen über die Leistung deiner Solaranlage, wie z.B. Energieproduktion, Verbrauch und Systemzustand, direkt in openHAB abrufen. Alle relevanten Daten werden auf einer Plattform gesammelt und übersichtlich aufbereitet.
  2. Optimierung des Energieverbrauchs: Die Integration deiner Solaranlage in das Smart Home eröffnet zahlreiche Automatisierungsmöglichkeiten. Du kannst beispielsweise den Betrieb energieintensiver Geräte auf Zeiten verschieben, in denen deine Solaranlage viel Strom produziert, und so deine Stromkosten optimieren.
  3. Langfristige Analyse und Berichte: Das Binding unterstützt nicht nur Echtzeit-Daten, sondern auch historische Analysen. So kannst du über einen längeren Zeitraum hinweg verfolgen, wie sich deine Solaranlage verhält und wie sich bestimmte Optimierungen auf deine Energiebilanz auswirken.
  4. Einfache Integration: Dank der flexiblen Architektur von openHAB lässt sich das SOLARMAN-Binding einfach in bestehende Systeme integrieren. Auch ohne tiefgehende technische Kenntnisse kannst du schnell von den neuen Möglichkeiten profitieren, die dieses Binding bietet.

Voraussetzungen für die Nutzung

Um das SOLARMAN-Binding nutzen zu können, benötigst du:

  • Ein openHAB 4.3 – System
  • Eine kompatible Solaranlage, die auf der SOLARMAN-Datenplattform basiert
  • Zugang zu den API-Schlüsseln deines SOLARMAN-Accounts, um die Kommunikation zwischen openHAB und der Plattform zu ermöglichen

Einrichtung des SOLARMAN-Bindings

Die Einrichtung des SOLARMAN-Bindings ist einfach gehalten:

  1. Installiere das SOLARMAN-Binding über die Benutzeroberfläche von openHAB.
  2. Gib deine SOLARMAN-API-Schlüssel ein.
  3. Richte deine Solaranlagen-Komponenten in openHAB ein und lege fest, welche Datenpunkte überwacht werden sollen.
  4. Erstelle Regeln und Automatisierungen, um den Betrieb deiner Geräte zu optimieren.

Eine ausführliche Schritt-für-Schritt-Anleitung findest du in der offiziellen SOLARMAN-Dokumentation des Bindings.

Ausblick: Zukünftige Entwicklungen

Da das SOLARMAN-Binding noch in der Beta-Phase ist, sind kontinuierliche Verbesserungen zu erwarten. Die Entwickler-Community von openHAB arbeitet stetig an der Erweiterung und Optimierung von Funktionen, sodass wir in zukünftigen Versionen noch mehr Flexibilität und Features sehen werden.

Fazit

Das neue SOLARMAN-Binding in openHAB 4.3 bietet eine hervorragende Möglichkeit, Solaranlagen effizient in das Smart Home zu integrieren und den Energieverbrauch zu optimieren. Mit Echtzeit-Daten, historischen Analysen und der Möglichkeit zur Automatisierung bietet das Binding eine wertvolle Erweiterung für alle, die auf Solarenergie setzen und ihr Smart Home noch smarter gestalten wollen.

openHAB und SOLARMAN: Integrationsschritte im Detail

Die Integration von SOLARMAN in openHAB ermöglicht Hausbesitzern eine effiziente Überwachung und Steuerung ihrer Solaranlage. In diesem Beitrag werden verschiedene Ansätze vorgestellt, wie die Daten des Wechselrichters in die Open-Source-Plattform integriert werden können. Die Integration wird über die SOLARMMANPV API realisiert. Damit können viele Wechselrichter (hier Deye oder Bosswerk) in openHAB integriert werden.

Aktivierung API

Im ersten Schritt muss die API von SOLARMANPV für die externe Nutzung freigeschaltet werden. Dazu genügt eine kurze E-Mail an den Kundenservice (customerservice@solarmanpv.com):

Hello Solarman-Support,

I need access to the Solarman-API.
Account: xxx

Best regards,
xxx

Installation

Die Installation in openHAB 4.2.x erfolgt wie gewohnt über das Webinterface:

  • Add-on Store – Binding – HTTP-Binding – INSTALL

In den früheren Versionen war teilweise das HTTP-Binding von SmartHome/J zum Teil notwendig. In den alten Versionen gab es auch Probleme mit der Token-Authentifizierung von SOLARMANPV (das ist aber in den aktuellen Versionen behoben).

Vor der ersten Integration in openHAB kann der Webservice mit den entsprechenden Tools getestet werden. Dafür habe ich Postman verwendet.

Thing

Eine mögliche SOLARMAN.things kann wie folgt aussehen (die Werte mit xxx müssen durch eigene Werte ersetzt werden):

Thing http:url:solarmanpv_account "SOLARMANPV - Account" [
  baseURL="https://globalapi.solarmanpv.com/account/v1.0/token?appId=xxx&language=en",
  contentType="application/json",
  authMode="BASIC",
  stateMethod="POST",
  commandMethod="GET",
  // 86400 Sekunden = 24 Std. - 4752000 Sekunden = 55 Tage (60 Tage läuft ein Token)
  // 2592000 Sekunden = 30 Tage
  refresh=4752000] {
      Channels:
          Type string : config "config" [ stateContent="{ \"appSecret\" : \"xxx\", \"email\" : \"xxx@xxx.de\", \"password\" : \"xxx\" }" ]
}

Thing http:url:solarmanpv_station "SOLARMANPV - Station" [
  baseURL="https://globalapi.solarmanpv.com/station/v1.0/list?language=en",
  contentType="application/json",
  authMode="TOKEN",
  password="xxx",
  stateMethod="POST",
  refresh=60] {
      Channels:
          // Fehlerbehandlung
          Type string : msg "msg" [ stateTransformation="JSONPATH:$.msg", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type string : code "code" [ stateTransformation="JSONPATH:$.code", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type string : success "success" [ stateTransformation="JSONPATH:$.success", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type string : requestId "requestId" [ stateTransformation="JSONPATH:$.requestId", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          // Anzahl der Stationen
          Type string : total "total" [ stateTransformation="JSONPATH:$.total", stateContent="{ \"page\": 1, \"size\": 50 }" ]

          // xxx- Bosswerk BW-HY 3600 - Haus Süd
          Type number : stationList_xxx_id                   "stationList_xxx_id"                   [ stateTransformation="JSONPATH:$.stationList[1].id", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type string : stationList_xxx_name                 "stationList_xxx_name"                 [ stateTransformation="JSONPATH:$.stationList[1].name", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type number : stationList_xxx_installedCapacity    "stationList_xxx_installedCapacity"    [ stateTransformation="JSONPATH:$.stationList[1].installedCapacity", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type number : stationList_xxx_batterySoc           "stationList_xxx_batterySoc"           [ stateTransformation="JSONPATH:$.stationList[1].batterySoc", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type string : stationList_xxx_networkStatus        "stationList_xxx_networkStatus"        [ stateTransformation="JSONPATH:$.stationList[1].networkStatus", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type number : stationList_xxx_generationPower      "stationList_xxx_generationPower"      [ stateTransformation="JSONPATH:$.stationList[1].generationPower", stateContent="{ \"page\": 1, \"size\": 50 }" ]
          Type string : stationList_xxx_lastUpdateTime       "stationList_xxx_lastUpdateTime"       [ stateTransformation="JSONPATH:$.stationList[1].lastUpdateTime", stateContent="{ \"page\": 1, \"size\": 50 }" ]
}

Thing http:url:solarmanpv_realTime "SOLARMANPV - realTime" [
  baseURL="https://globalapi.solarmanpv.com/station/v1.0/realTime?language=en",
  contentType="application/json",
  authMode="TOKEN",
  password="xxx",
  stateMethod="POST",
  refresh=60] {
      Channels:
        // xxx - Bosswerk BW-HY 3600 - Haus Süd
          Type string : realTime_xxx_code                    "realTime_xxx_code"                    [ stateTransformation="JSONPATH:$.code", stateContent="{\"stationId\": xxx}" ]
          Type string : realTime_xxx_msg                     "realTime_xxx_msg"                     [ stateTransformation="JSONPATH:$.msg", stateContent="{\"stationId\": xxx}" ]
          Type string : realTime_xxx_success                 "realTime_xxx_success"                 [ stateTransformation="JSONPATH:$.success", stateContent="{\"stationId\": xxx}" ]
          Type string : realTime_xxx_requestId               "realTime_xxx_requestId"               [ stateTransformation="JSONPATH:$.requestId", stateContent="{\"stationId\": xxx}" ]
          Type number : realTime_xxx_generationPower         "realTime_xxx_generationPower"         [ stateTransformation="JSONPATH:$.generationPower", stateContent="{\"stationId\": xxx}" ]
          Type number : realTime_xxx_usePower                "realTime_xxx_usePower"                [ stateTransformation="JSONPATH:$.usePower", stateContent="{\"stationId\": xxx}" ]
          Type number : realTime_xxx_purchasePower           "realTime_xxx_purchasePower"           [ stateTransformation="JSONPATH:$.purchasePower", stateContent="{\"stationId\": xxx}" ]
          Type number : realTime_xxx_batteryPower            "realTime_xxx_batteryPower"            [ stateTransformation="JSONPATH:$.batteryPower", stateContent="{\"stationId\": xxx}" ]
          Type number : realTime_xxx_batterySoc              "realTime_xxx_batterySoc"              [ stateTransformation="JSONPATH:$.batterySoc", stateContent="{\"stationId\": xxx}" ]
          Type number : realTime_xxx_generationTotal         "realTime_xxx_generationTotal"         [ stateTransformation="JSONPATH:$.generationTotal", stateContent="{\"stationId\": xxx}" ]
          Type string : realTime_xxx_lastUpdateTime          "realTime_xxx_lastUpdateTime"          [ stateTransformation="JSONPATH:$.lastUpdateTime", stateContent="{\"stationId\": xxx}" ]
}

Zwei Webservices werden angesprochen:

  1. Account – optionale Nutzung für das Auslesen der Token (funktionktioniert, erfordert aber manuelle Eingriffe alle 90 Tage)
  2. realTime – Auslesen der Werte von der API

Items

Die SOLARMAN.items kann wie folgt erstellt werden:

//
// https://globalapi.solarmanpv.com/account/v1.0/token?appId=xxx&language=en
// 23.12.2023
//
String solarmanpv_account_config        "SOLARMANPV - Account - config"         { channel="http:url:solarmanpv_account:config"}

//
// https://globalapi.solarmanpv.com/station/v1.0/list?language=en
//
// Fehlerbehandlung
String solarmanpv_station_msg "SOLARMANPV - Station - msg" { channel="http:url:solarmanpv_station:msg"}
String solarmanpv_station_code "SOLARMANPV - Station - code" { channel="http:url:solarmanpv_station:code"}
String solarmanpv_station_success "SOLARMANPV - Station - success" { channel="http:url:solarmanpv_station:success"}
String solarmanpv_station_requestId "SOLARMANPV - Station - requestId" { channel="http:url:solarmanpv_station:requestId"}
// Anzahl der Stationen
String solarmanpv_station_total "SOLARMANPV - Station - total" { channel="http:url:solarmanpv_station:total"}
// xxx - Bosswerk BW-HY 3600 - Haus Süd
Number solarmanpv_stationList_xxx_id "SOLARMANPV - stationList - xxx - id" { channel="http:url:solarmanpv_station:stationList_xxx_id"}
String solarmanpv_stationList_xxx_name "SOLARMANPV - stationList - xxx - name" { channel="http:url:solarmanpv_station:stationList_xxx_name"}
Number solarmanpv_stationList_xxx_installedCapacity "SOLARMANPV - stationList - xxx - installedCapacity" { channel="http:url:solarmanpv_station:stationList_xxx_installedCapacity"}
Number solarmanpv_stationList_xxx_batterySoc "SOLARMANPV - stationList - xxx - batterySoc" { channel="http:url:solarmanpv_station:stationList_xxx_batterySoc"}
String solarmanpv_stationList_xxx_networkStatus "SOLARMANPV - stationList - xxx - networkStatus" { channel="http:url:solarmanpv_station:stationList_xxx_networkStatus"}
Number solarmanpv_stationList_xxx_generationPower "SOLARMANPV - stationList - xxx - generationPower" { channel="http:url:solarmanpv_station:stationList_xxx_generationPower"}
DateTime solarmanpv_stationList_xxx_lastUpdateTime "SOLARMANPV - stationList - xxx - lastUpdateTime" { channel="http:url:solarmanpv_station:stationList_xxx_lastUpdateTime"}

//
// https://globalapi.solarmanpv.com/station/v1.0/realTime?language=en
//
// Gesamte Übersicht
Number solarmanpv_realTime_generationTotal "SOLARMANPV - stationList - generationTotal"
// xxx - Bosswerk BW-HY 3600 - Haus Süd
String solarmanpv_realTime_xxx_code "SOLARMANPV - stationList - xxx - code" { channel="http:url:solarmanpv_realTime:realTime_xxx_code"}
String solarmanpv_realTime_xxx_msg "SOLARMANPV - stationList - xxx - msg" { channel="http:url:solarmanpv_realTime:realTime_xxx_msg"}
String solarmanpv_realTime_xxx_success "SOLARMANPV - stationList - xxx - success" { channel="http:url:solarmanpv_realTime:realTime_xxx_success"}
String solarmanpv_realTime_xxx_requestId "SOLARMANPV - stationList - xxx - requestId" { channel="http:url:solarmanpv_realTime:realTime_xxx_requestId"}
Number solarmanpv_realTime_xxx_generationPower "SOLARMANPV - stationList - xxx - generationPower" { channel="http:url:solarmanpv_realTime:realTime_xxx_generationPower"}
Number solarmanpv_realTime_xxx_usePower "SOLARMANPV - stationList - xxx - usePower" { channel="http:url:solarmanpv_realTime:realTime_xxx_usePower"}
Number solarmanpv_realTime_xxx_purchasePower "SOLARMANPV - stationList - xxx - purchasePower" { channel="http:url:solarmanpv_realTime:realTime_xxx_purchasePower"}
Number solarmanpv_realTime_xxx_batteryPower "SOLARMANPV - stationList - xxx - batteryPower" { channel="http:url:solarmanpv_realTime:realTime_xxx_batteryPower"}
Number solarmanpv_realTime_xxx_batterySoc "SOLARMANPV - stationList - xxx - batterySoc" { channel="http:url:solarmanpv_realTime:realTime_xxx_batterySoc"}
Number solarmanpv_realTime_xxx_generationTotal "SOLARMANPV - stationList - xxx - generationTotal" { channel="http:url:solarmanpv_realTime:realTime_xxx_generationTotal"}
DateTime solarmanpv_realTime_xxx_lastUpdateTime "SOLARMANPV - stationList - xxx - lastUpdateTime" { channel="http:url:solarmanpv_realTime:realTime_xxx_lastUpdateTime"}

Rules

Nun kann man in der Regeldatei SOLARMAN.rules seine entsprechenden Regeln parametrieren:

rule "SOLARMANPV generation total"
when
  Item solarmanpv_realTime_xxx_generationTotal received update
then
  logInfo("INFO", "SOLARMAN.rules - Gesamtproduktion Start: " + solarmanpv_realTime_xxx_generationTotal.state)
    solarmanpv_realTime_generationTotal.postUpdate((solarmanpv_realTime_xxx_generationTotal.state as Number) + 
    (solarmanpv_realTime_xxx_generationTotal.state as Number) + 
    (solarmanpv_realTime_xxx_generationTotal.state as Number) + 
    (solarmanpv_realTime_xxx_generationTotal.state as Number)) 
  logInfo("INFO", "SOLARMAN.rules - Gesamtproduktion (Total kWh): " + solarmanpv_realTime_generationTotal.state)
end

// 08.02.2024 - Wenn Item mit Refresh Token von SOLARMAN PV geändert wird, Regel ausführen
rule "SOLARMANPV refresh token"
when
  Item solarmanpv_account_config received update
then
  //logInfo("INFO", "SOLARMAN.rules - JSON: " + solarmanpv_account_config)
  val access_token = transform("JSONPATH", "$.access_token", solarmanpv_account_config.state.toString)
  val expires_in = transform("JSONPATH", "$.expires_in", solarmanpv_account_config.state.toString)
  val double expiresMinutes = Double.parseDouble(expires_in.toString) / 60
  val double expiresHours = Double.parseDouble(expiresMinutes.toString) / 60
  val double expiresDays = Double.parseDouble(expiresHours.toString) / 24
  // TEST NOCH OFFEN - expires_in muss DOUBLE sein
  //var test = 0;
  //test = Math.floor(expires_in)
  //minutes = Math.floor(dur / 60);
  //hours = Math.floor(minutes / 60);
  //days = Math.floor(hours / 24);
  //logInfo("INFO", "SOLARMAN.rules - Access Token: " + access_token)
  logInfo("INFO", "SOLARMAN.rules - Expires In (Sekunden): " + expires_in)
  logInfo("INFO", "SOLARMAN.rules - Expires In (Tage): " + expiresDays)
  val telegramAction = getActions("telegram","telegram:telegramBot:HA_Bot")
  telegramAction.sendTelegram(Long::parseLong(TELEGRAM_CHANNEL_SMARTHOME_ADMIN.label), "SOLARMAN.rules - Expires In (Tage): " + expiresDays)
end

In dieser Regel summiere ich verschiedene Werte meiner Wechselrichter in einer Gesamtübersicht.

Außerdem schreibe ich eine Nachricht in eine Telegram-Gruppe, wenn der Token von SOLARMANPV nach ca. 90 Tagen abläuft.

Haus.sitemap

Text label="PV" icon="sun" {
  Frame label="Gesamtübersicht" {
    Text item=solarmanpv_realTime_generationTotal label="Gesamtproduktion (kWh) [%s]" icon="energy"
  } 
  Frame label="PV-Anlagen & Wechselrichter" {

    Text label="Bosswerk BW-HY 3600 - Haus Süd" icon="settings" {
      Frame label="Stationsdaten" {
        Text item=solarmanpv_stationList_xxx_name label="Name der Anlage [%s]" icon=""
        Text item=solarmanpv_stationList_xxx_installedCapacity label="Installierte Kapazität (kWp) [%s]" icon=""
        Text item=solarmanpv_stationList_xxx_batterySoc label="Batterie [%s]" icon=""
        Text item=solarmanpv_stationList_xxx_networkStatus label="Status [%s]" icon=""
        Text item=solarmanpv_stationList_xxx_generationPower label="Produktion [%s]" icon=""
        Text item=solarmanpv_stationList_xxx_lastUpdateTime label="Aktualisiert [%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]" icon=""
      }
      Frame label="Echtzeitdaten" {
        Text item=solarmanpv_realTime_xxx_generationPower label="Produktion [%s]" icon=""
        Text item=solarmanpv_realTime_xxx_usePower label="Verbrauch [%s]" icon=""
        Text item=solarmanpv_realTime_xxx_purchasePower label="Netz [%s]" icon=""
        Text item=solarmanpv_realTime_xxx_batteryPower label="Batterie [%s]" icon=""
        Text item=solarmanpv_realTime_xxx_batterySoc label="Batteriestand [%s]" icon=""
        Text item=solarmanpv_realTime_xxx_generationTotal label="Gesamtproduktion [%s]" icon=""
        Text item=solarmanpv_realTime_xxx_lastUpdateTime label="Aktualisiert [%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]" icon=""
      }
      Frame label="Gesamtproduktion" {
        Switch item=Chart_Zeitraum_D_W_M_Y label="" mappings=[0="Tag", 1="Woche", 2="Monat", 3="Jahr"]
        Chart item=solarmanpv_realTime_xxx_generationTotal service="rrd4j" period=D refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==0, Chart_Zeitraum_D_W_M_Y=="Uninitialized"]
        Chart item=solarmanpv_realTime_xxx_generationTotal service="rrd4j" period=W refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==1]
        Chart item=solarmanpv_realTime_xxx_generationTotal service="rrd4j" period=M refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==2]
        Chart item=solarmanpv_realTime_xxx_generationTotal service="rrd4j" period=Y refresh=15000 visibility=[Chart_Zeitraum_D_W_M_Y==3]
      }
    }
  }
}

Fazit

Die Integration von SOLARMAN in openHAB war für mich etwas komplizierter. Es gab kein fertiges Binding, das ich verwenden konnte, d.h. ich musste zu einer manuellen Integration der Webservices per HTTP-Binding übergehen.

In der frühen Phase der Integration gab es dann noch das Problem, dass der Token von SOLARMAN leider nicht mit dem Binding funktionierte. Das wurde dann aber in Zusammenarbeit mit dem sehr aktiven Entwickler gelöst und in den nächsten Versionen behoben.

Momentan habe ich noch das Problem, dass der Token alle 90 Tage abläuft. Ich kann den Token zwar auslesen, aber ich habe noch keine Möglichkeit gefunden, den Token dann auch entsprechend automatisiert in den Items von openHAB zu hinterlegen (dafür schicke ich mir grob vor dem Ablaufdatum eine Nachricht und passe es noch manuell an).

Die technische Integration von SOLARMAN in openHAB ist mit den aktuellen Versionen inzwischen recht einfach möglich. Ein einfaches Beispielszenario ist schnell eingerichtet. Die Integration läuft nun seit einiger Zeit sehr stabil und ich bin sehr zufrieden damit.

openHAB 4.2.0: Die neuesten Features und Verbesserungen im Überblick

In der schnelllebigen Welt der Smart Home Technologien ist es wichtig, immer am Puls der Zeit zu bleiben. Es wurde am 07.07.2024 die neue Version openHAB 4.2.0 als Nachfolger der Version 4.1 veröffentlicht. Diese Version bringt eine Vielzahl aufregender neuer Funktionen und Verbesserungen, die dein Smart Home-Erlebnis auf ein neues Niveau heben.

 

 

Hier findest du die Release Notes. Eine vollständige Übersicht über die neue Version ist auf GitHub verfügbar. Im Forum kannst du dich über die Neuerungen und Änderungen austauschen.

Highlights der Version 4.2.0

Verbesserte Benachrichtigungsfunktionen

Mit openHAB 4.2.0 wurde die Architektur der mobilen Push-Benachrichtigungen überarbeitet. Diese Aktualisierung bietet dir moderne und erweiterte Benachrichtigungsfunktionen für Android- und iOS-Geräte. Du erhältst jetzt detailliertere und anpassbare Benachrichtigungen, die dir helfen, dein Smart Home noch effizienter zu steuern.

Neue Add-ons und Verbesserungen

In dieser Version wurden 23 neue Add-ons hinzugefügt, die die Funktionalität von openHAB erheblich erweitern. Diese Add-ons decken eine Vielzahl von Anwendungen ab, von neuen Geräten bis hin zu verbesserten Integrationen. Zusätzlich wurden 158 Fehler behoben und 195 Verbesserungen implementiert, was die Stabilität und Leistung der Plattform weiter erhöht.

Verbesserte Benutzeroberflächen

Die Web-UIs haben einen neuen Höchststand erreicht, mit 247 zusammengeführten Pull-Requests, darunter 95 Fehlerbehebungen und 105 Verbesserungen. Die Benutzeroberflächen sind jetzt noch intuitiver und benutzerfreundlicher, was die Interaktion mit dem System erleichtert und die Benutzererfahrung verbessert.

Beiträge der Community und Statistiken

Die openHAB-Community war wieder einmal äußerst aktiv und hat einen großen Beitrag zur Entwicklung dieser Version geleistet. Insgesamt wurden 216 Pull-Requests für das openHAB-Core-Repository eingereicht, was zu 56 Fehlerbehebungen und 104 Verbesserungen führte. Ein großes Dankeschön an alle Mitwirkenden, die openHAB vorantreiben!

Fazit

Die Version 4.2.0 von openHAB bringt viele spannende Neuerungen und Verbesserungen, die dein Smart Home-Erlebnis weiter optimieren. Bleib dran für weitere Updates und genieße die neuen Funktionen von openHAB 4.2.0!

Künstliche Intelligenz im Smart Home: Wie openHAB die Zukunft der Hausautomation gestaltet

In einer Welt, in der Technologie unser tägliches Leben immer mehr durchdringt, steht das Smart Home an vorderster Front der Innovation. Künstliche Intelligenz (KI) spielt dabei eine entscheidende Rolle, indem sie unsere Wohnräume intelligenter, effizienter und komfortabler macht. Eine der führenden Plattformen in diesem Bereich ist openHAB, ein Open-Source-Projekt, das die Integration und Steuerung verschiedenster Smart-Home-Geräte ermöglicht. Doch wie genau gestaltet openHAB die Zukunft der Hausautomation und welche Szenarien gibt es im Smart Home?

Eigenständige Verbesserung von Regeln und Optionen

Traditionelle Smart-Home-Systeme basieren oft auf festen, regelbasierten Szenarien. Diese erfordern manuelle Einstellungen und Anpassungen. Mit KI können diese Regeln jedoch dynamisch und selbstständig verbessert werden. Anstatt starrer Wenn-Dann-Regeln analysiert die KI kontinuierlich das Verhalten der Bewohner und passt die Einstellungen entsprechend an. Dies führt zu einer flexibleren und effizienteren Steuerung des Haushalts.

Komplexere Szenarien durch Deep Learning und maschinelles Lernen

Durch den Einsatz von Deep Learning, maschinellem Lernen und künstlichen neuronalen Netzen können Smart-Home-Systeme komplexere Szenarien bewältigen. Diese Technologien ermöglichen es, große Datenmengen zu verarbeiten und daraus Muster zu erkennen, die für die Optimierung des Haushalts genutzt werden können. So kann beispielsweise die Beleuchtung automatisch an die Tageszeit und die Aktivitäten der Bewohner angepasst werden.

Personalisierte Empfehlungen für mehr Komfort

Ein wesentlicher Vorteil der KI im Smart Home ist die Fähigkeit, personalisierte Empfehlungen zu geben, die den Komfort der Bewohner erhöhen. Die KI kann beispielsweise die Beleuchtung anpassen, um eine entspannte Atmosphäre zu schaffen, wenn die Bewohner nach einem langen Arbeitstag nach Hause kommen. Sie kann auch Vorschläge für Musik oder Filme machen, basierend auf den bisherigen Vorlieben der Nutzer

Muster in Daten durch KI-Analyse erkennen

Ein weiterer Vorteil der KI im Smart Home ist die Fähigkeit, Muster in den gesammelten Daten zu erkennen. Durch die Analyse dieser Muster kann das System Vorhersagen treffen und personalisierte Empfehlungen geben. Beispielsweise kann die KI vorschlagen, die Heizung früher einzuschalten, wenn sie erkennt, dass die Bewohner regelmäßig zu einer bestimmten Zeit nach Hause kommen.

Energieoptimierung durch KI

Energieeffizienz ist ein zentrales Thema im Smart Home. KI kann dazu beitragen, den Energieverbrauch zu optimieren, indem sie den Betrieb von Geräten basierend auf dem tatsächlichen Bedarf steuert. Obwohl auch regelbasierte Systeme Energieeinsparungen ermöglichen, bietet die KI eine feinere Abstimmung und Anpassung an die individuellen Bedürfnisse der Bewohner.

Erhöhung der Sicherheit

Die Sicherheit im Smart Home kann durch KI erheblich verbessert werden. Durch die Analyse des Verhaltens der Bewohner kann die KI ungewöhnliche Aktivitäten erkennen und entsprechende Maßnahmen ergreifen. Auch hier können regelbasierte Systeme eine gewisse Sicherheit bieten, jedoch ermöglicht die KI eine proaktivere und intelligentere Überwachung.

Integration in Smart-Home-Lautsprecher

Ein weiterer spannender Aspekt ist die Integration von KI in Smart-Home-Lautsprecher wie Alexa-Geräte. Diese Integration ermöglicht nicht nur die Steuerung des Smart Homes per Sprachbefehl, sondern auch eine abwechslungsreichere und personalisierte Interaktion. Die KI kann beispielsweise auf individuelle Vorlieben eingehen und personalisierte Antworten geben.

Schreiben von openHAB-Regeln per ChatGPT

Ein besonders sinnvoller Ansatz ist die Nutzung von ChatGPT zum Schreiben von openHAB-Regeln. Dies würde es den Nutzern ermöglichen, komplexe Automatisierungsregeln einfach per Chat zu erstellen, ohne tiefgehende Programmierkenntnisse zu benötigen. Dies könnte die Benutzerfreundlichkeit und Flexibilität von Smart-Home-Systemen erheblich steigern.

Fazit

Die Integration von Künstlicher Intelligenz im Smart Home bietet zahlreiche Vorteile, von der Verbesserung der Energieeffizienz über die Erhöhung der Sicherheit bis hin zur Personalisierung des Wohnumfelds. Die Zukunft des Wohnens wird durch KI nicht nur komfortabler, sondern auch intelligenter und effizienter gestaltet.

Welche Szenarien und Einsatzgebiete siehst du bei der Nutzung von KI im Smart Home?

 

 

ChatGPT in openHAB: Ein technischer Leitfaden

Bist du bereit, dein Smart Home auf die nächste Stufe zu heben? Stell dir vor, du hast einen virtuellen Assistenten, der deine Sprachbefehle versteht, deine Lichter steuert, die Raumtemperatur anpasst und sogar deine Fragen beantwortet – alles nahtlos in dein openHAB Smart Home-System integriert. 🌟🏡

In diesem Blog-Beitrag werden wir erkunden, wie du ChatGPT, ein leistungsstarkes Sprachmodell, mit openHAB – einer Open-Source-Plattform für Hausautomatisierung – verknüpfen kannst. Egal, ob du ein erfahrener openHAB-Nutzer bist oder gerade erst anfängst, du wirst neue Möglichkeiten entdecken, dein Zuhause zu automatisieren und deinen Alltag zu verbessern. Lass uns eintauchen!

Für diesen Beitrag habe ich ein Beispiel aus der Dokumentation verwendet. Ich bin jetzt dabei Anwendungsfälle zu finden und diese zu integrieren. Die Details zum Binding findet ihr hier. Im Forum gab es hier auch noch ein paar ergänzende Hinweise.

OpenAI Account

Im ersten Schritt muss ein kostenpflichtiger Account bei OpenAI erstellt werden. Die Integration der API funktioniert nicht mit dem Free Account. Nach der Anmeldung kann man wie folgt Guthaben aufladen und das Abo wieder beenden:

Installation

Die Installation drfolgt wie gewohnt über die Web-Oberfläche:

  • Add-on Store – Binding – ChatGPT Binding – INSTALL

Danach muss ein API-Key für ChatGPT generiert werden

Thing

Eine mögliche ChatGPT.things kann wie folgt aussehen:

Thing chatgpt:account:1 [apiKey="xxx"] {
    Channels:
        Type chat : chat "Weather Advice" [
            model="gpt-3.5-turbo",
            temperature="1.5",
            systemMessage="Answer briefly, in 2-3 sentences max. Behave like Eddie Murphy and give an advice for the day based on the following weather data:"
        ]
        Type chat : morningMessage "Morning Message" [
            model="gpt-3.5-turbo",
            temperature="0.5",
            systemMessage="You are Marvin, a very depressed robot. You wish a good morning and tell the current time."
        ]
}

Items

Die ChatGPT.items kann entsprechend aus der Dokumentation übernommen werden:

String Weather_Announcement { channel="chatgpt:account:1:chat" }
String Morning_Message      { channel="chatgpt:account:1:morningMessage" }

Number Temperature_Forecast_Low
Number Temperature_Forecast_High

Rules

Nun kann man in der Regeldatei ChatGPT.rules seine entsprechenden Regeln parametrieren:

rule "Weather forecast update"
when
  Item Temperature_Forecast_High changed
then
    Weather_Announcement.sendCommand("High: " + Temperature_Forecast_High.state + "°C, Low: " + Temperature_Forecast_Low.state + "°C")
end

rule "Good morning"
when
  Time cron "0 0 7 * * *"
then
    Morning_Message.sendCommand("Current time is 7am")
end

Ergebnis

Das Ergebnis sieht in der events.log wie folgt aus:

2024-04-29 20:56:01.004 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Morning_Message' received command Current time is 7am
2024-04-29 21:07:02.424 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Morning_Message' changed from NULL to Good morning. It is currently 7am.

In der openhab.log wird auch ein Teil protokolliert:

2024-04-29 20:55:29.188 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ChatGPT.rules'
2024-04-29 20:56:01.006 [INFO ] [org.openhab.core.model.script.INFO  ] - ChatGPT.rules - Current time is 7am
2024-04-29 20:56:01.282 [ERROR] [ding.chatgpt.internal.ChatGPTHandler] - ChatGPT request resulted in HTTP 429 with message: Too Many Requests
2024-04-29 21:06:11.314 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ChatGPT.rules'
2024-04-29 21:07:01.238 [INFO ] [org.openhab.core.model.script.INFO  ] - ChatGPT.rules - Current time is 7am
2024-04-29 21:17:00.537 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Morning_Message' received command Current time is 7am
2024-04-29 21:17:00.541 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Temperature_Forecast_Low' changed from NULL to 7
2024-04-29 21:17:00.542 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Temperature_Forecast_High' changed from NULL to 15
2024-04-29 21:17:00.547 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Weather_Announcement' received command High: 15°C, Low: 7°C
2024-04-29 21:17:01.524 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Morning_Message' changed from Good morning. It is currently 7am. Another day to exist in this meaningless existence. to Good morning. It is currently 7am. Another day to exist in this meaningless universe.
2024-04-29 21:17:03.627 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Weather_Announcement' changed from "Hey folks, it's waking up time! Grab yourself a strong cup of coffee and get your day off to a great start. Sow some positive vibes so you can reap a beautiful day ahead. And remember, go out there and slay like a sunbeam–be bright, shine and spread some warmth!" to "Hey there! Today's weather is sounding like a smooth jazz song so play some calming tunes, grab a cozy sweater, and sip on a hot beverage. Embrace the brisk air, take a deep breath, and have a breezy day."

In meinem Fall wird dann auch auf einem Alexa-Endgerät eine Sprachausgabe entsprechend ausgegeben.

Fazit

Die technische Integration von ChatGPT in openHAB ist mit den aktuellen Versionen ziemlich einfach möglich. Ein einfaches Beispielszenario ist schnell eingerichtet. 

Weitere Szenarien für den produktiven Betrieb in unserem SmartHome habe ich noch nicht weiter evaluiert. Zu Szenarien im SmartHome in Kombination mit künstlicher Intelligenz werde ich noch einen eigenständigen Beitrag erstellen.

Nutzt Ihr ChatGPT in openHAB? Welche Szenarien und Anwendungsfälle fallen euch ein?

openHAB: Wie du erfolgreich von 3.4.1 auf 4.1.2 aktualisierst

Im Mai 2024 habe ich mein SmartHome-System openHAB auf die aktuelle Version 4.1.2 aktualisiert. Damit habe ich ein Major Release übersprungen. Die Neuerungen von openHAB 4.0 habe ich  bereits hier beschrieben. Die Neuerungen sind in diesem diesem Blogbeitrag dokumentiert. 

Installationsvoraussetzungen prüfen

In den letzten Versionen sind mehr Infrastrukturänderungen auf Java- und Betriebssystembasis enthalten. Es sind also mehr Vorarbeiten und Prüfungen notwendig!

Im ersten Fall muss das zugehörige Pi-OS wie folgt kontrolliert werden:

cat /etc/os-release

In meinem Fall ist Raspbian GNU/Linux 10 (buster) nicht mehr direkt unterstützt und es müssen manuelle Schritte durchgeführt werden.

Die Prüfung der Java-Version kann wie folgt durchgeführt werden:

java -version

Auf meine openjdk version „11.0.16“ 2022-07-19 muss manuell auf Version 17 aktualisiert werden.

Mit diesem Befehl prüft man die Architektur des Gesamtsystems:

uname -m

Für meine Architektur armv7l – 32 Bit gibt es auch keine aktuellen Updates mehr. Auch hier muss ich manuelle Tätigkeiten einplanen.

Da ich bei Buster bleiben möchte, eine alte OpenJDK-Version und eine 32-Bit-Architektur habe, war der Standard-Update-Pfad für mich nicht geeignet. In diesem Video wird ein ähnliches Szenario wie bei mir beschrieben:

Aufgaben vor dem Update

Ich hatte noch individuelle Anpassungen und Bindings. Diese müssen zuerst überprüft werden, z.B. wurde mein Fix für das HTTP-Binding von SmartHome/J bereits in den Release-Zweig aufgenommen.

Es ist auch möglich, die Formate für das UoM vor dem Update zu überprüfen und alle Integer-Items entsprechend anzupassen. Hier sind die Breaking Changes dazu.

Außerdem wird empfohlen, vor dem Update die SmartHome/J-Addons zu deinstallieren und nach dem erfolgreichen Update von openHAB wieder zu installieren.

Nun kann das System mit folgendem Befehl heruntergefahren werden:

sudo systemctl stop openhab.service

Java 17 Installation mit Buster

Java 17 benötigt mindestens Debian 11 (Bullseye). Daher ist eine einfache Installation mit „apt-get“ nicht möglich. Außerdem muss ich auf meinem System eine 32-Bit-Version von Java verwenden.

Ein entsprechendes OpenJDK kann wie folgt bezogen werden:

https://www.azul.com/downloads/#downloads-table-zulu
Java Version: Java 17 (LTS)
Architecture: ARM 32-bit HF
https://cdn.azul.com/zulu-embedded/bin/zulu17.48.15-ca-hl-jdk17.0.10-linux_aarch32hf.tar.gz

Bestehende Java-Versionen werden entfernt:

sudo apt remove openjdk-11-jre-headless
sudo apt remove java*

Die Installation von Azul Java 17 kann wie folgt durchgeführt werden:

sudo mkdir /opt/java
cd /opt/java
sudo wget https://cdn.azul.com/zulu-embedded/bin/zulu17.48.15-ca-hl-jdk17.0.10-linux_aarch32hf.tar.gz
sudo tar -xzvf zulu17.48.15-ca-hl-jdk17.0.10-linux_aarch32hf.tar.gz
sudo update-alternatives --install /usr/bin/java java /opt/java/zulu17.48.15-ca-hl-jdk17.0.10-linux_aarch32hf/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /opt/java/zulu17.48.15-ca-hl-jdk17.0.10-linux_aarch32hf/bin/javac 1
sudo update-alternatives --config java

Das Ergebnis kann wie folgt überprüft werden:

sudo java -version
openjdk version "17.0.10" 2024-01-16 LTS
OpenJDK Runtime Environment Zulu17.48+15-CA (build 17.0.10+7-LTS)
OpenJDK Server VM Zulu17.48+15-CA (build 17.0.10+7-LTS, mixed mode)

Update 3.4.1 auf 4.0 / 4.1

Ich habe nun mein System ohne größere Probleme von 3.4.1 auf 4.1.2 wie folgt umgestellt. Im ersten Schritt habe ich ein Backup mit der integrierten Backup-Funktion erstellt:

sudo $OPENHAB_RUNTIME/bin/backup
/var/lib/openhab/backups/

Danach habe ich die Dateien manuell gesichert und ein komplettes Backup als Image erstellt.

Nun habe ich dann das eigentliche Update durchgeführt (vor dem Update musste ich noch das aktuelle Repository – dies wird hier beschrieben):

sudo apt-get update sudo apt-get upgrade

Anschließend wurde der Cache geleert und das System neu gestartet:

sudo systemctl stop openhab.service
sudo openhab-cli clean-cache
sudo shutdown -r now

Der Updatevorgang hat direkt auf die Version 4.1.2 aktualisiert und die Version 4.0 übersprungen. Die Version kann im Webinterface überprüft werden: ÜBER – HILFE. Nun können auch die zuvor deinstallierten SmartHomeJ-Addons wieder installiert werden.

Breaking Changes kontrollieren

Während der Installation werden die „Breaking Changes“ des Updates visuell dargestellt. In meinem Fall musste ich die Release Notes von openHAB 4.0 und 4.1 entsprechend durcharbeiten und das System manuell überprüfen.

Folgende Anpassungen waren nach der Aktualisierung erforderlich:

Weitere Anpassungen in meinen Bindings waren nicht notwendig (Details sind aber immer in den entsprechenden Release Notes beschrieben).

Testen, Testen, Testen!

Nach jedem openHAB-Update führe ich in unserem SmartHome umfangreiche manuelle Tests durch. Zuerst kontrolliere ich das Log auf ERROR und WARN Meldungen. Danach werden alle Anwendungsfälle des Systems manuell getestet und gegebenenfalls Anpassungen vorgenommen.

Fazit

Das Update auf die aktuelle Version war diesmal in meiner Systemumgebung etwas aufwändiger. Der etwas ältere Raspberry Pi (32 Bit), damit die ältere Betriebssystemversion und die nicht mehr direkt verfügbare Java-Version haben etwas Aufwand verursacht. Ein Hardwarewechsel auf eine 64-Bit-Plattform und damit auf ein neues Pi-OS steht bei mir nun an.

Jetzt können die neuen Funktionen getestet und eingebaut werden. Für mich ist das ChatGPT-Binding und das PPT SMGW Binding interessant. Hierzu werde ich aber noch eigene Artikel schreiben.

Wie sind eure Updates auf openHAB 4.1 gelaufen? Gibt es Anpassungen, auf die ihr gewartet habt? Welche Optimierungen nehmt ihr in eurem SmartHome mit neuen Versionen vor?

Strommessung im Vergleich: Welche Messkonzepte sind für Strom, PV und Wärmepumpe optimal?

Die korrekte Messung des Stromverbrauchs und der Stromerzeugung ist entscheidend für die Effizienz und Wirtschaftlichkeit von Photovoltaikanlagen. In diesem Artikel werden verschiedene Methoden der Strommessung untersucht und ihre Vor- und Nachteile diskutiert.

Mögliche Messkonzepte

In meinem konkreten Fall geht es um die Beibehaltung von 2 getrennten Zählern für den Stromverbrauch und die Heizung. In Kombination mit einer PV-Anlage gibt es 3 mögliche Messkonzepte:

  • Gemeinsame Zähler (1 Zähler für den gesamten Haushalt)
  • Getrennte Zähler (2 Zähler für den gesamten Haushalt und PV nur auf einem Zähler)
  • Kaskade (2 kombinierte Zähler für den gesamten Haushalt)

Das Messkonzept hängt von den baulichen Gegebenheiten und der Planung der PV-Anlage ab.

Erste Berechnungen

Auf den ersten Blick ist die Kaskade für mich finanziell am interessantesten, da der kWh-Preis um ein Drittel günstiger ist.

Das Messkonzept der Kaskade wäre für meinen Stromverbrauch die günstigste Wahl. Bei einem prognostizierten Stromverbrauch von 7.000 kWh für Strom + Wärmepumpe würde ich ca. 160 Euro pro Jahr sparen. Ich nehme hier an, dass 3.500 kWh für Strom und 3.500 kWh für Wärme verbraucht werden.

Wenn ich aber davon ausgehe, dass ich den Verbrauch durch eine effizientere Steuerung der Wärmepumpe senken kann, dann ergeben sich folgende Werte:

  • Senkung der Heizkosten von 3.500 kWh auf 2.500 kWh – gemeinsamer Zähler ca. 120 Euro teurer
  • Senkung der Heizkosten von 3.500 kWh auf 2.000 kWh – gemeinsamer Zähler ca. 70 Euro teurer

Ich habe mich trotz des auf den ersten Blick höheren Preises für einen gemeinsamen Zähler entschieden. Die Details erläutere ich im nächsten Kapitel.

Meine Entscheidung gegen die Kaskadenmessung

Die Kaskadenschaltung lohnt sich für mich, wenn viel Strom zugekauft werden muss. Den Zukauf möchte ich durch unsere PV-Anlage weitgehend minimieren und auf den Eigenverbrauch optimieren. Hier ergibt sich für mich ein Bild, das bei reiner Betrachtung von Prognosewerten und aktuellen Kosten nicht ganz vergleichbar ist.

Aus meiner Sicht sollte man ab ca. 2.000 kWh Netzbezug für die Wärmepumpe seine Tarife und Konzepte genau vergleichen. Bei sanierten Altbauten kann ich mir vorstellen, dass Zwei-Zähler-Lösungen lukrativer sind (wir haben aber ein gut gedämmtes Passivhaus).

Ich gehe davon aus, dass der Nutzungsanteil unseres selbst erzeugten PV-Stroms höher wird, d.h. die Ein-Zähler-Lösung für uns lukrativer wird. Genaueres wird sich Ende 2024 (mit der Prognose für 8 Monate) bzw. 2025 zeigen, wenn die Zähler für ein ganzes Jahr zusammengefasst werden.

Ab 2023 haben wir keine unterschiedlichen Preise mehr für Hochtarif (HT) und Niedertarif (NT), d.h. die Anpassung der Heizung und Warmwasserbereitung auf mehr Betrieb am Tag ist möglich und damit eine effizientere Nutzung der Wärmepumpe wahrscheinlich.

Die generelle Anpassung der Heizung / Warmwasserbereitung, wenn PV-Strom selbst erzeugt wird, könnte zu Einsparungen führen. Da die Wärmepumpe aber hauptsächlich im Winter läuft, ist diese Anpassung wahrscheinlich nur für Warmwasser relevant.

Außerdem hat es mein Netzbetreiber (Bayernwerk) nicht geschafft, unseren alten Ferraris-Zähler gegen ein anderes intelligentes Messsystem (iMSys) auszutauschen. Bayernwerk wollte unbedingt eine moderne Messeinrichtung (mME) einbauen, obwohl der Strom bereits über iMSys gemessen wird. Somit waren für mich zwei verschiedene Methoden für die Messung im SmartHome notwendig (iMSys per Binding in openHAB / LTE und mMe per optischer Schnittstelle). Da die größte Einsparung für mich durch die Steuerung der Verbraucher möglich sein wird, habe ich den zweiten Zähler gekündigt und mir von meinem Elektriker einen eigenen Zähler für die Wärmepumpe (Shelly Pro 3EM) einbauen lassen. Damit kann ich nun unabhängig vom Netzbetreiber alle meine Stände direkt in das SmartHome integrieren und verarbeiten.

Fazit

Der ganze Frust, die schwierige Kommunikation mit dem Netzbetreiber und der damit verbundene bürokratische Aufwand der letzten ca. 3 Jahre kommt in diesem Artikel nicht zum Ausdruck. Aber wie mein Fall zeigt, wird die Energiewende mit Dienstleistern wie dem Bayernwerk aus meiner Sicht in Deutschland nur schwer gelingen.

Ausschlaggebender Grund des Rückbaus von einer 2-Zähler-Lösung auf die 1-Zähler-Lösung war die Nichtbereitstellung der iMSys durch den Netzbetreiber. Durch die Kündigung habe ich erst einmal höheren Verbrauch im Kauf genommen für mehr Komfort im SmartHome und weniger Streitereien mit Bayernwerk. Auf Dauer wird das aus meiner Sicht die sinnvollste Variante für mein Szenario sein.

Die Wahl der richtigen Strommessmethode hängt von den individuellen Anforderungen ab. Die Kaskadenschaltung mit einem Zweirichtungszähler bietet eine kostengünstige Lösung, erfordert jedoch genaue Berechnungen. Bei größeren Anlagen kann eine 2-Zähler-Lösung sinnvoll sein, um Verbrauch und Einspeisung separat zu erfassen.

Insgesamt ist die optimale Methode von Faktoren wie Anlagengröße, Kosten und Genauigkeit abhängig. Es lohnt sich, die verschiedenen Optionen sorgfältig zu prüfen, um die beste Lösung für deine Photovoltaikanlage zu finden.