FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: muab am 28 Juli 2018, 18:36:27

Titel: externes script ausführen?
Beitrag von: muab am 28 Juli 2018, 18:36:27
Hi,
nach Stunden des Lesens muss ich doch mal fragen:

das Ausführen eines externen Scripts funktioniert nicht, keine Fehlermeldung und kein Rechteproblem (alles relevante ist 777 und in meiner Verzweiflung habe ich fhem auch als root laufen lassen).

ich habe also ein notify aufgegriffen (ein Lichtschalter) und das ganze wird auch getriggert:

2018.07.28 18:34:37 5 : Starting notify loop for Lichtleiste, 1 event(s), first is on
2018.07.28 18:34:37 5 : createNotifyHash
2018.07.28 18:34:37 5 : Triggering sw_ll_on
2018.07.28 18:34:37 4 : sw_ll_on exec {system('/mnt/scripts/test.sh&')};
2018.07.28 18:34:37 5 : Cmd: >{system('/mnt/scripts/test.sh&')}<
2018.07.28 18:34:37 3 : sw_ll_on return value: -1
2018-07-28 18:34:37 dummy Lichtleiste on
2018.07.28 18:34:37 5 : End notify loop for Lichtleiste

das Notify selbst besteht nur aus:

Lichtleiste:on {system("/mnt/scripts/test.sh")};

also laut log gibt es keine Fehler, aber das script (das test-script schreibt lediglich 1 in eine datei (auch alles 777)).

was mache ich falsch?

Danke schonmal

Gruß
muaB
Titel: Antw:externes script ausführen?
Beitrag von: Otto123 am 28 Juli 2018, 18:38:03
Hi,
Du machst wahrscheinlich nichts falsch, system liefert einfach immer nur ein -1 zurück.

Was soll den zurück kommen?

Ein paar Notizen  (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)von mir zum Thema.

Gruß Otto
Titel: Antw:externes script ausführen?
Beitrag von: muab am 28 Juli 2018, 21:33:49
Hi,

dass immer -1 zurückgeliefert wird hatte ich bei meiner Recherche als gegeben hingenommen und daher behauptet, dass das Log keine Fehler ausgibt.

Etwas zurückgeben soll weder dieses test-Script noch das eigentlich geplante (es sollen, sofern der simple Aufruf klappen sollte, Werte an ein externes Programm gepusht werden).

Schöne und ausführliche Seite, allerdings habe ich schon sämtliche Varianten durchprobiert, ohne Erfolg.

Evtl noch eine Idee was an meiner Schreibweise bzw Logoutput konkret nicht stimmt?
Titel: Antw:externes script ausführen?
Beitrag von: Otto123 am 28 Juli 2018, 21:42:23
Hi,

funktioniert denn einfach "/mnt/scripts/test.sh"in der FHEM Kommandozeile?
Was steht in dem Script?
Funktioniert vielleicht"bash /mnt/scripts/test.sh"

ich denke es liegt im Script, nicht am Aufruf vom notify, da sieht alles gut aus.

Gruß Otto
Titel: Antw:externes script ausführen?
Beitrag von: muab am 28 Juli 2018, 21:55:52
das script funktioniert auch wenn ich es direkt unter Perl per system() aufrufe.

in meiner Not habe ich tatsächlich das komplette system neu gestartet, mich darüber gefreut, dass es 1x funktioniert hat... und jetzt wieder das gleiche.

also ist es wohl weder das script, noch das notify selbst oO

ich klinke mich mal hier ein: https://forum.fhem.de/index.php/topic,89626.msg820965.html#msg820965

sieht für mich nach der identischen Lösung aus (wenn denn eine kommt ,p)
Titel: Antw:externes script ausführen?
Beitrag von: Otto123 am 28 Juli 2018, 22:09:52
Ganz ehrlich gesagt verstehe ich anhand Deiner unklaren Schilderung nicht, was jetzt eigentlich geht und was nicht.

Dein Script liegt in mnt - typischerweise dies der Pfad um Verzeichnisse einzubinden. Ist der Pfad auch für fhem gemountet?

Leg doch Dein Script einfach woanders hin, /opt/fhem z.B.

Gruß Otto
Titel: Antw:externes script ausführen?
Beitrag von: muab am 28 Juli 2018, 22:39:07
/mnt/script

tatsächlich eine Freigabe und unter genau diesem Ordner auf allen Rechnern erreichbar (aus gutem Grund ^)
Ja, ist "gemountet" (nicht notwendig, da der fhem-rechner auch den script-folder hostet).

das test-script ist wirklich nur ein solches: es schreibt "blub" in eine log-datei, schlicht, dass ich sehe: es wurde ausgeführt.
Alle rechte sind vorhanden, ich hatte auch "spasseshalber" fhem wirklich als root ausgeführt (Verzweiflungstat, wie gesagt, bei 777)

es wird genau dieses script nicht ausgeführt (bzw, es wurde nach einem reboot, allerdings nur 1-2 mal, danach wieder nichts, und auch wieder ohne Fehlermeldung)
Titel: Antw:externes script ausführen?
Beitrag von: Otto123 am 28 Juli 2018, 22:56:14
Zitat von: muab am 28 Juli 2018, 22:39:07
es wird genau dieses script nicht ausgeführt (bzw, es wurde nach einem reboot, allerdings nur 1-2 mal, danach wieder nichts, und auch wieder ohne Fehlermeldung)
Sorry ich sitze nicht vor Deinem System, ich weiß weder in welcher Situation es nicht ausgeführt wird und wann es ausgeführt wird. Denn Du schreibst abwechselnd das Eine oder das Andere.

Ich kann Dir noch den  (http://=https://wiki.fhem.de/wiki/Notify#Mein_notify_geht_nicht_-_wie_kann_ich_mir_selbst_helfen:_Debugging)anbieten.

Viel Erfolg
Otto