Chamberlain MyQ Binding

I have been building against the trunk so I have a 2.3 snapshot version as well. I was assuming most people are still running 2.2 so I posted the JAR for it. Below is a link to the 2.3 snapshot if interested.

Thanks,
Scott

https://drive.google.com/file/d/1NTQnz0B0-GMVIsamm6TOBIzqLB5SlWMD/view?usp=sharing

1 Like

Thanks for that 2.3 jar. Discovery is working now. :+1:

Hello, on my side, something has stopped working. Happy openhab myq customer where 90% of the time the door opening trigger work with openhab. But for an unknown reason, the past 3 days or so, I can’t trigger it open. I can read all value no problem, but if I trigger a door open, nothing happen. I had to rely on the clunky myq apps. Am I the only one with the issue? I haven’t changed anything except added persistence to my server, but I’m seeing error when trying to open the door in the log.

Thank you

I installed the 2.3 jar which didn’t work for me so I removed it. However, I still get the following in openhab.cfg; how do I remove these log comments?

2018-04-20 13:50:17.716 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports zwave:ge_zw1001_00_000
2018-04-20 13:50:17.726 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports zwave:ge_ge14291_00_000
2018-04-20 13:50:17.732 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports ntp:ntp
2018-04-20 13:50:17.737 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports zwave:ge_14288_00_000
2018-04-20 13:50:17.744 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports zwave:ge_ge14291_00_000
2018-04-20 13:50:17.750 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports zwave:ge_zw1001_00_000
2018-04-20 13:50:17.771 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports weatherunderground:weather

Thanks

Timeouts on calls to the MyQ server generate a lengthy exception in the logs. As timeouts seems to happen pretty often, I would argue that a single log entry at info level would seem to be sufficient.

2018-04-21 06:47:05.140 [ERROR] [handler.ChamberlainMyQGatewayHandler] - Requesting URL Failed
java.io.IOException: java.util.concurrent.TimeoutException
	at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:157) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.request(ChamberlainMyQGatewayHandler.java:410) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.getMyqData(ChamberlainMyQGatewayHandler.java:188) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.refreshDeviceState(ChamberlainMyQGatewayHandler.java:296) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.lambda$1(ChamberlainMyQGatewayHandler.java:286) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.util.concurrent.TimeoutException
	at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:109) ~[?:?]
	at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:676) ~[?:?]
	at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:140) ~[?:?]
	... 11 more
2018-04-21 06:47:05.146 [ERROR] [handler.ChamberlainMyQGatewayHandler] - An exception occurred while executing a request to the Gateway: 'null'

Also, I see these log entries pretty regularly. Being a fan of ā€˜less is better’ in the logs, I’d also argue to make these DEBUG level. :slight_smile:

2018-04-21 06:35:26.802 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports unifi:client
2018-04-21 06:35:26.803 [INFO ] [nternal.ChamberlainMyQHandlerFactory] - Checking if the factory supports unifi:client

The second exception I think the binding is trying to parse the response after the timeout. I will try to fix that.

@scooter_seh Hi there, thank you for the updated add-on. do you know when it will be merged to the repo so we can install thru paper ui?

Hi,

Can I have a copy of a working JAR file please?

I have tried a few different versions, and none of these seem to work :frowning:

I think Chamberlain changed something again. The binding doesn’t work but the app does.

Anyone else having the same problem?

I am running the 1.x binding and it still works for me. Are you using the 2.2 or something else?

Myself I’m on the 2.2 binding and it also stopped working just recently. ā€œCould not connect to MyQ serviceā€
-edit- I am getting errors in the logs, but I can open and close the garage door as well as get status updates when it is opened and closed.

A couple hours after I posted it started to work again.
I was scared Chamberlain changed their API again

Is there documentation anywhere for the 2.2 or 2.3 binding. I generally like to create my own things and items files just to make it easier to write rules. Not to mention faster to add a large number of items and things vs PaperUI

@scooter_seh I started seeing a lot of these exceptions in my logs. It seems like once these errors start, they occur every 30 seconds and they don’t stop. There are so many of them that I had to uninstall the binding. Any idea what might be causing this?

I know there have been several changes to HttpUtil over the last several weeks. I’m running the latest opeHAB build (1312) containing the most recent ESH stable build from July 8.

2018-07-15 20:01:08.602 [ERROR] [handler.ChamberlainMyQGatewayHandler] - Requesting URL Failed
java.io.IOException: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@153afa8b(l:/192.168.10.34:49270 <-> r:myqexternal.myqdevice.com/68.177.15.145:443,closed=false)[HttpChannelOverHTTP@1bfd165c(exchange=HttpExchange@1fc291fb req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@5ac01c67(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@186c5b16{s=START}],recv=HttpReceiverOverHTTP@6bd0e1b1(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of 0}]]]
	at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:157) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.request(ChamberlainMyQGatewayHandler.java:410) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.getMyqData(ChamberlainMyQGatewayHandler.java:188) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler$Request.run(ChamberlainMyQGatewayHandler.java:255) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQGatewayHandler.sendRequestToServer(ChamberlainMyQGatewayHandler.java:275) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQHandler.ReadDeviceState(ChamberlainMyQHandler.java:142) ~[?:?]
	at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQDoorOpenerHandler.channelLinked(ChamberlainMyQDoorOpenerHandler.java:59) ~[?:?]
	at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@153afa8b(l:/192.168.10.34:49270 <-> r:myqexternal.myqdevice.com/68.177.15.145:443,closed=false)[HttpChannelOverHTTP@1bfd165c(exchange=HttpExchange@1fc291fb req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@5ac01c67(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@186c5b16{s=START}],recv=HttpReceiverOverHTTP@6bd0e1b1(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of 0}]]]
	at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[?:?]
	at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:110) ~[?:?]
	at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:676) ~[?:?]
	at org.openhab.binding.chamberlainmyq.internal.HttpUtil.executeUrl(HttpUtil.java:140) ~[?:?]
	... 14 more
Caused by: java.io.EOFException: HttpConnectionOverHTTP@153afa8b(l:/192.168.10.34:49270 <-> r:myqexternal.myqdevice.com/68.177.15.145:443,closed=false)[HttpChannelOverHTTP@1bfd165c(exchange=HttpExchange@1fc291fb req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@5ac01c67(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@186c5b16{s=START}],recv=HttpReceiverOverHTTP@6bd0e1b1(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of 0}]]]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:300) ~[?:?]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1392) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:185) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:132) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:70) ~[?:?]
	at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:90) ~[?:?]
	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:115) ~[?:?]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:251) ~[?:?]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) ~[?:?]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) ~[?:?]
	... 1 more
2018-07-15 20:01:08.613 [ERROR] [handler.ChamberlainMyQGatewayHandler] - An exception occurred while executing a request to the Gateway: 'null'

I created a copied of the httputils class and made my own version with a different web client id to spoof the iOS app. Maybe something changed in the dependencies that broke something. My main install still uses the 1.x binding and I have notices in my logs lots of exceptions too. I thing Chamberlian may be changing stuff too. I will try to see if I can find anything out.

I noticed that in the last couple days Chamberlain has been doing something on their end to reject certain connections. I just hope they aren’t trying to crack down on our unauthorized used of their API. They’re charging users $1 a month in certain cases.

I had the same errors flooding my logs, then a day later it stopped, so I assumed Chamberlain started to respond again.

Maybe it has something to do with this:

You’re probably right. $10 for a year is not too bad. OTOH, I’ve been pretty unimpressed with the reliability of their service. I hate paying for stuff that doesn’t work well.

I feel the same way as well. I would give it a try and if the service continued to be unreliable, I would roll my own arduino with a magnetic switch and a relay to control the door.
Even just recently, the MyQ binding has reported the garage door as open when it is really closed. Openhab sends me a text when it has been open longer than half an hour.

My Openhab installation will not control the garage doors as of 2 days ago. I assume Chamberlain changed something (again) to prevent third party usage. The MyQ app still works. If anyone has any advise to get this to work I would appreciate it. If not, is there a garage door opener that does not rely on a cloud service? I was thinking Insteon but their binding was broke a few weeks ago when an upgrade was pushed. Granted they were very fast to fix it but I’m becoming very leary of anything that is not 100% local control.

1 Like