Hallo,
ich brauche Hilfe bei meiner erstellten Regel für eine Neustart bzw Backup über die Basic Oberfläche.
Ich habe folgende Switch in der Sitemap erstellt.
//System Service
//--------------
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 == 1)
{
executeCommandLine ("sudo /bin/systemctl restart openhab2.service")
}
if (OH2_Service == 2)
{
executeCommandLine ("sudo $OPENHAB_RUNTIME/bin/backup")
}
end
Wenn ich den Befehl von der ersten Bedingung (OH2_Service ==1) ohne die Regel ausführe startet OpenHab neu aber in der Regel läuft das ganze nicht.
Das "OH_Service" Item wechselt beim Test auf 1 aber der Befehl wird nicht ausgeführt
Saarländer
Raspberry Pi 3 & 4 openHAB3.2
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2
Um zu sehen, ob die Regel durchgeführt wird oder nicht, kannst du ein "logInfo" einfügen. In der "openhab.log" kannst du dann sehen, welche Punkte durchlaufen wurden. Mein Vorschlag wäre einen Log-Eintrag für Start, Ende und Verzweigung einzufügen.
Auch versuchst du Befehle mit "sudo" auszuführen.
Kläre bitte ab, ob:
1. Der Benutzer, der OH ausführt in der Gruppe sudo ist.
2. "sudo" verlangt ein Passwort. (sudo ohne Passwort ist ein Sicherheitsrisiko !!) Ich sehe aber nicht, daß eines übergeben wird.
Ich verstehe, was du erreichen willst, aber überlege, ob es wirklich notwendig ist:
a) OH per Oberfläche neu starten zu können. Jemand, der rumspielt kann dir OH neu starten.
b) Dein Skript "backup" könnte man auch per cron regelmäßig starten. Aber reicht es nicht auch nach Änderungen eine Sicherung per Hand zu starten?
Hallo Heiko,
die Rechte für den Befehl sind gesetzt er funktioniert wenn ich ihn über eine Switch aktiviere.
Durch einfügen von Logs hab ich gesehen das die Regel beim Trigger "Item OH2_Service changed" auf ende springt obwohl die Bedingung des ersten If erfüllt ist.
Könnte das ein Zeitproblem vom Trigger sein das das ganze zu schnell ist ?
gruß leupy
Ich hab´s gefunden >> beim If hab ich den Status vergessen if(OH2_Service.state == 1)
Restart funst jetzt, aber wenn der Backup Befehl ausgeführt wird kein Backup gemacht.?
INFO ] [lipse.smarthome.io.net.exec.ExecUtil] - executed commandLine 'sudo $OPENHAB_RUNTIME/bin/backup'
Saarländer
Raspberry Pi 3 & 4 openHAB3.2
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2
Dann mal zur Fehlersuche. Die Rule scheint so weit zu laufen:
a) Wird die Backup-LogInfo geloggt?
b) Was passiert wenn du "sudo $OPENHAB_RUNTIME/bin/backup" im Terminal ausführst?
c) Poste mal den Inhalt von "backup".
Ich bin mir nicht sicher, ob die Umgebungsvariable $OPENHAB_RUNTIME für den user openhab gesetzt ist.
Es gibt auch keinen Grund, unbedingt die Variable für den Aufruf zu nutzen.
Im Normalfall zeigt die Variable auf /usr/share/openhab2/runtime, Du könntest also den Aufruf entsprechend ändern.
Falls Du nicht sicher bist, kannst Du vorher feststellen, auf welchen Pfad die Variable tatsächlich zeigt, mittels openhab-cli info.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Wie ändere ich den Aufruf oder besser wie sieht der dann aus?
Oder kann ich noch mit einer anderen Methode das Backupscipt aufrufen, ich bin da ein bisschen überfordert.
Wenn ich die Befehl über Putty ausführe wird ein Backup erstellt
@Heiko Noch zu deiner Frage warum mann das braucht > Da ich viel an meiner Haussteuerung ändere und ich viel probieren muß (da mir das Wissen fehlt) ist es für mich aufwändig mich jedes mal über Putty wieder einzuloggen und einen Neustart durchzuführen. Das geht dann schneller über die Oberfläche genau so für ein Backup.
gruß leupy
Saarländer
Raspberry Pi 3 & 4 openHAB3.2
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2