anyone else having trouble with the Hydrawise binding?
2020-05-03 14:26:04.317 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.hydrawise.internal.HydrawiseCloudHandler.pollController(HydrawiseCloudHandler.java:127) ~[?:?]
at org.openhab.binding.hydrawise.internal.HydrawiseHandler.pollControllerInternal(HydrawiseHandler.java:310) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
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:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
I created the thing as usual via PaperUI and pasted the API-Key from Hydrawise. Tried both variants with ā-ā and without between the brackets.
2020-05-05 07:59:19.066 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.hydrawise.internal.HydrawiseCloudHandler.pollController(HydrawiseCloudHandler.java:127) ~[?:?]
at org.openhab.binding.hydrawise.internal.HydrawiseHandler.pollControllerInternal(HydrawiseHandler.java:310) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_252]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) ~[?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
EDIT #1: Iāve set up a fresh Debian VM, with Zulu8 and openHAB latest stable, with no binding installed except Hydrawise. Same error as above.
EDIT #3: I tried to set the optional āControlled IDā from the JSON request in the thing configuration, that also didnāt help.
EDIT #4: following snippetās URL is āfile not foundā (setcontroller.php).
private static final String SET_CONTROLLER_URL = BASE_URL
+ "setcontroller.php?api_key=%s&controller_id=%d&json=true";
EDIT #5: according to the API documentation thereās no setcontroller.php (anymore?). So that might be the case that the above mentioned exception is thrown. Already pinged @digitaldan.
EDIT #6: the following URLs are working, according to the API documentation;
Hi , see this open issue for a summary of whats going on:
In short, Hydrawise suddenly changed their API and removed quite a bit of functionality, breaking most applications using it. There is another API that their own clients use (mobile/web) and other 3rd parties that i am now targeting. I just finished up last night most of the bits for this and will be posting a test version very soon. Iāll use the giuthub issue to keep people up to date.
Hi @digitaldan,
switched to OH3, running Hydrawise binding for 3.0.0.
Still the same issue - binding is stuck in āInitializingāā¦
01-JƤn.-2021 11:42:48.232 [WARN ] [re.internal.common.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.hydrawise.internal.HydrawiseCloudHandler.pollController(HydrawiseCloudHandler.java:125) ~[?:?]
at org.openhab.binding.hydrawise.internal.HydrawiseHandler.pollControllerInternal(HydrawiseHandler.java:309) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
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:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Is there any workaround/JAR to get rid of this issue?
The binding is unfortunately not working, i had a build working with the new API, but left it unfinished, and move to other things. Its probably time for me to get back to that. Let me see if i can get that up and running and i will post a new jar back here as soon as I can. Thanks.
This uses the new GraphQL API as they severely crippled the one we had been using. There is also a new Thing structure to the binding if you are coming from the one in 2.x that used the old API. The updated version has a "Account " bridge thing which represents your online account, then a āControllerā child thing which represents the actual sprinkler controller. You will need to remove your existing thing and then add a new Cloud thing (in the GUI) , the rest will be auto discovered and added to your inbox. There is an updated README that explains this at openhab-addons/README.md at hydrawise-api-change-3.x Ā· digitaldan/openhab-addons Ā· GitHub
Yes, and in fact i started cleaning it up for review. There was a ton of code changes, its basically a rewrite of the binding, so lots to review before i can submit.
Hi Dan, thanks for the binding, brilliant, a couple of questions if you can assist with Hydrawise over local thing giving response code 404.
Pro HC firmware 4.31, installed binding shipped with OpenHAB 3.2.0M5
Is this the correct one for local connection or the jar above pre-release 3.x is still the preferred atm?
How do I get access to the local username and password? I might be missing something obvious here ā¦
The username and password will be in the settings menu on the unit itself, not through their app. Unfortunately they removed local access from later hardware versions some time ago, so its likely you may not have local access as an option, for example my firmware is 1.89 which is from around 2017 , i think it may have been removed in v2 or v3.