Chamberlain MyQ Binding

so that means if I have 2.5 openhab, I can’t use the new one right? Cause right now, my log is spammed with error and and I can’t control my garagedoor in the last 24h or so

2020-12-19 11:53:01.551 [ERROR] [handler.ChamberlainMyQGatewayHandler] - Requesting URL Failed
java.io.IOException: java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
        at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:148) ~[?:?]
        at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.request(ChamberlainMyQGatewayHandler.java:415) ~[?:?]
        at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.getMyqData(ChamberlainMyQGatewayHandler.java:251) ~[?:?]
        at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.refreshDeviceState(ChamberlainMyQGatewayHandler.java:331) ~[?:?]
        at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.lambda$0(ChamberlainMyQGatewayHandler.java:321) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_265]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_265]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_265]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_265]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
Caused by: 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) ~[?:?]
        at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[?:?]
        at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:685) ~[?:?]
        at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:128) ~[?:?]
        ... 11 more
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:163) ~[?:?]
        at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:198) ~[?:?]
        at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:190) ~[?:?]
        at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:444) ~[?:?]
        at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:390) ~[?:?]
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:316) ~[?:?]
        at org.eclipse.jetty.http.HttpParser.handleContentMessage(HttpParser.java:574) ~[?:?]
        at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1644) ~[?:?]
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1490) ~[?:?]
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:172) ~[?:?]
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:135) ~[?:?]
        at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73) ~[?:?]
        at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133) ~[?:?]
        at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:154) ~[?:?]
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[?:?]
        at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426) ~[?:?]
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320) ~[?:?]
        at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158) ~[?:?]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[?:?]
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[?:?]
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) ~[?:?]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) ~[?:?]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) ~[?:?]
        ... 1 more
2020-12-19 11:53:01.559 [ERROR] [handler.ChamberlainMyQGatewayHandler] - An exception occurred while executing a request to the Gateway: 'null'

it is only built for OH3 for which RC1 is available now, and RC2 will be out very shortly.

java.io.IOException: java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:148) ~[?:?]
at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.request(ChamberlainMyQGatewayHandler.java:415) ~[?:?]

This is referencing another binding (chamberlainmyq), not the one i posted, but that Jetty exception is familiar to me, it is thrown if the credentials are not right, or if the token being used is no longer valid .

It is the 2.5.0 snapshot I downloaded from here. I just updated my docker to 2.5.11 from 2.5.10, using now the version that came with 2.5.11 which is 2.5.0.20xxxx and now it’s working. Is there a different myq binding? It is the one from Scott Hanson and posted by scooter_seh on this thread on may 6. Do we have more then one bindings now cause I’ll I see are 1.x bindings in paperui addons browser

I have downloaded the 3.0 version. This is working great on my single door. Sorry I do not have any lights to test.

Hello,
I am a bit confused as to where to put the 3.0 binding. The only add-on file I have is located under /tmp/kar/openhab-addons-3.1.0-snapshot.
Is this where I place the Chamberlin 3.0 binding?
I put it there but I do not find it in the discovery and don’t see any reference to it in the fronttail log.
Thank you in advance for any help you can provide.

/usr/share/openhab/addons

I can’t seem to find a link to the new jar file above… is there a new link?

It looks like it’s now:
https://github.com/digitaldan/openhab-addons/releases/download/myq-wip-1/org.openhab.binding.myq-3.1.0-SNAPSHOT.jar

2 Likes

Cool, thanks. I rooted around the GitHub but couldn’t locate it…

Thanks for the work on this binding. Unfortunately, I’m having difficulty establishing a connection with the myq servers. When I setup the bridge thing, it remains offline. Here is the only message that I’m seeing in the openHAB logs:

2021-01-02 20:21:52.500 [TRACE] [q.internal.handler.MyQAccountHandler] - Sending POST to https://api.myqdevice.com/api/v5/Login

2021-01-02 20:21:53.017 [TRACE] [q.internal.handler.MyQAccountHandler] - Account Response - status: 0 content: null

I did a packet capture on the traffic. It negotiates with the myq server, processes a key exchange, then fails with a “Certificate Unknown” error:

57 4.689685 192.168.1.2 40.71.237.40 TLSv1.2 73 Alert (Level: Fatal, Description: Certificate Unknown)

This behavior is the same in both the 3.0.0 and 3.1.0 snapshots. I have confirmed my credentials in the binding, and I can login via the iOS myq app. Any guidance would be appreciated. Thanks in advance.

I have no issues on 3.1.0-S2112. Please make sure your OS has updated certificate packages installed for trusted roots. They may have spun the cert recently.

Thanks for the suggestion. This is running on Ubuntu 20.04 with openjdk-11. The latest ca-certificates and ca-certificates-java packages are installed. I ensured that all certs are current via update-ca-certificates --fresh, but I’m still seeing the same authentication failures.

I am using this binding and can confirm it is working properly. Bridge was added fine, but it took an Openhab restart to discover door thing (as noted above in another post, restart became longer with binding installed). On closing, the door starts beeping and doesn’t move. I hastily pressed manual close on wall mount and it closed. Quick research shows that the beeping is normal as closing the door from a “remote source” calls for the beeping as a safety measure. So my error.

I haven’t tested lamp as my wall mount has a motion sensor to turn on light, and I have a motion sensor in the garage to turn on overhead lights. So not really needed.

I am also experiencing this exact HomeKit issue. Otherwise all is working great.

i didn’t have tested this binding but the “original” one. For sure Homekit integration is almost the same adventure… but i get i work.

first of all please check if the binding have a switch for obstruction status (orig binding don’t show ths status, therefore i’ve created a simple switch, be sure it is off)

assign home kit as follow

  • main object garagedooropener:
    value: GarageDoorOpener
    config: {}

  • switch garagedooropener:
    value: GarageDoorOpener.TargetDoorState
    config: {}

  • string doorStatusGarage:
    value: GarageDoorOpener.CurrentDoorState
    config: {}

  • switch obstructionStatus:
    value: GarageDoorOpener.ObstructionStatus
    config: {}

IMHO not mandatory:

  • garagedoorName:
    value: GarageDoorOpener.Name
    config: {}

DON’T ASSIGN HOMEKIT PROPERTIES TO OTHER ENTITIES!

What am I missing?

I see the bundle active in the console:

271 │ Active │  80 │ 3.1.0.202012291805      │ openHAB Add-ons :: Bundles :: MyQ Binding

but I don’t get anything in the logs for MyQ and the items are not working…

Did a 3.0 upgrade over the holiday and wife is a bit annoyed at everything that’s not yet fixed…

I didn’t have a bridge configured per this post…

so I’m recreating the bridge thing in the UI and then re-discovering items…

Just an FYI, the new binding has a different thing and bridge structure than the previous ones in this thread. You add an “Account” bridge, and then it has child “GarageDoor” and “Lamp” things. See the README for more info. Once you add the “Account” bridge it should be straightforward from there.

Still unable to get the binding to connect. I’ve cleared openHAB cache and restarted the service to no avail. My situation appears to be unique, so I’m assuming that I have something configured wrong somewhere. I’m out of ideas on what to try next. Happy to provide any additional information that would help with troubleshooting.

I’m not able to use the binding for the last 2 days either (I have not done any upgrades for the last 6 months. The error in the log says:

2021-01-06 19:11:48.240 [ERROR] [handler.ChamberlainMyQGatewayHandler] - Could not parse response

java.lang.NumberFormatException: For input string: “500.000”

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_222]

at java.lang.Integer.parseInt(Integer.java:580) ~[?:1.8.0_222]

at java.lang.Integer.parseInt(Integer.java:615) ~[?:1.8.0_222]

at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.request(ChamberlainMyQGatewayHandler.java:440) ~[?:?]

at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.getMyqData(ChamberlainMyQGatewayHandler.java:251) ~[?:?]

at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.refreshDeviceState(ChamberlainMyQGatewayHandler.java:331) ~[?:?]

at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.lambda$0(ChamberlainMyQGatewayHandler.java:321) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_222]

at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_222]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_222]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_222]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

2021-01-06 19:11:48.243 [ERROR] [handler.ChamberlainMyQGatewayHandler] - An exception occurred while executing a request to the Gateway: ‘null’