Hallo zusammen,
über FHEM soll ein shell Script ausgeführt werden.
/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON
Aufruf über:
{qx("/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON &")}
Das Script hat chmod +777 Berechtigungen.
Auch über den FHEM user klappt es.
sudo -su fhem bash
Nur eben aus FHEM heraus bekomme ich folgenden Fehler im Log:
sh: 1: /home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON: not found
Ich vermute immer noch ein Berechtigungsproblem, kann es mir aber momentan nicht erklären...
die "" sind zuviel!
{qx(/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON &)}
Aber noch viel besser einfach als FHEM Befehl (https://fhem.de/commandref_modular_DE.html#command)! Hier gehören die "" aber dazu!!!
"/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON"
Falls Du mehr wissen willst: meine Notiz (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)
ZitatDas Script hat chmod +777 Berechtigungen.
das ist zwar die Tat letzten Verzweiflung - aber völlig sinnlos! :o ;)
Gruß Otto
Zitat von: Otto123 am 20 April 2022, 10:33:17
Aber noch viel besser einfach als FHEM Befehl! Hier gehören die "" aber dazu!!!
"/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON"
Wer glaubt, dass das ein FHEM Befehl sei, der glaubt auch, dass Zitronenfalter Zitronen falten...
Zitat von: betateilchen am 20 April 2022, 10:40:14
Wer glaubt, dass das ein FHEM Befehl sei, der glaubt auch, dass Zitronenfalter Zitronen falten...
Dann leg schon mal los :) Du Rosinenzähler ;)
ZitatFHEM Befehlstypen
[EN DE]
Es gibt drei Arten von Befehlen: "FHEM" Befehle (werden in diesem Dokument beschrieben), Shell-Befehle (diese müssen von doppelten Anführungszeichen "" eingeschlossen werden)
Sollte ich das Deiner Meinung nach als >FHEM Befehl< oder so als >"FHEM" Befehl< oder soll ich das als FHEM Befehlstyp bezeichnen? Ich folge gerne Deiner Empfehlung - von dem Hilfesuchenden der die Antwort liest wird sie bestenfalls falsch verstanden. Es glaubt ja kaum einer, dass Rudi etwas eingebaut hat, dass man einfach so Shell Befehle in FHEM ausführen lassen kann. ;D
Wenn es in doppelten Anführungszeichen steht, ist es ein Shell Befehl.
So steht es ja auch in dem von Dir zitierten Text.
OT
Hab auch was zu "meckern"/einen Verbesserungsvorschlag beim verlinken zur commandref.
Wenn ich merke das ein Link zur normalen commandref führt wenn ich unterwegs oder nur am Tablet bin, breche ich gleich ab, weil ich keine Lust drauf hab ewig zu warten bis alles geladen ist.
Viel besser find ich wenn man zur modularen commandref verweist, so wie das bspw. Rudi jetzt schon länger handhabt.
Also https://fhem.de/commandref_DE.html#command -> https://fhem.de/commandref_modular_DE.html#command
Zitat von: TomLee am 20 April 2022, 11:28:00
Viel besser find ich wenn man zur modularen commandref verweist, so wie das bspw. Rudi jetzt schon länger handhabt.
habs geändert und werde mich bessern :)
Zitat von: TomLee am 20 April 2022, 11:28:00
https://fhem.de/commandref_modular_DE.html#command
Und am Anfang dieser Seite findet sich auch eine schöne Tabelle mit (fast) allen "FHEM Befehlen" 8)
Grundsätzlich sind "FHEM Befehle" für mich alle Befehle, die im hash %cmds auftauchen können.
Tatsächlich bekomme ich bei Ausführung von:
"/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON"
diverse Meldungen..
/home/pi/RPi_Relay_Board/shell/Relay.sh: line 28: /sys/class/gpio/export: Permission denied
/home/pi/RPi_Relay_Board/shell/Relay.sh: line 29: /sys/class/gpio/gpio26/direction: Permission denied
/home/pi/RPi_Relay_Board/shell/Relay.sh: line 30: /sys/class/gpio/gpio26/value: Permission denied
Relay CH1 ON
Hab mir die Verzeichnisse einmal angeschaut.
Hier taucht die Gruppe gpio auf, zu der ich dann auch den FHEM user hinzugefügt habe.
sudo adduser fhem gpio
Wie gesagt als fhem user im Terminal geht es ja auch, nur eben nicht aus FHEM heraus.
Zitat von: ReneR1986 am 20 April 2022, 12:43:17
Hab mir die Verzeichnisse einmal angeschaut.
Hier taucht die Gruppe gpio auf, zu der ich dann auch den FHEM user hinzugefügt habe.
sudo adduser fhem gpio
FHEM neu gestartet? damit für die laufenden Instanz die Änderung der Gruppen Mitgliedschaft auch greift?
Zitat von: betateilchen am 20 April 2022, 11:09:20
Wenn es in doppelten Anführungszeichen steht, ist es ein Shell Befehl.
Schlicht und ergreifend falsch! Versuch das Konstrukt doch mal in der Shell auszuführen. -> -bash: ... : Kommando nicht gefunden.
Das was
in den doppelten Anführungszeichen steht ist ein Shellbefehl, die Tatsache das er umformatiert werden muss (zusätzliche Anführungszeichen), damit FHEM in versteht, macht ihn mMn zum FHEM Befehl(styp). Genau wie ein Perlbefehl, der in geschweifte Klammern eingeschlossen werden muss und wo "halbe Punkte" verdoppelt werden müssen - damit FHEM ihn als Befehl(styp) ausführen kann.
Für mich ist es so:
Shell Befehl ist etwas was die Shell ausführen kann
FHEM Befehl ist etwas was FHEM ausführen kann
Zitat von: Otto123 am 20 April 2022, 13:04:55
FHEM neu gestartet? damit für die laufenden Instanz die Änderung der Gruppen Mitgliedschaft auch greift?
Habe es nun mit {qx(/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON &)} hinbekommen!
Besten Dank!