Hallo also ich habe Fhem vor ein paar tagen installiert und auch meine gpios zum laufen gebracht so weit so gut.
nun möchte ich meine neopixel streifen die ich in meine Treppe verbaut habe über fhem steuern allerdings ohne ein arduino sondern direkt über das skript also einfach gesagt wie ein GPIO on / off ich hoffe irgendjemand hat da eine Lösung.
Danke Gruß Matze !!!!!!!!
Hi,
https://fhem.de/commandref_DE.html#command
Siehe Shell Befehl: also wenn dein python skript läuft kannst Du es einfach in "" setzen und ausführen.
Gruß Otto
Guten Morgen Otto, vielen Dank für deinen Tipp erstmal also ich habe versucht den Python script so aufzurufen
define trepperon notify treppe:on {system "/fhem/fhem/strandtest1.py&"}
leider ohne erfolg
mein zweiter Gedanke war den ganzen befehl den ich in ssh eingebe über fhem aufzurufen mit diesem code
define treppeon notify treppe:open {system("sudo /home/pi/rpi_ws281x/python/examples/ sudo PYTHONPATH=".:build/lib.linux-armv7l.7" python examples/strandtest1.py &")}
aber leider hat all dies nicht geklappt. Ich denke der zusatz hier sudo PYTHONPATH=".:build/lib.linux-armv7l.7" python examples/strandtest1.py
ist das problem aber ich brauche ih um den skript starten zu können. vielleicht siehst du ja einelösung bzw. den Fehler
Danke Gruß Matze
Moin,
mein Vorschlag war nicht Perl {} und nicht die Funktion {system("")}. Mein Vorschlag war:
"Dein Script steht hier am besten mit absoluten Pfaden einfach zwischen zwei doppelten Hochkommas"
Hier (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)findest Du ein paar Notizen von mir.
Ganz davon abgesehen, machst Du deine Tests interaktiv offenbar als User pi, Deine FHEM macht das aber mit user fhem (normalerweise).
Du musst also sowohl ssh als auch sudo für den User fhem einrichten! Auch hierzu meine Notizen, diese beiden beiden mit betreffen:
https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html
https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html
Gruß Otto
hi so in etwa hab ich es verstanden nur das große Problem ist das ich den befehl so nicht ausführen kann ich kann nämlich nicht den Pfad angeben und gleichzeitig den
sudo PYTHONPATH=".:build/lib.linux-armv7l.7" python examples/strandtest1.py
ausführen.
das klappt ja auch so nicht in ssh.
jetzt hatte ich eine super Idee nur fehlt mir etwas das know how :
ein sh skript zu erstellen das erst den Pfad öffnet und anschließend den befehl
sudo PYTHONPATH=".:build/lib.linux-armv7l.7" python examples/strandtest1.py
startet
wäre cool wenn du mir dabei helfen könntest
das ganze sollte ungefair so aussehen:
define treppenlicht dummy
attr webcmd on:off
define treppeon notify treppenlicht:on {system ("sudo /fhem/on.sh"}
ich hoffe es ist so in der art machbar und sorry ich bin hier ein absoluter Neuling also bitte Geduld mit mir
gruß matze
Hallo matze,
also ich helfe Dir gern, aber was willst Du jetzt wissen?
Wie man mit nano ein sh Script schreibt?
Das die Befehle eventuell in zwei Zeilen müssen?
Das Du auf die Pfade achten musst und besser absolute Pfade verwendest?
- Beispiel /usr/sbin/python /bla/bla/examples/Script.py
Und Du brauchst {system()} dafür nicht!
Gruß Otto
hi otto sorry ich blicks nicht
schau ich hab folgendes gemacht ich hab in /etc/sudoers
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
fhem ALL=(ALL) NOPASSWD: ALL
alle rechte erteilt auch das skript selbst hat alle lese schreibe rechte
so mein script liegt in /opt/fhem/strandtest1.py allerdings ist es nur ausführbar wenn ich im ordner /opt/fhem bin und anschließend sudo python strandtest1.py eingebe.
jetzt will ich es schalten wie ein gpio also hab ich ein dummy mit treppe angelegt .
dann muss ich doch ein define on notify treppe:on ............anlegen richtig ..?
aber dazu fehlt mir der richtige code hab sämtliche varianten versucht aber ohne erfolg.
wäre echt super wenn du mir den richtigen code zusammen stellen würdest bin am verzweifeln danke
gruß matze
Funktioniert folgendes in der FHEM Kommandozeile (Du weißt von was ich rede?)
"sudo /usr/sbin/python /opt/fhem/strandtest1.py"
Gruß Otto
P.S. bezüglich sudoers hast Du meine Notiz nicht gelesen - oder?
Hi danke für deine schnell Antwort
sudo: / usr / sbin / python: Befehl nicht gefunden
Das kommt im log nach dem ich es eingegeben habe
Das kommt mit den Leerzeichen dazwischen? ???
Ich glaube ich habe mich vertan:
"sudo /usr/bin/python /opt/fhem/strandtest1.py"
Oder mit dem Befehl ermittelnwhich python