openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.59k forks source link

[iaqualink] Device stuck in "INITIALIZING" #13216

Closed mdsolutech closed 2 years ago

mdsolutech commented 2 years ago

Hello guys !

Expected Behavior

The device should be "ONLINE".

Current Behavior

The device is "INITILAZING" with the following stack trace in OpenHAB Console after disabling and enabling the device: ` 15:42:56.798 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'iaqualink:controller:8733d57b78' changed from UNINITIALIZED (DISABLED) to INITIALIZING 15:43:04.008 [WARN ] [ommon.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:932) ~[?:?] at com.google.gson.Gson.fromJson(Gson.java:1003) ~[?:?] at com.google.gson.Gson.fromJson(Gson.java:975) ~[?:?] 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:932) ~[?:?] at com.google.gson.Gson.fromJson(Gson.java:897) ~[?:?] at com.google.gson.Gson.fromJson(Gson.java:846) ~[?:?] 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:350) ~[?:?] 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$16.read(TypeAdapters.java:402) ~[?:?] at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:390) ~[?:?] 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 `

Possible Solution

None

Steps to Reproduce (for Bugs)

  1. Disable device
  2. Enable device
  3. The device is stuck in "INITIALIZING"

Context

Device control stopped working overnight. However Zodiac app's still works fine.

Your Environment

OpenHAB 3.2.0, running on Mac, installed using official installer.

Version used: OpenHAB 3.2.0, iAqualink 3.2.0 and/or iAqualink 3.3.0 custom JAR (cf. https://github.com/openhab/openhab-addons/issues/12654#issuecomment-1109087106) Environment name and version (e.g. Chrome 76, Java 8, Node.js 12.9, ...): Chrome 100.0.4896.88, OpenJDK 11.0.13 Operating System and version (desktop or mobile, Windows 10, Raspbian Buster, ...): Mac Big Sur 11.6.5 iAqualink version:

digitaldan commented 2 years ago

This was fixed in early July and is available in the snapshot builds, thanks

https://github.com/openhab/openhab-addons/pull/13073

mdsolutech commented 2 years ago

Hi!

Based on what I found in https://github.com/digitaldan/openhab-addons/releases, I only have a 3.3.0-SNAPSHOT, which was already in use while the bug appeared.

Can you please point me in the right direction to find more recent SNAPSHOT builds?

Is there a chance the API has changed once again?

Thanks in advance.

digitaldan commented 2 years ago

Nightly builds can be found at https://ci.openhab.org/job/openHAB-Addons/lastSuccessfulBuild/artifact/bundles/org.openhab.binding.iaqualink/target/

They made a small addition to the api which broke the deserialization logic which had assumed all values were strings, but in this case the value was an array (of strings i suppose, it wasn't anything useful actually).