Seite 1 von 1

Problem mit OH3 http Binding: Log gibt WARN aus für method='POST' 404 not found

Verfasst: 28. Jul 2021 15:38
von mercury
Hallo zusammen,

vorab schon mal vielen Dank für alle die sich mein Problem hier überhaupt anschauen.
Zuerst die gute Nachricht: Regel und Binding funktionieren so wie sie sollen - ich erhalte nur im openHAB Log folgenden Fehler:

Code: Alles auswählen

[WARN ] [p.internal.http.HttpResponseListener] - Requesting 'http://192.168.169.21/100' (method='POST', content='org.eclipse.jetty.client.util.StringContentProvider@168cab1') failed: 404 Not found 
Ich habe ein Web-Relais, das über http angesprochen wird: http://192.168.169.21/101 = ON und http://192.168.169.21/100 = OFF. Diese sende ich wie schon bei openHAB2 per POST über das http-Binding. Da ich Anfänger und Gewohnheitstier bin, habe ich das OH3 http Binding über die alte Text .things wie folgt eingebunden:

Code: Alles auswählen

Thing http:url:G_Relay "Relais Elektroraum" [ baseURL="http://192.168.169.21" commandMethod="POST"] {
	Channels:
		Type switch : G_Relay1   "Garagentor"   [ onValue="101", offValue="100", commandExtension="%2$s" ]
} 
Die .items sind so eingebunden:

Code: Alles auswählen

Switch G_Relay1    "Garage"         { channel="http:url:G_Relay:G_Relay1" } // Garagentor
Switch Garage 
Da ich für das Garagentor nur einen kurzen (ca. 1 Sekunde) Kontakt (ON > 1 Sek. > OFF) brauche hier die Regel .rules:

Code: Alles auswählen

rule
when
Item Garage received command
then
// sendBroadcastNotification("Garage door energised")
G_Relay1.sendCommand(ON)
logInfo("RULE", "--> Garagentuere wird geoeffnet/geschlossen")
Thread::sleep(1500)
G_Relay1.sendCommand(OFF)
Garage.postUpdate(OFF)
end 
...und immer wenn ich das Relais auslöse, erscheint im Log, wie schon ober geschrieben:

Code: Alles auswählen

[WARN ] [p.internal.http.HttpResponseListener] - Requesting 'http://192.168.169.21/100' (method='POST', content='org.eclipse.jetty.client.util.StringContentProvider@168cab1') failed: 404 Not found 
Wo ist mein Fehler?

Vielen Dank im Voraus für Eure Mühe!
Grüße, mercury

Re: Problem mit OH3 http Binding: Log gibt WARN aus für method='POST' 404 not found

Verfasst: 5. Mai 2022 16:50
von J-N-K
Was steht denn im Log auf der anderen Seite? 404 ist ja eine Fehlermeldung, die der Server sendet.

Re: Problem mit OH3 http Binding: Log gibt WARN aus für method='POST' 404 not found

Verfasst: 5. Mai 2022 23:11
von dirkabel
Wäre das nicht überhaupt eher GET als POST?

Wenn das mit dem 100/101 so im Browser funktioniert, ist es GET.

Re: Problem mit OH3 http Binding: Log gibt WARN aus für method='POST' 404 not found

Verfasst: 6. Mai 2022 09:35
von udo1toni
Kann es sein, dass Du an der Base URL noch einen Slash (/) ergänzen musst?

Re: Problem mit OH3 http Binding: Log gibt WARN aus für method='POST' 404 not found

Verfasst: 6. Mai 2022 17:50
von peter-pan
...ohne jetzt viel vom HTTP-Binding zu verstehen :oops: (hab's nur in einem speziellen Fall im Einsatz). Ich hab mir einfach mal deine .things-Datei in VSC geladen und gleich eine Fehlermeldung bekommen. Ich habe dann einfach mal auf's Geratewohl ein Komma vor commandMethod="POST" gesetzt und der Fehler war weg.

Code: Alles auswählen

Thing http:url:G_Relay "Relais Elektroraum" [ baseURL="http://192.168.169.21/", commandMethod="POST"] {
	Channels:
		Type switch : G_Relay1   "Garagentor "   [ onValue="101", offValue="100", commandExtension="%2$s" ]
}
Ich bekomme jetzt zwar eine andere Fehlermeldung im Logger

Code: Alles auswählen

2022-05-06 17:45:52.885 [WARN ] [p.internal.http.HttpResponseListener] - Requesting 'http://192.168.169.21' (method='GET', content='null') failed: java.util.concurrent.TimeoutException: Total timeout 3000 ms elapsed
Aber ich vermute mal, das hat damit zu tun, dass es die URL bei mir nicht gibt.