OH3.4 Debian12 ssh console?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

OH3.4 Debian12 ssh console?

Beitrag von Boris099 »

OH3.4 auf Debian12

Ich habe mal wieder etwas Zeit und möchte mich meiner OH3 Installation widmen.
OH3.4 läuft im Docker Container auf Debian12. Ich habe Zigbee2 MQTT laufen und hatte zum Testen auch 2 Geräte verbunden.

Meine produktive OH Installation ist ein OH2.5.12 auf einem PI4, das läuft schon seit 3 Jahren ohne Probs.
Aber ich möchte auf OH3 umziehen. So stellt sich mir die Frage wie bringe ich meine Rules nun auf OH3?
Ich denke ich kopiere die Rules zu Anfang einfach mal in den Rules folder, ist das korrekt?
Dummerweise kann ich kein ssh in OH3 starten - Connection refused - Wie geht das denn hier, und ich würde das auch gerne
von einem anderen Rechner aufrufen können?

Oder kann ich evtl. zum Editieren der Dateien auch mit SFTP auf OH3 zugreifen, mache ich heute vom Windows PC auf den PI4OH2.5
per Total Commander, geht das hier auch?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

HABuserJM
Beiträge: 102
Registriert: 18. Apr 2021 11:30
Answers: 0
Wohnort: Berlin

Re: OH3.4 Debian12 ssh console?

Beitrag von HABuserJM »

Openhab 4 steht doch in den Startlöchern, wäre es nicht sinnvoller, bis zum Release zu warten, als sich mit V3.x zu beschäftigen? Oder wird OH4 nur ein Facelift von 3?

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: OH3.4 Debian12 ssh console?

Beitrag von Boris099 »

Nach OH4 würde ich versuchen per Docker Container update, sollte doch funktionieren?
Aber trotz allem bleibt das Problem wie komme ich in die Konsole per ssh?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: OH3.4 Docker Container ssh console?

Beitrag von udo1toni »

Da openHAB als Container läuft, hast Du drei Volumes, addons, userdata und conf. conf entspricht dem Inhalt von /etc/openhab/ (wobei der Ordner bei openHAB2 natürlich /etc/openhab2/ heißt).

Die Volumes sollten außerhalb des Containers erreichbar sein, da kommt es drauf an, wie der Container definiert wurde, wo die Volumes nun tatsächlich liegen.

"Einfach" kopieren wird allerdings vermutlich nicht ausreichen. Es gibt ein paar grundsätzliche Änderungen von OH2 auf OH3, die wichtigste davon ist sicherlich der Wegfall von Joda Time zugunsten von JavaTime. An vielen Stellen funktioniert JavaTime genauso wie Joda Time, an einigen Stellen funktioniert es aber komplett anders.
Weiter gibt es eine implizite Variable triggeringItem, welche ein Objekt darstellt, welches auf das Item verweist, das die Rule getriggert hat. Unter openHAB2 steht diese implizite Variable in jeder Rule zur Verfügung, wenn die Rule durch ein Item getriggert wurde. In openHAB3 steht die Variable nur dann zur Verfügung, wenn die Rule durch den Trigger Member of <GroupItem> ... getriggert wurde. Bei einzeln aufgeführten Items Item <Itemanme> ... muss hingegen die Implizite Variable triggeringItemName verwendet werden. Diese ist vom Typ String und enthält tatsächlich nur den Namen und keinen Verweis auf das Item selbst
Der Unterschied: Ich kann z.B. triggeringItem.postUpdate(ON) schreiben, in openHAB3 muss ich stattdessen postUpdate(triggeringItemName,"ON") schreiben und also auf die Action ausweichen, statt die Methode zu nutzen.

Und es gibt einen weiteren Unterschied: in openHAB2 gibt es fünf plus zwei Threads, um Rules und Scripte abzuarbeiten (zwei für den Scheduler, also z.B Time cron Trigger und per createTimer() angelegte Scripte, fünf für den Rest). Eine Rule kann dabei durchaus mehrfach gleichzeitig gestartet sein (eben bis zu fünf mal). In den meisten Fällen wird das ein Unfall sein, aber mit dem entsprechenden Wissen kann man damit hocheffizient programmieren :)
In openHAB3 hat jede Rule ihren eigenen Thread, exklusiv. Das heißt, es kann nicht mehr dazu kommen, dass eine Amok laufende Rule alle Threads belegt und andere Rules nicht mehr zum Zug kommen. Dafür kann eine Rule aber auch nur exakt einmal zur gleichen Zeit gestartet sein.
In den meisten Fällen wird das keine Rolle spielen und im Zweifel sogar weniger Ärger machen, aber es gibt Fälle, wo das zu einem veränderten Verhalten führen kann.

Auch wenn openHAB4 innerhalb der nächsten Wochen stable werden wird - Da die Änderungen ohnehin vorgenommen werden müssen, mach den Umstieg trotzdem schon jetzt, wenn es geht. openhAB4 bringt weitere Änderungen, die Du dann auch noch bearbeiten musst...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: OH3.4 Debian12 ssh console?

Beitrag von Boris099 »

Danke schonmal!

Also console ist nicht mehr oder brauche ich nicht mehr wenn ich direkt auf die folder zugreife?
Würde aber gerne in die console um hier mein portainer PW zurückzusetzen, habe ich vergessen ...

Und den Container auf OH4 Upgrade, werde ich da voraussichtlich Probleme haben?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: OH3.4 Debian12 ssh console?

Beitrag von udo1toni »

Ach so... ganz grundsätzlich kommst Du in die Container-Console per

Code: Alles auswählen

docker exec -it <containername> /bin/bash
wobei nicht jeder Container bash mitbringt, kann also auch sein, dass Du /bin/sh angeben musst.

Aber wie gesagt ist die Shell des Containers hier gar nicht zielführend.
Nutzt Du portainer? (das ist ebenfalls ein Container, mit dessen Hilfe Du dann eine Web UI bekommst, über die Du Deine Docker Instanz verwalten kannst)
In Portainer gibt es ebenfalls die Möglichkeit, in die Shell des Containers zu wechseln.
Man sollte sich aber klar machen, dass speziell Docker Container nicht dazu gedacht sind, dass der Anwender sich in die Shell des Containers einloggt - das ist meist nur zur Fehlersuche wichtig.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: OH3.4 Debian12 ssh console?

Beitrag von Boris099 »

Ich rufe ja mit localhost/9000 die portainer WEB UI auf. Dort habe ich User/PW versemmelt.
Es gibt Anleitungen im Netz wie ich das zurücksetzen kann

Code: Alles auswählen

Reset Portainer password
The process is simple and streamlined. All you need are the below commands.
Because you can run them one after the other, I have put them all in one block.

docker container stop portainer
docker run --rm -v portainer_data:/data portainer/helper-reset-password
docker container start portainer
Nur um das zu tun muß irgendwie in die Console, korrekt?
Der portainer folder liegt im Hauptverzeichnis also /portainer.
Wenn ich den Befehl von dir oben verwende, bekomme ich nur "No such container: portainer"

Auch dieser Befehl

Code: Alles auswählen

sudo docker exec -it openhab /openhab/runtime/bin/client oder 
sudo docker exec -it opt/openhab /openhab/runtime/bin/client
sagt "No such container"
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: OH3.4 Debian12 ssh console?

Beitrag von udo1toni »

Wenn Du http://localhost:9000/ für Portainer verwendest, dann läuft Portainer auf Deinem Rechner. Und logischerweise läuft auch Docker dort.
Du musst also lediglich in eine Shell wechseln und von dort aus die Befehle zum Rücksetzen des Passworts eingeben. Wobei Du natürlich aufpassen musst, denn die Parameter sind davon abhängig, wie Du Portainer gestartet hast.

Du kannst aus der Shell heraus mit

Code: Alles auswählen

docker ps
die Liste der laufenden Container einsehen. In der Liste steht z.B. auch der Name der Container (Portainer muss ja nicht zwingend unter diesem Namen laufen.
Mit

Code: Alles auswählen

docker container inspect portainer | grep volume -A5
solltest Du für den Container mit dem Namen portainer alle Volumes gelistet bekommen.
Wichtig ist auch, Du musst vermutlich zunächst das Image für den helper-Container laden. Also

Code: Alles auswählen

docker stop "id-portainer-container" // die ID haben wir gerade ermittelt
docker pull portainer/helper-reset-password // Das Image für den "Resetter" ziehen
docker run --rm -v portainer_data:/data portainer/helper-reset-password // hint dem Parameter -v steht das Volume (falls abweichend musst du das hier auch ändern)
Im Ergebnis solltest Du eine Ausgabe wie diese bekommen:

Code: Alles auswählen

2020/06/04 00:13:58 Password successfully updated for user: admin
2020/06/04 00:13:58 Use the following password to login: &_4#\3^5V8vLTd)E"NWiJBs26G*9HPl1
Und hier ist es enorm wichtig, dass Du Dir das randomisierte Admin Passwort kopierst, damit Du nach dem portainer Neustart in die UI kommst.

Alles oben genannte funktioniert nur, wenn der User in der Gruppe docker ist. Ansonsten musst Du halt jeweils ein sudo voranstellen (das ist allerdings schlechter Stil ;) )
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: OH3.4 Debian12 ssh console?

Beitrag von Boris099 »

Ok versuche ich, noch ganz kurz was meinst du mit Shell, das Terminal bzw. Konsole?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: OH3.4 Debian12 ssh console?

Beitrag von Boris099 »

Kurze Rückmeldung - vielen Dank

alles geklappt ich hatte mal wieder den ersten Buchstaben "klein" geschrieben - die ID ist Portainer nicht portainer
Am Schluß nochmal "docker container start Portainer"
und das Password zurückgesetzt (dabei die PW Länge im GUI auf 8 digits gekürzt) Standard ist 12 digits - wer soll sich denn so was merken :lol:

Jetzt möchte ich mal die Updates der Container in Portainer durchzuführen.
Das hatte ich noch nie gemacht, muß ich da eine Reihenfolge beachten bzw. wie gehe ich da vor?

Ich habe die folgenden Container laufen, in dieser Reihenfolge gelistet in der Portainer GUI
koenkk/zigbee2mqtt
eclipse-mosquitto
openhab/openhab:latest
portainer/portainer-ce
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Antworten