Betriebssystembefehle absetzen mit weblink

Begonnen von TomHB, 01 Dezember 2019, 16:34:42

Vorheriges Thema - Nächstes Thema

TomHB

Hallo Zusammen,
ich habe mit FHEM-weblink eine Befehlsezusammenstellung gebaut.
Die Befehle für FHEM werden auch korrekt ausgeführt (war ja auch so in der Hilfe beschrieben  ;) )
Nur meine Befehle für mein Ubuntu werden nicht ausgeführt, gibt bei der Ausführung die Fehlermeldung "Unknown command {system("sudo, try help." und auch die Darstellung ist nicht korrekt.
Ein {system("sudo shutdown &")} wird von FHEM direkt in der Kommandozeile ausgeführt.

define systemBefehle weblink cmdList Restart:FHEM-Neustart:shutdown+restart Restart:Odroid-Neustart:{system("sudo reboot &")}

Wie macht Ihr das?

rudolfkoenig

- bei weblink cmdList werden die Gruppen durch Leerzeichen getrennt, deswegen darf im Befehlsteil kein Leerzeichen sein. Da das auch im URL verpoent ist, ersetzt man das durch %20 oder plus-Zeichen (+, beides "standard" URL/CGI escape)
- die Parameter bekommt FHEM per CGI, da ist & der Trenner, das muss man also auch anders schreiben, als %26
- {system("blabla &")} sollte man in FHEM als "blabla" schreiben, da wird naemlich STDOUT/SDERR ins FHEM-Log umgeleitet.
Hier ist eine korrigierte Variante:defmod systemBefehle weblink cmdList Restart:FHEM-Neustart:shutdown+restart Restart:FHEM-Herunterfahren:shutdown unknown:FHEM-Aktualisierungsprüfung:update+check Update:FHEM-Aktualisierung:update Restart:Odroid-Neustart:"sudo+reboot" Restart:Odroid-Herunterfahren:"sudo+shutdown"


ZitatWie macht Ihr das?
Ich wuerde nie auf die Idee kommen, ein Unix System ueber FHEM zu rebooten, sowas macht man aus der Konsole.

TomHB

Vielen Dank für die Hilfe.

Es ist auch eher die Notfall-Variante, bevor die Partner mal wieder einfach nur den Stecker zieht...


flywhiskygolf

Hallo,
Auf meinem Raspberry funktioniert das weder mit
define systemBefehle weblink cmdList Restart:Raspi-Neustart:"sudo+reboot+now"
noch mit
define systemBefehle weblink cmdList Restart:Raspi-Neustart:"sudo%20reboot%20now"
weil vermutliche ein wirkliches Leerzeichen benötigt wird.
Gibt es hierfür eine Lösung?

MadMax-FHEM

#4
Darf denn bei dir der User fhem "sudo"?
EDIT: ohne entsprechende Einträge in sudoers bzw. (besser!) anlegen einer eigenen sudoers darf der User fhem das nämlich nicht! (zumindest nicht ohne Passworteingabe, die keiner macht/machen kann und fhem User ja auch erst mal kein PW hat/hätte)...

Steht etwas im Log?

Funktioniert denn:


"sudo reboot now"


MIT den Anführungszeichen in FhemWeb-cmd?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

flywhiskygolf

Hallo MadMax,
danke für die rasche Antwort.
"sudo reboot now" mit Anführungszeichen funktioniert nicht (es kommt keine Fehlermeldung in Fhem).
Wie geht das mit den Einträgen in sudoers?

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

flywhiskygolf

Danke für die Hilfe, mit Otto´s Aufzeichnung konnte ich das lösen !