FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Wolfgang Hochweller am 18 Juli 2016, 23:16:32

Titel: Geloest: FHEM Python function
Beitrag von: Wolfgang Hochweller am 18 Juli 2016, 23:16:32
Mit Hilfe von system ( ......./function.py ) kann ich erfolgreich als Teil einer Notify-Definition eine Pythonfunktion aufrufen.
Diese Pythonfunktion liefert einen Returnwert.
Wie komme ich an den dran, z. B. um den State eines anderen Device zu setzen ?
Titel: Antw:FHEM Python function
Beitrag von: dev0 am 19 Juli 2016, 00:21:42
qx() statt system() verwenden und dann mit readingSingleUpdate() in ein Reading schreiben oder im python script den Wert per http/telnet direkt an fhem übergeben.
Titel: Antw:FHEM Python function
Beitrag von: Wolfgang Hochweller am 19 Juli 2016, 08:37:34
Danke, qx() wuerde mir schon passen, aber :

Wenn ich in einem  Command Prompt folgendes tue :

python c:\fhem\fhem-5.7\python\verisure_getAlarm.py

bekomme ich die Ausgabe : Unarmed

Wenn ich so etwas zum Testen in der Kommandozeile  mache :

{ my $alarm = qx ( "python c:\fhem\fhem-5.7\python\verisure_getAlarm.py" );;}

bekomme ich das hier im Logfile :

2016.07.19 08:32:30 1: PERL WARNING: Unrecognized escape \p passed through at (eval 3612) line 1.
2016.07.19 08:32:30 3: eval: { my $alarm = qx ( "python c:\fhem\fhem-5.7\python\verisure_getAlarm.py" );  }

Aus dem Notify heraus genau dasselbe.
Titel: Antw:FHEM Python function
Beitrag von: Wolfgang Hochweller am 19 Juli 2016, 09:33:15
Geloest :
Das hier funktioniert :

my @temp = qx/python c:\\fhem\\fhem-5.7\\python\\verisure_getTemp.py/;;

Das einzige , was noch stoert, ist das Gradzeichen, das offenbar missverstanden wird.
Muss ich irgendwie eine Codetabelle setzen ?
Titel: Antw:Geloest: FHEM Python function
Beitrag von: dev0 am 19 Juli 2016, 10:03:34
Ich tippe darauf, das Windows ein andere Codepage verwendet. Quick'n'dirty könntest Du das Zeichen einfach mit s/search/replace/ ersetzen. Ich würde nur die Zahl extrahieren und in ein Reading schreiben. Einheiten in Readings stören eher.
Titel: Antw:Geloest: FHEM Python function
Beitrag von: Wolfgang Hochweller am 19 Juli 2016, 11:22:13
Danke, geht prima.