SwitchBot gets an open API!

As you see I had these too. Moving the hub closer took away some of the logs errors which I attibute to BLE distance/interfence.
Those 500's I think were just comms issues with Chairman Mao.
They haven't been back since my post. New firmaware pushed last week for the blinds BTW.

Interesting. I’ll try moving it closer. No update showing for my curtain 3 unit yet.

I found being in my office 10 meters away and close to the HE hub plus 2 Blink hubs caused the Switchbot hub logs to have errors.
Moving to within 3 meters helped with that but didn't help with the command delivery/execution.
I still have to send each command twice with a delay to have 99% proper action.

Hmm. No improvement of error 500s since moving the SwitchBot Hub about 5 feet from the curtainbot 3.
dev:25502024-05-01 08:07:34.092 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 08:07:33.892 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 08:02:33.554 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 07:22:27.362 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 07:12:26.538 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 07:12:26.337 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 07:07:25.667 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 07:07:25.666 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 07:02:25.184 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 06:47:23.482 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 06:37:21.730 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 06:32:21.159 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 06:32:21.157 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 06:22:20.096 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 06:22:19.894 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 05:37:13.538 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 05:27:12.225 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 05:07:09.763 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 05:07:09.564 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 05:02:47.552 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 05:02:09.286 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 05:02:08.884 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:47:06.846 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:42:06.634 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:37:05.838 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:22:04.226 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 04:22:03.824 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:12:02.754 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:12:02.752 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:07:02.542 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 04:07:02.341 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:02:01.772 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 04:02:01.573 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 03:57:01.445 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 03:57:00.986 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 03:52:00.656 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 03:36:58.544 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 03:26:57.472 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 03:21:56.631 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 03:16:55.871 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 03:16:55.869 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 02:51:52.735 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 02:31:49.909 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 02:26:49.212 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 02:16:48.013 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 01:46:43.720 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 01:31:41.927 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 01:31:41.727 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 01:26:41.132 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 01:21:40.547 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 01:16:39.815 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 12:51:35.747 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 12:36:34.079 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 12:36:33.878 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

dev:25502024-05-01 12:26:32.901 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 12:21:32.001 AMerrorgroovyx.net.http.HttpResponseException: status code: 500, reason phrase: Internal Server Error on line 516 (method readDeviceStatus)

dev:25502024-05-01 12:06:29.568 AMdebugrefresh() failed: status code: 500, reason phrase: Internal Server Error

I started with Tom's integration specifically for the Switchbot Curtains. It did work very well but unfortunately it is a cloud-based integration. I don't like cloud-based based integrations. I added Home Assistant to my setup and was surprised I can use Switchbot Curtains (plus many other devices) 100% locally. And as of today with matter-enabeled Switchbot Hub 2 it is possible to get rid of Switchbot cloud-based integration. Why not?

Use the Matter Advanced Bridge for local control from Hubitat, several users already confirmed that the control of SwitchBot curtains is working OK.

Yes, I saw a messages regarding Switchbot Matter support and will keep it in mind. But as of now I already have 100% local control with Home Assistant. Currently I don't see a necessity to add a new device (Switchbot Hub 2) to my setup. But who knows...

1 Like

Home Assistant works with everything; once you have it set up and running, I agree there is no need to add more complexity.

1 Like

I’ve also started getting errors intermittently through the day and my Smart Lock fails commands sometimes. My hub is in my hall closet on the other side of the wall from my front door, and I can’t get it closer (without using an extension cord) coming out of the closet, so I’m not sure what’s going on. I may try the matter hub route, but would really be great if this would work more consistently as is. Did you find a solution at all?

Summary

I've moved the hub as close as possible - like 6 feet - from my other Switch-bot devices. I still get tons of errors in the logs. BUT, I don't see errors in the Switch-bot logs themselves. So I don't really believe it's a problem between the hub and the devices but rather between the integration and the hub. I've improved reliability of Hubitat automations by always repeating every command usually with a few second delay between the commands. But, the errors in the logs are really annoying. Last few hour errors--

Those errors are from http which means IP networking - wifi or ethernet. I suspect device2550 is misconfigured or the IP # it is wants is unavailable.

I believe if I'm reading the code correctly, the integration code is contacting https://api.switch-bot.com/ etc etc. and getting these errors. So, either their server goes south or there's a bug in the @tomw s code. I think it works most of the time and errors some of the time?

Or possibly there's a bug on the switch-bot side. Seems other integrations are having the same issue:

That sounds likely to me. I moved to using switchbot matter from homekit for my blinds because I don't like being tied to the cloud. I'll move the blinds back to Hubitat Matter one of these days.

The Switchbot servers will also call into missing endpoints in Hubitat with no good way to get rid of it if you lost the API key for the endpoint.

Hi All,

Love this integration! Works great.

Question, which I may have asked before - how do I add new devices?
Since installing two blinds and a set of curtains, I now have a Switchbot Camera, and today a Switchbot Lock.

For the lock, I installed the driver, but am unable to get the device created.
It shows in the Switchbot System Devices, but will not create a child device.
Any ideas??

Same here - the logs say:

dev:16922024-05-21 18:01:59.192 debug create ChildDevice() failed: deviceType not supported
dev:16922024-05-21 18:01:59.188 debug create ChildDevice: deviceType not supported

I have the keypad and it looks like the 'system' see's that it's there but there's no driver for the keypad (yet?) so unsurprising that it's not getting created, but the driver for the lock is present and I can 'manually' create a device but I'm not sure how to manually link the device to the system (network id?)

I am trying to use a Switcbot Lock unlocking as a trigger and it never gets triggered. It never shows up in the logs either. But the status of the device is correctly shown in the device itself. And locking and unlocking works. But, can't be used as a trigger. Is there something obvious I'm missing? And since I'm using a Switchbot Hub2 which supports matter I'm wondering if that's a better way to go these days. I have both a lock and a curtain 3 device which work great with this code other than this issue.

Locks are not yet supported in the current implementation of Matter in Hubitat.

Rats.

Hate to have automations in multiple places, but it works fine in Apple HomeKit.