FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: LordVoodoo am 11 April 2017, 23:18:44

Titel: Senden eines HTTP-Befehles (GetHttpFile)
Beitrag von: LordVoodoo am 11 April 2017, 23:18:44
Hallo zusammen,

ich komme an einem Syntaxfehler nicht weiter. Ich möchte einen Dummy-Button anlegen, welches ein Notify triggert. Dieses Notify soll einen Befehl an meinen HTPC mit laufendem Windows Media Center senden.

Wenn ich im Browser die Adresse

http://htpc-nsu:5050/cgi-bin/runCmd.py?cmd=livetv

eingebe, wird erwartungsgemäß die Aktion LiveTV im Media Center gestartet (falls dieses das aktive Fenster ist).

Nun war meine Idee Notify folgendes zu verwenden:

Dev_MCE_Button_LiveTV:.* ({ GetHttpFile ('http://htpc-nsu:5050','/cgi-bin/runCmd.py?cmd=livetv'); })

Aber am Syntax stimmt etwas nicht. Der Trigger feuert nicht. Kann ich den Befehl GetHttpFile nicht auf diese Weise verwenden?

Vielen Dank für Eure Hilfe.
Titel: Antw:Senden eines HTTP-Befehles (GetHttpFile)
Beitrag von: Phill am 12 April 2017, 00:51:07
Steht in der fhem.log nix hilfreiches? Gibt es eine log des mediacenters?

Ansonsten mal "Log 3," vor gethttpfile setzen. Und dann in die log schauen.
Und wenn das auch nichts hilft, GetFileFromURL nehmen und das loglevel auf dein aktuelles debuglevel setzen.
Titel: Antw:Senden eines HTTP-Befehles (GetHttpFile)
Beitrag von: DeeSPe am 12 April 2017, 01:17:01
Zitat von: LordVoodoo am 11 April 2017, 23:18:44
Hallo zusammen,

ich komme an einem Syntaxfehler nicht weiter. Ich möchte einen Dummy-Button anlegen, welches ein Notify triggert. Dieses Notify soll einen Befehl an meinen HTPC mit laufendem Windows Media Center senden.

Wenn ich im Browser die Adresse

http://htpc-nsu:5050/cgi-bin/runCmd.py?cmd=livetv

eingebe, wird erwartungsgemäß die Aktion LiveTV im Media Center gestartet (falls dieses das aktive Fenster ist).

Nun war meine Idee Notify folgendes zu verwenden:

Dev_MCE_Button_LiveTV:.* ({ GetHttpFile ('http://htpc-nsu:5050','/cgi-bin/runCmd.py?cmd=livetv'); })

Aber am Syntax stimmt etwas nicht. Der Trigger feuert nicht. Kann ich den Befehl GetHttpFile nicht auf diese Weise verwenden?

Vielen Dank für Eure Hilfe.

Wie Phill schon geschrieben hat sollte GetFileFromURL funktionieren!
Auch die komisch gesetzten Klammern sind unnötig/falsch.
Dev_MCE_Button_LiveTV:.* { GetFileFromURL("http://htpc-nsu:5050/cgi-bin/runCmd.py?cmd=livetv") }

Evtl. ist es auch sinnvoll das auslösende Event etwas weiter einzuschränken.

Gruß
Dan
Titel: Antw:Senden eines HTTP-Befehles (GetHttpFile)
Beitrag von: LordVoodoo am 12 April 2017, 10:03:34
Danke für die rasche Antwort, habe es mit GetFileFromURL probiert, habe aber nach wie vor Probleme:

Im Log steht:

2017.04.12 09:59:39 1: PERL WARNING: Use of uninitialized value $text in concatenation (.) or string at fhem.pl line 869.
2017.04.12 09:59:39 3:
2017.04.12 10:00:37 3:
2017.04.12 10:01:29 3:


Nach Änderung zu:

Dev_MCE_Button_LiveTV:.* { Log 3, GetFileFromURL "http://htpc-nsu:5050/cgi-bin/runCmd\.py?cmd=livetv" }

Habe auch mal ein einfaches Licht einschalten in den Ausführungsteil gesetzt, das funktionierte.
Titel: Antw:Senden eines HTTP-Befehles (GetHttpFile)
Beitrag von: DeeSPe am 12 April 2017, 10:22:33
Zitat von: LordVoodoo am 12 April 2017, 10:03:34
Dev_MCE_Button_LiveTV:.* { Log 3, GetFileFromURL "http://htpc-nsu:5050/cgi-bin/runCmd\.py?cmd=livetv" }

Das geht so nicht da es einfach falsch ist.
Folgendes in die FHEM Eingabezeile und mit Enter bestätigt schreibt meine eigene IP Adresse als DEBUG ins Log:
{ Debug GetFileFromURL("http://icanhazip.com/") }
Oder als Log (mit entsprechendem verbose Level 3):
{ Log3 undef,3,GetFileFromURL("http://icanhazip.com/") }

Übertragen auf Dich sollte das dann so aussehen:
Dev_MCE_Button_LiveTV:.* { Log3 $NAME,3,GetFileFromURL("http://htpc-nsu:5050/cgi-bin/runCmd\.py?cmd=livetv") }

Liefert denn der Aufruf von "http://htpc-nsu:5050/cgi-bin/runCmd\.py?cmd=livetv" eine auswertbare Antwort zurück oder wird die URL nur "blind" aufgerufen?

Gruß
Dan