Hauptmenü

Ausgabe Python --> fhem

Begonnen von klaus86, 19 Oktober 2016, 20:36:52

Vorheriges Thema - Nächstes Thema

klaus86

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

schka17

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.
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

klaus86

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 ?

JoWiemann

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
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

schka17

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" );
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

klaus86

#5
@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