Seite 1 von 1

Bundle Restart via Rule

Verfasst: 8. Jun 2020 07:20
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

Re: Bundle Restart via Rule

Verfasst: 9. Jun 2020 01:45
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




Re: Bundle Restart via Rule

Verfasst: 10. Jun 2020 09:33
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

Re: Bundle Restart via Rule

Verfasst: 20. Jun 2020 12:33
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).

Re: Bundle Restart via Rule

Verfasst: 21. Jun 2020 19:30
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