Seite 1 von 2
OH Restart Windows
Verfasst: 15. Nov 2021 20:19
von rqxrqx
Ich habe erfolgreich OH3 auf einen NUC installiert. Alles läuft so wie früher bis auf die über das exec Binding umgesetzte restart Funktion von OH.
Gibt es da einen Befehl oder ein .bat file für OH unter Windows?
Re: OH Restart Windows
Verfasst: 15. Nov 2021 22:06
von int5749
Hi,
Bevor ich von WIndows (wegen der Zwangs-Reboots unter Win10) auf Linux Debian umgestiegen bin, habe ich dafür RestartOnCrash genutzt und Windows mit einem Auto-Login versehen. Alternativ liefe OH auch als Service.
Re: OH Restart Windows
Verfasst: 16. Nov 2021 09:33
von rqxrqx
OH läuft als Service. Ich möchte nur OH neu starten und nicht den Windows Rechner.
Re: OH Restart Windows
Verfasst: 19. Nov 2021 05:54
von udo1toni
Dann musst Du Dir ein entsprechendes Script für Windows schreiben, welches den Service neu startet. Die passenden Befehle lauten
und
Vermutlich musst Du noch einen Timer dazwischenbauen, ansonsten muss einfach alles nur in eine *.bat die Du dann von openHAB aus per exec aufrufst.
Re: OH Restart Windows
Verfasst: 28. Nov 2021 21:11
von rqxrqx
Ich habe heute versucht ein restart.bat Script zu schreiben.
@echo:
net stop openHAB
timeout 20
net start openHAB
pause
Manuell gestartet funktioniert das Script. Von OH aus läuft es aber nicht.
Wenn ich OH nicht als Service sondern über start.bat anwerfe, kann ich OH über das exec Binding mit dem stop.bat in /runtime/bin herunterfahren. Es geht aber kein Fenster auf und das Herunterfahren erkannt man nur im Tailviewer. Da das stop.bat geht, sollten grundsätzlich meine Things, Items, und die Regel passen.
Ich vermute, dass das restart.bat Script wegen mangelnder admin Rechte nicht läuft. Ich kann es manuell erfolgreich auch nur in eine elevated cmd starten.
Gibt es eine Möglichkeit ein script über das exec Binding mit admin Rechten zu starten?
Kann man ein cmd Fenster öffnen lassen, in dem man sieht was sich tut? Bei manuellen Start der Scripte gehen diese automatisch auf.
Die Befehle habe ich in die whitelist eingetragen.
Re: OH Restart Windows
Verfasst: 30. Nov 2021 11:54
von udo1toni
Genau, das dürfte an fehlenden Rechten liegen.
Ein Dienst hat kein Ausgabefenster. Du kannst allenfalls die entsprechenden log-Dateien beobachten.
Grundsätzlich kann man openHAB natürlich auf einem Windows Rechner laufen lassen, aber man wird dabei immer etwas auf sich allein gestellt sein

sobald es um speziellere Fragen geht.
Re: OH Restart Windows
Verfasst: 1. Dez 2021 11:44
von rqxrqx
Die Rechte könnte ich mit dem Programm bat to exe in den Griff bekommen. Das gibt es die Option mit Administrator Rechten ausführen.
Das generierte exe funktioniert bei manueller Installation auch.
Von OH aus kann ich aber keinen Befehl starten. Ein test.bat file läuft nur teilweise.
@echo off
echo chrome starten > D:\openHAB\runtime\bin\test.log
mkdir D:\openHAB\runtime\bin\test
echo fertig >> D:\openHAB\runtime\bin\test.log
Die Ausgaben werden in das log file geschrieben. Das Verzeichnis wird aber nicht angelegt.
Direkt starten kann ich überhaupt keinen Befehl. zB führt der folgende zu gar nichts.
Thing exec:command:oh_neustart [command="C:\\Programme\\Google\\Chrome\Application\\chrome.exe", interval=0, autorun=false]
Wenn ich OH nicht als service sondern manuell starte, verhält sich das Exec Binding ganz normal, Befehle und Scripts werden ausgeführt.
Es scheint mir ein Fehler im Binding vorzuliegen. Gibt es da jemand der das richten könnte?
Re: OH Restart Windows
Verfasst: 1. Dez 2021 17:37
von int5749
rqxrqx hat geschrieben: ↑1. Dez 2021 11:44
Es scheint mir ein Fehler im Binding vorzuliegen. Gibt es da jemand der das richten könnte?
Dies solltest Du im englischen Forum posten, dort wo die Bindings entwickelt werden.
Re: OH Restart Windows
Verfasst: 1. Dez 2021 19:59
von udo1toni
Hast Du den Befehl in die whitelist eingetragen?
Re: OH Restart Windows
Verfasst: 1. Dez 2021 20:02
von rqxrqx
Workaround für OH als Service:
winthing (
https://github.com/msiedlarek/winthing) als MQTT Client am OH Rechner installieren.
Auszuführendes file mit:
val mqttActions = getActions("mqtt","mqtt:broker:MQTTBroker1884")
mqttActions.publishMQTT("winthing/system/commands/run","[neustart.batexe]", true)
von OH an winthing schicken.