Autor Thema: FHEM beenden und Rechner herunterfahren mit FHEM möglich?  (Gelesen 2362 mal)

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 433
Hallo,

ich möchte automatisiert den Rechner (Cubie) kontrolliert herunterfahren.
Dazu kann ich zwar ein { fhem ("shutdown") } machen. Danach funktioniert aber logischerweise kein "shutdown -s now" aus FHEM heraus mehr.
Wie kann ich das umsetzen?
Oder wird fhem schon kontrolliert heruntergefahren, wenn der Rechner ein ordnungsgemäßes Shutdown durchführt?
CUBIETRUCK | HMLAN | HMLAND+RPI2 | HM-MOD-RPI-PCB+RPI3/YAHM | CUL2 | 81 HM DEVICES

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #1 am: 23 März 2015, 13:07:23 »
Oder wird fhem schon kontrolliert heruntergefahren, wenn der Rechner ein ordnungsgemäßes Shutdown durchführt?

Ja. Linux Grundlagen...
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3250
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #2 am: 23 März 2015, 15:06:45 »
Jain ... wie startest Du denn FHEM? Bzw. wird es beim rechnerstat schon automatisch gestartet?
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 433
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #3 am: 23 März 2015, 15:28:10 »
Ich habe mich nicht aktiv um den FHEM Start gekümmert. Die Installation erfolgte via
sudo wget http://fhem.de/fhem-5.6.deb && sudo dpkg -i fhem-5.6.debDa der Start automatisch erfolgt, kann ich davon ausgehen, dass auch automatisch gestoppt wird?
Ich habe einen Eintrag fhem unter storage\etc\init.d gefunden.
Wie müsste ich denn den Linux Shutdown Befehl in FEHM verpacken? {qx("shutdown -h now")} ?
CUBIETRUCK | HMLAN | HMLAND+RPI2 | HM-MOD-RPI-PCB+RPI3/YAHM | CUL2 | 81 HM DEVICES

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #4 am: 23 März 2015, 18:31:55 »
Du musst dafür sorgen, dass fhem den Befehl überhaupt ausführen darf, also musst Du den user fhem in /etc/sudoers eintragen und dort den Befehl shutdown (oder halt) für die Ausführung ohne Passwort zulassen. Wie das geht, findest Du in den manpages zu sudoers.

Danach reicht ein `/usr/bin/sudo halt` von fhem aus, um den Rechner runterzufahren. Fhem selbst wird dabei automatisch korrekt beendet.
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3250
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #5 am: 23 März 2015, 18:41:07 »
"shutdown -h" hätte den Vorteil, das Du anstatt dem "now" auch eine Zeitangabe geben könntest. Ich würde allerdings auch "nur" ein halt versuchen.

Aber mal eine andere Frage:
Warum willst Du Ihn denn so runterfahren?
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 433
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #6 am: 23 März 2015, 19:53:59 »
Hallo Wernieman, hallo betateilchen,
danke für euren Input. Damit komme ich bestimmt weiter. Ich werde mein Ergebnis posten. Es geht mir darum, den Cubie bei Akkugebrauch kontrolliert herunterzufahren bei 15%. Und das ohne Cronjobs und Linux Scripte. Alles aus einer Fhem Hand sozusagen.
CUBIETRUCK | HMLAN | HMLAND+RPI2 | HM-MOD-RPI-PCB+RPI3/YAHM | CUL2 | 81 HM DEVICES

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 433
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #7 am: 24 März 2015, 20:29:22 »
Es klappt wunderbar! Danke nochmal! Hier die Zusammenfassung:

In Telnet:
sudo visudo oder sudo nano /etc/sudoers
In der /etc/sudoers Datei folgendes hinzufügen:
# Cmnd alias specification
Cmnd_Alias SHUTDOWN_HALT_REBOOT = /sbin/shutdown, /sbin/halt, /sbin/reboot

# User privilege specification
fhem ALL = NOPASSWD: SHUTDOWN_HALT_REBOOT

In FHEM funktionieren nun folgende Kommandos:
{system("/usr/bin/sudo shutdown -r now")}
{system("/usr/bin/sudo shutdown -h 1")}
{system("/usr/bin/sudo halt")}
{system("/usr/bin/sudo reboot")}

Wobei die Befehle FHEM scheinbar stilllegen. Also kann man sich die Zeitangabe sparen und muss alles wichtige vorher erledigen (Logs, Alerts..).
« Letzte Änderung: 24 März 2015, 20:31:26 von derron »
CUBIETRUCK | HMLAN | HMLAND+RPI2 | HM-MOD-RPI-PCB+RPI3/YAHM | CUL2 | 81 HM DEVICES

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #8 am: 24 März 2015, 21:00:36 »
kaum macht man es richtig, schon klappts  8)

Wobei ich die Aufgabenstellung, einen Rechner bei Stromausfall kontrolliert herunterzufahren, immer auf Betriebssystemebene lösen würde und nicht innerhalb einer "Nutz-Anwendung" auf dem Rechner selbst. Aber das ist Geschmackssache.
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3250
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #9 am: 25 März 2015, 19:21:34 »
Deshalb war mein Vorschlag:

/usr/bin/sudo shutdown -h 5 &

mit dem & in den Hintergrund schicken

und dann FHEM quitten ....
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #10 am: 25 März 2015, 19:36:03 »
Völlig unnötig. Fhem wird bei einem shutdown oder halt automatisch korrekt beendet. Dafür gibt es schließlich init-Skripts.

-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 433
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #11 am: 25 März 2015, 20:04:10 »
Mit Werniemans Lösung kann ich vermutlich noch ein paar FHEM Aktionen (zu Ende) durchführen, wie Logging, Pushnachricht. Das teste ich noch, denn das wäre noch das i-Tüpfelchen!

Allerdings:
ich wollte gerade weitere Berechtigungen mit sudoers testen und habe mir die Datei und damit sudo zerschossen... shit! Ich kann ja nicht mal mehr eine frische Datei rüberkopieren. pkexec gibt es nicht und mit root am Samba Share anmelden geht auch nicht.
Was kann ich da tun?

Ich konnte meinen Schmutz zum Glück bereinigen mittels:
su -c visudoBeim Speichern fragt visudo auch noch einmal extra nach, wenn da Müll drin steht. Also für alle anderen Linux Noobs: Genau lesen bzw. OBACHT beim Bearbeiten der sudoers!
« Letzte Änderung: 25 März 2015, 20:16:40 von derron »
CUBIETRUCK | HMLAN | HMLAND+RPI2 | HM-MOD-RPI-PCB+RPI3/YAHM | CUL2 | 81 HM DEVICES

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #12 am: 25 März 2015, 20:15:44 »
Mit Werniemans Lösung kann ich vermutlich noch ein paar FHEM Aktionen (zu Ende) durchführen, wie Logging, Pushnachricht. Das teste ich noch, denn das wäre noch das i-Tüpfelchen!

Nein. Ein shutdown sollte immer der letzte Befehl sein, den Du von fhem aus ausführst. Alles andere kannst Du doch problemlos vorher erledigen.


Wieso Du keine neue Datei /etc/sudoers anlegen kannst, verstehe ich nicht.
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 433
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #13 am: 25 März 2015, 20:26:35 »
Nein. Ein shutdown sollte immer der letzte Befehl sein, den Du von fhem aus ausführst. Alles andere kannst Du doch problemlos vorher erledigen.
Ich habe eine Funktion SendMessage(... Log,Mail,Pushover) in der myUtils.pm, welche scheinbar nicht zu Ende abgearbeitet wird. Bzw. sieht es so aus, als würde FHEM die Abarbeitung nicht abwarten, denn ich bekomme im Fall des anschließenden Shutdowns keine Nachricht. Ich habe das jetzt aber auch nicht in aller Gründlichkeit getestet!
Wieso Du keine neue Datei /etc/sudoers anlegen kannst, verstehe ich nicht.
Weil mir die Berechtigung dazu fehlte.
derron@cubie:/opt/fhem$ sudo nano /etc/sudoers
sudo: parse error in /etc/sudoers near line 19
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
CUBIETRUCK | HMLAN | HMLAND+RPI2 | HM-MOD-RPI-PCB+RPI3/YAHM | CUL2 | 81 HM DEVICES

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3250
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #14 am: 26 März 2015, 11:42:00 »
Da FHEM nach sendes shutdown nicht mehr weiter macht, da es auf abarbeitung des Befehles wartet, ist es logisch, das Deine anderen Elemente nicht mehr ausgeführt werden.

Welche Berechtigungen liegen denn eigentlich bei Dir auf der /etc/sudoers?

also
ls -lha /etc/sudoers
Hast Du eventuell für root ein Passwort vergeben? Wenn ja, probiere mal ein
su -
Ansonsten könntest DU nur noch über eine RettungsCD (Linux-Boot-CD) in Dein System kommen und die Datei reparieren....
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Christian72D

  • Full Member
  • ***
  • Beiträge: 324
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #15 am: 15 März 2017, 20:31:27 »
Ich würde gerne den RasPi sauber runterfahren wenn meine USV kurz vor Ende ist.

Geht das? Oder mache ich damit was kaputt?

define PB_USV1 DOIF ([USV:battery.runtime] < 100) ({system("/usr/bin/sudo shutdown -r now")})

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1630
  • Love it, change it or leave it
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #16 am: 15 März 2017, 20:39:35 »
Ich würde gerne den RasPi sauber runterfahren wenn meine USV kurz vor Ende ist.

Geht das? Oder mache ich damit was kaputt?

define PB_USV1 DOIF ([USV:battery.runtime] < 100) ({system("/usr/bin/sudo shutdown -r now")})

Ich denke nicht, aber du solltest -h verwenden, denn -r führt einen Restart durch!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline KernSani

  • Hero Member
  • *****
  • Beiträge: 1439
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #17 am: 15 März 2017, 21:11:35 »
Geht das? Oder mache ich damit was kaputt?
Das Einzige was passieren kann ist, dass dir ungesicherte Änderungen in FHEM verloren gehen
RasPi: RFXTRX, HM, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3250
Antw:FHEM beenden und Rechner herunterfahren mit FHEM möglich?
« Antwort #18 am: 16 März 2017, 08:41:36 »
Was Dir aber bei jedem FHEM-Neustart auch passieren kann, wenn Du "nicht gesicherte Änderungen in FHEM hast"
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

 

decade-submarginal