Chamberlain MyQ Binding

From a quick glace it looks like the status sent back is slightly different than what the binding is expecting?

I created a new openhab 1.x JAR file with some fixes for the API changes. You will have to manually install the JAR to your addon folder.

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

3 Likes

Thanks for the fixes. I think I can control the garage, but I see the same errors over and over

22:14:16.191 [WARN ] [che.commons.httpclient.HttpMethodBase] - Cookie rejected: "$Version=0; TS01fb5e53=011207433a93bffd0518c165826549aec76d9dbc3d4ed20e4e402dae5d34eac8f86b401af735d0065908686e10e2e6c5bcca302439ab1cee11c3e37490af073ae3389ddab9; $Path=/; $Domain=.myqexternal.myqdevice.com". Illegal domain attribute ".myqexternal.myqdevice.com". Domain of origin: "myqexternal.myqdevice.com"
22:14:16.192 [DEBUG] [ab.binding.myq.internal.MyqDeviceData] - Chamberlain MyQ Devices:
22:14:16.193 [DEBUG] [penhab.binding.myq.internal.MyqDevice] - GarageDoorOpener DeviceID: xxxxxx DeviceType: GarageDoorOpener Doorstate : 2
22:14:16.194 [DEBUG] [penhab.binding.myq.internal.MyqDevice] - GarageDoorOpener DeviceID: yyyyyy DeviceType: GarageDoorOpener Doorstate : 2
22:14:48.377 [ERROR] [org.openhab.io.net.http.HttpUtil     ] - Fatal transport error: java.net.SocketException: Connection reset
22:14:48.378 [ERROR] [enhab.binding.myq.internal.MyqBinding] - Could not connect to MyQ service
java.io.IOException: Null response from MyQ server
        at org.openhab.binding.myq.internal.MyqData.request(MyqData.java:217) ~[276:org.openhab.binding.myq:1.13.0]
        at org.openhab.binding.myq.internal.MyqData.getMyqData(MyqData.java:128) ~[276:org.openhab.binding.myq:1.13.0]
        at org.openhab.binding.myq.internal.MyqBinding.poll(MyqBinding.java:210) [276:org.openhab.binding.myq:1.13.0]
        at org.openhab.binding.myq.internal.MyqBinding.access$0(MyqBinding.java:202) [276:org.openhab.binding.myq:1.13.0]
        at org.openhab.binding.myq.internal.MyqBinding$1.run(MyqBinding.java:407) [276:org.openhab.binding.myq:1.13.0]
        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) [?:?]

Will you have an updated 2.x jar coming shortly?

slvr530i if you clear the cache and tmp files and restart those errors will go away since they are from the 1.13.0 version of the jar.

I build the 2.x binding and added it to my google drive. I am still working on updating the Eclipse Marketplace.

Thanks,
Scott

https://drive.google.com/open?id=1Na6KpJ04j4YMo8yS-O0giCmrMrH4awMJ

1 Like

I installed it and now I’m seeing this:
02%20AM
Is this part of Chamberlain’s maintenance?

Im having the same issues, going to give it a few days and see what happens. Its a PIA as my door triggers the lights via a rule!

I would force remove your MyQ things from the paper UI, including your gateway, clear the cache, then readd the gateway and then add your devices back. The gateway will probably have a new thingID you you will have to relink your channels.

Thanks,
Scott

Thanks Scott for your quick replies and quick work

Just curious
What was the change in the API
I tried to find out what the change was but couldn’t find anything

Two years ago they added new web endpoints and the URL’s are all camelcase now and I updated the login web request code and and “send command” code to use the new URL back then. I didn’t update the URL for the “update status” web request and it is/was still using the previous URL that was all lower case. When I changed the URL to the newer camelcase URL and updated the appID and the binding started working again. They must of removed the older all lower case endpoints. I don’t know if changing the appID was necessary, but I just copied what Home Assistant is using.

Thanks,
Scott

I [quote=“tebore, post:288, topic:4192”]
Anyone having the same problem?
[/quote]

Yes but min has been showing things in the logs more than today. I can say today that I was not able to open the garage door while on myopenhab, but when in the garage and on my home network I was able to close it. If that matters. Logs are loaded with:

Caused by: java.io.EOFException: HttpConnectionOverHTTP@5566aa97(l:/192.168.0.50:41938 ↔ r:myqexternal.myqdevice.com/65.166.252.145:443,closed=false)=>HttpChannelOverHTTP@4d281933(exchange=HttpExchange@3e0f16db req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@39966cac(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@3a568973{s=START}],recv=HttpReceiverOverHTTP@37bafe8b(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]<-DecryptedEndPoint@71c59f69{myqexternal.myqdevice.com/65.166.252.145:443<->/192.168.0.50:41938,OPEN,fill=-,flush=-,to=22/0}->HttpConnectionOverHTTP@5566aa97(l:/192.168.0.50:41938 ↔ r:myqexternal.myqdevice.com/65.166.252.145:443,closed=false)=>HttpChannelOverHTTP@4d281933(exchange=HttpExchange@3e0f16db req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@39966cac(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@3a568973{s=START}],recv=HttpReceiverOverHTTP@37bafe8b(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]->SocketChannelEndPoint@7bbc6ef1{myqexternal.myqdevice.com/65.166.252.145:443<->/192.168.0.50:41938,ISHUT,fill=-,flush=-,to=29/0}{io=0/0,kio=0,kro=1}->SslConnection@75af7de4{NEED_WRAP,eio=-1/-1,di=-1}=>HttpConnectionOverHTTP@5566aa97(l:/192.168.0.50:41938 ↔ r:myqexternal.myqdevice.com/65.166.252.145:443,closed=false)=>HttpChannelOverHTTP@4d281933(exchange=HttpExchange@3e0f16db req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@39966cac(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@3a568973{s=START}],recv=HttpReceiverOverHTTP@37bafe8b(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:338) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1557) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:209) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:147) ~[?:?]
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:155) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:291) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:151) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) ~[?:?]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) ~[?:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) ~[?:?]
… 1 more

Thanks

JR

Also new 2.5 snapshot not working for me:

2019-02-28 16:58:31.674 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/usr/share/openhab2/addons/org.openhab.binding.chamberlainmyq-2.5.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.chamberlainmyq [14]
Unresolved requirement: Import-Package: com.google.common.collect

    at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]
    at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [10:org.apache.felix.fileinstall:3.6.4]
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]

I’m going to have to revert. Now the website won’t even come up.

Edit: reverted and put the 2.5 back again but now getting a really long thing I can’t fully copy:

2019-02-28 17:10:49.427 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while calling thing handler factory ‘org.openhab.binding.chamberlainmyq.internal.ChamberlainMyQHandlerFactory@794b5f09’: null
java.lang.NullPointerException: null
at org.openhab.binding.chamberlainmyq.config.ChamberlainMyQDeviceConfig.(ChamberlainMyQDeviceConfig.java:49) ~[?:?]
at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQHandler.(ChamberlainMyQHandler.java:59) ~[?:?]
at org.openhab.binding.chamberlainmyq.handler.ChamberlainMyQDoorOpenerHandler.(ChamberlainMyQDoorOpenerHandler.java:46) ~[?:?]
at org.openhab.binding.chamberlainmyq.internal.ChamberlainMyQHandlerFactory.createHandler(ChamberlainMyQHandlerFactory.java:54) ~[?:?]
at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:128) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.doRegisterHandler(ThingManagerImpl.java:600) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerHandler(ThingManagerImpl.java:581) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:1073) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.lambda$10(ThingManagerImpl.java:1056) ~[?:?]
at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891) ~[?:?]
at java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:404) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.lambda$9(ThingManagerImpl.java:1053) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) [?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) [?:?]
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) [?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) [?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) [?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) [?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) [?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) [?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.handleThingHandlerFactoryAddition(ThingManagerImpl.java:1052) [109:org.eclipse.smarthome.core.thing:0.10.0.oh240]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.addThingHandlerFactory(ThingManagerImpl.java:1023) [109:org.eclipse.smarthome.core.thing:0.10.0.oh240]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.inject.methods.BindMethod.invoke(BindMethod.java:42) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1809) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1784) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:409) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:333) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:302) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [39:org.apache.felix.scr:2.1.2]

JR

Cool
Again thanks for getting on it so fast

  1. Force remove all your MyQ related Things.
  2. Remove the binding from the binding menu if you used paperui to install binding otherwise skip.
  3. Stop OH2.
    4 Clear cache by deleting the files and folders under tmp and cache.
  4. Place the new 2.5SS jar in to the addon folders.
  5. Restart OH2.
  6. Manually Add your gateway
  7. Do a search and all your lights and garage openers should be detected.

Your gateway has a new ThingID. Update your items files respectively with it.

JT, that is not really great. I know every time I’ve cleared the cache my system never comes back again. Including this time, which fortunately I’m running VM and can revert to a prior snapshot. Once I clear the cache it’s like a festival of missing stuff that starts complaining in the logs.

Thanks.

JR

What is the location of the addons folder on an Ubuntu system? /usr/share/openhab2/addons doesn’t have any jar files.

Has anyone managed to get this working again? If so, what version of Openhab and what version of the binding worked?

Thanks

It’s working for me.

I’m running the following:

  • openHAB snapshot build 1502
  • MyQ binding version 2.5.0.201902280358 (from this post above)

I deleted (Force Removed) all my existing MyQ things (Gateway and Garage Door), then readded them.

One odd thing I noticed… It added 2 Garage Door things to the inbox yet I have only one opener…

2 Likes