Raspberry aus FHEM neu starten
Hier stelle ich euch meine Lösung vor, wie ich aus FHEM heraus meinen Raspberry Pi (lokal) und meine(n) Raspberry Pi('s) per FHEM2FHEM (remote) neu starte.
Grundvorraussetzungen:
FHEM braucht Zugriff auf die Shell des Linux-Systems sowie die Rechte "sudo" benutzen zu dürfen!
Dazu müssen zwei System-Dateien bearbeitet werden.
1. /etc/passwd
Hier wird folgendes geändert:
in:
Wichtig ist die Änderung am Ende (none -> bash). Alles andere könnte unterschiedlich sein und ist für uns uninteressant!
Mit "Strg+O" speichern und mit "Strg+X" schließen.
2. /etc/sudoers
Hier wird folgendes ergänzt (irgendwo in der Datei):
Mit "Strg+O" speichern und mit "Strg+X" schließen.
Damit sind die Vorraussetzungen erfüllt um aus FHEM heraus dem System Befehle erteilen zu können.
Lokalen Raspberry Pi neustarten:
Hier reicht ein einfacher Befehl über die FHEM-Commandozeile oder z.B. FTUI.
Es handelt sich hierbei um einen in FHEM integrierten Perl-Befehl. Darum muss dieser Befehl in geschwungenen Klammern {} geschrieben werden.
Der Raspberry Pi sollte nun neustarten.
Remote Raspberry Pi über FHEM2FHEM neustarten:
Vorrausetzung hierfür ist ein funktionierendes FHEM2FHEM-Device auf dem Remote-System:
[IP] und [TELNETPORT] stammen vom Haupt-System. [PASSWORT] wird benötigt falls der Telnet-Port des FHEM auf dem Haupt-System mit einem Passwort geschützt ist.
Hierzu schaut aber am Besten in die commandRef!
Auf dem Haupt-System definieren wir in FHEM einen Dummy, welcher später getriggert wird.
Auf dem Remote-System definieren wir ein notify welches auf den Dummy des Haupt-System's lauscht:
Nun muss noch die Definition des FHEM2FHEM-Devices ergänzt werden:
Ich mache diesen Schritt gern über FHEM-WEB, indem ich das FHEM2FHEM-Device öffne und links neben der Device-Definition auf "DEF" klicke.
Die Defnition sollte dann minimal so aussehen:
Mit einem klick auf "modify [NAME]" speichern!
Um jetzt das Remote-System vom Haupt-System aus neu zu starten reicht auf dem Haupt-System der Befehl:
Der Dummy im Hauptsystem wird getriggert.
Wer jetzt den EventMonitor verfolgt, sieht, dass auf beiden Systemen ein Event ähnlich
erzeugt wird. Dieses wird vom notify "abgefangen" und löst den "System-Befehl" zum neustarten aus.
Auch der Befehl: "set reboot_remote_pi neustart" würde einen neustart auslösen, weil das notify auf dem Remote-System auf alles lauscht was der Dummy auf dem Haupt-System an Event's erzeugt.
Grüße^^