Switchbot

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

How do I get this for my Switchbot, I don’t see it in the bindings? sorry pretty new at this…

I’m working on replicating this and I get an error when I try to run the last line: (sudo pip install bluepy)

sudo apt-get update
sudo apt-get install python-pexpect
sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev 
sudo apt-get install libudev-dev libical-dev libreadline-dev
sudo pip install bluepy
openhabian@openhabian:~ $ sudo pip install bluepy
sudo: pip: command not found

If I try to run the script, I’m getting “No module named bluepy.btle”

I have an RPi 3 that has Bluetooth, so I do not have a dongle.

I found the issue, used

sudo pip3 install bluepy

I spoke too soon, I still have an issue when I try to run the script from the Pi where is the Mac Address of my device:


openhabian@openhabian:~/python-host $ python switchbot.py <mac add> Press

Traceback (most recent call last):
  File "switchbot.py", line 17, in <module>
    from bluepy.btle import Scanner, DefaultDelegate

Hi all,

just FYI, OpenMQTTGateway has almost all (save for the Plug Mini) SwitchBot devices integrated into its BLE gateway, with the Bot control already directly implemented, and the Curtain control working by direct MQTT commands so far. The remaining SwitchBot devices are status read only, e.g. Motion Sensor, Contact Sensor …

So with a small ESP32 and OpenMQTTGateway installed on it this is fully compatible with the OpenHAB MQTT implementation, including auto-discovery.

The challenge is that the documentation is written for those who already understand it. It is not a tutorial on ‘how’ to do it. The original post was somewhat a step-by-step tutorial, but the issue is that it is now outdated, doesn’t work and no one seems to know how to fix it.

I use this gateway implementation which is pretty easy to use and also offers auto detection:

However I agree that a solution like this, even if easily configurable, is not something for everyone.

Apologies, I just assumed that with a web installation on an ESP32 would be quite easy, and then receiving MQTT states (stateTopic) for all the implemented SwitchBot devices, and being able to control them with MQTT commands (commandTopic) would be manageable with so many other MQTT tutorials already in the forum. But as DrRSatzteil stated above, it’s not for everyone, especially if there is no previous experience with MQTT.

Unfortunately, since I’m using all textual configurations, I’m not the best one to give an easy tutorial either, but a search for OpenMQTTGateway or the above mentioned gateway should come up with many results for other device’s implementations, adhering to the same paradigm. And once familiar with the general OpenHAB MQTT functionality it opens up a a wide range of future device possibilities, without the need for specific bindings or scripts.

EDIT - a tutorial has just been posted

No doubt if you have an ESP32, all the required pieces, and know how to use it, then it would be simple.

I have the same question. I’m using OH 3.2.0
I can’t find the Switchbot binding

Hi,

thanks dietah for your post :+1:. Unfortunately I have problems with the deployment.

I’m using a Raspi 4B with Raspberry Pi OS (64-bit). On the Raspi, there are running OH and MQTT containers. I’m using Portainer for container administration. I have connected a z-Wave USB-stick and the EnOncean Pi module on GPIO of the Raspi. My plan is to use the internal Bluetooth interface on the Raspi to control Switchbot switches.

I tried the following according to your readme. I am listing everything in detail as I am still quite a beginner:

  1. Installing of the necessary Bluetooth libraries => worked well
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
  1. Read out Bluetooth interface (i have changed Bluetooth to mini-UART because of the EnOcean Pi on the GPIO):
root@*******:~# ls -l /sys/class/bluetooth
insgesamt 0
lrwxrwxrwx 1 root root 0 10. Aug 01:19 hci0 -> ../../devices/platform/soc/fe215040.serial/tty/ttyS0/hci0

As far as I understand, Bluetooth is now on device /ttyS0/hci0

  1. Own directory created for the switchbot container
mkdir /opt/switchbot
  1. The docker-compose.yml is created in it (mode privileged: true and network_mode: host added):
version: '3.6'
services:
  mqtt-switchbot:
    container_name: switchbot
    image: deetoreu/mqtt-switchbot
    restart: always
    privileged: true
    environment:
      MQTT_HOST: "192.xxx.xxx.xxx"
      MQTT_PORT: 1883
      MQTT_USERNAME: xxxxx
      MQTT_PASSWORD: xxxxx
      MQTT_TOPIC: switchbot
      LOG_LEVEL: "DEBUG"
      SCAN_DURATION: 5*1000
      DEVICE_LIST: "xx:xx:xx:xx:xx:xx,xx:xx:xx:xx:xx:xx"
    devices:
      - "/dev/ttyS0"
      - "/dev/hci0"
      - "/dev/ttyS0/hci0"
    network_mode: host
    volumes:
      - ./volumes/switchbot/logs:/usr/src/app/logs
  1. Apply the container with:
docker-compose -f docker-compose.yml up -d

The switchbot container is running well according to Portainer. Unfortunately, I still don’t see any incoming topics from the Switchbot switch in the MQTT Explorer :confused:

I have also checked Bluetooth connections with

sudo bluetoothctl
agent on
default-agent
scan on

The switchbot switches are listed and have good RSSI values. So I think that the Bluetooth connection generally works.

  1. In OH I created a generic MQTT thing, created an on-off switch as a channel and adapted the code for the value to be transferred:
UID: mqtt:topic:2e5f0240eb:Switchbottest
label: Switchbottest
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:2e5f0240eb
channels:
  - id: Switchbottest
    channelTypeUID: mqtt:switch
    label: Switchbottest
    description: ""
    configuration:
      commandTopic: /switchbottest
      stateTopic: /switchbottest
      off: switchbottest/switch/xx:xx:xx:xx:xx:xx/set off
      on: switchbottest/switch/xx:xx:xx:xx:xx:xx/set on

The topic with the values ​​arrives correctly at the MQTT broker.

Unfortunately, the Switchbot switch is not responding. Anyone have any ideas what could be wrongly configured? Are the topic settings in the .yml correct? Should the Switch also send it’s status (battery, linkquality) after operate with the Switchbot app?