[Gelöst] HttpUtils_NonblockingGet

Begonnen von tgv_boost, 24 Mai 2020, 21:37:41

Vorheriges Thema - Nächstes Thema

tgv_boost

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

JoWiemann

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
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

tgv_boost

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.


amenomade

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/
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tgv_boost

#4
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