Hello there, I am writing here to report an issue I am having with the D-Link DCH-S150 WiFi motion sensor and the dlinksmarthome
binding: every time I create the DCH-S150
Thing, I get the following error in the logs (I set to Trace the verbosity of the org.openhab.binding.dlinksmarthome
logger):
openhab.log
12:55:37.900 [DEBUG] [thome.internal.DLinkHNAPCommunication] - login - Communication error
java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[bundleFile:9.4.54.v20240208]
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[bundleFile:9.4.54.v20240208]
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:732) ~[bundleFile:9.4.54.v20240208]
at org.openhab.binding.dlinksmarthome.internal.DLinkHNAPCommunication.sendReceive(DLinkHNAPCommunication.java:446) ~[bundleFile:?]
at org.openhab.binding.dlinksmarthome.internal.DLinkHNAPCommunication.login(DLinkHNAPCommunication.java:327) [bundleFile:?]
at org.openhab.binding.dlinksmarthome.internal.motionsensor.DLinkMotionSensorCommunication.login(DLinkMotionSensorCommunication.java:301) [bundleFile:?]
at org.openhab.binding.dlinksmarthome.internal.motionsensor.DLinkMotionSensorCommunication$1.run(DLinkMotionSensorCommunication.java:135) [bundleFile:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.eclipse.jetty.client.AuthenticationProtocolHandler$AuthenticationListener.onComplete(AuthenticationProtocolHandler.java:164) ~[?:?]
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:218) ~[?:?]
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:210) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:481) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:461) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:424) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:374) ~[?:?]
at org.eclipse.jetty.http.HttpParser.handleContentMessage(HttpParser.java:596) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1723) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1552) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:208) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:148) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:80) ~[?:?]
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:131) ~[?:?]
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:172) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[?:?]
... 1 more
12:55:37.907 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'dlinksmarthome:DCH-S150:movimento_sala' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR)
12:55:40.397 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'dlinksmarthome:DCH-S150:movimento_sala' changed from OFFLINE (COMMUNICATION_ERROR) to UNINITIALIZED
The DCH-S150 devige I have is an EU version, hardware revision A1, and I tried with both the factory firmware version 1.06, the first available firmware version 1.03 and the latest available one, version 1.07: in all cases I get the same error and the OpenHAB Thing remains not initialized.
I connected the device to a 2.4GHz access with WPA2-PSK security through the WPS procedure, since it is not possible anymore to use the app for provisioning; in this regard, I went as far as retrieving an old APK and installing it on an Android 10 device, but the backend online services that the provisionig relies on are supposedly offline.
I also tried the local provisioning of the device through the Python script defogger-dch-s150, but that didn’t work either for the same WPA2-PSK access point nor for an open access point network I created to validate the suggestion of the author in case the connection to a password protected network didn’t work (and still didn’t connect to an open WiFi network).
To any (if there are still) users of this device I ask, how are you provisioning your device?
If anyone has more insight on how to debug the binding, I am available to make some more testing
EDIT: I did not point out that after each firmware upgrade or downgrade, I tried whitout and with factory resetting the device.