Hallo liebe Community,
ich beschäftige mich grade mit dem System command. Folgendes habe ich aktuell umgesetzt, Funktioniert aber nicht
defmod test DOIF ([13:57:00]) ({system(' sudo ../hub-ctrl.c/hub-ctrl -h 1 -P 2 -p 0 &');;;; 0})
Folgender Befehl geht wenn ich im Root bin im PI
sudo ./hub-ctrl.c/hub-ctrl -h 1 -P 2 -p 0
als Ausgabe bekomme ich im Eventmonitor folgendes
2021-10-17 13:59:00 DOIF test cmd_nr: 1
2021-10-17 13:59:00 DOIF test cmd: 1
2021-10-17 13:59:00 DOIF test cmd_event: timer_1
2021-10-17 13:59:00 DOIF test cmd_1
Würde mich über Ideen zur Lösung freuen.
Gruß Knallkopp_02
1. relative Pfade sind immer problematisch, weil: du ja u.U. nicht genau weißt wo das System bei Aufruf gerade steht -> Gesamtpfad.
(wenn ich richtig deute, also Root tatsächlich / ist und nicht "Root" von User pi also /home/pi dann ist das eh ein ungeeigneter Ort für eine Datei)
2. braucht das Script bzw. das was das Script intern tut (was macht das Script? also besser mal posten) wirklich sudo? Oder braucht es sudo nur, weil das Script da liegt wo es eben nur root ausführen darf?
3. wenn das Script also das was das Script tut wirklich sudo braucht (und deshalb mit sudo gestartet wird/werden muss), darf der User fhem überhaupt sudo? Und: darf der User fhem das denn auch OHNE Passworteingabe, weil die macht ja keiner ;)
Das erst mal soweit...
EDIT: evtl. das noch interessant https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html
Und warum ein DOIF? Das geht doch mit einem simplen at ;)
Gruß, Joachim
Zitat von: MadMax-FHEM am 17 Oktober 2021, 14:27:31
Und warum ein DOIF? Das geht doch mit einem simplen at ;)
"Das Böse ist immer und überall..." (EAV)
Ich kenne Leute, die haben sich aus Excel eine Textverarbeitung gebaut...
Hallo MadMax-FHEM,
habe jetzt etwas getestet und es zum laufen gebracht.
1. Problem war wirklich der relative Pfad, als ich den angepasst hatte ging es schon.
2. Problem habe ich dann auch noch behoben weil das Script wirklich an einem Platz gelegen hat, der wirklich Admin Rechte brauchte
Das Doif hatte ich nur zum testen genommen, das habe ich nun auch angepasst.
Danke für die vielen nützlichen Infos
Gruß Knallkopp_02
Statt {system("programm&")} empfehle ich "programm", das ist die dritte Variante eines FHEM-Befehls.