Seite 1 von 2

Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 9. Dez 2024 18:11
von filmgucker2
Hallo liebe Hardwareexperten,

bei mir läuft bereits seit einigen Jahren Openhab, jetzt 4.3 auf einem Pi 4. Ich habe jetzt einen Pi 5 mit ssd
sowie einen sparsamen Mini PC mit Proxmox, ebenso mit ssd, zur Verfügung. Würde ein Umzug - außer dem Vorteil einer wohl
langlebigeren ssd - noch weitere Vorteile (etwa in der Performance) bringen?

VG
Filmgucker

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 9. Dez 2024 20:20
von Harka
Moin,
wenn Du die Wahl hast -> nimm Proxmox. Die Datensicherung ist damit so einfach, dass man es damit auch macht ;) Hier wird z.B. täglich der LXC-Container komplett gesichert aber es sind auch smartere Lösungen möglich. Auch ein Umzug auf einen neuen Rechner wird damit zum Kinderspiel (gerade diesen Sonntag gemacht).
Installationsarten gib es mehrere. Hier läuft openhabian nach dieser Anleitung. Alternativ geht auch Docker oder LXC-Pur.

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 10. Dez 2024 10:40
von udo1toni
Die Lösung mit Proxmox hat vor allem den Charme, dass man ohne großen Aufwand auch noch andere Dienste im Netz zur Verfügung stellen kann, ohne großartig Rücksicht auf openHAB nehmen zu müssen.
Ich nutze zwar openHABian im LXC, aber letztlich nur noch, weil dort frontail mitkommt und das nicht so ganz einfach zu Fuß zu installieren ist.
Spätestens mit OH5 (aber mutmaßlich schon mit 4.4-M1...) wird es eine direkt in die UI integrierte Log-Ansicht geben, unter anderem, weil frontail nicht mehr gepflegt wird.
Alles, was openHABian sonst noch so an Software mitbringt, richte ich eh in separaten Containern ein - das ist einfach sauberer.

Docker (nativ) wäre auch noch eine gute Alternative (sogar auf einem Pi4/5), weil auch hier eine starke Trennung der einzelnen Dienste gelingt.
Updates können bequem über die Web UI (z.B. Portainer) erledigt werden und durch die Volumes sind die zu sichernden Daten schon komplett separiert, quasi mundgerecht für welche Backup Option auch immer.

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 11. Dez 2024 19:51
von filmgucker2
Herzlichen Dank für die Tipps, und ich bin ihnen natürlich gefolgt. Von meinem Proxmox Server lacht mich jetzt
ein frisches Openhab mit neuer IP an. Es gibt einen User openhabian (@udo1toni: Ih...bäh...),aber mit dem neuen
user hab ich noch nicht hingekriegt soll später nachgeholt werden. Also hab ich den vorhandenen Schlingel openhabian genommen. Nun kommt aber der Umzug: Würde es denn klappen, wenn ich ein backup meines openhabs vom Pi mit
dem backup tool openhab-cli mache und einfach auf dem neuen wiederherstelle? Ich hab da noch ein paar python
Dateien im Ordner openhabian, auch mqtt...bei Letzterem werden wohl die Geräte die neue IP des brokers (der noch zu installieren wäre) kennen müssen...

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 12. Dez 2024 02:58
von udo1toni
Das Backup (und das nachfolgende Restore) sollte problemlos funktionieren.
Wichtig ist das Drumherum.
Schritt 1: openHAB anhalten (sudo systemctl stop openhab.service)
Schritt 2: Backup anlegen (sudo openhab-cli backup full) - mit full wird auch die rrd4j Persistence mitkopiert.
Schritt 3: Dateien von System 1 auf System 2 kopieren (egal wohin auf dem Zielsystem, aber möglichst nicht in den Ordner, in dem openhab-cli selbst die Backups ablegt)
Schritt 4: Backup einspielen (sudo openhab-cli restore <Dateiname mit Pfad>)
Schritt 5: Dateirechte zurücksetzen (sudo openhab-cli reset-ownership)
Schritt 6: Cache putzen (sudo openhab-cli clean-cache)
Schritt 7: openHAB starten (sudo systemctl start openhab-service)

Das, was nicht von openHAB stammt (also z.B. die Python Scripte) musst Du selbst kopieren, openhab-cli kümmert sich ausschließlich um $OPENHAB_CONF und $OPENHAB_USERDATA.

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 14. Dez 2024 19:08
von filmgucker2
So, der Umzug hat tatsächlich geklappt. Fast. Die im openhabian Verzeichnis befindlichen python Dateien lassen
sich zwar über die Konsole ausführen. Aus dem exec binding aber nicht. Da kommt der Fehler "Can't open...Errno13".
Das wird mal wieder mit den Berechtigungen zu tun haben. Wie bekomme ich das exec binding dazu, das zu tun, was
mein openhabian auf der Konsole tut? Beim Pi4 früher war das kein Problem...

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 14. Dez 2024 21:13
von udo1toni
Stimmen die Besitzrechte? Wo liegen die Scripte? Falls unterhalb $OPENHAB_CONF oder unterhalb $OPENHAB_USERDATA, sollte es reichen, mittels

Code: Alles auswählen

sudo openhab-cli reset-ownership
die Berechtigungen zu setzen.
Falls die Scripte "anderswo" liegen, musst Du evtl. per

Code: Alles auswählen

chmod 755 </pfad/zu/den/scripten/*.py>
alle Scripte ausführbar machen und/oder mittels

Code: Alles auswählen

chown openhab: </pfad/zu/den/scripten/*.py>
openhab zum Besitzer der Dateien erklären.
Mutmaßlich ist beides gemeinsam auf jeden Fall ausreichend (sofern alles andere passt...)

Sind die Aufrufe in $OPENHAB_CONF/misc/whitelist gelistet? Haben sich Pfade geändert? Ist Python installiert? Ist die gleiche Version wie zuvor installiert? Sind alle Abhängigkeiten installiert (verwendete Python Bibliotheken...)?
Denke auch daran, dass pip bzw. pip3 nur in der virtuellen Umgebung funktionieren, zur systemweiten Installation musst Du über apt gehen; nicht alle Python Bibliotheken stehen direkt im debian Paketmanager zur Verfügung.

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 15. Dez 2024 12:06
von filmgucker2
Das mit den Rechten hat leider keine Änderung gebracht. Es bleibt dabei, auf der Konsole kein Problem. Exec hat Errno13. Ja, die Installation
der Python Bibliotheken aus dem Netz für den jvc (https://github.com/bezmi/jvc_projector) mit pip brachte die Meldung, dass nur in virtueller
Umgebung installiert werden könne. Außerdem, vorher hatte ich python 3.9, jetzt 3.11. Mit apt ließen sich die Pakete für den jvc nicht installieren. Brachial habe ich dann mit dem Befehl pip solle das ignorieren, trotzdem installiert...Jetzt stellt sich natürlich die Frage, liegt es daran, wenn gleichwohl die Konsole funktioniert und die Befehle ausführt? Wenn ja, müsste ich das dann wohl mit venv installieren. Aber was macht dann exec? venv müsste auch bei jedem Neustart aktiviert werden, oder geht das auch automatisch?

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 25. Feb 2025 09:59
von Kokosnuss
Hi, ich will auch demnächst mein Openhab (Debian-VM unter ESXi) auf einen LXC unter Proxmox umziehen bzw neu installieren.

Dann also ohne openhabian - ganz normal manuelle Install.

@udo1toni
Ich hab irgendwo gelesen, dass du VS Code mit der SSH Remote Extension nutzt. Ich hätte vor gehabt, die Config-Ordner durch "bind volumes" oder wie man das nennt direkt aufs NAS zu legen. Kannst du mir vielleicht die Vorteile deiner VS Code Remote Variante gegenüber dem auslagern der Config nennen?

Was würdest du mir empfehlen?

Oder ist das keine gute Idee, weil wenn das NAS down ist, funktioniert openhab nicht mehr? Dann besser die Ordner nach ausserhalb des LXC direkt unter Proxmox mounten (Samba Freigaben)? Weil wenn Proxmox aus ist, dann Openhab logischerweise auch...

Re: Neue Hardware für openhab von Pi 4 auf Pi 5 oder Proxmox Server?

Verfasst: 25. Feb 2025 18:51
von udo1toni
Kokosnuss hat geschrieben: 25. Feb 2025 09:59 Kannst du mir vielleicht die Vorteile deiner VS Code Remote Variante gegenüber dem auslagern der Config nennen?
Keine Ahnung, ob das überhaupt ein Vorteil ist :)

Ich beschreibe mal mein Setup:
1. Proxmox Host mit ZFS
Auf dem Host gibt es diverse Datasets, unter anderem eines mit den Konfigurationen aller openHAB Instanzen (momentan Produktiv, Test OH5, Test OH4, Test OH-2.5). Jede Instanz hat ein eigenes Verzeichnis, in dem sich jeweils conf, userdata und addons finden lassen. Diese sind über MountPoints in den jeweiligen Containern eingehängt.
2. openHAB Instanz (egal, ob nun mit openHABian oder direkt mit apt installiert - letztlich ruft openHABian auch nur apt auf)
Das System basiert bei mir immer auf dem letzten debian Container, der über Proxmox direkt verfügbar ist. Ich erzeuge zunächst den unprivilegierten Container, gewöhnlich mit 3 GB RAM und 4 Kernen sowie 8 GB Storage (die eigentlichen Daten landen ja auf einem separaten Dataset), dabei trage ich direkt den Public Key für den User root ein.
Anschließend fahre ich den Container hoch, logge mich ein und starte apt update && apt -y full-upgrade && apt -y install htop sudo, wenn ich openHABian verwenden will packe ich auch gleich noch git mit drauf, aber bei der letzten Installation habe ich darauf verzichtet, die "interessanten" Sachen (für mich interessant) sind jetzt alle weg oder werden nicht mehr weiter gepflegt (FireMOTD und frontail - Letzteres ist inzwischen aber eh nicht mehr so wichtig). mit dpkg-reconfigure tzdata und ... locales passe ich Zeit und Lokalisierung an und richte noch einen Administrationsuser ein, der sudo ausführen darf und den normalen Remote Zugriff per Private Key hat.
Bis zu diesem Punkt ist der Container ein Standard Container, diese Schritte führe ich bei ausnahmslos allen Containern durch (also bis auf die MountPoints für die Konfiguration natürlich).
Dann installiere ich openHAB (über apt oder openHABian, wie in der offiziellen Doku beschrieben). Da ich die Standard Pfade für die drei gemappten Verzeichnisse kenne :) landet der essenzielle Teil dank der MountPoints direkt auf dem eigenen Dataset.
Nach der Installation stoppe ich openHAB und passe ein paar Dinge an, insbesondere prüfe ich UID und GID des Users openhab, denn ich möchte, dass die Dateien auf dem Dataset alle mit gleicher GID/UID angelegt werden. Notfalls ändere ich die IDs ab und passe die Besitzrechte an.
Weiters prüfe ich, dass das Verzeichnis $OPENHAB_USERDATA (das entspricht dem home-Verzeichnis des Users openhab) für Gruppe und andere lediglich lesbar, aber nicht schreibbar ist. Anschließend erzeuge ich ein Verzeichnis .ssh in diesem Ordner und kopiere den Public Key von openhab in die Datei authorized_keys. Das Verzeichnis sichere ich mit chmod 700, die enthaltenen Dateien bekommen 600.
Außerdem passe ich in /etc/passwd die Standard Shell für den User openhab an (bin/bash)

Danach muss ich in VSCode nur noch die Verbindungsdaten für den neuen Host eintragen (%USERDATA%\.ssh\config), also den Verbindungsnamen, den Hostname, den User und den Private Key
Nun wähle ich in VSCode im Remote Plugin "Verbindung mit Remote Host herstellen...") aus, in der Liste taucht der soeben eingefügte Eintrag auf. Wie üblich muss ich dann die Echtheit des Remote Host bestätigen und einmalig mein Passwort zum Entschlüsseln des Private Key eingeben. Danach rödelt VSCode etwas (die Remote Instanz wird eingerichtet) und abschließend definiere ich einen Arbeitsbereich. Dieser Arbeitsbereich ist allerdings auf dem openHAB System gespeichert, ich kann diesen also von jedem Rechner aus öffnen, mit dem ich mich per VSCode anmelde.
Im Arbeitsbereich öffne ich die drei Ordner /etc/openhab/, /var/lib/openhab/ und /var/log/openhab/, und an dieser Stelle kommt leider eine Unschönheit zutage, VSCode zeigt nämlich einfach den Namen des Nachkommen an, ich habe also drei Ordner mit identischem Namen openhab :) aber man gewöhnt sich daran... :)

Das Ganze klingt vermutlich aufwändig, ist es aber nicht (spätestens beim zweiten oder dritten Mal).

Der für mich wichtigste Vorteil: Die Dateien gehören dem User openhab, nicht einem User openhabian. Der Zugriff erfolgt ausschließlich über ssh per Private Key, da der User openhab kein Passwort hat, kann man sich nicht mittels Passwort authentifizieren (und das sollte auch so bleiben - aus Gründen...)
Ich benötige kein Samba und muss auf dem Desktop auch keine Freigabe einrichten. Das Dataset habe ich bei mir dennoch per Samba verfügbar, aber eben nicht aus dem openHAB System heraus, sondern von meinem NAS Container. Dort kann ich lediglich lesend auf die Dateien zugreifen, weil ich nicht als User openhab angemeldet bin - für mich ein Plus.
Ich hinterlege außerdem noch einen anderen Public Key in der Datei $OPENHAB_USERDATA/etc/keys.properties. Diese funktioniert genau wie die users.properties, mit dem Unterschied, dass man hier eben einen RSA Schlüssel angibt, statt eines Passwortes. In der users.properties lege ich noch den User openhab lahm - wenn ich auf die Karaf Konsole zugreife, dann per ssh mittels Private Key.

VSCode installiert die Plugins übrigens auf dem Remote Host, d.h. die Plugins sind ebenfalls auf jeder VSCode Instanz "einfach da", wenn ich remote arbeite, egal ob vom heimischen Schreibtisch, per Laptop oder auch über eine extra VM, die ich dank Guacamole über ein VPN ansteuern kann, egal von wo, selbst vom Dienst-Rechner (wobei wir so etwas qua Dienstvereinbarung "dürfen" - die Rechner sind gut gesichert...)

Meine dringende Empfehlung ist tatsächlich, ein eigenes Dataset für die Konfigurationsdaten anzulegen.
Falls Du kein ZFS nutzt, kannst Du das auch konventionell z.B. über lvm erreichen. Die Daten liegen so direkt in "konzentrierter Form" vor, Du musst lediglich das Dataset sichern, um ein vollständiges Backup zu haben. Über zfs geht das bequem per zfs autosnapshot, für lvm wäre mein Tipp rsync in Verbindung mit rsnapshot, welches ähnliche Funktionen zur Verfügung stellt. Ich repliziere täglich alle Datasets auf ein separates System (leider steht dies im Gestell direkt neben dem Hauptsystem, upsi...), zumindest vor normalen Schäden bin ich geschützt. (die Snapshots werden per zfs send übertragen, d.h. es werden nur die Änderungen zum letzten übertragenen Snapshot gesendet, das geht trotz mehrerer TB Datenbestand innerhalb von wenigen Minuten). Mit einem NAS, welches rsnapshot ausführeen kann, kannst Du das weitgehend gleich gestalten, rsnapshot legt Snapshots an und überträgt die Differenz zum letzten Snapshot per rsync, die Daten werden dabei nicht überschrieben, sondern es werden (konfigurierbar) mehrere "Vollbackups" angelegt, wobei die unveränderten Daten aber nur einmal vorhanden sind, bei den veränderten Daten gibt es dann pro geänderter Version eine eigene Datei. Der Zugriff erfolgt aber so, als wären jeweils vollständige Backups vorhanden, das funktioniert mit Hardlinks auf die Dateien und braucht nur sehr wenig Platz. So kann man auf den Stand von vor 15, 30, 45, 60 Minuten zugreifen, auf ned Zustand vor 2,3,4,5,6,7,8 Stunden, auf den Zustand von gestern, vorgestern..., letzte Woche, zwei Wochen, drei Wochen... letzten Monat, ... Es gibt also eine fixe Anzahl an Sicherheitskopien, die jeweils wieder überschrieben werden (ähnlich wie bei rrd4j), mit unterschiedlichen zeitlichen Abständen, alles recht frei konfigurierbar.

Die Ablage über ein Bind auf das NAS ist auf den ersten Blick verlockend, aber Du hast ja schon selbst erkannt, dass openHAB nicht starten kann, wenn das NAS - aus welchem Grund auch immer - nicht zur Verfügung steht. Die Backup-Variante funktioniert genauso automatisch, wenn das NAS mal nicht läuft, gibt es halt für diesen Zeitraum kein Backup, aber dennoch keinen zwingenden Ausfall von openHAB.