Hauptmenü

GetHttpFile

Begonnen von maximat, 18 Januar 2014, 17:47:07

Vorheriges Thema - Nächstes Thema

maximat

Guten Tag, ich suche nun schon den ganzen Tag, jetzt bitte ich um Hilfe.
Kann mir jemand sagen warum dies nicht funktioniert:

Radio1:toggle {GetHttpFile("bose.local:80","/star.php?a=7");0} (Eintrag aus de DEF-Zeile)

Der Befehl wird nicht gesendet, allerdings sporadisch schon.
fhem läuft auf nem Raspi, bose.local ist ein raspi mit mpd (raspify). Vom Mac aus funktioniert der Web-Aufruf
Es soll nur eine mp3.datei gestartet werden.
Vielen Dank Klaus

UliM

Zitat von: maximat am 18 Januar 2014, 17:47:07
allerdings sporadisch schon.

Hast Du ein Muster erkennen können, wann es geht und wann nicht?
Irgendwas im Log?
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

maximat

Erstmal vielen Dank für die Nachfrage

Es funktioniert unregelmäßig nach 1 bis 5 Versuchen. Der Tastendruck (toggle) wird immer erkannt.
Beide Befehle:
Radio1:toggle {GetHttpFile("192.168.1.113/star.php?a=7","");0} ; {fhem("set Radio1 off")} und
Radioaus:toggle {GetHttpFile("192.168.1.113/stop.php","")} ; {fhem("set Radioaus off")}
zeige das selbe Verhalten.
Wir die Ausführung des notify irgendwo mit geloggt?
Herzlich Klaus

UliM

attr global verbose 5
Schreibt ALLES mit. Am besten kurz. Ach den Tests wieder zurück auf 3 setzen, sonst explodiert Dein fhem.log :)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

maximat

der Link Logfile wird bei mir im webfrontend nicht angezeigt.  :-\

UliM

Macht nix.Das Gerät "global" hat ein Attribit "logfile", da steht drin wo Dein logfile liegt.
Im Internal "currentlogfile" stehen dort auch Pfad und Dateiname.
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

maximat

Hallo UliM
Nach einigen Komplikationen (Nachts geht das Licht an, readonly Filesystem ...) habe ich Fhem neu aufgespielt und bin ein Stück weiter:
Was geht ist der Aufruf ins Internet: Radio2:toggle {GetHttpFile("www.xyz.de:80" , "/w.php?a=5")} ; {fhem("set Lampe on")}

Was auch geht ist der Aufruf an ein zweites Fhem:
Radio2:toggle {GetHttpFile("192.168.1.113:8083", "/fhem?cmd.radio=set%%20radio%%20on&room=1_Wohnzimmer")}

Dieses zweite schaltet mit
radio:on {GetHttpFile("localhost/star.php?a=7","")}
einwandfrei seinen mpd ein.

Was nicht geht ist der direkte Aufruf aus dem ersten fhem in keiner Variation:

Radio2:on {GetHttpFile("bose.local:80","/star.php?a=7","")} oder
Radio2:on {GetHttpFile("bose.local/star.php?a=7")} oder
Radio2:on {GetHttpFile("192.168.1.113:80","/star.php?a=7","")} usw.

Ich kann das jetzt mit fhem2fhem wohl lösen, aber meine Anfangsfrage bleibt unbeantwortet.
Fällt dir noch etwas auf oder ein?
Liegt es am php oder am ?a=7?

Gruß und Danke Klaus

maximat

Hier noch der Auszug aus dem Logfile

2014.01.22 22:17:58 5: Triggering radio2
2014.01.22 22:17:58 5: Cmd: >{GetHttpFile("192.168.1.113/star.php?a=7","")}<
Use of uninitialized value $code in concatenation (.) or string at FHEM/HttpUtils.pm line 145.
2014.01.22 22:17:58 4: CustomGetFileFromURL http://192.168.1.113/star.php?a=7: Code  (http)
Use of uninitialized value $code in numeric eq (==) at FHEM/HttpUtils.pm line 146.
2014.01.22 22:17:58 4: CustomGetFileFromURL http://192.168.1.113/star.php?a=7: Got data, length: 0
2014.01.22 22:17:58 4: CustomGetFileFromURL http://192.168.1.113/star.php?a=7: Zero length data, header follows...
2014.01.22 22:17:58 4: CustomGetFileFromURL http://192.168.1.113/star.php?a=7: http

Gruß Klaus

UliM

von den 3 Radio2-Versionen oben sieht die letzte am besten aus, hat die nicht einen Parameter zu viel? Oder ist der dritte Parameter das timeout, müsste also ne Zahl sein, zB 1?
Bei mir ist die letzte Verwendung dieser Fkt schon ne Weile her....
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

maximat

Ja da war ein Parameter zu viel, trotzdem geht es nicht zuverlässig
Radio2:on {GetHttpFile("192.168.1.113:80" , "/star.php?a=7")}

und im Log ist die Fehlermeldung:

2014.01.23 11:12:45 5: Cmd: >{GetHttpFile("192.168.1.113:80" , "/star.php?a=7")}<
Use of uninitialized value $code in concatenation (.) or string at FHEM/HttpUtils.pm line 145.
2014.01.23 11:12:45 4: CustomGetFileFromURL http://192.168.1.113:80/star.php?a=7: Code  (http)
Use of uninitialized value $code in numeric eq (==) at FHEM/HttpUtils.pm line 146.

???

maximat

nicht wirklich erledigt. Ungeklärt ist die Frage, warum dies nur manchmal geht:
Radio1:on {GetHttpFile("192.168.1.113:80" , "/star.php?a=1")} (Aufruf der PHP-Seite einen zweiten raspi)
wenn dies aber problemlos geht:
Radio1:on {GetHttpFile("localhost","/star.php?a=1")} (Aufruf der internen PHP-Seite)
und auch dies:
{GetHttpFile("192.168.1.140:8083/fhem?cmd.Sender=set%%20Sender%%20" . % . "&room=Radio" , "")}

erledigt deshalb, weil ich nicht weiter suchen will und eine andere Lösung nutze:
Ich habe zwei Fhems, die miteinander kommunizieren, zunächst über fhem2fhem, nun aber überdirekte Webfrontend-Aufrufe.
Bin damit zufrieden
Vielen Dank fürs Mitdenken

Klaus