Restart Switch für OpenHab

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
leupy
Beiträge: 78
Registriert: 21. Nov 2018 19:43
Wohnort: Saarlouis

Restart Switch für OpenHab

Beitrag 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
Saarländer
Raspberry Pi 3 & 4 openHAB3.3
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2

madmike
Beiträge: 272
Registriert: 15. Apr 2018 17:09

Re: Restart Switch für OpenHab

Beitrag 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

Benutzeravatar
leupy
Beiträge: 78
Registriert: 21. Nov 2018 19:43
Wohnort: Saarlouis

Re: Restart Switch für OpenHab

Beitrag 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
Saarländer
Raspberry Pi 3 & 4 openHAB3.3
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Restart Switch für OpenHab

Beitrag 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)?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
leupy
Beiträge: 78
Registriert: 21. Nov 2018 19:43
Wohnort: Saarlouis

Re: Restart Switch für OpenHab

Beitrag 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.
Saarländer
Raspberry Pi 3 & 4 openHAB3.3
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Restart Switch für OpenHab

Beitrag 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
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12

Re: Restart Switch für OpenHab

Beitrag 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'

Benutzeravatar
leupy
Beiträge: 78
Registriert: 21. Nov 2018 19:43
Wohnort: Saarlouis

Re: Restart Switch für OpenHab

Beitrag 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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von leupy am 28. Jan 2020 16:42, insgesamt 1-mal geändert.
Saarländer
Raspberry Pi 3 & 4 openHAB3.3
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Restart Switch für OpenHab

Beitrag 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
- OpenHab 2.4
#PWRUP

Benutzeravatar
leupy
Beiträge: 78
Registriert: 21. Nov 2018 19:43
Wohnort: Saarlouis

Re: Restart Switch für OpenHab

Beitrag 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
Saarländer
Raspberry Pi 3 & 4 openHAB3.3
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2

Antworten