Seite 1 von 3
Restart Switch für OpenHab
Verfasst: 11. Feb 2019 19:24
von leupy
Hallo,
ich bräuchte mal wieder eure Hilfe.
Ich wollte einen Restart Switch für OpenHab einbauen.
Mit der neuen Version 2.4 tue ich mich schwer mit Things und Items.
Ich habe eine Regel erstellt für diese Funktion
Code: Alles auswählen
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
Jetzt fehlt mir dazu der Passende Thing und Item meine bekomme ich nicht zum laufen.
Hier der alte Syntax ohne Thing den ich einfach nicht zum laufen bekomme unter 2.4
Code: Alles auswählen
Switch openHabRestart "Openhab Restart" (System) {exec=">[ON:sudo /etc/init.d/openhab restart]" ,autoupdate="false"}
Kann mir einer vielleicht den passenden Syntax nennen ?
Danke schon mal im voraus
Re: Restart Switch für OpenHab
Verfasst: 11. Feb 2019 19:35
von madmike
Hallo leupy,
gibt es einen Grund warum du das ganze so lösen möchtest, wäre das ganze nicht auch durch eine bash.Datei zu lösen ??
Ich würde das ganze mit einer Bash Datei und dem Exec-Binding lösen. Schau mal in den Beitrag "
viewtopic.php?f=13&t=179"
Da findest Du auch eine genaue Beschreibung wie ich das ganze gelöst habe. An dieser Stelle nochmals Danke für die Unterstützung von Peter und Udo hier aus dem Forum. Ich denke du kannst das ganze gut nachvollziehen und dein reboot oder openhab restart hinbekommen.
mfg
Madmike
Re: Restart Switch für OpenHab
Verfasst: 17. Feb 2019 07:59
von leupy
Hallo zusammen,
ich habe wie
madmike vorgeschlagen das ganze so umgesetzt wie im Beispiel
viewtopic.php?f=13&t=179
Leider bekomme ich das nicht zum laufen.
Hier meine Einträge
Sitemap
Code: Alles auswählen
Text label="System" icon="settings"
{
Switch item=openHabRestart icon="returnpipe"
}
Item
Code: Alles auswählen
// Schalter für den openHab Restart
Switch openHabRestart "Neustart OpenHab" <shield> {channel="exec:command:Restart:run"}
Thing
Code: Alles auswählen
Thing exec:command:Restart [ command="/etc/openhab2/scripts/restart.sh", autorun=false ]
die Scrip Datei
restart.sh liegt im Verzeichnis
openhabian@openHABianPi:/etc/openhab2/scripts$
und die Visudo sieht so aus
Code: Alles auswählen
# User privilege specification
root ALL=(ALL:ALL) ALL
openhab ALL=(ALL:ALL) NOPASSWD: /etc/openhab2/scripts/restart.sh
im voraus schon mal Danke für die Hilfe
Re: Restart Switch für OpenHab
Verfasst: 17. Feb 2019 22:43
von udo1toni
Du musst in /etc/sudoers (das ist die Datei, die mit visudo barbeitet wird) natürlich /bin/reboot eintragen, nicht das Script, in dem sudo verwendet wird.
Welches Betriebssystem verwendest Du (exakt)?
Re: Restart Switch für OpenHab
Verfasst: 18. Feb 2019 18:27
von leupy
Hallo udo1toni
danke erst mal für deine schnelle Hilfe wie immer
ich habe die sudoers geändert in (so hatte ich das verstanden)
Code: Alles auswählen
User privilege specification
root ALL=(ALL:ALL) ALL
openhab ALL=(ALL:ALL) NOPASSWD: /bin/reboot
Ich benutze OpenHab 2.4 mit Linux openHABianPi 4.14.79-v7+ #1159 SMP
leider funst das immer noch nicht.
Re: Restart Switch für OpenHab
Verfasst: 18. Feb 2019 19:39
von udo1toni
Ach, Käse, vermutlich liegt reboot in /sbin/, nicht in /bin/. Du kannst das am besten selbst überprüfen:
Re: Restart Switch für OpenHab
Verfasst: 10. Mai 2019 19:23
von djuscha
wollte nachmachen und bekomme Fehler
Code: Alles auswählen
[ERROR] [hab.binding.exec.handler.ExecHandler] - An exception occurred while executing '/etc/openhab2/scripts/restart.sh' : 'Cannot run program "/etc/openhab2/scripts/restart.sh": error=13, Keine Berechtigung'
wenn ich
sudo chmod 755 /etc/openhab2/scripts/restart.sh oder
sudo chown -R openhab:openhabian /etc/openhab2/scripts/restart.sh anwende bekomme ich
Code: Alles auswählen
[ERROR] [hab.binding.exec.handler.ExecHandler] - An exception occurred while executing '/etc/openhab2/scripts/restart.sh' : 'Cannot run program "/etc/openhab2/scripts/restart.sh": error=2, Datei oder Verzeichnis nicht gefunden'
Re: Restart Switch für OpenHab
Verfasst: 31. Dez 2019 09:43
von leupy
Hallo djuscha,
ich hab mich dem Thema wieder angenommen und mit Hilfe des Forum jetzt eine andere Lösung gefunden die jetzt läuft.
Sitemap
Code: Alles auswählen
Text label="Systeme Neustart" icon="settings"
Switch item=OH2_Service mappings=[1="Neustart",2="Backup"] icon="openhab"
Switch item=PI_Service mappings=[1="Herunterfahren"] icon="pi"
Items
Code: Alles auswählen
// Schalter für den openHab und PI Restart
Number OH2_Service "openHAB "
Number PI_Service "Pi"
Regel
Code: Alles auswählen
//System Neustarten und Bakup
//--------------
rule "Init Service"
when
System started // Wenn System startet
then
OH2_Service.postUpdate(0)
PI_Service.postUpdate(0)
end
//-------------------------------------
rule "Service_OH2"
when
Item OH2_Service changed
then
if(OH2_Service.state == 1)
{
logInfo("OH2", "Restart")
executeCommandLine ("sudo /bin/systemctl restart openhab2.service")
}
if(OH2_Service.state == 2)
{
logInfo("OH2", "Backup")
executeCommandLine ("sudo /usr/share/openhab2/runtime/bin/backup")
OH2_Service.postUpdate(0)
}
end
//-------------------------------------
rule "Service_Pi"
when
Item PI_Service changed
then
if(PI_Service.state == 1)
{
logInfo("Pi", "wird heruntergefahren")
executeCommandLine ("sudo shutdown")
}
end
gruß leupy
Re: Restart Switch für OpenHab
Verfasst: 31. Dez 2019 10:16
von PeterA
Hi leupy,
coole Lösung!
In der Rule rufst Du das Backup mit .../bin/backup auf
Ich mache ein Backup immer über die Console mit: "sudo openhab-cli backup --full backup<datum>"
Macht dein Backup das selbe ? Und wohin wirds geschrieben ? Bei mir wird ein ca 100mb zip erzeugt.
Gruß
Peter
Re: Restart Switch für OpenHab
Verfasst: 31. Dez 2019 11:53
von leupy
Hallo,
das Backup liegt unter >>
/var/lib/openhab2/backups oder \openhab2-userdata\backups
mit dem Befehl
Code: Alles auswählen
# wenn openhab2 läuft stoppen
sudo systemctl stop openhab2
sudo $OPENHAB_RUNTIME/bin/restore $OPENHAB_BACKUPS/***Name des Backups***.zip
werden die Daten wieder hergestellt.
Es wird die Config und die Userdata gesichert. (ca.5MB)
Bei der Variante mit
sudo openhab-cli backup --full backup<datum> werden noch mehr Ordner gesichert.
Du kannst ja den Befehl in der Regel abändern dann wird das full Backup erstellt.
Das kleine Backup mache ich bevor ich Änderungen vornehme über VSC. Ansonsten kopiere ich mir meine SD Karte bei größeren Änderung über Win32 Diskimager.
gruß leupy