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 ? :idea:

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$

Code: Alles auswählen

#! /bin/bash
sudo reboot
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:

Code: Alles auswählen

find / -name reboot

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