Integrating the SwitchBot S10 with Matter
I set this up because the marketing sounded better than the actual integration. The SwitchBot S10 works with Matter, but the basics are all you get unless you do some digging. I use Matter for simple control, then fall back to Home Assistant or the SwitchBot cloud API when I need the rest.
Getting the S10 working properly
What Matter gives you
The S10 is a robot vacuum with suction, navigation and a dock. It also exposes commands through the SwitchBot app and, after recent updates, through Matter-compatible controllers. Through Matter, expect the usual basics: start, stop, pause and send to dock. Advanced cleaning modes, map editing and spot cleaning are often missing.
Check the SwitchBot app first. Look at the firmware version and turn on any cloud or local control toggle the app offers. Note the features the app can use that Matter cannot. That is the gap you need to work around later.
What Matter is good for
Matter is useful for discovery and simple commands across different smart home systems. It does a decent job with basic controls. It does not promise vendor-specific features, and that is where the S10 gets awkward. Treat Matter as the lowest common denominator unless the vendor has added something extra.
If you want advanced vacuum behaviour, assume you will need a bridge or a separate integration. Use Matter for straightforward automations and device discovery, not for anything clever.
My setup
I keep local control first where I can. For this setup I used:
- A stable Wi-Fi network with a fixed DHCP lease for the S10.
- One controller for automations. I run Home Assistant locally.
- The SwitchBot app for pairing and firmware updates.
My pairing checklist was simple:
- Update the S10 firmware in the SwitchBot app.
- Add the S10 to the app and check that the basic controls work.
- Enable Matter on the S10 in the app if that option is there.
- Add the Matter integration in Home Assistant, then finish the device setup.
After pairing, I test the same command in both places. Start and dock are enough. Both should work within a few seconds. If the controller cannot find the device, check mDNS, Thread or Zigbee radios depending on the rest of your setup.
Filling the feature gap
Expect missing features. I keep a simple note with three columns: feature in the SwitchBot app, available through Matter, and workaround. The usual gaps are map handling, custom cleaning sequences and carpet-sensitive modes.
For each missing feature, I use one of three routes:
- Home Assistant with the native SwitchBot integration, if it is available.
- SwitchBot cloud API calls, if the API is available to you.
- Automations that combine Matter commands into something more useful, such as start, wait and dock.
One example is a quick-clean routine. I send start, wait ten minutes, then send dock if the vacuum is still running. If you build something like that, check the vacuum state before issuing the dock command. Blind automations get silly fast.
Sorting out common problems
What usually goes wrong
The usual mess is one of three things: the device appears in the controller but most functions are missing, the S10 shows up but drops off the network, or the reported state is wrong. I start with the boring checks:
- Power and Wi-Fi signal at the dock.
- Correct time and timezone on the controller.
- Firmware matches what the app expects.
If features vanish after a controller reboot, I suspect temporary credentials or a Matter pairing mismatch. A factory reset on the S10 and a fresh pairing sometimes clears it, but only after I put the manufacturer settings back again.
Working around limited Matter support
If the S10 only exposes basic commands through Matter, I treat it as a choice between three options.
-
Native SwitchBot integration
- Check whether SwitchBot offers a local integration for Home Assistant or an official component. Local integrations usually expose more than Matter.
- Install it and compare the services against Matter. Check whether maps and modes are available.
-
Cloud API fallback
- If the local route is thin, use the SwitchBot cloud API for the advanced commands. That needs an API token, and rate limits are still a thing.
- Use authenticated scripts or Home Assistant REST commands to call the endpoints.
-
Composite automations
- Combine simple Matter actions into something more useful. One example is a pre-clean routine: disable no-go zones in the app, start the vacuum, then re-enable the zones after docking.
After any change, I run a small test set: start, pause, return to dock, battery state and any advanced action I have wired in. I log each response and how long it takes. If something breaks, I undo the last change and isolate the problem.
Using Home Assistant for the bits Matter misses
Home Assistant is where I get the useful extras back. If Matter only gives basic state and commands, Home Assistant can expose the S10 as separate entities, run more complex automations and bridge missing features with scripts and API calls.
One script I use checks the battery is above 30%, cleans a single room through the SwitchBot cloud, then waits and docks. It logs progress and retries on failure. That gives me something close to the richer control I wanted in the first place, without relying only on Matter.
Making the automations behave
Automations need to be state-aware. Starting a clean without checking whether the vacuum is already running is how you end up chasing your own tail.
- If
vacuum_stateis charging, wait until it is docked and the battery is above the threshold. - If
vacuum_stateis cleaning, skip the start command. - Add retries with delays for flaky network calls.
I also name automations clearly and keep an audit switch in Home Assistant so I can pause everything while testing.
Leaving yourself an exit route
I prefer local control first, but I keep a cloud API route around for the bits Matter does not cover. I also keep the automations separate enough that I can swap Matter and native integrations without rewriting everything.
The short version is simple: treat SwitchBot S10 integration through Matter as the baseline. Use Home Assistant or the SwitchBot API when you need the missing features. Test each change, keep logs, and check device state before you fire commands at it.
