Bundle Restart via Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
alkaline
Beiträge: 173
Registriert: 20. Apr 2017 13:25
Answers: 0

Bundle Restart via Rule

Beitrag von alkaline »

Hallo Gemeinde

nachdem bei mir, eigentlich schon seit Monaten, das iCloud Binding nach 2 Tagen "stehenbleibt", habe ich eine Regel erstellt, welche mir das Binding bei Zeitüberschreitung von 2 Std. autom. neu starten soll. Hierzu habe ich auch verschiedene Aufrufe angewendet, siehe Regel.

Die Zeitberechnung arbeitet, der Restart aber will mir via Rule nicht gelingen.
Im Endergebnis wird offenbar der Aufruf zum Restart gemacht, ich bekomme keinerlei Fehlermeldung.

Die ganzheitliche Regel sieht so aus:

Code: Alles auswählen

rule "Automatischer Neustart iCloud Binding" 
when
    Time cron "0 0 0/1 1/1 * ? *" // jede Stunde
then
    val Number aktuelle_Zeit = (CurrentTime.state as DateTimeType).zonedDateTime.toInstant.toEpochMilli
    val Number last_update_Marcus = (MarcusiPhone_LocationLastUpdate.state as DateTimeType).zonedDateTime.toInstant.toEpochMilli
    val Number last_update_Alex = (AlexiPhone_LocationLastUpdate.state as DateTimeType).zonedDateTime.toInstant.toEpochMilli
    val Number DiffTimeMarcus = aktuelle_Zeit/60000 - last_update_Marcus/60000
    val Number DiffTimeAlex = aktuelle_Zeit/60000 - last_update_Alex/60000
    //logInfo("FILE", "Zeitdifferenz Marcus in Minuten " + DiffTimeMarcus)
    if ((DiffTimeMarcus > 120) || (DiffTimeAlex > 120)) { //länger als 120 Min
      //Neustart iCloud Binding 
    //executeCommandLine("/usr/share/openhab2/runtime/bin/client bundle:restart org.openhab.binding.icloud", 6000)
    executeCommandLine("/usr/share/openhab2/runtime/bin/client bundle:restart 242", 6000)
    Thread::sleep(2000) 
    logInfo("FILE", "Neustart: icloud binding erledigt") 
    }
end
Die verkürzte Version, ohne die Zeitberechnung:

Code: Alles auswählen

rule "Restart iCloud Binding"

when Item restart_icloud received command ON

then
//executeCommandLine("/usr/share/openhab2/runtime/bin/client bundle:restart org.openhab.binding.icloud", 6000)
//executeCommandLine("/usr/share/openhab2/runtime/bin/client bundle:restart 'openHAB Add-ons :: Bundles :: iCloud Binding'")
executeCommandLine("/usr/share/openhab2/runtime/bin/client bundle:restart 242", 6000)
Thread::sleep(2000) 
logInfo("FILE", "Manueller Neustart: icloud binding erledigt") 
end
Hat jemand einen Tip, wie ich weiter vorgehen kann?

Danke für eure Mühe

Gruß
Marcus

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

Re: Bundle Restart via Rule

Beitrag von udo1toni »

Hast Du den Befehl erfolgreich von der Konsole aus ausführen können? Auch als User openhab? Hast Du den Befehl in der whitelist eingetragen?


Gesendet von meinem SM-G973F mit Tapatalk



openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
alkaline
Beiträge: 173
Registriert: 20. Apr 2017 13:25
Answers: 0

Re: Bundle Restart via Rule

Beitrag von alkaline »

Ich fand noch ein anderes Tutorial und folgte diesem:
https://community.openhab.org/t/tutori ... ule/37047

Im Eneffekt gelingt nun der Neustart via Rule mit dem folgenden, auch in der Console ausführbaren, Befehl:

Code: Alles auswählen

executeCommandLine("sudo /usr/bin/ssh -p 8101 -i /home/openhab/karaf_keys/openhab.id_rsa openhab@localhost bundle:restart org.openhab.binding.icloud", 6000)
Der Schlüssel zum ganzen lag in der Erstellung der openhab.id_rsa Datei.

Gruß
Marcus

J-N-K
Beiträge: 126
Registriert: 20. Jun 2020 12:21
Answers: 4
Wohnort: Gelsenkirchen, NRW

Re: Bundle Restart via Rule

Beitrag von J-N-K »

Was heißt denn „das Binding bleibt hängen“? Weil eigentlich sollte man das vielleicht beseitigen statt einen Workaround zu suchen (der z.B. nicht funktionieren würde für Bindings mit Actions).
openHAB 4.0.0-SNAPSHOT - - local build -
APU2, 4GB RAM, 32GB SSD, Debian Buster
openHAB Core/Distro/Addons & SmartHome/J Maintainer

Benutzeravatar
alkaline
Beiträge: 173
Registriert: 20. Apr 2017 13:25
Answers: 0

Re: Bundle Restart via Rule

Beitrag von alkaline »

Mittlerweile wieß ich, dass es mit dem Amazon Binding zu tun hat, welches bekanntlich Probleme hatte. Seit diese durch den Fix erneuert wurde, arbeitet das iCloud Binding (sowie alle anderen auch) wieder stabil und es besteht keine Notwendigkeit mehr, das Binding neu zu starten.

Gruß
Marcus

Antworten