FHEM Shell Script "not found"

Begonnen von ReneR1986, 20 April 2022, 10:00:13

Vorheriges Thema - Nächstes Thema

ReneR1986

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...



Otto123

#1
die "" sind zuviel!
{qx(/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON &)}
Aber noch viel besser einfach als FHEM Befehl! Hier gehören die "" aber dazu!!!
"/home/pi/RPi_Relay_Board/shell/Relay.sh CH1 ON"

Falls Du mehr wissen willst: meine Notiz

ZitatDas Script hat chmod +777 Berechtigungen.
das ist zwar die Tat letzten Verzweiflung - aber völlig sinnlos! :o ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

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...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Wenn es in doppelten Anführungszeichen steht, ist es ein Shell Befehl.

So steht es ja auch in dem von Dir zitierten Text.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

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

Otto123

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 :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ReneR1986

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.

Otto123

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?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ReneR1986

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!