OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Hier bitte alles rein was Off-topic ist.

Moderatoren: Cyrelian, seppy

Blauzahn
Beiträge: 15
Registriert: 31. Jan 2021 04:58
Answers: 0

OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von Blauzahn »

Hallo, habe OH 3.1.0 es arbeitet über das AVM Binding mit meiner Fritzbox 7580 mit dem neuen OS.
Leider kommt es immer wieder zu Kommunikation bzw. Fehlern so das Openhab mit dem Befehl:
sudo systemctl restart openhab
einen Restart machen muss. Dann Arbeitet alles dann wieder ein paar Tage.

Nun möchte ich das ganze Problem Lösen in dem ich eine Rule Schreibe.

Diese Sollte Fritzbox offline ist bzw ( von Online zu Offline geht) automatisch den Restart durchführt.

Leider habe ich Probleme die Rule zu Schreiben !

Meine Bisherigen Schritte :
1) openhab zum Superuser :
sudo adduser openhab sudo

2) Befehle in openhab erlauben:
sudo visudo -f /etc/sudoers.d/yourfilenamehere

(Das öffnet den Texteditor: )

# Allow openhab user to execute shutdown, poweroff, and systemctl commands
openhab ALL=(ALL) NOPASSWD: /sbin/shutdown, /sbin/poweroff, /sbin/systemctl, /sbin/reboot

( Mit CTRL+X speichern)

3) Rechte Testen:
sudo -u openhab /bin/bash
sudo shutdown -r
( Die erste Zeile wechselt zu user Openhab, die zweite Zeile macht ein Reboot wenn alles OK ist ohne die PW Frage)

----------------------------------------------------------------------------------------------------
Da ich in der Rule den Befehl :
executeCommandLine("sudo","reboot") //OH3
verwenden möchte für den Restart.
-----------------------------------------------------------------------------------------------------

Problem bzw Fehler :

neue Rule erstellt : AVMReboot1
mit den Code:

triggers:
- id: "1"
configuration:
thingUID: avmfritz:fritzbox:192_168_178_1
previousStatus: ONLINE
status: OFFLINE
type: core.ThingStatusChangeTrigger
conditions: []
actions: []
________________
Mein Problem ist wie ich das Rebbot bei action schreiben soll ???
Bitte um Rat und Hilfe ???

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

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von udo1toni »

Mal ein paar Schritte zurück...

1. Du möchtest openHAB nicht ständig neu starten. Nein, Du möchtest auch nicht, dass das automatisch passiert.
Versuche, herauszufinden, warum Dein System instabil läuft und beseitige die Ursache, bekämpfe nicht das Symptom.

2. Wenn Du schon mit sudo herumspielst, dann bitte richtig. ;) Der User openhab gehört keinesfalls in die Gruppe sudo. Stattdessen listest Du exakt auf, welche Befehle der User openhab per sudo ausführen darf. Dabei listest Du auch bitte nicht wahllos Befehle, die viel Unheil anrichten können, sondern gezielt exakt die Befehle, die der User openhab ausführen können soll, in Deinem Fall ist das exakt der Befehl

Code: Alles auswählen

/bin/systemctl restart openhab.service
(ja, systemctl liegt in /bin/, nicht in /sbin/)

3. Der richtige Befehl zum Restart lautet genau so, wie bei 2. angegeben ;) am einfachsten schreibst Du den Befehl in ein Shell Script und rufst dieses Script aus openHAB heraus auf. Am besten läuft das über das exec Binding (was natürlich bedeutet, dass Du zusätzlich den Aufruf des Scripts auch noch in der exec.whitelist eintragen musst). Alternativ kannst Du natürlich auch die action executeCommandLine nutzen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Blauzahn
Beiträge: 15
Registriert: 31. Jan 2021 04:58
Answers: 0

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von Blauzahn »

Hallo udo1toni,
gehe Schritt 1 & 2 zurück :roll:

1) sudo deluser openhab sudo
(sudo deluser USERNAME sudo)

macht die Anweisung Rückgangig
sudo adduser openhab sudo

2) Befehle in openhab in Datei :
sudo visudo -f /etc/sudoers.d/yourfilenamehere
durch # Kommentarzeichen ausserkraft gesetzt.

Am Shell Script arbeite ich noch . :|

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

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von udo1toni »

Blauzahn hat geschrieben: 8. Aug 2021 02:19 2) Befehle in openhab in Datei :
sudo visudo -f /etc/sudoers.d/yourfilenamehere
durch # Kommentarzeichen ausserkraft gesetzt.
Das ist ein Schritt zu viel. Du musst schon systemctl mit NOPASSWD erlauben (aber bitte mitsamt Parametern, also restart openhab.service) Nur die grundsätzliche Erlaubnis und die ganzen unnötigen Befehle (shutdown, reboot, poweroff) sollten nicht sein.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Blauzahn
Beiträge: 15
Registriert: 31. Jan 2021 04:58
Answers: 0

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von Blauzahn »

Also muss der Eintrag so sein :

openhab ALL=(ALL) NOPASSWD: /bin/systemctl restart openhab.service

:?:

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

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von udo1toni »

Genau. Strenggenommen müsste er so aussehen:

Code: Alles auswählen

openhab ALL=(ALL:ALL) NOPASSWD: /bin/systemctl restart openhab.service
wobei die Gruppe optional ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Blauzahn
Beiträge: 15
Registriert: 31. Jan 2021 04:58
Answers: 0

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von Blauzahn »

Ich hoffe das ich jetzt auf dem richtigen Weg bin:

1) Habe Exec Binding installiert.

2) Habe in dem Things Ordner die Datei oh3service.things erstellt mit den Inhalt:

Code: Alles auswählen

 Thing exec:command:oh3service [command="sudo /bin/systemctl %2$s openhab.service", autorun=true] 
oder als Thing Code :

Code: Alles auswählen

  
  UID: exec:command:oh3service
label: Befehl
thingTypeUID: exec:command
configuration:
  transform: REGEX((.*))
  interval: 0
  autorun: true
  command: sudo /bin/systemctl %2$s openhab.service
  timeout: 15
   
3) Aus dem Thing habe ich, über das Channel Input das Item BefehlOH3Service_Eingabewert erstellt,
mit dem Label "Eingabewert für OH3Service"
Idee: Das Thing soll alle Befehle an openhab.service ausführen können,
darum ein Übergabeparameter %2$s . sowie das Input Item BefehlOH3Service_Eingabewert .
Ich will falls es geht, den String restart übergeben.
So das der Befehl restart openhab.service ausgeführt wird

Blauzahn
Beiträge: 15
Registriert: 31. Jan 2021 04:58
Answers: 0

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von Blauzahn »

Bei dem alten Openhab 2 währe die Übergabe zum Beispiel in der Sitemap :

Code: Alles auswählen

Frame label="Systemfunktionen" {
        Switch item=BefehlOH3Service_Eingabewert mappings=[restart="Restart" ]
    }
So stelle ich mir es vor :?:

BOP
Beiträge: 197
Registriert: 23. Sep 2018 19:43
Answers: 1

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von BOP »

Wäre es denn nicht besser erst einmal zu versuchen nur das Binding neu zu starten?

Ich halte das Vorgehen hier auch für prädestiniert, sich "komische" Fehler ins System zu bringen. So restartet openHAB ja bei jeder Netzwerkunterbrechung neu. Bzw. auch, wenn die Fritz!Box einen gewollten Neustart macht.

Blauzahn
Beiträge: 15
Registriert: 31. Jan 2021 04:58
Answers: 0

Re: OH 3.1.0 / AVM Fritzbox Error - AutoRestart

Beitrag von Blauzahn »

Ich vermute die Ursache ist das WLAN ( Funkstörung , oder wegen Mesh Betrieb) , jedoch konnte ich den Fehler auch mit einer zusätzlichen Kabelverbindung (von Openhab zur Fritzbox) nicht abstellen. ( Was eigentlich gegen Ursache WLAN spricht ) :!:
Wie ich an anderswo gelesen habe, kommt das oft vor. ( Könnte das OS von AVM sein) :?:
(Das OS der Fritzbox ist aktuell , sowie das Binding und Openhab )

Es ist richtig Symptome zu behandeln hilft in der Regel nicht :!:

Aber eine Notlösung , kann helfen bis der Fehler gefunden werden kann.
Ich steuere mit OH3 einige Steckdosen und Lampen, in Verbindung mit einem Google Mini.
Es ist sehr angenehm mit Sprache Licht EIN und AUS zu schalten.
Gibt es diesen Error hilft nur der restart leider :roll:

Antworten