Mal wieder Restart Binding

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
guinnes
Beiträge: 146
Registriert: 21. Apr 2020 19:46
Answers: 0

Mal wieder Restart Binding

Beitrag von guinnes »

Moin
Ich habe seit 4 Wochen auf OH3.4.1 umgestellt und versuche jetzt, mein Binding-Restart zum laufen zu bringen :

Code: Alles auswählen

rule "eBus Restart Binding"
when
    Item VAR_Innogy_CPU_Fehler received command ON
then
    if(tEBusRestart !== null) return;
    
    tEBusRestart = createTimer(now.plusSeconds(1),[|
        if(bEBusRestart) {
            var String  Restart = executeCommandLine(Duration.ofSeconds(10),"sudo /usr/bin/ssh -p 8101 -i /home/openhab/openhab.id_rsa openhabian@localhost bundle:start org.openhab.binding.livisismarthome")
            logInfo("LivisiSmarthome", "LivisiSmarthome Restart {}",Restart)
            tEBusRestart = null
            bEBusRestart = false
        } else {
            var String Restart = executeCommandLine(Duration.ofSeconds(10),"sudo /usr/bin/ssh -p 8101 -i /home/openhab/openhab.id_rsa openhabian@localhost bundle:stop org.openhab.binding.livisismarthome")
            logInfo("LivisiSmarthome", "LivisiSmarthome Stop {}",Restart)
            tEBusRestart.reschedule(now.plusSeconds(25))
            bEBusRestart = true
        }
    ])
end
Ich kriege folgende Log-File einträge :

Code: Alles auswählen

2023-02-08 20:46:05.303 [WARN ] [rg.openhab.core.io.net.exec.ExecUtil] - Failed to execute commandLine '[sudo /usr/bin/ssh -p 8101 -i /home/openhab/openhab.id_rsa openhabian@localhost bundle:stop org.openhab.binding.livisismarthome]'
2023-02-08 20:46:05.306 [INFO ] [ab.core.model.script.LivisiSmarthome] - LivisiSmarthome Stop null
und

Code: Alles auswählen

2023-02-08 20:46:30.318 [WARN ] [rg.openhab.core.io.net.exec.ExecUtil] - Failed to execute commandLine '[sudo /usr/bin/ssh -p 8101 -i /home/openhab/openhab.id_rsa openhabian@localhost bundle:start org.openhab.binding.livisismarthome]'
2023-02-08 20:46:30.322 [INFO ] [ab.core.model.script.LivisiSmarthome] - LivisiSmarthome Restart null
Hat jemand eine Idee ?
Danke schon mal
Glückauf
guinnes

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

Re: Mal wieder Restart Binding

Beitrag von udo1toni »

Hattest Du das vor der Umstellung schon mal so laufen? Ich denke eher nicht...

Der zu verwendende User heißt openhab, nicht openhabian. Es geht um den User für die Karaf Konsole, nicht um den User für den GNU/Linux Shell Login.
Weiterhin ist das home-Verzeichnis vom User openhab (der gewöhnlich das Programm openHAB ausführt) normalerweise $OPENHAB_HOME, was bei einem per apt installierten openHAB auf /usr/share/openhab/ verweist.

Wenn Du also nicht gerade intensive Verrenkungen unternommen hast, wäre der korrekte Weg, ein Verzeichnis /usr/share/openhab/.ssh/ zu erstellen und die Datei openhab.id_rsa in dieses Verzeichnis zu packen.
Dann lautet der korrekte Aufruf so:

Code: Alles auswählen

var String Restart = executeCommandLine(Duration.ofSeconds(10),"/usr/bin/ssh","-p8101","-i","openhab.id_rsa","localhost","bundle:start","org.openhab.binding.livisismarthome")
Statt eines Leerzeichens wird also der String mit der Kommandozeile jeweils unterbrochen und nachfolgend der nächste Teil als neuer String übergeben (das ist seit OH3.0 so).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
guinnes
Beiträge: 146
Registriert: 21. Apr 2020 19:46
Answers: 0

Re: Mal wieder Restart Binding

Beitrag von guinnes »

udo1toni hat geschrieben: 9. Feb 2023 01:24 Hattest Du das vor der Umstellung schon mal so laufen? Ich denke eher nicht...
Nicht genauso, sondern mit openhab@localhost. openhabian war ein Versuch, weil es eben nicht ging. Ansonsten ist die Rule von dir und hat unter OH2.5.12 getan. Ich werd mal weiter versuchen
Glückauf
guinnes

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

Re: Mal wieder Restart Binding

Beitrag von udo1toni »

Ah. Ja, wie erwähnt, executeCommandLine wird nun anders verwendet, also die Leerzeichen betreffend.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
guinnes
Beiträge: 146
Registriert: 21. Apr 2020 19:46
Answers: 0

Re: Mal wieder Restart Binding

Beitrag von guinnes »

Moin
So, nun tuts ( fast ) :

Code: Alles auswählen

var Timer tEBusRestart = null
var Boolean bEBusRestart = false

rule "Livisi Restart Binding"
when
    Item VAR_Innogy_CPU_Fehler received command ON
then
    if(tEBusRestart !== null) return;
    
    tEBusRestart = createTimer(now.plusSeconds(1),[|
        if(bEBusRestart) {
            var String  Restart = executeCommandLine(Duration.ofSeconds(10),"/usr/bin/ssh","-p8101","-i","/home/openhab/openhab.id_rsa","localhost","bundle:start","org.openhab.binding.livisismarthome")
            logInfo("LivisiSmarthome", "LivisiSmarthome Restart {}",Restart)
            tEBusRestart = null
            bEBusRestart = false
        } else {
            var String Restart = executeCommandLine(Duration.ofSeconds(10),"/usr/bin/ssh","-p8101","-i","/home/openhab/openhab.id_rsa","localhost","bundle:stop","org.openhab.binding.livisismarthome")
            logInfo("LivisiSmarthome", "LivisiSmarthome Stop {}",Restart)
            tEBusRestart.reschedule(now.plusSeconds(25))
            bEBusRestart = true
        }
    ])
end
Das einzige, was nicht geht, sind die LogInfos nach den Executecommandlines, die kommen nicht, aber damit kann ich leben
Vielen Dank für die Hilfe
Glückauf
guinnes

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

Re: Mal wieder Restart Binding

Beitrag von udo1toni »

Kommt gar nichts (also keine Logzeile) oder kommt "nur" keine "interessante" Ausgabe?
executeCommandLine sollte den Rückgabewert liefern, das wäre 0.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
guinnes
Beiträge: 146
Registriert: 21. Apr 2020 19:46
Answers: 0

Re: Mal wieder Restart Binding

Beitrag von guinnes »

udo1toni hat geschrieben: 10. Feb 2023 18:58 Kommt gar nichts (also keine Logzeile) oder kommt "nur" keine "interessante" Ausgabe?
Es kommt gar nichts :

Code: Alles auswählen

2023-02-10 11:06:10.709 [INFO ] [ab.core.model.script.LivisiSmarthome] - LivisiSmarthome Stop 
2023-02-10 11:06:36.067 [INFO ] [ab.core.model.script.LivisiSmarthome] - LivisiSmarthome Restart 
Glückauf
guinnes

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

Re: Mal wieder Restart Binding

Beitrag von udo1toni »

FALSCH! Es kommt die Logzeile! Es wird nur keinerlei Wert geliefert. Die Variable Restart enthält also eine leere Zeichenkette. Das kann ja durchaus sein.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
guinnes
Beiträge: 146
Registriert: 21. Apr 2020 19:46
Answers: 0

Re: Mal wieder Restart Binding

Beitrag von guinnes »

udo1toni hat geschrieben: 11. Feb 2023 14:48 FALSCH! Es kommt die Logzeile! Es wird nur keinerlei Wert geliefert. Die Variable Restart enthält also eine leere Zeichenkette. Das kann ja durchaus sein.
Stimmt, du hast recht. Ich ahtte gedacht, ich hätte vor dem executecommandline noch eine Log-Ausgabe
Danke
Glückauf
guinnes

Antworten