Ankündigung

Einklappen
Keine Ankündigung bisher.

openHab V2 auf v4 Updaten / migrieren, geht das?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    openHab V2 auf v4 Updaten / migrieren, geht das?

    Hallo zusammen,
    mein openhab 2.5 läuft jetzt ein paar Jährchen und bisher hatte ich keine beanstandung etwas daran ändern zu wollen.
    Aber ich habe seit neuestem einen sogannten Tibber Pulse, welcher es ermöglichen soll, einen Stundengenauen Strombörsen basierenden Stromtarif zu erhalten.
    Natürlich möchte ich die Werte (z.B. aktueller Stromverbrauch) im openhab haben.
    Es gibt ein Binding für V 2.5, aber das scheint nicht richtig zu funktionieren (UNINITIALIZED - HANDLER_INITIALIZING_ERROR​) .

    Daher wäre es ggf. gut auf die neue Version zu updaten. Aber das letzte update von 1 auf 2 hat letzte mal so garnicht funktioniert.
    Aber da gab es auch noch keine Things und das musste alles angelegt werden.
    Ist es jetzt ein Grundkonzept geblieben oder ist wieder alles neu?
    Gibt es denn eine möglichkeit zu migrieren oder muss ich alles neu machen?
    Meine Installation läuft in einer virtuellen Windows 10 Maschine, ich könnte also einen Prüfpunkt setzen und wenn es nicht klappt ohne große Probleme (ausser das Datensätze dann in der DB fehlen die in der zwischenzeit reinkamen) zurück.

    Was gilt denn zu beachten? Wo liegen die Fallstricke?

    Vielen Dank und einen schönen Freitag!

    #2
    Nun ja... openHAB2 ist ja schon etwas "in die Jahre gekommen"...

    Der wichtigste Punkt ist, dass openHAB2 unter Java8 läuft, openHAB4 benötigt aber Java17.

    Daraus ergibt sich in direkter Folge der nächste "Riesenklops", nämlich der Wegfall von Joda Time (ersetzt mit JavaTime). JavaTime verwendet, genau wie Joda Time, now() und diverse Methoden und Eigenschaften, z.B. .plusMinutes(). Blöd nur, dass sich diese Methoden und Eigenschaften teilweise bis ins Details gleichen, an anderen Stellen aber extrem abweichen (z.B. gibt es kein .plusMillis()aber dafür .plusNanos()​und auch an vielen anderen Stellen muss man genau hinschauen). Das heißt, Du kommst vermutlich nicht um größere Korrekturen der Rules herum.

    openHAB2 hat das Thing-Modell eingeführt, außerdem gab es mit Paper UI die erste UI zur Verwaltung.
    openHAB2 hat aber (schon um den Umstieg zu erleichtern, auch wenn das bei Dir offensichtlich gründlich schief ging) auch ein Compatibility Layer angeboten, mit dem man alte V1-Bindings weiter verwenden konnte. Seit openHAB3 gibt es dieses Compatibility Layer nicht mehr, es werden nun alle Bindings ausschließlich über Bridge,Thing und Channel in openHAB "hineinkonfiguriert".
    Ein sehr populäres Binding ist z.B. http, welches unter openHAB2 nie offiziell als V2-Binding zur Verfügung stand (ich könnte Dir aber eine Beta geben...).
    Schau Dir Deine komplette Itemkonfiguration an. Jedes Item, welches statt {channel="..."} im Linking einen direkten Hinweis auf ein Binding hat (z.B. eben {http="..."} oder so) deutet auf ein Binding hin, welches komplett anders zu konfigurieren ist. Man kann dabei die Konfiguration von alt auf neu ableiten, das ist aber immer mit Handarbeit verbunden, automatisch geht da leider gar nichts.

    Wo ich eben Paper UI erwähnt habe... Da der Entwickler ausgestiegen ist, und sich niemand der anderen Entwickler mit dem Framework auskannte, wurde eine neue UI gebaut, die nun Main UI heißt. Also wieder umlernen. Aber: die Main UI existiert nun schon seit zwei Hauptversionen und ist im Gegensatz zu Paper UI nahezu feature complete, das heißt, es gibt nun so gut wie nichts mehr, was Du nicht genauso gut über die UI konfigurieren kannst, wie zuvor ausschließlich über Textdateien.
    Allerdings funktioniert auch die Textvariante weiterhin. Und wie schon unter openHAB2, sind Dinge, die per Text konfiguriert wurden, zwar in der UI sichtbar, können dort aber nicht bearbeitet werden; umgekehrt tauchen Dinge, die in der UI konfiguriert wurden nicht in den Textdateien auf.
    Mit VS Code und dem passenden openHAB Plugin ist die Konfiguration per Textdateien sehr komfortabel, man kann inzwischen aber auch gut auf UI-only umsteigen.
    Die Main UI bietet auch wesentlich freiere Möglichkeiten, eine User-UI zu konfigurieren, man ist nicht mehr auf starre Widgets angewiesen, wie unter openHAB1 und openHAB2 mit den Sitemaps (aber auch die funktionieren nach wie vor). Rules kann man in diversen Sprachen erstellen, auch eine rein grafische Variante ist dabei (Blockly) und es gibt Bibliotheken aus denen man sich komplexe Funktionen nachinstallieren kann.

    Es ist äußerst empfehlenswert, sich zum Umstieg wie ein "verantwortungsvoller Neuling" zu verhalten, sprich, sich intensiv mit der offiziellen Doku zu beschäftigen und KEINESFALLS die getting started Artikel zu überspringen, zu viele Dinge haben sich grundlegend geändert, zu viele Neuerungen sind hinzugekommen - z.B. UoM (Units of Measurement): Ein Number Item hält dann nicht nur eine nackte Zahl als Status, sondern auch deren Einheit. Der Witz dabei: openHAB rechnet automatisch um, ein Sensor liefert z.B. die Temperatur in Zehntel Grad Fahrenheit, angezeigt wird die Temperatur aber in Grad Celsius mit einer Nachkommastelle. Dabei stehen praktisch alle relevanten SI-Einheiten zur Verfügung und selbst eher exotische Größen werden abgebildet. Und es hört nicht mit dem Temperatur-Beispiel auf, Du könntest z.B. aus zwei Zahlen wie einer Fläche (in m²) und Strahlungsenergie (in Ws/m²) einfach durch Multiplikation der beiden Werte die Energiemenge (z.B. in kWh) ausgeben, die Einheiten werden also mit gerechnet. In der aktuellen Version kann man auch Finanzeinheiten mit nutzen, (also z.B. US$ oder €, auch das wird notfalls tagesaktuell umgerechnet, wenn man den entsprechenden Dienst einrichtet).
    Und es gibt das Semantic Model, mit dem man die Items eben semantisch beschreibt und hierarchisch sortiert. Damit erzeugt openHAB anschließend vollautomatisch Ansichten wie z.B. nach Standorten, nach Messwertarten oder nach Geräten, was dann vielleicht die eine oder andere extra Ansicht überflüssig machen kann.

    Also unterm Strich: Du kannst Deine alte Konfiguration übernehmen, aber vieles ist so grundlegend anders, dass es oftmals einfacher ist, das ganze System neu aufzubauen.
    Da Du aber ohnehin auf einer virtuellen Maschine arbeitest, möchte ich Dir empfehlen, eine eigene virtuelle Maschine für openHAB4 aufzusetzen und dort einfach mal auszuprobieren, was so alles geht.
    Und weil ich ganz gemein bin...
    Denke vielleicht mal über einen GNU/Linux Unterbau nach, denn für einen Server braucht es definitiv keine grafische Oberfläche des OS.
    Ja, es gibt Stellen, an denen man Dinge im Betriebsystem konfigurieren muss, aber mal ehrlich, wie oft macht man das? Je nachdem, welchen Hypervisor Du nutzt, ist ein Debian bookworm OHNE Desktopumgebung innerhalb weniger Minuten einsatzbereit; dann reicht es, mit wenigen Befehlen git und das openHABian Paket einzurichten, welches dann vollautomatisch eine komplette openHAB-Umgebung incl. Logs über den den Browser und Netzwerk Freigaben für den Zugriff auf alle wichtigen Dateien von Windows aus einrichtet.
    Ist schon etwas her, seit ich das letzte Mal openHAB unter Windows eingerichtet habe, für ein komplettes System (natürlich unkonfiguriert) braucht man mit openHABian keine halbe Stunde (incl. Aufsetzen der virtuellen Maschine). Wie lange dauert es, Windows in einer VM einzurichten und anschließend Java und openHAB zu installieren?
    Zuletzt geändert von udo1toni; 08.03.2024, 16:10.

    Kommentar


      #3
      Hallo udo1toni, und vielen Dank für den ausführlichen Artikel!
      Das mit dem openHABian schaue ich mir mal an, da jetzt z.B. auch grafana nun integriert ist.
      Das habe ich mir alles selbst via Highcharts und xampp in meiner Maschine eingebunden, da es damals keine grafische Aufarbeitung im grafana von Wind gab. (habe ich bis heute nicht geschafft schlussendlich einzubinden... ABER die Daten habe ich ins openhab gebracht über die letzten Jahre

      Und da fängt es schon an, ich habe ein Wettermessgerät, welches WLAN besitzt und nächste Woche vor 3 Jahren habe ich mir rausgesucht wie ich die Daten vom Messgerät in eine TXT-Datei auf dem XAMPP-Webserver bekomme um dann über eine PHP-Datei per http="..." ins openHab...
      Diese Daten sind nicht super wichtig, aber im openhab hätte ich sie schon gerne. Was gibt es dann da für eine alternative?

      ich bin bereit ein neues System aufzusetzen, schon aus dem Grund heraus, weil ich einfach alles Sachen aus einer App heraus bedienen möchte und anscheinend neue Gimmicks in meiner alten Version nicht laufen, wie der Tibber Pulse und mein neuer Hoymiles Wechselrichter.

      Aber gibt es den eine Möglichkeit / Script z.B. meine SQL-Datenbank in die neue Datenbank zu migrieren, sodass ich meine Historischen Werte auch erhalten kann? (natürlich auf die richtigen Items?)
      Meine Installation ist jetzt nicht riesig, aber knapp 80-90 Things habe ich schon, welche in 2 1/2 Jahren anscheinend ~1,63GByte an SQL-Datenbank gebracht haben. Diese Werte (z.B. Stromverbrauch über die Monate, Wochen Jahre) hätte ich gerne weiterhin nicht nur als Archiv, sondern im Live-System abrufbar...


      Die sitemap und rules als Text-Datei wäre mir wichtig diese zu übernehmen, da ich mit der sortierung und funktion doch sehr eigen bin (ich nutze z.B in der Sitemap keine Gruppe). Mittlerweile ist die Sitemap knapp 600 Zeilen lang und eine rules-Datei für die Stromverbrauchsmessung nochmal 350 Zeilen lang. Da ich z.B. um eine wöchtentliche / monatliche /jährliche Auswertung über Solarerträge erstelle und das ja für jeden einzelnen Monat dafür eine eigene Regel gibt...

      Aber so wie ich das lese, wird das mal wieder ein riesen Projekt, was eine Menge Zeit und Frust bringt... 😑

      Kommentar


        #4
        Migration der Daten sollte kein großes Problem sein, letztlich musst Du im alten System einen SQL Dump machen und diesen anschließend z.B. in MariaDB einlesen. Etwas Zeit musst Du mitbringen, weil die GBytes halt zäh von A nach B wandern, aber es geht Und natürlich musst Du auf die Reihenfolge achten, erst Daten migrieren, dann openHAB mit der Datenbank verbinden, damit openHAB die Tabellen schon angelegt vorfindet...

        Allgemein ist Netzwerk, XAMPP und PHP eigentlich mehr eine Linux-Domäne, Windows Rechner sind da die Exoten das sollte also alles problemlos auch unter GNU/Linux laufen.
        Und vielleicht gibt es sogar elegantere Lösungen zum Datenimport, für viele Geräte gibt es z.B. mqtt Adapter (in Software...) die von anderen Nutzern erstellt wurden - ich hab z.B. eine Personenwaage mit Bluetooth, das entsprechende Software Modul läuft bei mir auf einem Raspberry zero W, den ich im Spiegelschrank im Bad eingebaut habe, also dicht an der Waage und mit einem kleinen Netzteil, der sammelt die Messdaten automatisch, wenn ich mich auf die Waage stelle und liefert sie in openHAB per mqtt ab - auch mein Auto meldet alles per mqtt, obwohl der Hersteller das gar nicht vorgehen hat. In dem Fall läuft der Adapter in einem Docker Container und funktioniert wesentlich vollständiger als das entsprechende Binding.

        Kommentar


          #5
          ich komme irgendwie mit der Sitemap nicht klar... ich habe die "classicui" immer genutzt, weil ich dort Unterteilungen vornehmen konnte, wie z.B. über Label untermenüs gestalten konnte. (habe ich jetzt gefunden im OH4)
          Aber er packt die Infos weiterhin nebeneinander, wie bekomme ich die untereinander, sodass immer nur ein Wert da steht pro Zeile?

          bzw. wie bekomme ich mein ClassicUI wieder zurück?

          Hier drei Screenshots aus meinem alten OH2 und dem neuen OH4.


          OH2-Haupt.png
          OH2-Erdgeschoss.png
          OH4-Haupt.png OH4-Erd.png
          Angehängte Dateien
          Zuletzt geändert von desidia; 04.04.2024, 21:13.

          Kommentar


            #6
            Du kannst das Aussehen (bzw. die Anzahl Spalten) in der BasicUI in openHAB4 konfigurieren, schau mal in Main UI->Administration->Einstellungen->Add-On-Settings->Basic UI->Spaltenanzahl. Die Anzahl kann für Desktop und Tablet getrennt angegeben werden (wobei die Auswahl etwas eigenwillig erscheint...)

            Kommentar

            Lädt...
            X