Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Local API Support #19

Open
niemyjski opened this issue Jan 7, 2021 · 79 comments
Open

Add Local API Support #19

niemyjski opened this issue Jan 7, 2021 · 79 comments
Labels
enhancement New feature or request pinned pin important issues

Comments

@niemyjski
Copy link

niemyjski commented Jan 7, 2021

Is your feature request related to a problem? Please describe.

It's extremely important to control this hub and products locally (preferably via mqtt or http). Having cloud dependencies doesn't work when networks go down or companies go under or kill a product line.

Describe the solution you'd like

I'd like to control my devices locally and get metadata about them (firmware version info, current state, etc).

Describe alternatives you've considered

Additional context

From reading I thought you were working on a local api for the hub but it's only a cloud api.

References #12, #13 where I asked a question if this for the cloud api or local control.

@niemyjski niemyjski added the enhancement New feature or request label Jan 7, 2021
@donavanbecker donavanbecker changed the title Add local api support Add Local API Support Jan 12, 2021
@donavanbecker donavanbecker added the pinned pin important issues label Jan 12, 2021
@nigels0
Copy link

nigels0 commented Jan 14, 2021

If you won’t develop this, then please publish the calls to the hub so that the community can do it.

@mvevitsis
Copy link

Give us local control! No cloud!

@Nardol
Copy link
Contributor

Nardol commented Mar 3, 2021

A local API would be essential.
Moreover, with no rate limit as 1000 per day is really poor, especially for meters. Having the temperature updated without the ability to do it even one time per minute is not enough precise. A local API doesn't need to take in account servers charge so it is another argument to make it or to communicate users how to communicate with a Switch-Bot hub (every models).

@AdyRock
Copy link

AdyRock commented Apr 29, 2021

I have written an app for the Athom Homey to integrated SwitchBot devices into users home automation systems. Currently the app has nearly 300 users but I get many that are disappointed by the slow response of devices due to the rate limit. Most users have at least 2 or 3 SwitchBot devices that need to be kept up to date and as the limit is on the total number of calls and each device needs one call to update it, it means each one only gets updated about every 5 minutes.
If a user wants to turn on lights when the curtains close via a remote, 5 minutes is a long to to wait in the dark. I am trying to educate users to dump the SwitchBot remotes and use Homey to control everything.
My app also communicates directly via BLE if the devices are close enough to Homey which does solve some of the issues. If Homey is not in range, then I encourage users to buy a £7 ESP32 module and load my Arduino code. That can interface to the devices via BLE and reports back to Homey via an HTTP callback over WiFi.
However, if the SwitchBot hub supported a good local API then I could recommend that instead of the other inconveniences that put users off.

@Nardol
Copy link
Contributor

Nardol commented May 7, 2021

Can we hop an official answer from Switch-Bot on this subject?
To know if it is planned, excluded or something else...

@Minsheng
Copy link
Collaborator

Minsheng commented May 8, 2021

Hello keen developers, this is Davidson from the dev team. We are aware of the needs for having a local API and the merits of it Unfortunately we currently cannot promise anything about it because tbh with you our dev resources are fully occupied with the R&D of new products and the maintenance of the app. We encourage you guys to find alternative solutions at this point but we will continue to keep a close eye at the community. Thanks! Davidson, SwitchBot Team

@AdyRock
Copy link

AdyRock commented May 8, 2021

We encourage you guys to find alternative solutions at this point

And what would you suggest as an alternative solution?

The rate limit on the current alternative solution (the official API) is crippling. It wouldn't be so bad if the rate limit was per device or there was an API to retrieve the status of all devices in one call.
Maybe the dev team could add in a callback method where an address could be registered in the API to post events to. E.g. when a curtain position changes or the temperature measurement changes, send a message to the callback address. Then at least the rate limit would just be for sending commands to control devices, which would be usable.
If you don't have time to implement a full local API at least spend a little bit of time making the cloud API useful.

@mvevitsis
Copy link

The alternative solution is to throw your switchbot devices in the trash and buy something that uses Zigbee or Zwave

@Damianeq90
Copy link

Sorry for my English.
I have a problem with curtains and hombridge, when I manually close the curtain, the status in HomeBridge does not update - it helps to enter the SwitchBot iPhone application, scroll down (refresh) and after two minutes Homebridge updates - has anyone dealt with this problem? I bought a hub on purpose, hoping that the update would be trouble-free

@devWaves
Copy link

if anyone is looking for a local solution for bots/curtains/meters and you have an esp32 (about $5). no switchbot hub needed.

uses MQTT and now supports HA MQTT discovery

https://community.home-assistant.io/t/switchbot-bot-curtain-meter-mqtt-esp32-bridge-local-control

@DutchmanNL
Copy link

DutchmanNL commented Sep 2, 2021

And what would you suggest as an alternative solution?

The rate limit on the current alternative solution (the official API) is crippling. It wouldn't be so bad if the rate limit was per device or there was an API to retrieve the status of all devices in one call.

fully aggree, so we have enough developers to maintain a useless cloud with rate limit of 1000 calls a day but not to ensure a device I bought in my house can be controlled locally without limitations.

I am currently. developing integration to smartphone systems for SwitchBot and will finalize it for cloud api but will not support any consumers as this limit is, sorry to say that, absolutely ridiculous and absolutely moving the device from a 9-10 start rating down to 0 @Minsheng

The device here will been returned right away due to this limitation

In addition to topic startet, please (if local api come available) make it smart and support WS (web services) not only mqtt for integrations in other solution a stable protocol is needed with proper communication and that's not MQTT or a polling API

@Zwordi
Copy link

Zwordi commented Nov 22, 2021

@Minsheng

Thanks for your message about your current load :).

Will wait the news then about a local api support through the hubmini who knows...

Regards,

@rafa-esco
Copy link

rafa-esco commented Dec 3, 2021

Just to let you know that in May 21 I got the following response from the switchbot twitter account:
"... our API limitation has been increased to 10000 per day..."

I'm indeed sending at least 5000 request every day from my domoticz installation to all my sensors and curtains.

@funkymonkeymonk
Copy link

Hey folks. I wanted to bump this as 10000 requests per day is a great step forward for the cloud offering but I'd still like to be able to work with local control as right now the latency for closing my curtains is very long.

@nodecentral
Copy link

Just wanted to add my support to us all having a completely local (no cloud) API for Switchbot

@slimninja
Copy link

+1 for local api support. Would reduce demand on switchbot servers as well

@JGKarlin
Copy link

Hello keen developers, this is Davidson from the dev team. We are aware of the needs for having a local API and the merits of it Unfortunately we currently cannot promise anything about it because tbh with you our dev resources are fully occupied with the R&D of new products and the maintenance of the app. We encourage you guys to find alternative solutions at this point but we will continue to keep a close eye at the community. Thanks! Davidson, SwitchBot Team

SwitchBot products are scorned by the home assistant and home automation communities because of these limitations. Do you not realize how much your sales would grow by working to allow your products to have greater user control through a local API? Is it really practical for you to run Cloud servers with users needing to ping the Cloud API nearly 10,000/day?

@andhya
Copy link

andhya commented Oct 21, 2022

would definitely be more keen to buy the new blind bots if there was a local api, but i've got the hub and meter and a couple of curtain bots currently sat doing nothing because they're just not reliable enough via cloud

@asknoone
Copy link

@Minsheng given that this thread is nearly 2 years old now, do you have an update on this?

It looks like the Home Assistant community has managed to implement local control for some devices, however some such as the smart lock and keypad have not been implemented. Smart locks in particular is kind of device that people don't like exposing to the Internet via 3rd party servers if it's not necessary.

There is not much effort required from Switchbot, just to provide the relevant tech specs. It would be very helpful to provide HA developers with the information they need to build these integrations. There are over half a million users of Home Assistant now so it's something worth taking note of.

@Minsheng
Copy link
Collaborator

@Minsheng given that this thread is nearly 2 years old now, do you have an update on this?

It looks like the Home Assistant community has managed to implement local control for some devices, however some such as the smart lock and keypad have not been implemented. Smart locks in particular is kind of device that people don't like exposing to the Internet via 3rd party servers if it's not necessary.

There is not much effort required from Switchbot, just to provide the relevant tech specs. It would be very helpful to provide HA developers with the information they need to build these integrations. There are over half a million users of Home Assistant now so it's something worth taking note of.

I have been keeping an eye on this thread as well as the need to build local API. Some of our developers had internal discussions about this. Our marketing teams, who have closely collaborated with the community and KOLs, have also approached me regarding better integrations with Home Assistant.

Many of your opinions are valid and I myself agree with you as a developer and consumer. We haven't come to a conclusion to when and how we will support local API control just yet, but we will definitely keep coming up with more updates.

@AdyRock
Copy link

AdyRock commented Nov 23, 2022

Local control would be great so automation can continue when the Internet connection is down.

@dcousens
Copy link

@Minsheng that's great to hear it's still on your radar, thanks for the update!
I know that at least I am holding out from buying SwitchBot products until I have local control 💛

@nodecentral
Copy link

@Minsheng - great to hear, and please don't just think about Home Assistant - the use goes way beyond that.

A local rest api can be integrated into so many things. I for one build my own plugins for ezlo/Vera and openLuup, and I'm a big user of NodeRed too.

A number of use cases around home automation I see are at holiday homes where internet can be patchy, but they need to know somethings are actively being monitored and responded to.

For a company that provides door locks, temperature sensors, curtain openers etc. - your missing out on a load of off-grid places (by choice or circumstances) who can't use SwitchBot..

@austwhite
Copy link

Just adding my voice to the local API. If they can start with Home Assistant, then at least there is room to build out from there as Home Assistant does use pretty standard API's, including REST APi's. Anything in the direction of local control is a good step.
The Home Automation industry has come full circle on this, with more platforms, such as Smartthings, going to more local control and Matter is also local control. To have that local control would be to be keeping up with the game now. Two years ago it would have been leading the field, but now it is essential for you to keep up with the other guys.

@jpconfessor
Copy link

Finally Home assistant implemented BLE control for switchbot locks! it is available in the 2023.1 release.. I wasn't expecting that.. after the upgrade.. boom! the lock shows up!

@austwhite
Copy link

austwhite commented Aug 26, 2023

The good thing with Switchbot is you don't need the cloud API because it also has BLE so Home Assistant can grab it all via BLE as does the Switchbot app.
You only need the API if you plan using one of switchbot hubs as your primary remote access device.

I think the hubs can work locally via BLE, but that really makes little difference given the app connects BLE also

@dcousens
Copy link

dcousens commented Aug 26, 2023

I think the hubs can work locally via BLE

@austwhite do you have any references for this? My understanding is the Hub Mini cannot be used locally for it's IR functionality.

@austwhite
Copy link

austwhite commented Aug 26, 2023

I don't use the IR blaster function, so can't comment on that. But I know I have to enable cloud for the individual switchbot devices I have for the hub to connect to them, otherwise the app just connects directly

For BLE devices, yes the BLE devices use BLE to connect to the hub, but the app seems to use the API to connect to the hub, at least with the hub mini that I have. Can't comment on the newer hubs as I have no experience with them as yet.

Sorry for my confusion on the last comment. I didn't quite finish my sentence properly. Brain fart.

@AdyRock
Copy link

AdyRock commented Aug 26, 2023

I use ESP32 modules running my own code
(which is in my GitHub repository) to do just that. They send receive BLE and REST commands as a broker between Homey and the Switchbot devices. They work very well and provide a fast response to state changes and commands. I know several Homey users have implemented them but they are technically out of reach for the majority of users. I could produce them for users, as once programmed they are completely plug-and-play, so very simple to use, but the cost of shipping from the UK puts users off as it's two to three times the price of the hardware.

@martin072
Copy link

I use ESP32 modules running my own code
(which is in my GitHub repository) to do just that. They send receive BLE and REST commands as a broker between Homey and the Switchbot devices. They work very well and provide a fast response to state changes and commands. I know several Homey users have implemented them but they are technically out of reach for the majority of users. I could produce them for users, as once programmed they are completely plug-and-play, so very simple to use, but the cost of shipping from the UK puts users off as it's two to three times the price of the hardware.

Hi Andy, would the esp code be available? I just started with a homey pro 2023 and also have some SwitchBot products, so very interested. Able to compile the esp32 code myself if available.

@AdyRock
Copy link

AdyRock commented Aug 26, 2023

Yep, it's in my GitHub repo https://github.com/AdyRock/SwitchBotBLEHub.
I have provide instructions in the readme.

@sebbo2002
Copy link

I use https://github.com/1technophile/OpenMQTTGateway/ to control my SwitchBot Curtains without the offical hub. Works fine for me. Reading is supported out of the box and you can send also send commands (see 1technophile/OpenMQTTGateway#1412). The biggest advantage is that many other devices are also supported. Maybe someone will find this useful.

@akballow
Copy link

Either the api limit needs to scale with number of devices purchased or pay for be api limit if local api is never gonna happen.

having 30 devices I can only poll like once every 5 minutes is pretty stale…

@Nardol
Copy link
Contributor

Nardol commented Jan 16, 2024

having 30 devices I can only poll like once every 5 minutes is pretty stale…

Maybe a web hook can be a solution?
Even if I still totally agree a local API would be really welcome because web hook requires opening a port remotely accessed.

@archer007
Copy link

I do an annual checkin on this issue to see if SwitchBot stuff is ready to buy yet, guess not yet. Cobbled together and reverse engineered Bluetooth command support that can disappear at any time is not adequate. Maybe next year

@alexbk66
Copy link

I do an annual checkin on this issue to see if SwitchBot stuff is ready to buy yet, guess not yet. Cobbled together and reverse engineered Bluetooth command support that can disappear at any time is not adequate. Maybe next year

The BLE API is official: https://github.com/OpenWonderLabs/SwitchBotAPI-BLE

@alexbk66
Copy link

Maybe a web hook can be a solution?

There are other technologies, i.e. YoLink use MQTT, ESPHome use EventSource, etc.

@Nardol
Copy link
Contributor

Nardol commented Feb 25, 2024

There are other technologies, i.e. YoLink use MQTT, ESPHome use EventSource, etc.

You forgot to quote the part of my comment where I told a real local API would be better 😄
My intent was only to suggest something which could help within using existing features while the really best solution is not implemented 🙂

@alexbk66
Copy link

You forgot to quote the part of my comment where I told a real local API would be better

I totally agree. Just from my experience with these companies, if they against Local API for any reason (hopefully temporarily) - some kind of Server real time event is better than polling.

I.e. YoLink MQTT status updates work fine (assuming internet connection works).

BTW, YoLink polling rate limiting is much better - it only limits within 5 minutes, unlike SwitchBot - where once you hit the limit - you have to wait for a new day, which sucks.

FYI, I'm the author of HomeSeer integrations

https://forums.homeseer.com/forum/hs4-products/hs4-plugins/lighting-primary-technology-plug-ins-aa/ak-switchbot/1620351-new-switchbot-plugin-using-latest-switchbot-api-v1-1

https://forums.homeseer.com/forum/hs4-products/hs4-plugins/lighting-primary-technology-plug-ins-aa/ak-yolink-alexbk66/1655405-ak-yolink-plugin

@AdyRock
Copy link

AdyRock commented Feb 25, 2024

Webhooks are available for a lot of things, but there are still key events that are still missing from the specification.
But I agree, a local API would be the best solution. I can see that Matter is slowly being rolled out, but so far I haven't got that to work either.

@XLTechie
Copy link
Contributor

XLTechie commented Feb 26, 2024 via email

@alexbk66
Copy link

alexbk66 commented Feb 26, 2024

Hello keen developers, this is Davidson from the dev team. We are aware of the needs for having a local API and the merits of it Unfortunately we currently cannot promise anything about it because tbh with you our dev resources are fully occupied with the R&D of new products and the maintenance of the app. We encourage you guys to find alternative solutions at this point but we will continue to keep a close eye at the community. Thanks! Davidson, SwitchBot Team

Three years later. Hi @Minsheng Davidson - any update?

FYU - I'm the author of HomeSeer SwitchBot integration https://forums.homeseer.com/forum/hs4-products/hs4-plugins/lighting-primary-technology-plug-ins-aa/ak-switchbot/1620351-new-switchbot-plugin-using-latest-switchbot-api-v1-1

And I'm telling you - without the local integration you are just loosing sales big time. First question HomeSeer users ask - is it Local or Server? And then - "No, thank you".

At least, without Local integration you should implement some real time status notifications which doesn't require port forwarding - i.e. YoLink using MQTT.

Polling just doesn't work given the rate limiting.

[EDIT]

our dev resources are fully occupied with the R&D of new products

You should set priorities right. You have good enough range of products. By adding Local API you will increase your sales 100 times. Then you can afford R&D of new products.

@MrXANA91
Copy link

Any update on this would be great. Even a non standard local API through wireless LAN would be enough and greatly appreciated.

@tpftpf
Copy link

tpftpf commented Apr 15, 2024

I urge you to add a local API!

@zuberspace
Copy link

still no local API? wow ...

@am2pgs
Copy link

am2pgs commented May 3, 2024

In case somebody finds this helpful:

I can control my switchbot lock pro locally using using Home assistant + Matter + switch bot hub mini.I think switchbot are adding matter support to their other products via firmware updates.

1)Install Matter add on in HA and Matter integration in HA
2)Enable Matter on hub mini using the switchbot app and add the lock pro or other switchbot devices as secondary devices to hub mini's matter interface in the switchbot app
3)Pair hub mini Matter with HA using the HA android or iOS app.
4) head to HA and in the devices your matter enabled devices should appear. It is very responsive too and status seems to be updated too.

@js4jiang5
Copy link

In case somebody finds this helpful:

I can control my switchbot lock pro locally using using Home assistant + Matter + switch bot hub mini.I think switchbot are adding matter support to their other products via firmware updates.

1)Install Matter add on in HA and Matter integration in HA 2)Enable Matter on hub mini using the switchbot app and add the lock pro or other switchbot devices as secondary devices to hub mini's matter interface in the switchbot app 3)Pair hub mini Matter with HA using the HA android or iOS app. 4) head to HA and in the devices your matter enabled devices should appear. It is very responsive too and status seems to be updated too.

How do you enable Matter on hub mini? Hub mini does not support Matter. Only Hub 2 can support Matter.

@am2pgs
Copy link

am2pgs commented May 5, 2024

In case somebody finds this helpful:
I can control my switchbot lock pro locally using using Home assistant + Matter + switch bot hub mini.I think switchbot are adding matter support to their other products via firmware updates.
1)Install Matter add on in HA and Matter integration in HA 2)Enable Matter on hub mini using the switchbot app and add the lock pro or other switchbot devices as secondary devices to hub mini's matter interface in the switchbot app 3)Pair hub mini Matter with HA using the HA android or iOS app. 4) head to HA and in the devices your matter enabled devices sh
How do you enable Matter on hub mini? Hub mini does not support Matter. Only Hub 2 can support Matter.

You will have to enable Matter for the Hub Mini from the switchbot app. Under hub mini settings.

@MrXANA91
Copy link

MrXANA91 commented May 5, 2024

You will have to enable Matter for the Hub Mini from the switchbot app. Under hub mini settings.

Unfortunately, this feature seems to be available only for the newest version of the hub mini that is "Matter enabled".
I can't find that Matter option in the hub mini settings in the SwitchBot app, for the hub mini that I currently own.

@am2pgs
Copy link

am2pgs commented May 5, 2024

That is a shame with older hub mini's. Nevertheless I think Matter is the route switchbot seems to be going instead of a proprietary local API. They other way I can think of local control of switchbot devices is by using ESPhome Bluetooth proxy + HA.

@js4jiang5
Copy link

That is a shame with older hub mini's. Nevertheless I think Matter is the route switchbot seems to be going instead of a proprietary local API. They other way I can think of local control of switchbot devices is by using ESPhome Bluetooth proxy + HA.

@am2pgs @MrXANA91 Well, this almost guarantee they're not going to upgrade the firmware for the old hub mini because that will impact the sale of their new one. The hardware of the old and new ones are probably the same, only the firmware is upgraded.
BT proxy + HA only work for bluetooth devices, not the IR. For the infrared, it's still cloude based without Matter.

@alexbk66
Copy link

alexbk66 commented May 6, 2024

The hardware of the old and new ones are probably the same

I think Matter requires "Thread" chip?

@dcousens
Copy link

dcousens commented May 6, 2024

@am2pgs can you utilize the IR functionality of the Hub mini using matter?

@am2pgs
Copy link

am2pgs commented May 6, 2024

@am2pgs can you utilize the IR functionality of the Hub mini using matter?

I don't use the IR function of hub mini. But I just tried adding a random TV remote to hub mini, and it shows up on matter as a single on/off switch on Matter/HA. Not sure if I M doing something wrong.

@js4jiang5
Copy link

The hardware of the old and new ones are probably the same

I think Matter requires "Thread" chip?

No. Matter support multiple PHY standards. Thread is just one of them. WiFi and Bluetooth are all supported by Matter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pinned pin important issues
Projects
None yet
Development

No branches or pull requests