OH3.4 Debian12 ssh console?
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
OH3.4 Debian12 ssh console?
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?
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:-))
-
- Beiträge: 102
- Registriert: 18. Apr 2021 11:30
- Wohnort: Berlin
Re: OH3.4 Debian12 ssh console?
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?
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: OH3.4 Debian12 ssh console?
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?
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:-))
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3.4 Docker Container ssh console?
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...
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
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: OH3.4 Debian12 ssh console?
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?
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:-))
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3.4 Debian12 ssh console?
Ach so... ganz grundsätzlich kommst Du in die Container-Console per
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.
Code: Alles auswählen
docker exec -it <containername> /bin/bash
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
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: OH3.4 Debian12 ssh console?
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
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
sagt "No such container"
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
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
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3.4 Debian12 ssh console?
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
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
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
Im Ergebnis solltest Du eine Ausgabe wie diese bekommen:
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
)
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
Mit
Code: Alles auswählen
docker container inspect portainer | grep volume -A5
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)
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
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
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: OH3.4 Debian12 ssh console?
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:-))
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: OH3.4 Debian12 ssh console?
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
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
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

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:-))