I am having trouble connecting to the iAqualink pool controller after upgrading to OpenHAB 3.3. The status of my iaqualink controller thing is perpetually “initializing” on the Things configuration page. I have manually configured the iaqualing controller thing as shown below. Attempting to add a new iaqualink controller thing from the administration page gives the same problem.
There is only one entry in the log pertaining to iaqualink, and that is:
2022-07-15 21:59:59.120 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected STRING but was BEGIN_ARRAY at path $.serialized_map.
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:963) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:1034) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:1006) ~[?:?]
at org.openhab.binding.iaqualink.internal.api.IAqualinkClient$HomeDeserializer.deserialize(IAqualinkClient.java:402) ~[?:?]
at org.openhab.binding.iaqualink.internal.api.IAqualinkClient$HomeDeserializer.deserialize(IAqualinkClient.java:1) ~[?:?]
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:963) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:928) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:877) ~[?:?]
at org.openhab.binding.iaqualink.internal.api.IAqualinkClient.getAqualinkObject(IAqualinkClient.java:352) ~[?:?]
at org.openhab.binding.iaqualink.internal.api.IAqualinkClient.homeScreenCommand(IAqualinkClient.java:318) ~[?:?]
at org.openhab.binding.iaqualink.internal.api.IAqualinkClient.getHome(IAqualinkClient.java:160) ~[?:?]
at org.openhab.binding.iaqualink.internal.handler.IAqualinkHandler.pollController(IAqualinkHandler.java:352) ~[?:?]
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:829) [?:?]
Caused by: java.lang.IllegalStateException: Expected STRING but was BEGIN_ARRAY at path $.serialized_map.
at com.google.gson.internal.bind.JsonTreeReader.nextString(JsonTreeReader.java:181) ~[?:?]
at com.google.gson.internal.bind.TypeAdapters$15.read(TypeAdapters.java:380) ~[?:?]
at com.google.gson.internal.bind.TypeAdapters$15.read(TypeAdapters.java:368) ~[?:?]
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41) ~[?:?]
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187) ~[?:?]
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) ~[?:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[?:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[?:?]
... 19 more
Please could you let me know if you have any ideas?
My TRACE log is attached - with serial number and user information listed as XXXXXX or YYYYYY. Everything looks OK to me… Still perpetually in “initializing”. Any help would be much appreciated!
PS - also changed my serial number in the log to VALIDSERIALNUMBER. I did check my iaqualink account to verify that the binding pulled the correct serial number, so it appears to be making a connection to the iaqualink server, as I did not enter the serial number in the Thing configuration.
Thank you. I downloaded the file to my /usr/share/openhab/addons folder. How do I install it? It does not appear on the configuration page in the UI. The documentation suggests that putting the .jar file in this directory should be sufficient.
Hi,
I got the same issue and only installed openhab for the first time today. The reason is to test this plugin. I can’t figure out what to put in the addons.cfg file though. Can you share your config?
-Magnus
Hi Magnus and welcome. Installing nightly builds of addons is usually a more advanced topic that most users don’t have to deal with, so apologies for this being your first experience.
My recommendation would be to uninstall the binding (through the webUI), then on your openHAB machine there should be a folder called “addons” where you can place the jar from the download link above. openHAB will automatically pick this up and install it after a second or 2 . See Installation of Add-ons | openHAB for more info. On linux (including rasp pi) this is located at /usr/share/openhab/addons or in the root of the openHAB folder on windows/mac.
If you want to do it as I did, you need to modify the addons.cfg file in /etc/openhab/services (for apt-based installations). There is a line that starts with #binding =
Remove the # to uncomment the line, and then list all of your bindings with comma delimiters. For the new binding placed in the /usr/share/openhab/addons folder, you need to list the part of the binding that comes after org.openhab.binding. and before .jar
Note that you will need to list on this line ALL of your bindings that you want installed - not just the new one. Also, you will not be able to install new bindings in the web interface. I may just follow Dan’s suggestion and comment out this line in my addons.cfg file. The reason mine did not pick up the new binding is because I did not uninstall the old one on the web UI first (silly error on my part).