Hey all ![]()
My cat uses a Vividmoo (UBTech “airpet”) self-cleaning litter box, and the only way to see what it was doing was the official phone app. So I reverse-engineered the app and wrote a Home Assistant integration for it. It’s been running in my house for a while, so it’s time to share it.
What it does
Everything the app shows, now in HA:
- Waste bin: fill level, uses since you last emptied it, and a “bin full” alert
- Visits: the last one (which cat, weight, how long, when), visits today and the 7-day average
- Cat weight as a long-term statistic, so you can watch it over months. It only counts visits where the box identified the cat, so the graph doesn’t spike.
- Box status: idle / cleaning / leveling / paused / blocked
- Cat inside: the box reports in real time when the cat steps in and when it leaves. This is my favourite one for automations, for example “never start a clean while someone’s in there”.
You can also control it: Clean, Level litter, Pause, Resume, and “Waste bin emptied” to reset the counter.
A card included
The integration serves its own dashboard card, so there’s no extra resource to install:
type: custom:vividmoo-card
device_id: <your litter box>
The card has the bin gauge, the last visit, today’s numbers and the buttons. During a clean it shows a spinning drum with a progress ring, timed from what the box actually reports. Tap any value to open its history.
Before you install: a few catches
- Cloud only. The box has no local API. You can turn on live updates through the cloud’s MQTT channel.
- You have to dig out two keys yourself. Every request to the Vividmoo cloud is signed with the official app’s App ID and App Key. They aren’t mine to publish, so they’re not in the repo. The README explains how to read them from the app (Frida, or a patched build that logs them). You only do this once.
- Make a second account for HA. The cloud only allows one login per account, so the phone app and HA would keep kicking each other out. Create a second account, share the box with it from the app, and use that account in HA. A shared account can read everything and send commands too.
- Tested on the EU cloud only, with one box. If you’re elsewhere, the API URL can be changed in the setup form.
- “Empty litter” (dumps the whole litter load) is off by default and experimental. I worked out its command from the app’s code but haven’t captured it from a real run yet.
Unofficial, and not affiliated with Vividmoo or UBTech.
Getting it
It’s waiting in the queue for the HACS default list. Until it gets in, add it by hand:
- HACS → ⋮ → Custom repositories →
https://github.com/edied2002/vividmoo-ha, type Integration - Download Vividmoo Litter Box and restart HA
- Settings → Devices & services → Add integration → Vividmoo Litter Box, then enter the second account plus the App ID / App Key
- Drop the card on a dashboard
You need HA 2025.2 or newer. The latest version is v0.5.1.
If you’ve got one of these boxes, I’d love to hear how it goes, especially outside the EU or with a different model. Bugs and ideas are welcome here or as GitHub issues.
