Hallo
ich schaffe es einfach nicht ein python script aus FHEM heraus zu starten
/etc/group
root:x:0:fhem,pi
/etc/sudoers
fhem ALL=(ALL) NOPASSWD: ALL
dann gebe ich das oben ins Command Fenster ein
{system('/opt/fhem/test.sh');; }
{system(sudo '/opt/fhem/test.sh');; }
bekomme immer ein -1 zurück ...
das test.sh ist ein einfaches
echo "YEP"
Was kann ich da noch ändern damit das dann funkt?
im Endeffekt will ich ein python sktipt starten das dann die GPIO's steuert ... also auch mehr Rechte braucht
Nun, system() gibt den Rückgabewert des bash-Interpreters zurück. Möchtest du stdout oder stderr habe, dann verwende am Besten qx()
Hier ein Beispiel für qx()
my $retWhatsApp = qx(sudo python /home/pi/yowsup/yowsup-cli demos -c /home/pi/yowsup/config.fnetz -s $handy '$text' 2\>&1 &);
$retWhatsApp =~ s/\n|\r/ /g; #s,[\r\n]*,,g; # remove CR from return-string
Log3 "sendWhatsApp", 3, "sendWhatsApp: $retWhatsApp";
Grüße Jörg
hmmmm Danke .... bin nun nen schritt weiter
folgendes python script :
import RPi.GPIO as GPIO
import time
import sys
# Pin Definitons:
io1 = 6
io2 = 13
io3 = 19
io4 = 26
print "Start1"
# Pin Setup:
GPIO.setmode(GPIO.BCM)
GPIO.setup(io1, GPIO.OUT)
GPIO.setup(io2, GPIO.OUT)
GPIO.setup(io3, GPIO.OUT)
GPIO.setup(io4, GPIO.OUT)
print "Start2"
Ausgabe im FHEM :
Start1
daher weiss ich mal das das GPIO per FHEM nicht startet .....
Hätte auch mal das hier so
root@raspberrypi:/opt/fhem# groups fhem
fhem : dialout root adm tty sudo plugdev netdev input spi gpio
Für den Zugriff auf die GPIO gibt es doch ein Fhem-Modul: http://forum.fhem.de/index.php/topic,16519.0.html
oder willst Du Dich selber einarbeiten, dann könnte das hier hilfreich sein: http://www.fhemwiki.de/wiki/Raspberry_Pi:_GPIOs_schalten
Grüße Jörg
hmmm
Ich habe eben schon das fix fertig python Script was ich im Moment eher nicht ändern möchte .... und vermute es handelt sich nur mehr noch um ein kleines Rechte Problem ....
Nur das Problem ist das das Script einfach aufhört, ich nicht weiss ob es wo eine Log gibt, damit ich weiter suchen kann, so sucht man ziemlich ins blaue rein ....
das nächste wird sein zu versuchen den FHEM als root zu starten ... das müsste ja auch gehen irgendwie
Hallo,
Nur noch mal zum Hinweis, in deinem ersten Beitrag muss das sudo innerhalb der Anführungszeichen stehen. qx ist da anders weil die Klammern hier den Texteinschluss bewirken.
Eigentlich sollte alles interessante in der fhem.log stehen. Ich weiß nicht ob 2>&1 notwendig ist für die Fehlerausgabe in der fhem.log. Schaden tuts jedenfalls nicht. Wie war denn dein genauer qx aufruf?
Ich würde es gleich in die Log umleiten.
{Log 1, qx(sudo pythonscript)}
fhem kannst du auch mit sudo starten.
Aber ich würde dir auch empfehlen das Modul RPI_GPIO zu verwenden.
Gruß
Achja, du brauchst übrigens überhaupt kein Perl um Shellcomandos auszuführen. Doppelte Anführungszeichen machen das selbe.
"pythonscript"
Unter der Vorraussetzung, das in der ersten Zeile der #! Eintrag richtig ausgefüllt wurde ... oben im Beispielscript wurde es eben nicht eingetragen.
Also das Problem ist das
GPIO.setup
Start1
Start1.1
wurde im FHEM noch geschreiben dann nix mehr
ich wollte nun fhem als root starten lassen, aber ... wie?
print "Start1"
# Pin Setup:
GPIO.setmode(GPIO.BCM)
print "start1.1"
GPIO.setup(io1, GPIO.OUT)
print "start1.1.1"
GPIO.setup(io2, GPIO.OUT)
GPIO.setup(io3, GPIO.OUT)
GPIO.setup(io4, GPIO.OUT)
print "Start2"
hast du meinen Beitrag gelesen?
ja hatte ich - nur hats nicht funktioniert!
Allerdings hatte ich es ohne dem sudo getestet gehabt zum schluß
Nun hab ich es nochmal MIT sudo getestet und nun funktioniert es - DANKE!
Zitat{qx(sudo /opt/fhem/rollo.py up) }
funkt genau so wie ich es haben wollte