FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tgv_boost am 24 Mai 2020, 21:37:41

Titel: [Gelöst] HttpUtils_NonblockingGet
Beitrag von: tgv_boost am 24 Mai 2020, 21:37:41
Servus,
mir erschliesst sich nicht, warum ->
define JalousieWG_T1_ntfy notify JalousieWG_T:.*on { GetHttpFile("192.168.0.140:80", "/Tab") }
-> tut, bis auf potentielles blocking

Jedoch ->
define JalousieWG_T1_ntfy notify JalousieWG_T:*on { HttpUtils_NonblockingGet( { url=>"192.168.0.140:80/Tab", callback=>sub() { } }) }
-> macht keinen Mucks

übrigens, wenn ich nach dem < ... sub() { } }) } > noch ein <;; set machirgendwas on> setze, tut das < set > auch

define JalousieWG_T dummy
attr JalousieWG_T devStateIcon Ab:control_arrow_down@red Auf:control_arrow_up@green
attr JalousieWG_T verbose 5
attr JalousieWG_T eventMap on:Ab off:Auf
attr JalousieWG_T group WZ_Jalousien
attr JalousieWG_T icon fts_shutter_40
attr JalousieWG_T room HAUS9, Wohnzimmer
attr JalousieWG_T sortby 2
attr JalousieWG_T webCmd Ab:Auf


Hinter der IP Adresse verbirgt sich ein ESP8266 mit einem Arduino Sketch.

Wo hab ich das Denkproblem?

Raspi und FHEM sind jeweils auf dem aktuellsten Stand

mit bestem Dank im Voraus
Gruß
Walter
Titel: Antw:HttpUtils_NonblockingGet
Beitrag von: JoWiemann am 24 Mai 2020, 21:43:58
Hallo,

HttpUtils_NonblockingGet braucht eine Funktion, die es aufrufen kann, wenn es fertig ist. In dieser Funktion wird dann die Rückgabe verarbeitet.
Diese Funktion ist bei Dir nicht vorhanden, also kann auch kein Ergebnis verarbeitet werden.

Grüße Jörg
Titel: Antw:HttpUtils_NonblockingGet
Beitrag von: tgv_boost am 24 Mai 2020, 22:00:09
define JalousieWG_F1_ntfy notify JalousieWG_F:*on { HttpUtils_NonblockingGet( { url=>"192.168.0.140:80/Fab", callback=>sub($$$) { my ($hash, $err, $data) = @_;; Log 1, "$err/$data" } }) }
hab ich auch versucht ...

... und hier noch ein Post von Rudolf König dazu:
Zitat von: rudolfkoenig am 14 Juli 2015, 09:43:50
"wget -q -O /dev/null http://182.178.15.77/Heiz_Kueche_an.php"
oder
{ HttpUtils_NonblockingGet( { url=>"http://182.178.15.77/Heiz_Kueche_an.php", callback=>sub() { } }) }

Falls man an Ergebnis/Fehler interessiert ist, dann sollte man sub(){} z.Bsp. durch folgendes ersetzen:
sub($$$) { my ($hash, $err, $data) = @_;; Log 1, "$err/$data" }
Natuerlich kann man hier eine "echte" Funktion mit Namen angeben.

Titel: Antw:HttpUtils_NonblockingGet
Beitrag von: amenomade am 25 Mai 2020, 01:28:29
Sagt die Log nichts anderes? Ggf mit verbose 5 auf dem Notify.
Bei mir geht es
2020.05.25 01:22:35 5: Triggering JalousieWG_F1_ntfy
2020.05.25 01:22:35 4: JalousieWG_F1_ntfy exec {  HttpUtils_NonblockingGet( { hash=> $defs{JalousieWG_F1_ntfy}, url=>"192.168.0.140:80/Fab", callback=>sub($$$) { my ($hash, $err, $data) = @_;; Log 1, "$err/$data" } }) }
2020.05.25 01:22:35 1: 192.168.0.140:80/Fab: malformed or unsupported URL/
Titel: Antw:HttpUtils_NonblockingGet
Beitrag von: tgv_boost am 25 Mai 2020, 10:15:32
Danke schon mal für die Hilfe,

Triggering JalousieWG_F2_ntfy
JalousieWG_F2_ntfy exec { HttpUtils_NonblockingGet( { url=>"192.168.0.140:80/Fauf", callback=>sub($$$) { my ($hash, $err, $data) = @_;; Log 1, "$err/$data" } }) }


192.168.0.140:80/Fauf: malformed or unsupported URL hat mich auf ein fehlendes < http:// >

Richtig ist: url=>"http://192.168.0.140:80/Fauf"

somit =
http://192.168.0.140:80/Fauf: empty answer received/

alles bestens jetzt dank des Tipps Verbose 5 auf das notify. Manchmal sieht man den Wald vor lauter Bäumen nicht