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

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
mercury
Beiträge: 1
Registriert: 9. Jun 2020 12:28

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

Beitrag 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

J-N-K
Beiträge: 126
Registriert: 20. Jun 2020 12:21
Answers: 4
Wohnort: Gelsenkirchen, NRW

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

Beitrag von J-N-K »

Was steht denn im Log auf der anderen Seite? 404 ist ja eine Fehlermeldung, die der Server sendet.
openHAB 4.0.0-SNAPSHOT - - local build -
APU2, 4GB RAM, 32GB SSD, Debian Buster
openHAB Core/Distro/Addons & SmartHome/J Maintainer

dirkabel
Beiträge: 40
Registriert: 2. Mai 2022 12:35

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

Beitrag von dirkabel »

Wäre das nicht überhaupt eher GET als POST?

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

Benutzeravatar
udo1toni
Beiträge: 13859
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Kann es sein, dass Du an der Base URL noch einen Slash (/) ergänzen musst?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

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

Beitrag 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.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Antworten