Switchbot

although it would be cheaper to just make an ESP32+servo , if you are looking for a cleaner wireless look switchbot is a good option

If you have switchbot buttons and if you have an ESP32 (they cost around $5 CAN) you can try out the code I wrote

It is similar to what @dietah did, but everything is done by the ESP32.
The ESP32 subscribes to MQTT topic, when a message is received it sends the BLE command to switchbot. Then will send an MQTT response

With this solution you don’t need to use the bluetooth on your smarthub and you can get full “bluetooth” switchbot home coverage. I only use one ESP32 and it covers my house, but if you have a big house, just place a couple ESP32s around the house

works with switchbot button/curtain/meter

3 Likes

my esp32 code now works with switchbot button, curtain and meter/temp sensor and “unlimited” devices

2 Likes

Hi, I am creating a binding based on the Switchbot Account route for my Switchbot Curtain. Still pretty much work in progress as I am still waiting for my hub to arrive.

For those interested to follow along, see https://github.com/alamers/openhab-addons/tree/switchbot.

Hi,

also would like to control my switchbot curtains with openhab. Is there already an early version of your binding, I could try? Thx.

2 Likes

Hi Sven,

Yes, you can check out my fork at GitHub - alamers/openhab-addons: openhab-addons with switchbot binding

To compile, go to the openhab-addons/bundles/org.openhab.binding.switchbot and run:
mvn package

Then, copy the target/org.openhab.binding.switchbot-3.1.0-SNAPSHOT.jar to your addons folder.

You should then be able to add a SwitchtbotAccountBridge and that should autodiscover the curtains.

hi @arjanl
thanks for your work!
Does this Binding work with the switchbot switch as well?

greets and thx

Hi @MichaelBrunner,

No, I don’t have a switch (yet) so I cannot test with it. Adding the code for it shouldn’t be difficult (as the API’s are all quite trivial), but I would be a bit in the dark.

If you are willing to help test, I could add support for them, but it will probably require some back-and-forward communication in my sparse spare time :wink: So might be a slow process!

1 Like

I have a switchbot switch - not sure if a hub is required - I don’t have one.

Would be happy to help out but would need some guidance :wink:

I updated the binding with the boilerplate code for all devices, and added channels & commands for the Switchbot Bot. All of that is pretty much untested since I don’t have that device so I welcome feedback :wink:

Note: this binding currently only works via the cloud, you will need a Switchbot Hub to connect the Bot or Curtain to a cloud account.

1 Like

hi, i am using a docker image to connect to mqtt. This going great. My only problem was to put an extra Bluetooth dongle in my Raspberry Pi because the internal BT was disabled for docker.

fphammerle/switchbot-mqtt: MQTT client controlling SwitchBot button automators & curtain motors, compatible with Home Assistant :whale: (github.com)

Thanks for your work on this.

I now have the hub mini and my switchbot bot (switch) is connected to it and therefore to the cloud (can control using google assistant). So that side of things seems OK.

I’m using Openhab 3.1.0 Release Build and the Main branch of Openhabian on R Pi 4 - all with latest updates.

I’m a beginner with linux but I think I managed to check out your updated fork and compile the new binding. There were some errors in the mvn output but the new .jar file (at least I think it is new) was in the relevant folder and I copied it to my addons folder. Here is the output of bundle:list after I restarted openhab

273 │ Active │  80 │ 3.1.0.202109050055    │ file:/usr/share/openhab/addons/org.openhab.binding.switchbot-3.1.0-SNAPSHOT.jar

The binding allows me to add the hub as a thing… though it shows as “unknown”. But it doesn’t allow me to add the switchbot as a new thing - doesn’t seem to discover it when I scan and the manual add option only lists account, curtain and hub.

But the frontail log suggests that the switchbot is seen but unrecognised - the following lists the device ID that matches the BLE MAC address in the switchbot app.

2021-10-01 09:17:42.201 [WARN ] [rnal.handler.SwitchbotAccountHandler] - Unknown device type discovered, will not be added to inbox: Bot with deviceId F05CF3C7D9A4

I’ve tried to add it manually as a curtain using the above device ID. But it appears with a status of “ERROR:HANDLER”

There’s a very good chance that the error is at my end… but if I can help with any troubleshooting of the binding, please let me know.

Hi,

I’ve just pushed a few changes that may help with the auto discovery. I also noticed that you have an older version which probably won’t have the bot support at all. (The latest versions of the binding are compiled against openhab 3.2.0 while your filename indicates 3.1.0).

I guess the binding will also work for 3.1.0 since the changes between 3.1.0 and 3.2.0 didn’t impact the binding, but I haven’t tested it.

1 Like

I’ve published a binary release for your convenience :wink: I will be on holiday for a couple of weeks so might be slow to respond!

1 Like

Thats great. Much appreciated! Will test tomorrow.

Enjoy your holiday.

Thanks for publishing the binary release… makes me more confident I have the latest binding… as follows

274 │ Active │  80 │ 3.2.0.202110021230    │ file:/usr/share/openhab/addons/org.openhab.binding.switchbot-3.2.0-SNAPSHOT.jar

I’ve also switched to the latest Openhab 3.2 milestone… I believe there has been a new one since you updated your binding.

Now I see two options for each device type in the add thing area - as per the screenshot

I also had trouble removing the old bot thing (left over from my attempt to include with old binding) but I note you’ve lodged this as an issue on github. I was eventually able to manually delete it.

The new binding scanned and disovered my hub and switchbot. But my bot and hub things are showing unknown - while my switchbot account shows online.

I can create items from my bot thing… power and send command. But they don’t work. Not sure if it helps but here is the output from frontail when I try to send a press command.

2021-10-04 09:39:07.774 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.switchbot.internal.handler.BotHandler@122d84b': null
java.lang.NullPointerException: null
	at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011) ~[?:?]
	at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006) ~[?:?]
	at java.util.Properties.put(Properties.java:1340) ~[?:?]
	at java.util.Properties.setProperty(Properties.java:228) ~[?:?]
	at org.openhab.binding.switchbot.internal.handler.SwitchbotApiProxy.sendCommand(SwitchbotApiProxy.java:37) ~[?:?]
	at org.openhab.binding.switchbot.internal.handler.SwitchbotHandler.sendCommandToDevice(SwitchbotHandler.java:70) ~[?:?]
	at org.openhab.binding.switchbot.internal.handler.SwitchbotHandler.handleCommand(SwitchbotHandler.java:64) ~[?:?]
	at org.openhab.binding.switchbot.internal.handler.BotHandler.handleCommand(BotHandler.java:1) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [bundleFile:?]
	at com.sun.proxy.$Proxy492.handleCommand(Unknown Source) [?:?]
	at org.openhab.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:80) [bundleFile:?]
	at org.openhab.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:48) [bundleFile:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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 <==
2021-10-04 09:39:07.760 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'SwitchbotBotA4_SendCommand' received command press
2021-10-04 09:39:07.765 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'SwitchbotBotA4_SendCommand' predicted to become NULL
1 Like

Thanks for the stacktrace, I’ll have a look at it if I can find the issue.

In the mean time, could you enable trace logging for the switchbot binding and post the relevant lines? (If you don’t know how, see https://www.openhab.org/docs/administration/logging.html, you would nee to issue something like:
log:set trace org.openhab.binding.switchbot in the cli for openhab. )

Hi Dave, I found a bug that may have caused your issues. You would have had an earlier error then in the logs I’d expect. Anyway, there is a new snapshot release available :slight_smile:

If you can try that one (you probably have to recreate all Things). Also, please enable trace logging (see previous comment) if you have any issues.

1 Like

Hi and thanks… your last changes have made all the difference.

I deleted all switchbot things, copied the new .jar file to the addons folder and then recreated the switchbot account (as an aside, there are still two of each device type on the add things page).

The hub mini and the bot A4 were found by the binding/account and added as things.

The hub mini still shows as yellow/“unknown” but the bot A4 shows green/“online” - and most importantly, I can send the press comand (the turn on an turn off commands seem to work too but I’m not using it this way). Now I’m going down the rabbit hole of writing more complex rules to try to use my excess solar PV to cool my house down.

I turned on trace logging for the binding. Here’s a line that keeps appearing every minute - not sure that it’s actually a problem. I’m guessing it’s just reporting that the hub is connected to the switchbot

2021-10-17 21:48:17.078 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}

Here are hopefully relevant lines from the log from the time I set up the new things until now… includes the line above that repeats every minute. Let me know if more of the log would be helpful.

2021-10-17 20:50:11.309 [WARN ] [ore.internal.thing.ThingTypeResource] - Cannot find channel type: switchbot:command
2021-10-17 20:50:14.756 [DEBUG] [ot.internal.handler.SwitchbotHandler] - Running dispose()
2021-10-17 20:50:55.945 [DEBUG] [ot.internal.handler.SwitchbotHandler] - Running dispose()
2021-10-17 21:08:15.384 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Querying state active
2021-10-17 21:08:15.387 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Deactivating component
2021-10-17 21:08:15.388 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : registration change queue [unregistered]
2021-10-17 21:08:15.396 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Querying state active
2021-10-17 21:08:15.397 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : getting deactivate: deactivate
2021-10-17 21:08:15.397 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Locating method deactivate in class org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory
2021-10-17 21:08:15.399 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Declared Method org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory.deactivate([interface org.osgi.service.component.ComponentContext]) not found
2021-10-17 21:08:15.399 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Locating method deactivate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
2021-10-17 21:08:15.400 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Found deactivate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.deactivate(org.osgi.service.component.ComponentContext)
2021-10-17 21:08:15.401 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : invoking deactivate: deactivate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
2021-10-17 21:08:15.402 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : invoked deactivate: deactivate
2021-10-17 21:08:15.403 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Unset and deconfigured implementation object for component in deleteComponent for reason Unspecified
2021-10-17 21:08:15.404 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Changed state from active to satisfied
2021-10-17 21:08:15.405 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Deactivating dependency managers
2021-10-17 21:08:15.406 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Disabling dependency managers
2021-10-17 21:08:15.407 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Querying state satisfied
2021-10-17 21:08:15.408 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Changed state from satisfied to disposed
2021-10-17 21:08:15.409 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110021230 (274)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(266)] : Disposing component (reason: 6)
2021-10-17 21:08:55.714 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : BundleComponentActivator : ComponentHolder created.
2021-10-17 21:08:55.717 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Component created: DS=DS13, implementation=org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory, immediate=false, default-enabled=true, factory=null, configuration-policy=optional, activate=activate, deactivate=deactivate, modified=null configuration-pid=[binding.switchbot]
2021-10-17 21:08:55.718 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Component Services: scope=singleton, services=[org.openhab.core.thing.binding.ThingHandlerFactory]
2021-10-17 21:08:55.720 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Component Properties: {}
2021-10-17 21:08:55.721 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Querying state disabled
2021-10-17 21:08:55.722 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Querying state disabled
2021-10-17 21:08:55.723 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Component can not be activated since it is in state disabled
2021-10-17 21:08:55.724 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory] : Querying state disabled
2021-10-17 21:08:55.725 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Updating target filters
2021-10-17 21:08:55.727 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Changed state from disabled to unsatisfiedReference
2021-10-17 21:08:55.728 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Component enabled
2021-10-17 21:08:55.729 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : ActivateInternal
2021-10-17 21:08:55.730 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Querying state unsatisfiedReference
2021-10-17 21:08:55.731 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Querying state unsatisfiedReference
2021-10-17 21:08:55.731 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Activating component from state unsatisfiedReference
2021-10-17 21:08:55.732 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Querying state unsatisfiedReference
2021-10-17 21:08:55.733 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Querying state unsatisfiedReference
2021-10-17 21:08:55.734 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Changed state from unsatisfiedReference to satisfied
2021-10-17 21:08:55.734 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : registration change queue [registered]
2021-10-17 21:08:55.739 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Checking constructor public org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory()
2021-10-17 21:08:55.740 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Found constructor with 0 arguments : public org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory()
2021-10-17 21:08:55.741 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : This thread collected dependencies
2021-10-17 21:08:55.741 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : getService (single component manager) dependencies collected.
2021-10-17 21:08:55.742 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Querying state satisfied
2021-10-17 21:08:55.743 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Querying state satisfied
2021-10-17 21:08:55.745 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : getting activate: activate
2021-10-17 21:08:55.746 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Locating method activate in class org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory
2021-10-17 21:08:55.748 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Declared Method org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory.activate([interface org.osgi.service.component.ComponentContext]) not found
2021-10-17 21:08:55.749 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Locating method activate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
2021-10-17 21:08:55.750 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Found activate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.activate(org.osgi.service.component.ComponentContext)
2021-10-17 21:08:55.751 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : invoking activate: activate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
2021-10-17 21:08:55.752 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : invoked activate: activate
2021-10-17 21:08:55.753 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Set implementation object for component
2021-10-17 21:08:55.754 [DEBUG] [bot.internal.SwitchbotHandlerFactory] - bundle org.openhab.binding.switchbot:3.2.0.202110161921 (311)[org.openhab.binding.switchbot.internal.SwitchbotHandlerFactory(328)] : Changed state from satisfied to active
2021-10-17 21:10:46.693 [WARN ] [ore.internal.thing.ThingTypeResource] - Cannot find channel type: switchbot:command
2021-10-17 21:10:57.806 [DEBUG] [rnal.handler.SwitchbotAccountHandler] - Attempting to GET /devices 
2021-10-17 21:10:59.015 [DEBUG] [rnal.handler.SwitchbotAccountHandler] - Result from WS call to get /devices: {"statusCode":100,"body":{"deviceList":[{"deviceId":"F05CF3C7D9A4","deviceName":"Bot A4","deviceType":"Bot","enableCloudService":true,"hubDeviceId":"F6F325FC0D6D"},{"deviceId":"F6F325FC0D6D","deviceName":"Switchbot Hub Mini","deviceType":"Hub Mini","enableCloudService":false,"hubDeviceId":"000000000000"}],"infraredRemoteList":[]},"message":"success"}
2021-10-17 21:10:59.020 [DEBUG] [ery.SwitchbotAccountDiscoveryService] - addThing(): Adding new Switchbot device (Bot A4) to the inbox
2021-10-17 21:10:59.023 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'switchbot:bot:1d82f8180e:F05CF3C7D9A4' to inbox.
2021-10-17 21:10:59.025 [DEBUG] [ery.SwitchbotAccountDiscoveryService] - addThing(): Adding new Switchbot device (Switchbot Hub Mini) to the inbox
2021-10-17 21:10:59.027 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'switchbot:hub:1d82f8180e:F6F325FC0D6D' to inbox.
2021-10-17 21:11:04.256 [WARN ] [re.thing.internal.ThingFactoryHelper] - Could not create channel 'command', because channel type 'switchbot:command' could not be found.
2021-10-17 21:11:04.270 [DEBUG] [witchbot.internal.handler.HubHandler] - Will boot up Switchbot Hub binding
2021-10-17 21:11:04.273 [DEBUG] [witchbot.internal.handler.HubHandler] - Hub Config: HubConfig [deviceId=F6F325FC0D6D]
2021-10-17 21:11:39.075 [WARN ] [ore.internal.thing.ThingTypeResource] - Cannot find channel type: switchbot:command
2021-10-17 21:12:00.673 [DEBUG] [witchbot.internal.handler.BotHandler] - Will boot up Switchbot Bot binding
2021-10-17 21:12:00.675 [DEBUG] [witchbot.internal.handler.BotHandler] - Bot Config: BotConfig [refreshInterval=60, deviceId=F05CF3C7D9A4]
2021-10-17 21:12:00.677 [DEBUG] [ot.internal.handler.SwitchbotHandler] - Start automatic refresh at 60 seconds
2021-10-17 21:12:01.135 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:13:01.826 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:13:46.138 [WARN ] [e.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: SwitchbotBotA4
2021-10-17 21:13:46.140 [WARN ] [e.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: SwitchbotBotA4_Power
2021-10-17 21:13:46.141 [WARN ] [e.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: SwitchbotBotA4_SendCommand
2021-10-17 21:14:02.263 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:14:09.942 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:14:10.588 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:14:18.537 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"errorType":"TypeError","errorMessage":"Cannot read property 'command' of null","trace":["TypeError: Cannot read property 'command' of null","    at Runtime.exports.handler (/var/task/index.js:46:44)","    at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"]}
2021-10-17 21:14:18.889 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:15:02.679 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:16:03.110 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:17:03.529 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:17:49.457 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:17:49.624 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:18:03.110 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:18:03.560 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:18:03.855 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:19:04.336 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:20:04.727 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:21:05.177 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:22:05.625 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:23:06.055 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:24:06.446 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:25:06.865 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:26:04.434 [WARN ] [ore.internal.thing.ThingTypeResource] - Cannot find channel type: switchbot:command
2021-10-17 21:26:07.309 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:27:07.701 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:28:08.106 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:29:08.497 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:30:09.025 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:30:26.460 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:30:26.755 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:31:09.432 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:31:10.276 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:31:10.584 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:32:09.872 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:33:10.325 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:33:37.901 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:33:38.307 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:33:54.709 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:33:55.123 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:34:10.756 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:34:31.331 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:34:31.859 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:34:52.352 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:34:52.870 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"off"},"message":"success"}
2021-10-17 21:35:11.189 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:35:13.689 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:35:14.021 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:35:40.403 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:35:40.846 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:35:56.290 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/command: {"statusCode":100,"body":null,"message":"success"}
2021-10-17 21:35:56.704 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:36:11.608 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:36:28.718 [WARN ] [ore.internal.thing.ThingTypeResource] - Cannot find channel type: switchbot:command
2021-10-17 21:36:54.916 [WARN ] [ore.internal.thing.ThingTypeResource] - Cannot find channel type: switchbot:command
2021-10-17 21:37:12.049 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:38:12.479 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:39:12.972 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:40:13.402 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:41:13.872 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:42:14.370 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:43:14.785 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:44:15.287 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:45:15.748 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:46:16.222 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:47:16.648 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:48:17.078 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:49:17.512 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:50:17.946 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:51:18.375 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:52:18.806 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:53:19.256 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:54:19.699 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:55:20.218 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:56:20.746 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:57:21.400 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:58:21.786 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 21:59:22.198 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:00:22.803 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:01:23.269 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:02:23.715 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:03:24.108 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:04:24.550 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:05:24.992 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:06:25.418 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:07:25.836 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:08:26.280 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:09:26.692 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:10:27.117 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:11:27.557 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:12:27.992 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:13:28.448 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:14:28.909 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:15:29.329 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:16:30.063 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:17:30.520 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:18:31.084 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:19:31.493 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:20:31.997 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:21:32.466 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:22:32.896 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:23:33.381 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:24:33.836 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:25:34.331 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:26:34.804 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:27:35.205 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:28:35.684 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:29:36.088 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:30:36.503 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:31:36.913 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:32:37.380 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:33:37.862 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:34:38.290 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:35:38.686 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:36:39.085 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}
2021-10-17 22:37:39.509 [DEBUG] [t.internal.handler.SwitchbotApiProxy] - Result from WS call to get /v1.0/devices/F05CF3C7D9A4/status: {"statusCode":100,"body":{"deviceId":"F05CF3C7D9A4","deviceType":"Bot","hubDeviceId":"F6F325FC0D6D","power":"on"},"message":"success"}

Very grateful for your help… please let me know if I can assist with troubleshooting in any way.

Cool, nice to see it works for you :slight_smile:
The repeated calls are a status update call, to see what the current status of the device is. It is controlled by the refreshInterval parameter. Normal behaviour thus.

1 Like