Manchmal möchte man openHAB einfach über die Oberfläche neu starten. Das geht wie folgt.
Zuerst eine System.rules Datei im rules Verzeichnis erstellen, mit dieser Regel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//------------------------------------------------------------------------ // Führt ein OpenHab System Reboot durch //------------------------------------------------------------------------ rule "Führt ein OpenHab System Reboot durch" when Item openHabRestart changed then if (openHabRestart.state == ON) { var text = "führe einen reboot von openHab durch ..." logInfo("System", text) } end |
Dann in der Haus.sitemape Datei einen Schalter einbauten:
1 2 3 |
Frame label="Sytem" { Switch item=openHabRestart } |
Das sieht dann so aus:
Und in der Syteme.items Datei den Eintrag, mit dem System Aufruf:
1 2 |
// Schalter für den openHab Restart Switch openHabRestart "Openhab Restart" (System) {exec=">[ON:sudo /etc/init.d/openhab restart]" ,autoupdate="false"} |
Auch muss das Ext Binding installiert werden mit:
1 |
sudo apt-get install openhab-addon-binding-exec |
Und zu guter letzt, muss dem openhab User unter dem das openHAB läuft, noch die Rechte vergeben werden, damit das Script /etc/init.d/openhab restart mit sudo ausgeführt werden darf. Dafür in der Datei /etc/sudoers.d/openhab mit dem visudo Editor die folgenden Einträge machen:
1 2 3 4 5 6 |
# Editor aufrufen visudo -f /etc/sudoers.d/openhab # den folgenden Eintrag machen und speichern. openhab ALL = (root) NOPASSWD: /etc/init.d/openhab # testen mit einer anderen Konsole ob man sich noch anmelden kann, # die Datei /etc/sudoers sollte immer mit dem Befehl visudo bearbeitet werden, da so eine Syntaxüberprüfung gewährleistet ist. Bei der direkten Bearbeitung ohne Prüfung kann der kleinste Tippfehler dazu führen, dass man sich aus dem System aussperrt und nur über den Recovery Modus wieder Zugang erhalten kann. |