Hallo Zusammen.
Ich versuche gerade aus einer Doif zwei Shell Skripte zu starten.
Sie brauchen keine root Rechte.
Starte ich eins aus der Shell läuft es. (Es werden Einstellung am Heizkraftwerk vorgenommen)
Ich bekomme dort die Rückmeldung sehen auch das Ergebnis am Gerät.
(([S10E:Batteriestatus] < 5) and ([16:00-23:00] )
system ("/opt/e3dcset/min.sh &");)
DOELSE
System ("/opt/e3dcset/auto.sh &");;
Starte ich das cmd2
Gibt es kein Fehler in Fehm. Aber es passiert auch nichts. Ich sehe auch nicht das Skript ausgeführt wurde.
2022-01-12 22:36:12 DOIF E3DC_Notstrom cmd_event: set_cmd_2
2022-01-12 22:36:12 DOIF E3DC_Notstrom cmd_2
Syntax Fehler?
ich hab schon diverse Schreibweisen probiert nur sehen ich nicht wo das Problem liegen könnte.
System ist schon mal nicht gleich system ... es fehlt die Perl-Klammerung ... Bedingung/Befehl-Klammerung ebenfalls fehlerhaft ...
recht hast du, aber so hatte ich es auch schon mal:
{system ("/opt/e3dcset/auto.sh &");}
gibt einen error.
2022-01-12 23:29:41 DOIF E3DC_Notstrom error: {system ("/opt/e3dcset/auto.sh &");}: -1
der fhem User ist auch schon in der sudo gruppe.
Rechte auf das Skript:
-rwxrwxrwx
Zitat von: Basti-K am 12 Januar 2022, 23:33:27
recht hast du, aber so hatte ich es auch schon mal:
{system ("/opt/e3dcset/auto.sh &");}
gibt einen error.
2022-01-12 23:29:41 DOIF E3DC_Notstrom error: {system ("/opt/e3dcset/auto.sh &");}: -1
Ich weiß ja nicht, ob das bei DOIF was (extra) macht aber: system() gibt immer -1 zurück...
Zitat von: Basti-K am 12 Januar 2022, 23:33:27
der fhem User ist auch schon in der sudo gruppe.
Du nutzt ja gar kein sudo hier?
Im Script?
Notwendig?
Zitat von: Basti-K am 12 Januar 2022, 23:33:27
Rechte auf das Skript:
-rwxrwxrwx
Ebenso übertrieben wie fhem einfach in sudo (ohne PW!?) packen...
Man kann kaum mehr (Sicherheits-)Löcher reißen... ;)
Es würde (verm.) reichen/gereicht haben die Datei unter /opt/fhem zu packen und sudo chown fhem: Pfad/Datei
Evtl. (falls nicht schon war): sudo chmod +x Pfad/Datei
Gruß, Joachim
hallo Joachim.
dasmit dem sudo war mehr Verzweiflung. (da hatte ich auch Bauchschmerzen bei)
aber der Hinweis mit dem nach /opt/fhem verschieben war die Losung.
(und natürlich die Syntax)
aber warum ein error angezeigt wird und es dann doch funktioniert ist etwas eigenartig.
ich danke euch für eure Hilfe.
Gruß Sebastian
Siehe: https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche#Besonderheit_des_Error-Reading
Warum system und nicht "", wie in der Commandref beschrieben? s. https://commandref.fhem.de/commandref_DE.html#command
Am Anfang hatte ich es mit nur Gänsefüßen probiert am Ende hatte es mit System grundsätzlich funktioniert.
Aktuell seht es so aus:
(([?S10E:Batterieladezustand] < 5) and ([16:00-23:00] ))
{system ('/opt/e3dcset/min.sh &');}
DOELSE
{system ('/opt/e3dcset/auto.sh &');}
Falls sich jemand fragt, was das soll:
Der Hausspeicher (Akku) hat ist Notstromfähig. (hat sich schon bewährt) Da kann man eine Reserve eintragen, die reserviert wird. Unglücklicherweise muss der Akku regelmäßig leer laufen das er sauber kalibriert wird. D.h. die Reserve freigegeben und er läuft einfach leer. Die Zeit, wann das passiert, kann man nicht beeinflussen. Durch die Skripts verhindere ich das der Akku abends leer läuft. Die Entladeleistung wird dann auf das Minimum eingestellt. Leer werden kann er ruhig in der Nacht, aber bitte nicht zu TV Primetime. ;)