Seite 1 von 1

SendHttpGetRequest Fehlermeldung

Verfasst: 29. Jan 2026 19:27
von MountainHarry
Hallo,
kämpfe schon eine ganze Weile mit der Steuerung eines OSPI (Open Sprinkler) auf Basis eines ESP32. Dabei mußte ich für die Steuerung eines Wasserlevelsensors die API erweitern => OSPI binding geht nicht. HTTP- binding macht auch Probleme, wenn ich channels mit Lesen/Schreiben versuche. Lesen allein klappt problemlos. Jetzt hatte ich die Idee, das Setzen von Parametern in OSPI einfach :lol: in einer rule mit Java Script zu erledigen.

var output = actions.HTTP.sendHttpGetRequest("http://192.168.188.91/co?pw=xxxx&ciscl= ... 140",10000);

ciscl und ciswl sind meine Erweiterungen zur OSPI-API. Über den Browser: kein Problem, aber über das script:

2026-01-29 18:56:16.470 [ERROR] [enhab.core.model.script.actions.HTTP] - Fatal transport error: java.util.concurrent.ExecutionException: java.io.EOFException: @d4ae73::SocketChannelEndPoint@2dcd20{l=/192.168.188.68:35194,r=/192.168.188.91:80,ISHUT,fill=-,flush=-,to=73/0}{io=0/0,kio=0,kro=1}->@d4ae73(l:/192.168.188.68:35194 <-> r:/192.168.188.91:80,closed=false)=>@383596(exchange=HttpExchange@721046{req=HttpRequest[GET /jo HTTP/1.1]@1d0928d[TERMINATED/null] res=HttpResponse[null 0 null]@1e2085a[PENDING/null]})[send=HttpSenderOverHTTP@af04b5(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@53d206{s=START}],recv=CustomHttpReceiverOverHTTP@10a6b3b(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

Leider habe ich nicht wirklich Ahnung von HTTP ... Ich vermute, es könnte irgendwie mit einem "Zertifikat" zusammenhängen, aber ich habe keinen Plan. Wäre super, ihr hättet eine Idee, wie es gehen könnte.

Re: SendHttpGetRequest Fehlermeldung

Verfasst: 29. Jan 2026 20:39
von Harka
Moin,
Versuch mal

Code: Alles auswählen

var output =actions.HTTP.sendHttpGetRequest('http://192.168.188.91:80/co?' + encodeParams({'pw': 'xxxx', 'ciscl': '1', 'ciswl': '140'}), 10000);
Mein Suchergebnis - Ahnung habe ich auch nicht.
Open Sprinkler kann doch auch MQTT. Ist das keine Option für Dich?

Re: SendHttpGetRequest Fehlermeldung

Verfasst: 29. Jan 2026 21:09
von MountainHarry
Danke für die schnelle Antwort. Leider: EncodeParams not definied.
MQTT wäre noch eine neue, mir unbekannte Baustelle.

Re: SendHttpGetRequest Fehlermeldung

Verfasst: 29. Jan 2026 21:40
von Harka
Sorry, Lösung war mit Hilfe von Blockly entstanden und ich habe die folgende Funktion übersehen.

Code: Alles auswählen

 function encodeParams(params) {
    if ((typeof params === 'string') || (params instanceof String)) return params;
    const encodedParams = Object.entries(params).map(([key, value]) => [key, encodeURIComponent(value)]);
    return encodedParams.map(p => p.join('=')).join('&');
}

Re: SendHttpGetRequest Fehlermeldung

Verfasst: 29. Jan 2026 21:46
von oh73
ich mache viel mit sendHttpGetRequest, allerdings ohne actions.HTTP. davor.

Hilfsreich, funktioniert besser wenn ich den Befehl vorher in eine Variable schreibe.

ein Beispiel von mir ,

Code: Alles auswählen

	
	var tempwz1senden = "http://192.168.178.23/command?XC_FNC=SendSC&type=HM&data=43D5210111"+sollhexWz1
	sendHttpGetRequest (tempwz1senden,newHashMap("Authorization" -> "Basic", "Content-Type" -> "text/html", "ignoreSSLErrors" -> "true" , "WWW-Authenticate"-> "Basic"),11000)
was mir bei deinem Befehl aufgefallen ist, du gibst ein Passwort an aber keinen Benutzer! ist das richtig?

Re: SendHttpGetRequest Fehlermeldung

Verfasst: 30. Jan 2026 12:39
von MountainHarry
Dachte schon gelöst: :P
Habe den cache gelöscht (installierte bindings nicht mehr angezeigt), restart ...
Und dann ging es so:

Code: Alles auswählen

var result = actions.HTTP.sendHttpGetRequest("http://192.168.188.91/jo?pw=a6d82bced638de3def1e9bbb4983225c");
Manchmal alles ok: result={"result":1, "item":""}

aber leider oft:
2026-01-30 12:51:12.490 [ERROR] [enhab.core.model.script.actions.HTTP] - Fatal transport error: java.util.concurrent.ExecutionException: java.io.EOFException: @dc345a::SocketChannelEndPoint@12d1c45{l=/192.168.188.68:33272,r=/192.168.188.91:80,ISHUT,fill=-,flush=-,to=252/0}{io=0/0,kio=0,kro=1}->@dc345a(l:/192.168.188.68:33272 <-> r:/192.168.188.91:80,closed=false)=>@14d0407(exchange=HttpExchange@551e5b{req=HttpRequest[GET /co HTTP/1.1]@150946f[TERMINATED/null] res=HttpResponse[null 0 null]@3270f4[PENDING/null]})[send=HttpSenderOverHTTP@1282b89(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@1a34eb1{s=START}],recv=CustomHttpReceiverOverHTTP@2b5006(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

Habe noch nicht rausbekommen, wann, weshalb, ...

Re: SendHttpGetRequest Fehlermeldung

Verfasst: 30. Jan 2026 13:39
von MountainHarry
Jetzt gelöst: :lol:
Problem war die gleichzeitige Nutzung des opensprinkler-bindings. Weg damit und keine Probleme mehr.
HTTP-Binding gleichzeitg für regelmäßige Abfrage von Status kein Problem. Ich mache die Kommunikation mit opensprinkler jetzt alles direkt ohne binding.
Vielen Dank für die Unterstützung.