Ecovacs Vacuum Cleaners Binding [3.2.0;4.0.0)

Hello,

with the complete code unter the dustbin ist works fine.

Thank you

Is there a parameter ro see the current map during cleaning ?

A debug log would be helpful :wink:
If I had to guess, my guess would be something similar to here

No, and at this point I donā€™t have any plans to implement that. The reason is that implementing that requires drawing the map manually in the Java code, which is significant effort with (as far as I can tell) not much gain.

@maniac103 thank you for the information. Ok, I understandā€¦no problem.
I only asked, so I did not missed a featureā€¦

Thank you for your work

@maniac103 Install back the smack-sasl-javax bundle solve the problem.
Thank you :slight_smile:

Hello together,

is there actually an error code list for Ecovacs vacuum cleaner robots?
I would like to transform Robbiā€™s error messages via ā€œecovacs.mapā€. Unfortunately, it is very tedious to record all the errors one by one.
Is there a list somewhere?
So far I havenā€™t found anything at Ecovacs.

I also have the problem that an error is spit out in this form.
Unknown error (%1$d)
The problem for the transforms are probably the special characters (% and ).
Do you have to work with " or ā€™ or is there a wildcard like Unknown error*?
Has anyone had any experience with this?
Havenā€™t managed to do it yet.

Thanks and regards
Florian

This is now in the latest version of the binding (as advanced channel).

As well as this (also advanced) :wink:

As far as I am aware, there is no official (as in: published by Ecovacs) list of possible error codes. The errors known to me are in the binding (here).

Please elaborate on this. What exactly is the problem here? You should never see Unknown error (%1$d) in the channel, because this code replaces the placeholder with the numeric error code, so you should rather see e.g. Unknown error (123).

Edit: after double checking this, it turned out the placeholder format was wrong ā€¦ the next release will have this fixed.

Unfortunately, I can no longer install the binding under 3.4.1 via the marketplace. The link to the kar file seems to be broken:

I indeed typoā€™ed the link. Sorry about that, fixed now.

1 Like

As all my IOT devices are isolated on a separate vlan, possible to work without internet connection?

No. The binding talks exclusively to Ecovacsā€™ servers. I donā€™t think a local connection is possible - at least for normal mortals. For the brave people out there, thereā€™s a server emulation, but it requires a lot of setup effort.

Hello there,

first of all, thanks for the effort, its really appreciated. Iā€™ve got a Deebot Omni X1 here, and although its mostly working, there are a few things that donā€™t seem to work yet:

  • true detect 3d is definitely supported on my bot, but the setting doesnā€™t work yet. I always get this message in log:
2023-01-13 19:09:57.961 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Removing unsupported channel settings#true-detect-3d
  • I also get an exception when rebooting openHAB / initializing the thing:
2023-01-13 19:09:58.881 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.NullPointerException: null
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:386) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.initDevice(EcovacsVacuumHandler.java:531) ~[?:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	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) [?:?]
  • Automated item updating doesnā€™t seem to work. I get e.g. battery updates once, and I donā€™t get any update afterwards unless i reboot openHAB or re-insert things. Iā€™m using the file-based config here, BTW. This one is the last MQTT message that is coming in through the logs, I donā€™t seem to get any MQTTā€™s afterwards anymore.
2023-01-13 19:15:16.132 [TRACE] [internal.api.impl.EcovacsIotMqDevice] - E07515513D1FP6CH0019: Got MQTT message on topic iot/atr/onFwBuryPoint-bd_sysinfo/93192f79-3cfe-47e1-91ef-14ef1f4fc7d2/1vxt52/MlT3/j: {"header":{"pri":1,"tzm":120,"ts":"1673633717400","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":[{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717366"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717366"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717366"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717366"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717366"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"},{"signal":16777174,"uptime":", POWER_RESET","meminfo":"0,0","pos":"-5,565","isvalid":1,"mapid":"2054994424","ts":"1673633717367"}]}

It would be awesome to get that back, that isnā€™t working since the november snapshot from last year already.
Let me know if I can help you somehow.

Silly mistake by me in the device definition file, thatā€™s an easy fix.

For that, Iā€™d appreciate a trace log that covers initializing the thing. It looks like thereā€™s something different in the ā€˜get clean stateā€™ request.

Did it ever work? And is this your only Ecovacsā€™ device or do you have more of them? Asking because this used to be a problem in the past.

Hi there,

thanks for the reply.

Nope, polling updates like battery didnā€™t work for me ever since I installed the binding, which was back in november last year.

I just removed the .tings file and inserted it back in. Hereā€™s the log from the initialization process with log:set TRACE org.openhab.binding.ecovacs enabled. Hope it helps.

2023-01-13 20:30:25.899 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ecovacs.things'
2023-01-13 20:30:25.924 [TRACE] [covery.EcovacsDeviceDiscoveryService] - BackgroundScan: Scheduling to run in 60 second intervals
2023-01-13 20:30:25.932 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Initializing Ecovacs account 'ecovacsapi'
2023-01-13 20:30:26.591 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Ecovacs API initialized
2023-01-13 20:30:26.592 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Starting Ecovacs discovery scan
2023-01-13 20:30:26.594 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Scheduling to run in 0 seconds
2023-01-13 20:30:26.597 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Running one-shot
2023-01-13 20:30:26.616 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Initializing handler
2023-01-13 20:30:26.617 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Init: Scheduling to run in 0 seconds
2023-01-13 20:30:26.618 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Init: Running one-shot
2023-01-13 20:30:26.644 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Ecovacs discovery found 1 devices
2023-01-13 20:30:26.670 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'ecovacs:vacuum:ecovacsapi:E07515513D1FP6CH0019' to inbox.
 
==> /var/log/openhab/events.log <==
2023-01-13 20:30:25.926 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:ecovacsapi:ecovacsapi' changed from UNINITIALIZED to INITIALIZING
2023-01-13 20:30:25.941 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2023-01-13 20:30:26.591 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:ecovacsapi:ecovacsapi' changed from INITIALIZING to ONLINE
2023-01-13 20:30:26.607 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2023-01-13 20:30:26.670 [INFO ] [openhab.event.InboxAddedEvent       ] - Discovery Result with UID 'ecovacs:vacuum:ecovacsapi:E07515513D1FP6CH0019' has been added.
 
==> /var/log/openhab/openhab.log <==
2023-01-13 20:30:26.942 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ecovacs.things'
2023-01-13 20:30:26.956 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Removing unsupported channel settings#true-detect-3d
2023-01-13 20:30:26.968 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Stopping Ecovacs discovery scan
2023-01-13 20:30:26.969 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Initializing Ecovacs account 'ecovacsapi'
2023-01-13 20:30:27.258 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-13 20:30:27.261 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673638227259,"tzm":480,"ver":"0.0.50"}}
2023-01-13 20:30:27.266 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Ecovacs API initialized
2023-01-13 20:30:27.267 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Starting Ecovacs discovery scan
2023-01-13 20:30:27.269 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Scheduling to run in 0 seconds
2023-01-13 20:30:27.270 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Running one-shot
2023-01-13 20:30:27.329 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673638228635","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":70,"isLow":0}}}
2023-01-13 20:30:27.333 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673638227333,"tzm":480,"ver":"0.0.50"}}
2023-01-13 20:30:27.389 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673638228702","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-13 20:30:27.391 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673638227391,"tzm":480,"ver":"0.0.50"}}
2023-01-13 20:30:27.436 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Ecovacs discovery found 1 devices
2023-01-13 20:30:27.480 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673638228790","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"drying","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":null}}},"code":0,"msg":"ok"}}
2023-01-13 20:30:27.484 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.NullPointerException: null
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:386) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[?:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.initDevice(EcovacsVacuumHandler.java:531) ~[?:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	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) [?:?]
 
==> /var/log/openhab/events.log <==
2023-01-13 20:30:27.334 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'vacuumBattery' changed from 50 to 70
 
==> /var/log/openhab/openhab.log <==
2023-01-13 20:31:24.349 [TRACE] [internal.api.impl.EcovacsIotMqDevice] - E07515513D1FP6CH0019: Got MQTT message on topic iot/atr/onBattery/93192f79-3cfe-47e1-91ef-14ef1f4fc7d2/1vxt52/MlT3/j: {"header":{"pri":1,"tzm":120,"ts":"1673638285646","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"value":71,"isLow":0}}}
 
==> /var/log/openhab/events.log <==
2023-01-13 20:31:24.372 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'vacuumBattery' changed from 70 to 71
 
==> /var/log/openhab/openhab.log <==
2023-01-13 20:31:25.960 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Ecovacs discovery found 1 devices

That battery mqtt message coming in there stays the only one until I either reboot or re-insert the things file again.

Yes, it does. Itā€™s exactly what I needed. Thanks. Iā€™ll look into it.

I wonder whether the half complete initialization is related. Weā€™ll see once that one is fixed.

@Timtam Please try the new binding release and let me know if anything is still broken (in which case I need a new TRACE log). Thanks :slight_smile:
For getting the True Detect 3D channel, youā€™ll have to recreate the vacuum Thing though.

That looks much better now, thank you very much!
I still had an error while initializing, but it restarted? the initialization and now everything looks normal. I attached the log anyway, just in case. I however now get my battery updates as expected, thanks.

2023-01-14 15:23:15.365 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ecovacs.things'
2023-01-14 15:23:15.401 [TRACE] [covery.EcovacsDeviceDiscoveryService] - BackgroundScan: Scheduling to run in 60 second intervals
2023-01-14 15:23:15.410 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Initializing Ecovacs account 'ecovacsapi'
2023-01-14 15:23:15.978 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Ecovacs API initialized
2023-01-14 15:23:15.980 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Starting Ecovacs discovery scan
2023-01-14 15:23:15.981 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Scheduling to run in 0 seconds
2023-01-14 15:23:15.986 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Running one-shot
2023-01-14 15:23:16.007 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Initializing handler
2023-01-14 15:23:16.008 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Init: Scheduling to run in 0 seconds
2023-01-14 15:23:16.010 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Init: Running one-shot
2023-01-14 15:23:16.023 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Ecovacs discovery found 1 devices
2023-01-14 15:23:16.050 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'ecovacs:vacuum:ecovacsapi:E07515513D1FP6CH0019' to inbox.
 
==> /var/log/openhab/events.log <==
2023-01-14 15:23:15.405 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:ecovacsapi:ecovacsapi' changed from UNINITIALIZED to INITIALIZING
2023-01-14 15:23:15.424 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2023-01-14 15:23:15.978 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:ecovacsapi:ecovacsapi' changed from INITIALIZING to ONLINE
2023-01-14 15:23:16.001 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2023-01-14 15:23:16.050 [INFO ] [openhab.event.InboxAddedEvent       ] - Discovery Result with UID 'ecovacs:vacuum:ecovacsapi:E07515513D1FP6CH0019' has been added.
 
==> /var/log/openhab/openhab.log <==
2023-01-14 15:23:16.425 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ecovacs.things'
2023-01-14 15:23:16.464 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Stopping Ecovacs discovery scan
2023-01-14 15:23:16.464 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Initializing Ecovacs account 'ecovacsapi'
2023-01-14 15:23:16.567 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-14 15:23:16.568 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673706196568,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:16.749 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198328","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-14 15:23:16.752 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673706196752,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:16.787 [DEBUG] [s.internal.handler.EcovacsApiHandler] - Ecovacs API initialized
2023-01-14 15:23:16.789 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Starting Ecovacs discovery scan
2023-01-14 15:23:16.790 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Scheduling to run in 0 seconds
2023-01-14 15:23:16.791 [TRACE] [covery.EcovacsDeviceDiscoveryService] - OnDemandScan: Running one-shot
2023-01-14 15:23:16.848 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198471","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-14 15:23:16.850 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673706196850,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:16.903 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198532","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"idle"},"code":0,"msg":"ok"}}
2023-01-14 15:23:16.908 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getWaterInfo with payload {"header":{"pri":1,"ts":1673706196908,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:16.923 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Ecovacs discovery found 1 devices
2023-01-14 15:23:16.984 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198600","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"enable":1,"amount":4,"type":1,"sweepType":1}}}
2023-01-14 15:23:16.987 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getError with payload {"header":{"pri":1,"ts":1673706196987,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:17.049 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198675","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"","data":{"code":[0]}}}
2023-01-14 15:23:17.052 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Scheduling next poll in 0s, refresh interval 5min
2023-01-14 15:23:17.054 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Poll: Scheduling to run in 0 seconds
2023-01-14 15:23:17.059 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Device connected
2023-01-14 15:23:17.059 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Poll: Running one-shot
2023-01-14 15:23:17.060 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Polling data
2023-01-14 15:23:17.062 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getTotalStats with payload {"header":{"pri":1,"ts":1673706197061,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:17.126 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198746","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"area":1129,"time":93240,"count":69}}}
2023-01-14 15:23:17.129 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBreakPoint with payload {"header":{"pri":1,"ts":1673706197129,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:17.187 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706198809","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"enable":1},"code":0,"msg":"ok"}}
 
==> /var/log/openhab/events.log <==
2023-01-14 15:23:17.062 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from INITIALIZING to ONLINE
 
==> /var/log/openhab/openhab.log <==
2023-01-14 15:23:27.193 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: java.util.concurrent.TimeoutException: Total timeout 10000 ms elapsed
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.executeRequest(EcovacsApiImpl.java:354) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.fetchCleanLogs(EcovacsApiImpl.java:281) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.getCleanLogs(EcovacsIotMqDevice.java:106) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$15(EcovacsVacuumHandler.java:588) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.pollData(EcovacsVacuumHandler.java:579) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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.util.concurrent.TimeoutException: Total timeout 10000 ms elapsed
	at org.eclipse.jetty.client.HttpConnection$RequestTimeouts.onExpired(HttpConnection.java:334) ~[?:?]
	at org.eclipse.jetty.client.HttpConnection$RequestTimeouts.onExpired(HttpConnection.java:314) ~[?:?]
	at org.eclipse.jetty.io.CyclicTimeouts.onTimeoutExpired(CyclicTimeouts.java:110) ~[?:?]
	at org.eclipse.jetty.io.CyclicTimeouts.access$100(CyclicTimeouts.java:50) ~[?:?]
	at org.eclipse.jetty.io.CyclicTimeouts$Timeouts.onTimeoutExpired(CyclicTimeouts.java:196) ~[?:?]
	at org.eclipse.jetty.io.CyclicTimeout$Wakeup.run(CyclicTimeout.java:298) ~[?:?]
	... 6 more
2023-01-14 15:23:27.209 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-14 15:23:27.210 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Data polling completed
 
==> /var/log/openhab/events.log <==
2023-01-14 15:23:27.208 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
 
==> /var/log/openhab/openhab.log <==
2023-01-14 15:23:32.213 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-14 15:23:32.383 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-14 15:23:32.384 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673706212384,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.448 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214069","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-14 15:23:32.450 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673706212450,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.508 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214134","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-14 15:23:32.510 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673706212509,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.570 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214197","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"idle"},"code":0,"msg":"ok"}}
2023-01-14 15:23:32.573 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getWaterInfo with payload {"header":{"pri":1,"ts":1673706212573,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.641 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214253","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"enable":1,"amount":4,"type":1,"sweepType":1}}}
2023-01-14 15:23:32.643 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getError with payload {"header":{"pri":1,"ts":1673706212643,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.702 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214328","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"","data":{"code":[0]}}}
2023-01-14 15:23:32.705 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Scheduling next poll in 0s, refresh interval 5min
2023-01-14 15:23:32.707 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Poll: Scheduling to run in 0 seconds
2023-01-14 15:23:32.708 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Poll: Running one-shot
2023-01-14 15:23:32.709 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Polling data
2023-01-14 15:23:32.709 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Device connected
2023-01-14 15:23:32.711 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getTotalStats with payload {"header":{"pri":1,"ts":1673706212710,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.782 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214402","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"area":1129,"time":93240,"count":69}}}
2023-01-14 15:23:32.785 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBreakPoint with payload {"header":{"pri":1,"ts":1673706212784,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.847 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214467","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"enable":1},"code":0,"msg":"ok"}}
2023-01-14 15:23:32.904 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Fetching cleaning logs yields 0 records
2023-01-14 15:23:32.906 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getSpeed with payload {"header":{"pri":1,"ts":1673706212906,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:32.974 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214595","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"speed":2}}}
2023-01-14 15:23:32.976 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getWaterInfo with payload {"header":{"pri":1,"ts":1673706212976,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:33.044 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214660","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"enable":1,"amount":4,"type":1,"sweepType":1}}}
2023-01-14 15:23:33.046 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getNetInfo with payload {"header":{"pri":1,"ts":1673706213046,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:33.103 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214729","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"ip":"192.168.170.104","ssid":"HeimWLAN","rssi":"-40","wkVer":"0.1.2","mac":"68:4E:05:16:AA:02"}}}
2023-01-14 15:23:33.105 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getAutoEmpty with payload {"header":{"pri":1,"ts":1673706213105,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:33.174 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214785","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"OK","data":{"status":0,"enable":1,"frequency":"auto"}}}
2023-01-14 15:23:33.176 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getTrueDetect with payload {"header":{"pri":1,"ts":1673706213175,"tzm":480,"ver":"0.0.50"}}
 
==> /var/log/openhab/events.log <==
2023-01-14 15:23:32.712 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
 
==> /var/log/openhab/openhab.log <==
2023-01-14 15:23:33.237 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214858","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"enable":0},"code":0,"msg":"ok"}}
2023-01-14 15:23:33.239 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanCount with payload {"header":{"pri":1,"ts":1673706213238,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:33.331 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706214923","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"count":1},"code":0,"msg":"ok"}}
2023-01-14 15:23:33.333 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getLifeSpan with payload {"header":{"pri":1,"ts":1673706213333,"tzm":480,"ver":"0.0.50"},"body":{"data":["sideBrush"]}}
2023-01-14 15:23:33.470 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706215015","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":[{"type":"sideBrush","left":7115,"total":9000}]}}
2023-01-14 15:23:33.473 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getLifeSpan with payload {"header":{"pri":1,"ts":1673706213472,"tzm":480,"ver":"0.0.50"},"body":{"data":["heap"]}}
2023-01-14 15:23:33.537 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706215156","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":[{"type":"heap","left":5466,"total":7200}]}}
2023-01-14 15:23:33.539 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getLifeSpan with payload {"header":{"pri":1,"ts":1673706213539,"tzm":480,"ver":"0.0.50"},"body":{"data":["brush"]}}
2023-01-14 15:23:33.602 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706215220","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":[{"type":"brush","left":16276,"total":18000}]}}
2023-01-14 15:23:33.604 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getVolume with payload {"header":{"pri":1,"ts":1673706213604,"tzm":480,"ver":"0.0.50"}}
2023-01-14 15:23:33.662 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673706215289","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"total":10,"volume":10}}}
2023-01-14 15:23:33.665 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Scheduling next poll in 300s, refresh interval 5min
2023-01-14 15:23:33.666 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Poll: Scheduling to run in 300 seconds
2023-01-14 15:23:33.668 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Data polling completed

Its me again ;). I now noticed that, although the vacuum data gets polled regularly (currently every 1m with refresh=1), alot of data gets polled except the battery data. I donā€™t know why, but it never calls any endpoint that returns it. It calls water data, cleaning info, speed and alot more, but no battery. Which log would be useful to have here?

Battery info (as well as other things, such as cleaning mode) are updated via events (in your case: MQTT messages), not via polling.

I guess a TRACE log of

  • disable thing
  • enable thing
  • start a cleaning cycle from the app
  • let it clean for some minutes (to provoke battery status changes)
  • send device back to charger via app

would be helpful. This should trigger a number of MQTT messages. With that, we can see whether no messages at all arrive or whether they just have some unexpected format.

Here we go. Removed thing, re-inserted and starting cleaning process, and the errors start coming in. Those might be the reason why MQTTā€™s can be received properly. Long log incoming.

2023-01-16 19:21:55.449 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command clean_V2 with payload {"header":{"pri":1,"ts":1673893315449,"tzm":480,"ver":"0.0.50"},"body":{"data":{"act":"start","content":{"value":"5,7,3,2,1,6","donotClean":0,"total":0,"count":1,"type":"spotArea"}}}}
2023-01-16 19:21:55.569 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893315373","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok"}}
2023-01-16 19:21:55.582 [TRACE] [internal.api.impl.EcovacsIotMqDevice] - E07515513D1FP6CH0019: Got MQTT message on topic iot/atr/onFwBuryPoint-bd_basicinfo/93192f79-3cfe-47e1-91ef-14ef1f4fc7d2/1vxt52/MlT3/j: {"header":{"pri":1,"tzm":120,"ts":"1673893315411","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"gid":"G1673797370613","index":"0000000195","ts":"1673893315384","id":"1121673893315384","battery":100,"chargeState":1,"onCharger":1,"robotState":0,"robotPos":"-100.00,1300.00,1.02","chargerPos":"-10.71,573.86,-1.59","dirtboxState":1,"mopState":2}}
2023-01-16 19:21:55.599 [TRACE] [internal.api.impl.EcovacsIotMqDevice] - E07515513D1FP6CH0019: Got MQTT message on topic iot/atr/onFwBuryPoint-bd_setting/93192f79-3cfe-47e1-91ef-14ef1f4fc7d2/1vxt52/MlT3/j: {"header":{"pri":1,"tzm":120,"ts":"1673893315411","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"gid":"G1673797370613","index":"0000000196","ts":"1673893315386","id":"9881673893315386","AISL":0,"isPressurized":1,"continue":1,"DND":1,"childLock":1,"autocollect":0,"personalClean":0,"fanspeed":3,"waterAmount":3,"cleanCount":1,"personalCleanSetting":[]}}
2023-01-16 19:21:55.600 [TRACE] [internal.api.impl.EcovacsIotMqDevice] - E07515513D1FP6CH0019: Got MQTT message on topic iot/atr/onFwBuryPoint-bd_task-omni-washMop-start/93192f79-3cfe-47e1-91ef-14ef1f4fc7d2/1vxt52/MlT3/j: {"header":{"pri":1,"tzm":120,"ts":"1673893315411","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"gid":"G1673893315386","index":"0000000197","ts":"1673893315386","mid":"2054994424","bid":"1121673893315384","sid":"9881673893315386","triggerType":"app","washMopId":"ļæ½Xt\""}}
2023-01-16 19:21:56.026 [TRACE] [internal.api.impl.EcovacsIotMqDevice] - E07515513D1FP6CH0019: Got MQTT message on topic iot/atr/onCleanInfo_V2/93192f79-3cfe-47e1-91ef-14ef1f4fc7d2/1vxt52/MlT3/j: {"header":{"pri":1,"tzm":120,"ts":"1673893315860","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"cid":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}}}}
2023-01-16 19:21:56.028 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Device connection failed, reconnecting
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893315860","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"cid":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}}}}
	at org.openhab.binding.ecovacs.internal.api.impl.JsonReportParser.handleMessage(JsonReportParser.java:93) ~[?:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.lambda$3(EcovacsIotMqDevice.java:168) ~[?:?]
	at com.hivemq.client.internal.mqtt.mqtt3.Mqtt3AsyncClientView.lambda$callbackView$1(Mqtt3AsyncClientView.java:76) ~[bundleFile:?]
	at com.hivemq.client.internal.mqtt.MqttAsyncClient$CallbackSubscriber.onNext(MqttAsyncClient.java:303) [bundleFile:?]
	at com.hivemq.client.internal.mqtt.MqttAsyncClient$CallbackSubscriber.onNext(MqttAsyncClient.java:288) [bundleFile:?]
	at com.hivemq.client.rx.FlowableWithSingle$SingleFutureSubscriber.onNext(FlowableWithSingle.java:406) [bundleFile:?]
	at com.hivemq.client.internal.rx.operators.FlowableWithSingleCombine$SplitSubscriber$Default.tryOnNextActual(FlowableWithSingleCombine.java:235) [bundleFile:?]
	at com.hivemq.client.internal.rx.operators.FlowableWithSingleCombine$SplitSubscriber.tryOnNext(FlowableWithSingleCombine.java:200) [bundleFile:?]
	at io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnConditionalSubscriber.runAsync(FlowableObserveOn.java:649) [bundleFile:?]
	at io.reactivex.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:176) [bundleFile:?]
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) [bundleFile:?]
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:21:56.039 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Poll: Cancelled
2023-01-16 19:21:56.040 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
 
==> /var/log/openhab/events.log <==
2023-01-16 19:21:55.407 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumStartCleaning' received command ON
2023-01-16 19:21:55.411 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumStartCleaning' changed from OFF to ON
2023-01-16 19:21:55.418 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumCleanBathroom' received command OFF
2023-01-16 19:21:55.422 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumCleanKitchen' received command OFF
2023-01-16 19:21:55.423 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumCleanBathroom' changed from ON to OFF
2023-01-16 19:21:55.427 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumCleanWorkroom' received command OFF
2023-01-16 19:21:55.429 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumCleanLivingroom' received command OFF
2023-01-16 19:21:55.430 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumCleanCorridor' received command OFF
2023-01-16 19:21:55.431 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumCleanKitchen' changed from ON to OFF
2023-01-16 19:21:55.434 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumCleanBedroom' received command OFF
2023-01-16 19:21:55.442 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'vacuumAction' received command spotArea:F;H;D;C;B;G
2023-01-16 19:21:55.444 [INFO ] [openhab.event.ItemCommandEvent      ] - Item '_vacuumStartCleaning' received command OFF
2023-01-16 19:21:55.445 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumCleanWorkroom' changed from ON to OFF
2023-01-16 19:21:55.446 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumCleanLivingroom' changed from ON to OFF
2023-01-16 19:21:55.447 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumCleanCorridor' changed from ON to OFF
2023-01-16 19:21:55.448 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'vacuumAction' predicted to become spotArea:F;H;D;C;B;G
2023-01-16 19:21:55.454 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumCleanBedroom' changed from ON to OFF
2023-01-16 19:21:55.455 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'vacuumAction' changed from charge to spotArea:F;H;D;C;B;G
2023-01-16 19:21:55.456 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item '_vacuumStartCleaning' changed from ON to OFF
 
==> /var/log/openhab/openhab.log <==
2023-01-16 19:22:01.045 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:01.251 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:01.254 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893321254,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:01.310 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893321167","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:01.312 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893321312,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:01.382 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893321235","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:01.383 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893321383,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:01.447 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893321300","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:01.449 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@1aeec failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893321300","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:01.452 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893321300","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893321300","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:01.459 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
 
==> /var/log/openhab/events.log <==
2023-01-16 19:22:01.458 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ecovacs:vacuum:ecovacsapi:Staubi' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
 
==> /var/log/openhab/openhab.log <==
2023-01-16 19:22:06.460 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:06.662 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:06.663 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893326663,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:06.718 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893326574","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:06.720 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893326720,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:06.783 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893326634","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:06.785 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893326784,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:06.861 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893326717","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:06.864 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@10945b6 failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893326717","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:06.866 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893326717","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893326717","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:06.870 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:11.871 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:12.081 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:12.082 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893332082,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:12.143 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893331998","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:12.145 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893332145,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:12.223 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893332079","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:12.225 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893332225,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:12.289 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893332143","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:12.291 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@15e6737 failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893332143","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:12.294 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893332143","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893332143","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:12.298 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:17.300 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:17.550 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:17.556 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893337556,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:17.619 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893337474","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:17.622 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893337622,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:17.684 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893337538","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:17.686 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893337686,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:17.751 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893337606","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:17.754 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@f5c8c2 failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893337606","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:17.756 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893337606","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893337606","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:17.760 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:22.762 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:22.981 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:22.982 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893342982,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:23.042 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893342898","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:23.044 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893343044,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:23.200 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893343054","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:23.202 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893343202,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:23.268 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893343122","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:23.270 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@1fefbc9 failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893343122","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:23.273 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893343122","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893343122","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:23.283 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:28.285 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:28.460 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:28.461 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893348461,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:28.520 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893348378","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:28.523 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893348522,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:28.594 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893348450","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:28.595 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893348595,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:28.661 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893348517","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:28.663 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@18961f failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893348517","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:28.666 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893348517","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893348517","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:28.670 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:33.671 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:33.871 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:33.873 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893353872,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:33.938 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893353793","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:33.940 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893353940,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:34.009 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893353864","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:34.011 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893354011,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:34.076 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893353932","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:34.078 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@57bdd failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893353932","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:34.081 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893353932","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893353932","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:34.084 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:37.074 [DEBUG] [covery.EcovacsDeviceDiscoveryService] - Ecovacs discovery found 1 devices
2023-01-16 19:22:39.085 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:39.287 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:39.289 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893359289,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:39.350 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893359208","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:39.352 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893359352,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:39.419 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893359274","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:39.421 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893359421,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:39.991 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893359849","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:39.993 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@b7a0fb failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893359849","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:39.996 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893359849","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893359849","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:39.999 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:45.001 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:45.172 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:45.174 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893365173,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:45.246 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893365097","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:45.248 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893365248,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:45.315 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893365168","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:45.317 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893365317,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:45.390 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893365240","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:45.392 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@115905b failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893365240","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]
2023-01-16 19:22:45.395 [DEBUG] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Failed communicating to device, reconnecting
org.openhab.binding.ecovacs.internal.api.EcovacsApiException: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893365240","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:272) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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: org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893365240","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	... 12 more
2023-01-16 19:22:45.399 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Scheduling to run in 5 seconds
2023-01-16 19:22:50.401 [TRACE] [nternal.handler.EcovacsVacuumHandler] - E07515513D1FP6CH0019: Connection: Running one-shot
2023-01-16 19:22:50.573 [DEBUG] [internal.api.impl.EcovacsIotMqDevice] - Established MQTT connection to device E07515513D1FP6CH0019
2023-01-16 19:22:50.574 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getBattery with payload {"header":{"pri":1,"ts":1673893370574,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:50.863 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893370716","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"value":100,"isLow":0}}}
2023-01-16 19:22:50.866 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getChargeState with payload {"header":{"pri":1,"ts":1673893370866,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:50.939 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893370791","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"code":0,"msg":"ok","data":{"isCharging":1,"mode":"slot"}}}
2023-01-16 19:22:50.941 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Sending IOT command getCleanInfo_V2 with payload {"header":{"pri":1,"ts":1673893370941,"tzm":480,"ver":"0.0.50"}}
2023-01-16 19:22:51.018 [TRACE] [acs.internal.api.impl.EcovacsApiImpl] - E07515513D1FP6CH0019: Got response payload {"header":{"pri":1,"tzm":120,"ts":"1673893370861","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
2023-01-16 19:22:51.020 [DEBUG] [acs.internal.api.impl.EcovacsApiImpl] - Converting response for command org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand@fdd614 failed
org.openhab.binding.ecovacs.internal.api.util.DataParsingException: Could not get clean mode from response {"header":{"pri":1,"tzm":120,"ts":"1673893370861","ver":"0.0.1","fwVer":"2.3.9","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"data":{"trigger":"none","state":"washing","cleanState":{"id":"122","router":"plan","motionState":"working","content":{"subContent":{"type":"spotArea"}}}},"code":0,"msg":"ok"}}
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:64) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.commands.GetCleanStateCommand.convertResponse(GetCleanStateCommand.java:1) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsApiImpl.sendIotCommand(EcovacsApiImpl.java:269) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.impl.EcovacsIotMqDevice.sendCommand(EcovacsIotMqDevice.java:97) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.fetchInitialStateAndCommandValues(EcovacsVacuumHandler.java:385) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.lambda$14(EcovacsVacuumHandler.java:568) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.doWithDevice(EcovacsVacuumHandler.java:794) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler.connectToDevice(EcovacsVacuumHandler.java:565) ~[bundleFile:?]
	at org.openhab.binding.ecovacs.internal.api.util.SchedulerTask.run(SchedulerTask.java:82) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	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) [?:?]