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

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 413
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: 12900
  • Probleme sind auch keine Lösung.
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...
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 2822
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

FHEM auf Gentoo/Ubuntu-Server
incl. CUL (433,868), JeeLink und SISPM

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 413
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: 12900
  • Probleme sind auch keine Lösung.
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.
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 2822
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

FHEM auf Gentoo/Ubuntu-Server
incl. CUL (433,868), JeeLink und SISPM

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 413
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: 413
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: 12900
  • Probleme sind auch keine Lösung.
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.
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 2822
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

FHEM auf Gentoo/Ubuntu-Server
incl. CUL (433,868), JeeLink und SISPM

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 12900
  • Probleme sind auch keine Lösung.
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.

Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 413
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: 12900
  • Probleme sind auch keine Lösung.
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.
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline FHEMAN

  • Full Member
  • ***
  • Beiträge: 413
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: 2822
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

FHEM auf Gentoo/Ubuntu-Server
incl. CUL (433,868), JeeLink und SISPM