I just went on their website and posted to support to complain nicely and request that they reverse this decision. I explained there are many that found the API very useful and it was a selling point. If you have time it can’t do any harm to request this, maybe if enough people talk to them about it they may change their mind.
I also like the idea of some sort of dns intercept or some way for openhab to spoof commands sent to the device, but that’s way out of my league.
There is chatter and an official response focused towards smartthings on their forum. I replied and requested that they not focus on smartthings and make it more neutral, similar to the way it was.
I got the binding working again with the new v4 API. I created a branch on my github if anyone wants to see the changes. I compiled a JAR file and included a google drive link below. I have successfully tested it with openHAB 1.8.3 and openHAB 2.0. All the item configuration is the same so nothing needs to be updates besides the JAR file. If you have any issues, please let me know.
You have to remove the existing MyQ binding using the PaperUI or addon.cfg depending on how you installed it. Then you have to copy the JAR file to “/usr/share/openhab2/addons” on your pi. If you are using Samba for openhab configuration, this location is normally not accessible remotely. I normally SSH into my pi, stop the openhab service, change directory to the folder mentioned before and use wget to download the binding. I have a hard time using wget with google drive links so I also uploaded the JAR to my web server here. I’ll include all the linux commands below. If you need anymore help please let me know.
Thank @scooter_seh for the work and the instruction. But I still cannot connect to the server (I still use the same myq.cfg, items, sitemap as before). It’s on OH2. Below is the log. It seems like it’s using the right jar (the version number).
I also set
22:11:34.564 [ERROR] [nhab.binding.myq.internal.MyqBinding] - Could not connect to MyQ service
java.io.IOException: Request Failed: Unknow resonse
at org.openhab.binding.myq.internal.MyqData.request(MyqData.java:248)[204:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.login(MyqData.java:144)[204:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.getSecurityToken(MyqData.java:183)[204:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.getMyqData(MyqData.java:128)[204:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding.poll(MyqBinding.java:210)[204:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding.access$0(MyqBinding.java:202)[204:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding$1.run(MyqBinding.java:407)[204:org.openhab.binding.myq:1.10.0.201702210212]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)[:1.8.0_102]
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)[:1.8.0_102]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)[:1.8.0_102]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)[:1.8.0_102]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)[:1.8.0_102]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)[:1.8.0_102]
at java.lang.Thread.run(Unknown Source)[:1.8.0_102]
My setup is different from yours. I am using docker images, and extract openhab to /openhab. The jar is put in /openhab/addons. It throws the exception.
I tried to use
log:set trace openhab.binding.myq
or
log:set trace openhab.binding.myq.internal
but I don’t see any trace regarding the connection. It just shows me the error. Do you have any pointers where I should continue?
If you are running on openHAB 2, you should not be using the myq: prefix. Did you follow the documentation here? Also, having possibly set this value in the internal configuration of your server, you might want to delete the file /var/lib/openhab2/config/org/openhab/myq.config and restart the server.
I didn’t have the prefix myq: in my file.
At first I didn’t set it, and it didn’t work. And then I set appId, it didn’t work either. I restart the docker container. The server was restarted.
For the docker image, I download the openhab snapshot tar file and untar it to /openhab. I don’t see that it’s creating a file in /var/lib/openhab2 and I don’t see the config folder in /openhab either.
Fresh install of openhab2 on Ubuntu using apt and the new jfrog.io SNAPSHOTS. Installing the MyQ binding from PaperUI seems to load a version from February 14th (pre-fix). If I download the .jar and drop it in addons all works fine, and I can get a more recent build. Just curious how the online repository is picking which version to fetch?
Thank you for your work on this! I installed the fix, but still having trouble getting it to connect. I’m using OH 2. I had it working before they changed the API, but after installing the fix I’m still getting this:
2017-03-04 14:54:13.200 [WARN ] [org.openhab.io.net.http.HttpUtil ] - Method failed: HTTP/1.1 500 Internal Server Error
2017-03-04 14:54:13.251 [ERROR] [nhab.binding.myq.internal.MyqBinding] - Could not connect to MyQ service
java.io.IOException: Request Failed: Unknow resonse
at org.openhab.binding.myq.internal.MyqData.request(MyqData.java:248)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.login(MyqData.java:144)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.getSecurityToken(MyqData.java:183)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.getMyqData(MyqData.java:128)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding.poll(MyqBinding.java:210)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding.access$0(MyqBinding.java:202)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding$1.run(MyqBinding.java:407)[211:org.openhab.binding.myq:1.10.0.201702210212]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)[:1.8.0_121]
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)[:1.8.0_121]
at java.lang.Thread.run(Unknown Source)[:1.8.0_121]
and
20:09:48.059 [ERROR] [org.openhab.io.net.http.HttpUtil ] - Fatal transport error: java.net.SocketException: Connection reset
20:09:48.059 [ERROR] [nhab.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:218)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.login(MyqData.java:144)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.getSecurityToken(MyqData.java:183)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqData.getMyqData(MyqData.java:128)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding.poll(MyqBinding.java:210)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding.access$0(MyqBinding.java:202)[211:org.openhab.binding.myq:1.10.0.201702210212]
at org.openhab.binding.myq.internal.MyqBinding$1.run(MyqBinding.java:407)[211:org.openhab.binding.myq:1.10.0.201702210212]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)[:1.8.0_121]
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)[:1.8.0_121]
at java.lang.Thread.run(Unknown Source)[:1.8.0_121]