<GELÖST> Script aus FHEM aus starten

Begonnen von kblc, 18 Februar 2015, 17:28:13

Vorheriges Thema - Nächstes Thema

kblc

Hallo ihr lieben,

ich habe eine Frage zu meinem Raspberry Pi. Ich habe sie schon einmal gestellt, viele hilfreiche Antworten erhalten, durch die ich viel dazu gelernt habe, aber mein Problem nicht gelöst wurde.

Ich möchte in Script aus FHEM heraus starten. Also wenn eine bestimmte Aktion stattfindet (Lampe1 on) dann soll das Script LED.py ausgeführt werden.

Ich habe also meinen Raspberry Pi komplett neu aufgesetzt. Ich habe eine neue Karte rein und Raspbian, FHEM und Perl installiert. Danach habe ich wieder alles versucht. Leider ohne Erfolg.

Ich gebe zum testen, bevor ich etwas in fhem.cfg schreibe, folgenden Befehl. Das sollte ja eigentlich das Script ausführen.


{system('python  /home/pi/led.py');;}


auch der Befehl

{system('sudo python  /home/pi/led.py');;}


oder
{system('sudo /usr/bin/python /home/pi/led.py'&);;}

bringen leider keinen Erfolg.

Ich komme leider nicht mehr weiter. Wenn ich im Terminal den Befehl eingebe (egal welchen), klappt es immer. Mein Script wird ausgeführt. Ich habe in Raspbian unter Eigenschaften - Berechtigungen (auf der grafischen Benutzeroberfläche) die Zugriffsrechte für Besitzer, Gruppe, Andere auf "Lesen und Schreiben" gesetzt. Allerdings alles ohne Erfolg.

Hier noch die led.py
Ich kenne die Möglichkeit, die LED über FHEM direkt zu schalten. Aber das ist nicht mein Ziel. Ich möchte die LED über das Script steuern, da ich danach das Script umschreibe und etwas anderes damit programmieren möchte. Im Moment soll durch das Script nur (als Indikator) die LED angehen.
#!/bin/sh
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(38,GPIO.OUT)
for x in range(0,3):
        GPIO.output(38,True)
        time.sleep(1)
        GPIO.output(38,False)



Kann mi jemand einen Tipp geben, wie ich das Script aus FHEM heraus gestartet bekomme?
Vielen Dank

Kai aus Oberfranken
SPS, Arduino, Controllino, Sensortechnik, Elektronik

betateilchen

Was steht denn im fhem Logfile, wenn Du das probierst?

Probiere mal:



{ qx(sudo /usr/bin/python /home/pi/led.py) }



Testweise kannst Du ein

chmod 777 /home/pi/led.py

ausführen, um Berechtigungsprobleme auszuschließen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kblc

#2
Hallo,
vielen lieben Dank für die Antwort.

Ich habe folgendes herausgefunden:

In der Logfile steht nach allen (meinen) Eingaben nichts. Es ändert sich nichts.
In dem Eventmonitor steht
-1
mehr nicht.

Wenn ich das von dir eingebe, dann steht in der Logfile ebenfalls nichts anderes als vorher.
Im Eventmonitor steht:

Error messages while initializing FHEM:
configfile: Pin33_Motion: can't export gpio13, no write access to /sys/class/gpio/export and file /usr/local/bin/gpio doesnt exist


Ich habe trotzdem die Logfile mit angegeben, da der letzte Eintrag sehr verdächtig erscheint:
2015.02.02 16:17:26 1: Including fhem.cfg
2015.02.02 16:17:26 3: telnetPort: port 7072 opened
2015.02.02 16:17:31 3: WEB: port 8083 opened
2015.02.02 16:17:31 3: WEBphone: port 8084 opened
2015.02.02 16:17:31 3: WEBtablet: port 8085 opened
2015.02.02 16:17:33 2: eventTypes: loaded 0 events from ./log/eventTypes.txt
2015.02.02 16:17:34 1: Pin33_Motion: can't export gpio13, no write access to /sys/class/gpio/export and file /usr/local/bin/gpio doesnt exist
2015.02.02 16:17:34 1: define Pin33_Motion Pin33_Motion RPI_GPIO 13: Pin33_Motion: can't export gpio13, no write access to /sys/class/gpio/export and file /usr/local/bin/gpio doesnt exist
2015.02.02 16:17:34 1: Including ./log/fhem.save
2015.02.02 16:17:34 1: configfile: Pin33_Motion: can't export gpio13, no write access to /sys/class/gpio/export and file /usr/local/bin/gpio doesnt exist
2015.02.02 16:17:34 1: usb create starting
2015.02.02 16:17:41 3: Probing CUL device /dev/ttyAMA0
2015.02.18 15:54:13 3: Can't open /dev/ttyAMA0: Permission denied
2015.02.18 15:54:13 1: usb create end
2015.02.18 15:54:13 2: Error messages while initializing FHEM: configfile: Pin33_Motion: can't export gpio13, no write access to /sys/class/gpio/export and file /usr/local/bin/gpio doesnt exist
2015.02.18 15:54:13 0: Server started with 10 defined entities (version $Id: fhem.pl 7771 2015-01-30 07:10:22Z rudolfkoenig $, os linux, user fhem, pid 2167)


Vielen Dank für jeden Hinweis. Ich habe das schon mal hier im Forum geschrieben. Ich bin gerade sehr willig das zu lernen und bin daher sehr dankbar, für jeden Hinweis und Tipp, auch wenn es mich erst mal nicht weiterbringt. Aber ich lerne immer dazu. Daher Vielen Dank

Kai

N A C H T R A G :
Ich habe etwas rausgefunden. Der letzte Eintrag bezieht sich bestimmt auf einen Eintrag in fhem.cfg wo ich bereits einen Taster erstellen wollte. Dieser Kurzhubtaster (angeschlossen an GPIO 33) soll dann das Script auslösen. Daher trage ich hier noch die FHEM.cf g nach.

attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3
attr global updateInBackground

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create





define Pin33_Motion RPI_GPIO 13
attr Pin33_Motion direction input
attr Pin33_Motion interrupt rising
attr Pin33_Motion pud_resistor up
attr Pin33_Motion toggletostate yes
define n_Pin33_MotionOn1 notify Pin33_Motion:on {system('python  /home/pi/led.py');;}


"Ach mano!" Vermutlich habe ich da nach dem neu"aufsetzen" meines RasPi auch schon einen Fehler gemacht oder irgendwas vergessen.
SPS, Arduino, Controllino, Sensortechnik, Elektronik

franky08

Zitat2015.02.18 15:54:13 3: Can't open /dev/ttyAMA0: Permission denied

Da hast du ein Berechtigungsproblem und nimm das usb create mal raus, da es Probleme verursachen kann.

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

kblc

Hallo nochmal,

also ich habe die alte Karte wieder in das System gesteckt. Mit der Berechtigung sollte nun alles passen. Allerdings wird mein Script immernochnichüt ausgeführt. Ich verstehe einfach nicht warum. Ich gebe genau das an, was ich auch im Terminal angebe. Das "gebettet" in
{system('    hier hin   ');;}
Im Terminal geht es. Ich habe auch den Rat von betateilchen angewendet:
Zitat

{ qx(sudo /usr/bin/python /home/pi/led.py) }

und habe es auch umgeändert in

{ qx(sudo /usr/bin/python /programme/led.py) }


Ich habe das Script in den Ordner Programme kopiert. Und habe auch dort das:
Zitatchmod 777 /programme/led.py
angewendet.

Leider klappt nichts.

Es wäre schön, wenn mir noch jemand einen Tipp geben könnte. Ich habe auch die Vermutung, dass es was mit den Rechten zu tun haben könnte.

Im Event Monitor steht immer nur:
-1
Ich habe irgendwo bei uns im Forum gelesen, dass es normal ist, dass es dort steht. Also muss ja der "Befehl" FHEM verlassen und irgendwo ankommen.

Vielen Dank für Euere Hilfe.

Kai aus Oberffranken
SPS, Arduino, Controllino, Sensortechnik, Elektronik

kblc

Hallo nochmal.

Ich habe tatsächlich eine Lösung für mein Problem gefunden.
Es befand sich auf dieser Seite bei uns im Forum:
http://forum.fhem.de/index.php?topic=17613.0

Es waren die Rechte des Benutzers FHEM. Ich habe es mit dem alten System zum laufen gebracht.

Ich möchte an dieser Stelle allen Helfern, Tipp-gebern, Kommentatoren und Moderatoren  ein herzliches

"Danke schön"

aussprechen.


Es funktioniert das ist für mich wirklich ein großer Meilenstein.



Kai aus Oberfranken
SPS, Arduino, Controllino, Sensortechnik, Elektronik