openHAB 4.3.3 Update-Erfahrungen: Schnell, stabil und unkompliziert

Die Smart-Home-Software openHAB ist ein zentraler Bestandteil meiner Hausautomation und sorgt dafür, dass unterschiedlichste Geräte und Systeme nahtlos miteinander kommunizieren. Da regelmäßige Updates nicht nur neue Funktionen bringen, sondern auch Sicherheitslücken schließen und die Stabilität verbessern, entschied ich mich für das Upgrade von Version 4.2.1 auf die aktuelle Version 4.3.3. In diesem Bericht teile ich meine Erfahrungen mit der Vorbereitung, Durchführung und den anschließenden Funktionstests sowie einen Ausblick auf zukünftige Schritte.

Vorbereitung

Vor dem Update habe ich die Release-Notes der Versionen 4.3.0 bis 4.3.3 ausführlich studiert. Da laut Dokumentation keine größeren Breaking Changes für meine Umgebung zu erwarten waren, entschied ich mich für das Update auf die neueste Version 4.3.3.

Zur Sicherstellung der Daten wurden folgende Backups erstellt:

  1. Backup mit der integrierten Backup-Funktion von openHAB.
  2. Manuelle Sicherung der Konfigurationsdaten.
  3. Erstellung eines kompletten Images der Installation.

Zusätzlich wurden die 3rd-Party-Komponenten von SmartHome/J im Vorfeld entfernt, um mögliche Kompatibilitätsprobleme zu vermeiden.

Durchführung des Updates

Das Update verlief gemäß der Dokumentation problemlos und erwies sich als einfacher im Vergleich zu früheren Versionen, da keine größeren Infrastruktur- und System-Updates erforderlich waren. Nach einem Neustart der Dienste und des Systems waren alle Komponenten wieder online. Anschließend wurden die SmartHome/J-Addons in der neuesten Version erneut installiert.

Das Log zeigte nach dem Neustart keine Fehlermeldungen, was auf eine reibungslose Installation hinweist.

Funktionstests

Folgende Tests wurden erfolgreich durchgeführt:

  • Bedienung der Web-Oberfläche: OK
  • Versionen der Add-Ons: Auf 4.3.3 aktualisiert und funktionsfähig
  • Bedienung über die App: OK
  • Schalten von KNX-Geräten: OK
  • Schalten von HomeMatic-Geräten: OK
  • Anbindung an Alexa: OK
  • Nachrichtenversand per Telegram: OK
  • Schalten der Weihnachtsbeleuchtung (MQTT): Noch nicht getestet (gerade nicht notwendig)
  • Anwesenheitskontrolle: OK
  • Zugriff auf SMARTMANPV per HTTP-Binding: OK

Erweiterungen

Ein besonders spannendes neues Feature in openHAB 4.3 ist das SOLARMAN-Binding. Dieses ermöglicht es mir, lokal auf meine PV-Wechselrichter zuzugreifen, ohne dafür auf externe Cloud-Dienste angewiesen zu sein. Bisher war ich darauf angewiesen, meine Photovoltaikanlage über das Internet zu überwachen, was nicht nur zusätzliche Latenzzeiten mit sich brachte, sondern auch potenzielle Sicherheitsrisiken durch den Online-Zugriff bedeutete. Mit dem neuen Binding kann ich nun direkt über das lokale Netzwerk auf die Wechselrichterdaten zugreifen, was sowohl die Zuverlässigkeit als auch die Datensicherheit deutlich erhöht.

Ebenfalls interessant ist das bereits seit openHAB 4.1 verfügbare PPC SMGW Binding, das ich schon länger im Auge habe. Dieses Binding bietet mir die Möglichkeit, mein intelligentes Messsystem (iMSys) direkt in openHAB zu integrieren. Ziel ist es, den PV-Ertrag meiner Solaranlage und meinen Stromverbrauch besser aufeinander abzustimmen. Bisher war dies nur über Umwege möglich, doch mit dem neuen Binding hoffe ich auf eine nahtlose Verbindung zwischen den Systemen. Dies könnte mir helfen, den Eigenverbrauch meines Solarstroms zu optimieren und die Energiekosten weiter zu senken.

Insgesamt bieten die neuen Bindings viel Potenzial, meine Smart-Home-Installation weiter zu verbessern und insbesondere die Energieverwaltung effizienter zu gestalten.

Fazit

Das Update auf openHAB 4.3.3 verlief überraschend reibungslos und stellte sich als das bisher schnellste und unkomplizierteste Update heraus, das ich durchgeführt habe. Die sorgfältige Vorbereitung mit mehreren Backup-Strategien zahlte sich aus, da es keinerlei Probleme oder Fehlermeldungen während und nach dem Update gab. Alle zentralen Funktionen sowie die Anbindung externer Systeme wie KNX, HomeMatic, Alexa und Telegram liefen sofort fehlerfrei weiter. Auch die Kompatibilität der installierten Add-Ons mit der neuen Version war durchweg gegeben.

Besonders positiv fiel auf, dass das Update-Prozedere im Vergleich zu früheren Versionen deutlich vereinfacht wurde. Weder komplexe Infrastruktur-Updates noch manuelle Anpassungen waren erforderlich, was die gesamte Aktualisierung sehr zeitsparend gestaltete. Zudem brachte die neue Version interessante Erweiterungen wie das SOLARMAN-Binding, das für mein Setup nützlich sein wird.

Insgesamt zeigt sich, dass openHAB kontinuierlich reift und die Update-Prozesse verbessert, ohne die Stabilität oder Kompatibilität zu gefährden. Das bestätigt meine Entscheidung, auf dieses System zu setzen und es weiterhin als zentrale Plattform für meine Smart-Home-Steuerung zu nutzen.

Beim nächsten Major-Release (Version 5) wird es voraussichtlich wieder etwas aufwändiger. Da openHAB auf eine 64-Bit-Architektur migriert wurde, plane ich das Update in Kombination mit einem Hardwaretausch auf einen neuen Raspberry Pi durchzuführen.

 

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?