Aufruf von Script unter /home/pi/433Utils/RPi_utils/

Begonnen von tklein, 25 Oktober 2021, 15:01:45

Vorheriges Thema - Nächstes Thema

tklein

Hallo,

wie kann ich aus einem Notify das 433 Util Script starten?

Pfad:
pi@raspberrypi-iob:~/433Utils/RPi_utils $ pwd
/home/pi/433Utils/RPi_utils

Starten:
pi@raspberrypi-iob:~/433Utils/RPi_utils $ ./codesend 10101602

Bei meinem Notif bekomme ich immer leider nur
2021.10.25 14:57:42 3 : Leinwand_notify_1 return value: -1
2021-10-25 14:57:42 dummy Leinwand hoch

zurück.

Hier mein Notify:
defmod Leinwand_notify_1 notify Leinwand:hoch {system(" /home/pi/433Utils/RPi_utils/codesend 10101608 &")}

setstate Leinwand_notify_1 2021-10-25 14:57:42
setstate Leinwand_notify_1 2021-10-25 12:30:31 state active


Hier die Rechteübersicht:
drwxr-xr-x 2 pi pi  4096 Oct 25 12:28 .
drwxr-xr-x 7 pi pi  4096 Apr 30 11:46 ..
-rwxr-xr-x 1 pi pi 20104 Apr 30 11:47 codesend
-rwsrwxrwx 1 pi pi 20104 Oct 25 12:28 codesend_2


Ich freue mich über Hilfe

Grüße
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

Ein Script des Users pi im Home von User pi wird schwierig durch den User fhem ausführen zu lassen...

Was tut das Script?
Kannst du es posten?

Muss es unter /home/pi/... liegen?

Besser als User fhem (also Besitz und Rechte) unter /opt/fhem/...

Vielleicht hilft auch: https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tklein

Hallo Joachim,

damit sende ich 433 MHz Signale. Infos:https://github.com/ninjablocks/433Utils
Bei einer alten FHEM Instanz mit meinem 3er Raspi konnte ich das Script so starten:
/home/pi/433Utils/RPi_utils/codesend xyz

jetzt auf dem neuen System mit dem 4er Rasp muss ich ./codesend zum starten des Skriptes/Funktion eingeben.

Werde es nach /opt/fhem/FHEM/FhemUtils kopieren und hoffen, dass ich es mit den richtigen rechten/group versehe.
Thx für den Link, werde da a bissl lesen.
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

./codesend -> hängt halt davon ab "wo" "du" (bzw. der aufrufende User) in dem Moment des Aufrufes "steht".

Ein absoluter Pfad ist davon unabhängig...

Auf einem früheren System kann z.B. sein, dass fhem als root gestartet wurde -> root darf alles, also auch "Scripte" (oder Programme) eines "beliebigen Users" ausführen...

Evtl. brauchst du root-Rechte (in der Readme steht was von sudo ...) -> das muss user fhem auch erst mal "dürfen" (aufpassen: nicht zu großzügig)

Beim Verschieben nach /opt/fhem/...


sudo cp /vollerPfad/datei /neuerPfad/datei


dann


sudo chown fhem:dialout /neuerPfad/datei


Und prüfen, ob Execute gesetzt ist (ansonsten: sudo chmod +x /neuerPfad/datei )

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tklein

thx,

so so sieh es jetzt aus:
drwxr-xr-x 2 fhem dialout  4096 Oct 25 16:30 .
drwxr-xr-x 6 fhem dialout 36864 Oct 25 09:07 ..
-rwxr-xr-x 1 fhem dialout 20104 Oct 25 16:30 codesend
-rw-r--r-- 1 fhem dialout   562 May  3 08:00 release.pm
-rw-r--r-- 1 fhem dialout   117 May  3 15:58 uniqueID
-rw-r--r-- 1 fhem dialout  5739 May  3 08:00 update-20130127-001


Der Aufruf ergibt dennoch -1 im Log.
Wie kann ich fhem als root für dieses Tool laufen lassen?
So klappt es auch nicht:
defmod Leinwand_notify_1 notify Leinwand:hoch {system(" sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608 &")}

Kann es evtl damit zu tun haben, dass tool früher mit codesend xyz und jetzt mit ./codesend xyz aufgerufen werden muss?
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

#5
Zitat von: tklein am 25 Oktober 2021, 16:42:29
thx,

so so sieh es jetzt aus:
drwxr-xr-x 2 fhem dialout  4096 Oct 25 16:30 .
drwxr-xr-x 6 fhem dialout 36864 Oct 25 09:07 ..
-rwxr-xr-x 1 fhem dialout 20104 Oct 25 16:30 codesend
-rw-r--r-- 1 fhem dialout   562 May  3 08:00 release.pm
-rw-r--r-- 1 fhem dialout   117 May  3 15:58 uniqueID
-rw-r--r-- 1 fhem dialout  5739 May  3 08:00 update-20130127-001


Sieht gut aus...


Zitat von: tklein am 25 Oktober 2021, 16:42:29
Der Aufruf ergibt dennoch -1 im Log.
Wie kann ich fhem als root für dieses Tool laufen lassen?

Hast du die verlinkte Seite gelesen? -> system( ) liefert IMMER -1 zurück ;)

root: sudo (hatte ich ja geschrieben), das muss aber für User fhem erst "eingerichtet" werden. Da gibt's (bestimmt) auch einen Blog für ;)
EDIT: oder hier mal schauen https://forum.fhem.de/index.php/topic,88282.0.html

Zitat von: tklein am 25 Oktober 2021, 16:42:29
So klappt es auch nicht:
defmod Leinwand_notify_1 notify Leinwand:hoch {system(" sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608 &")}

Geht denn das:

{system(" sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608 &")}

in FHEMWeb-cmd?

Steht etwas im Log?

Evtl. mal (nur zum Test wegen "Rückmeldung") folgendes:

qx(sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608)


Zitat von: tklein am 25 Oktober 2021, 16:42:29
So klappt es auch nicht:
defmod Leinwand_notify_1 notify Leinwand:hoch {system(" sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608 &")}

Kann es evtl damit zu tun haben, dass tool früher mit codesend xyz und jetzt mit ./codesend xyz aufgerufen werden muss?

Löst das notify aus?
Wie hast du es erstellt?
Eventmonitor erstellen lassen?

Ich denke, dass fhem kein sudo darf...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tklein

Zitat{system(" sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608 &")}
--> nix im Log

Zitatqx(sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608)
--> Unknown command qx(sudo, try help.

ZitatWie hast du es erstellt?
Eventmonitor erstellen lassen?
--> ja. Notify löst aus.


FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

#7
Sorry, nat.


{qx(sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608)}


Etwas "mitdenken" ist schon erlaubt ;)

qx ist ja ein Perl Kommando/Befehl und kein fhem Befehl, also erst mal nach Perl -> { Perl } ;)

Evtl. auch Anführungszeichen um den Befehl innerhalb von qx, nutze das nicht (weil es blockiert) daher weiß ich es nicht genau...
Also:

{qx("sudo /opt/fhem/FHEM/FhemUtils/codesend 10101608")}


EDIT: aber bevor du einfach wild irgendwelche Dinge durchtestest: erst mal die verlinkten Dinge lesen. Ich denke ja, dass es an "fhem darf kein sudo (ohne Passwort)" liegt... Aber auch hier: sorgfältig lesen! Bevor du dir dein System "zerschießt" oder "zu große Löcher reißt" (-> Sicherheit)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tklein

Hi Joachim,

besten Dank für deine Hilfe/Supprt. Bin fhemmäßig "eingerostet" Nutze es nur noch für 433 MHz Signale zum Syncen zu meinem iobroker.
So langsam kommen die Sachen wieder :-)

Werde da wohl doch noch (wieder) tiefer in die Materie gehen müssen.

Gruß
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

Wäre mqtt keine bessere Lösung?

Wobei ich ja nicht weiß was du syncst ;)

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Du kannst externe Programme auch ohne Umwege über die perl-Ebene starten:
"/pfad/zu/meinem/tollen/Programm/programm.sh"
Also in "" setzen, dann wird nur keine Rückgabe ausgewertet, dafür dann aber auch nicht blockierend
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

Hi,

ich habe nicht herausgelesen ob das Script überhaupt funktioniert? Hat's denn ein Shebang am Anfang?
Braucht es für die Ausführung noch andere Rechte? Auf was greift das Script denn zu? pi ist ja in allen möglichen Gruppen, der user fhem nicht. gpio z.B.?


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

tklein

Zitat von: Wernieman am 25 Oktober 2021, 18:15:08
Du kannst externe Programme auch ohne Umwege über die perl-Ebene starten:
"/pfad/zu/meinem/tollen/Programm/programm.sh"
Also in "" setzen, dann wird nur keine Rückgabe ausgewertet, dafür dann aber auch nicht blockierend

es ist kein shell script. sondern ein tool, um 433 MHz Daten zu senden.
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

tklein

Zitat von: MadMax-FHEM am 25 Oktober 2021, 18:11:23
Wäre mqtt keine bessere Lösung?

Wobei ich ja nicht weiß was du syncst ;)

Viel Erfolg, Joachim

In Fhem bekomme ich via Signalduino Infos von Fernbedienungen, PIR, etc. diese synce ich per fhem-adapter zu meinem iobroker. dort kann ich auf die signale reagieren und aktoren schalten.

Hier gehe ich jetzt den Weg genau anders: in iobroker schalte ich einen Datenpunkt, dieser synct sich zu fhem und dann schaltet fhem per 433 sender die Leinwand.
Ich kann dafür nicht verlässlich über den Signalduino gehen. Das klappt nicht immer. Daher der Umweg über den alternativen Sender.
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

Ah, ok für die Verbindung fhem-ioBroker den "Connector"...
Ich hatte so verstanden, als ob du 433MHz-Nachrichten für die Kopplung verwenden würdest ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)