FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: klaus86 am 19 Oktober 2016, 20:36:52

Titel: Ausgabe Python --> fhem
Beitrag von: klaus86 am 19 Oktober 2016, 20:36:52
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)
Titel: Antw:Ausgabe Python --> fhem
Beitrag von: schka17 am 19 Oktober 2016, 22:13:22
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.
Titel: Antw:Ausgabe Python --> fhem
Beitrag von: klaus86 am 20 Oktober 2016, 19:43:00
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 ?
Titel: Antw:Ausgabe Python --> fhem
Beitrag von: JoWiemann am 20 Oktober 2016, 20:01:54
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
Titel: Antw:Ausgabe Python --> fhem
Beitrag von: schka17 am 20 Oktober 2016, 20:16:18
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" );
Titel: Antw:Ausgabe Python --> fhem
Beitrag von: klaus86 am 20 Oktober 2016, 20:54:17
@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