Kann kein Phyton Script aus FHEM starten

Begonnen von f.f, 26 August 2017, 13:40:49

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Schon geprüft, ob der User fhem (ohne Passworteingabe) überhaupt sudo "darf"?

Gibt es einen Eintrag für den User fhem in der sudoers Datei?

Standardmäßig ist dort ja nur der User pi eingetragen...

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)

CoolTux

Mache wir erstmal die Rechte bisschen gerade und vernünftig.

chown -R fhem: /opt/fhem/PY
chmod -R 755 /opt/fhem/PY

Dann bitte ein

sudo su -s /bin/bash -c '/opt/fhem/PY/hallo.py' fhem

Damit führst Du das Skript mit den Rechten vom User fhem aus und benutzt dabei die Shell bash. Hier erfolgt dann auch eine Fehlerausgabe. Wenn das sauber funktioniert können wir und das ganze aus FHEM heraus ansehen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

#17
Hi,

man sollte alle zu root machen um "hallo" zu sagen  :-X 

Ganz ohne sudo  8) geht es so (getestet):
Im Terminalfenster als Pi echo 'print("hallo")' > /opt/fhem/Test.py
In der FHEM Kommandozeile"python Test.py"
Ergebnis: Im Logfile steht Hallo.
Warum so einfach: fhem braucht doch an der Script Datei nur Leserecht!

Falls sudo wirklich sein muss, mache ich das auf dem Pi immer so:
# ergänze eine Datei zum sudoers Script Verzeichnis /etc/sudoers.d/
File="011_fhem-nopasswd"
echo "fhem ALL=(ALL) NOPASSWD: <Programm1 mit absolutem Pfad> <Programm2 mit absolutem Pfad>" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File


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

f.f

Danke euch! Bin weiter 8)
Das war ein Rechteproblem. habe in sudoers fhem eingetragen und es funktioniert. Ich kann das py script jetzt von FHEM aufrufen und auch die GPIOs habe ich schon geschlalten bekommen :) :)

vielen dank euch !!!!

ich fange jetzt gerade an einen dummy schalter und eine dummy Lampe zu erzeugen und mit notify zu beleben. das macht jetzt richtig Laune und ich denke ich komme auch schnell voran.
eine Frage hätte ich aber noch. Wo muss ich das funktionierende {system('sudo python /opt/fhem/PY/hallo.py')} jetzt hinschreiben damit der Schalter das ausloest?

beim notify hab in in den DEF:
Lamp_Esstisch:state:.*|Switch1:.*|Switch1:on set Lamp_Esstisch on
{system('sudo python /opt/fhem/PY/hallo.py');;}

aber so funzt das nicht, wo muss dass hin, damit der system BEfehl ausgeführt wird, wenn ich den Switch betätige? Wenn ich das heute noch hinbekomme koennte ich glücklich ins bett gehen....

sorry wenn ich mich hier zu bloed anstelle, aber linux, python, perl, fhem, gpio etc. alles zusammen auf einmal ist wirklich viel stoff....hab eigentlich schon viel unter windows mit c++ und .net und auch etliche anwendungen programmiert aber ich habe eben 30 jahre NUR unter windows gelebt und mich eben mit der message map rumgeärgert. Jetzt nervt es mich natuerlich ungemein, dass ich hier wie der ochs vorm berg stehe und nicht mal ein "hallo" hinbekommen hab.....sorry

Gruss

Otto123

#19
Für die DEF!
Lamp_Esstisch:state:.*|Switch1:.*|Switch1:on set Lamp_Esstisch on;"sudo python /opt/fhem/PY/hallo.py"

Die Sache mit der Gruppe gpio wolltest Du nicht probieren?  :'( Ach so Du schaltest noch gar nicht, Du sagst immer noch Hallo.  ;D ::) ;D

Aber wie gesagt für Hallo sagen ist sudo nicht notwendig! Du hast jetzt etwas in die sudoers Datei eingetragen um sudo sagen zu können, mit Hallo hat das nichts zu tun.

Zum Nachlesen ->
https://fhem.de/commandref_DE.html#command
https://fhem.de/commandref_DE.html#notify

Gute Nacht
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

f.f

vielen lieben dank! mein schalter schaltet jetzt den gpio...supi!!

ich hoffe ich habe nicht zu faul gewirkt um mir das selber zu ergoogeln, aber diesen "Starterfolg " habe ich als Motivationsspritze gebraucht um nicht hinzuschmeissen. Jetzt wo ich gesehen habe, das es geht, hab ich auch die Motivation mich mal mit Linux und Perl auseinanderzusetzen.

@Otto
Ich wollte das "hallo" ja nur um zu sehen, dass fhem mit meinen Synthax-versuchen was "macht" ohne für jeden Versuch/Return (und es waren viele...) das Multimeter an die Pins frikeln zu müssen. das hab am Anfang gemacht und es ist nach dem hundersten mal fast an die Wand geflogen,.... ;D 
ich hoffe mein i2c Modul liegt morgen in der Post, dann kann ich Anfangen zu versuchen die 50 out-ports die ich brauche anzusprechen. Jetzt weiss ich ja schon mal wie ich die Scripte dann aufrufe und kann mir eine "rudimentäre" Oberfläche basteln die dann hoffentlich funktioniert. Das wird dann die Basis für meine weiteren "versuche".  danke nochmal

gruss
Frank