Hallo zusammen,
ich würde gerne die Ausgabe eines Python-Scripts an FHEM übergegen. In meinem Beispiel einfach die Uhrzeit, um Veränderungen zu sehen.
Das Script liegt in /home/pi
pi@raspberry ~ $ python testscript.py
20:35:24
pi@raspberry ~ $
Kann da jemend weiterhelfen ? :-[
Habe zwar das hier gefunden, verstehe aber nicht ganz was/wie das umgesetzt wird.
https://forum.fhem.de/index.php/topic,56793.msg484114.html#msg484114 (https://forum.fhem.de/index.php/topic,56793.msg484114.html#msg484114)
Ich nehme an du willst das script aus der shell starten und nicht aus FHEM?
Wie man das aus python macht weiss ich auch nicht, aber FHEM bietet viele Möglichkeiten ich verwende aus bash scripts z.b. echo "setreading USV $LINE" |netcat -q 0 192.168.255.9 7072
man kann auch fhem.pl verwenden /opt/fhem/fhem.pl 7072 "setreading USV $LINE"
oder ein http post.
Zitat von: schka17 am 19 Oktober 2016, 22:13:22
Ich nehme an du willst das script aus der shell starten und nicht aus FHEM?
Nein, wollte das script unter FHEM aufrufen.
ZitatWie man das aus python macht weiss ich auch nicht, aber FHEM bietet viele Möglichkeiten ich verwende aus bash scripts z.b. echo "setreading USV $LINE" |netcat -q 0 192.168.255.9 7072
man kann auch fhem.pl verwenden /opt/fhem/fhem.pl 7072 "setreading USV $LINE"
oder ein http post.
Worauf bezieht sich 7072 ? der Port unter dem fhem erreichbar ist ?
Zitat von: KH86 am 20 Oktober 2016, 19:43:00
Worauf bezieht sich 7072 ? der Port unter dem fhem erreichbar ist ?
7072 ist der Standard-Telnet-Port.
Grüße Jörg
Zitat von: KH86 am 20 Oktober 2016, 19:43:00
Nein, wollte das script unter FHEM aufrufen.
dann soll die Zeitausgabe wohl nur ein Test sein?
habs nicht ausprobiert aber es müsste so funktionieren:
my $returnCode = system( "python testscript.py" );
@schka17:
Danke für das Beispiel, bin jetzt soweit, dass das Script aufgerufen wird und die Uhrzeit im fhem-Logfile auftaucht. Leider
kann ich den Wert nicht dem dummy "TestPython" zuweisen:
####################################
# Python-Test #
####################################
sub TestLesen(){
my $returnCode = system( "python /home/pi/testscript.py" );
fhem("setReading TestPython TestPython $returnCode");
}
EDIT:
Zitat von: betateilchen am 20 Oktober 2016, 20:04:01
es geht noch einfacher...
+*00:01:00 {qx(python /home/pi/hd44780/zeit.py &)}
qx() liefert im Gegensatz zu system() keinen Rückgabewert.
Das passt auch hier 8) und so geht's:
sub TestLesen(){
my $returnCode = qx(python /home/pi/testscript.py);
fhem("setReading TestPython TestPython $returnCode");
}
thx 8) @all