FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mj2680 am 05 Dezember 2015, 08:59:00

Titel: Aufruf von Shell Scripts in FHEM
Beitrag von: mj2680 am 05 Dezember 2015, 08:59:00
Vielleicht kann mir jemand sagen was ich falsch mache,
Versuche in FHEM (Weboberfläche) mit dem Befehl in der Kommandozeile ein Shell Script aufzurufen welches dann ein MP3 File abspielen soll

Befehl den ich in der Kommandozeile eintrage:
{system("sh /opt/fhem/mp3/abspielen.sh")}

Als Rückmeldung kommt einfach -1 ???


Wenn ich in der Raspberry-Konsole folgenden Befehl eingebe funktioniert des einwandfrei und das MP3 File wird abgespielt
sh /opt/fhem/mp3/abspielen.sh

Habe schon einiges versucht aber es klappt irgendwie nicht.
In diesem Forum habe ich z.B. folgenden Hinweis gefunden
Die Datei sudoers anpassen
sudo nano /etc/sudoers
Am Ende der Datei habe ich folgenden Anweisung hinzugefügt:
fhem ALL=(ALL) NOPASSWD: ALL

Aber auch das hat nicht geholfen.....

Vielleicht weiß jemand was die Ursache sein könnte.

Vielen Dank
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: mrbreil am 05 Dezember 2015, 09:03:00
Versuch mal

system("/opt/fhem/mp3/abspielen.sh &")
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: mj2680 am 05 Dezember 2015, 09:18:42
Danke für den Versuch:

Habe jetzt folgenden Anweisung versucht:
{system("/opt/fhem/mp3/abspielen.sh &")}

Ändert aber nichts am Verhalten--> geht nicht und die Meldung -1 kommt erneut

Vielelicht hat jemand noch ein Idee?
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Paddinho am 05 Dezember 2015, 09:32:54
Tippe mal auf Berechtigungsproblem
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: mj2680 am 05 Dezember 2015, 09:46:37
ok des könnte sein.

Hast noch eine Tip was ich hier genau anpassen sollte ?
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Amenophis86 am 05 Dezember 2015, 11:25:22
wie sehen denn die Rechte der Shell Abspielen.sh aus?
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: mj2680 am 05 Dezember 2015, 17:53:57
Ich habe eine Hardcopy aus FTP gemacht
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: mj2680 am 06 Dezember 2015, 17:41:48
Des mit den Rechten sollte eigentlich passen?


Gesendet von iPhone mit Tapatalk
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Amenophis86 am 06 Dezember 2015, 19:44:26
Mal mit einem Sudo vor dem Befehl versucht. Hast ja fhem die Sudo Rechte gegeben, laut deiner Aussage oben.
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: mj2680 am 07 Dezember 2015, 05:39:08
Nach meinen Versuchen funktioniert der sudo Befehl auch nicht mehr aus der Konsole des Raspberry. Damit kann der sudo Befehl wahrscheinlich auch nicht in fhem funktionieren.

Es kommt folgende Meldung in der Konsole:
(http://images.tapatalk-cdn.com/15/12/06/a22cc9f7d99d9b4908f4b185d63f7725.jpg)

Könntest du mal posten wie die richtige Vergabe zur Anpassung der Rechte sein sollte?
Ich habe folgendes versucht:
1) Schreib -Leserechte --
chmod -R 777 /opt/fhem/mp3 (da liegt auch das Shell Script)

2) Shell Datei ausführbar gemacht
Chmod +x /opt/fhem/mp3/abspielen.sh

Wie gesagt Aus der Rpi Konsole geht das Script, auch ohne sudo....

Gibt es evtl. eine Beschreibung was ich tun muss um ein Script aus fhem aufrufen zu können?


Vielen Dank


Gesendet von iPhone mit Tapatalk
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Prof. Dr. Peter Henning am 07 Dezember 2015, 07:47:43
Bitte mal hier nachlesen:

http://www.perlhowto.com/executing_external_commands

LG

pah
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: viegener am 07 Dezember 2015, 09:36:58
Zitat von: mj2680 am 07 Dezember 2015, 05:39:08
Es kommt folgende Meldung in der Konsole:
(http://images.tapatalk-cdn.com/15/12/06/a22cc9f7d99d9b4908f4b185d63f7725.jpg)


Wenn sudo mit dieser Meldung kommt ist schon etwas ziemlich durcheinander.
Solche Dinge sollten repariert werden, denn root-Zugriff ist in vielen Fällen notwendig um updates einzuspielen / GPIOs zu nutzen etc.

Was hat denn zu diesem Verhalten geführt, hast Du die sudo-Datei selbst verändert?
Gibt es noch mehr "komische" Meldungen?




Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Jak am 07 Dezember 2015, 09:48:40
Ich habe versucht die sudoers Datei mit zusätzlichen Einträgen anzupassen.
Da habe ich irgendwie was falsch gemacht.
Der Rest funktioniert aber einwandfrei.  Wenn dann muesste ich das System neu installieren.

Koennte ich schon machen würde aber gerne vorab verstehen wie ich die Rechte / User richtig anpassen muss um eine  Shell Datei in fhem auszuführen.
Vielen Dank für deine Info

Gesendet von meinem SM-G920F mit Tapatalk

Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Jak am 07 Dezember 2015, 09:52:27
Zitat von: Prof. Dr. Peter Henning am 07 Dezember 2015, 07:47:43
Bitte mal hier nachlesen:

http://www.perlhowto.com/executing_external_commands

LG

pah
Danke für den Input.
Habe versucht des zu verstehen was Sie mir gesendet haben,  liest sich aber nicht ganz einfach.
Haetten Sie da noch etwas konkretere Infos?

Gesendet von meinem SM-G920F mit Tapatalk

Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: dev0 am 07 Dezember 2015, 10:07:32
Zitat von: Jak am 07 Dezember 2015, 09:48:40
verstehen wie ich die Rechte / User richtig anpassen muss um eine  Shell Datei in fhem auszuführen
Um ein shell script aus fhem heraus auszuführen sind generell erstmal keine zusätzlichen Rechte nötig. Wenn das shell script zusätzliche Rechte benötigt, dann kann man:
- fhem user in Unixgruppen aufnehmen, die die Rechte haben
- setuid auf Dateiebene verwenden
- das shell script mit sudo aufrufen

siehe:
man addgroup
https://de.wikipedia.org/wiki/Setuid
https://de.wikipedia.org/wiki/Sudo
Titel: Antw:Aufruf von Shell Scripts in FHEM
Beitrag von: Prof. Dr. Peter Henning am 07 Dezember 2015, 13:36:48
Vor allem: Eine Rückgabe von "-1" aus dem system() ist vollkommen ok.

Statt system("command") besser `command` verwenden.

LG

pah