PetKit Local - a local stand-in for PetKit's cloud (litter box, feeder, fountain)

PetKit’s devices — litter boxes, feeders, fountains, the Pura Air spray — talk to PetKit’s own servers for everything: the app, the history, notifications, and on camera models, the video from inside your home. This add-on is a stand-in for those servers that runs on your own machine. The device connects to it exactly the way it connected to PetKit, and behaves the same, except what it records now stays with you. Home Assistant is supported but not required, and it works with the internet unplugged.

How it works

The device is re-provisioned over Bluetooth — from a page the panel itself serves, no PetKit app involved — to point at this add-on’s address instead of PetKit’s. From there it answers the device’s HTTP calls, runs an MQTT broker for it, decrypts and files the video/snapshots it uploads, and publishes entities to Home Assistant over MQTT discovery.

Some of what it does

  • One container, nothing else to run — Python in a single process, no separate DB/queue/web server.

  • Recordings decrypted, converted and filed on your disk, browsable in HA’s media browser.

  • A visit timeline laid out like the official app: one card per visit, its video, weight, waste/ stool-health photos, and which cat it was.

  • Face recognition happens on the device’s own NPU — photos you register are pushed to the camera and matched there, nothing leaves your network.

  • Bluetooth accessories (Pura Air spray, EverSweet fountain) paired to a box show up as their own HA devices, relayed through it.

  • Proxy mode forwards to the real PetKit cloud and answers the device with its reply — useful while adding support for a new model, with credentials, firmware pushes and shell commands stripped on the way through.

Supported devices

Confirmed on real hardware so far: the Purobot Max Pro 2 (T5), camera + on-device AI. A longer list of other litter boxes, feeders and fountains should work — the protocol was checked against their firmware — but nobody has run one yet, so treat that list as inference until an owner reports back. If your model isn’t listed at all, proxy mode should keep it behaving normally while it captures everything needed to add it properly.

https://github.com/alex-so-3/petkit-local

Full setup steps and the complete device list are in the project’s README.

Feedback, “works on my X” reports, and captures from anything unexplained are all welcome.

Add-on name has been replaced with
App, so this in your install instructions does not work:

Home Assistant add-on — for Home Assistant OS or Supervised

Settings → Add-ons → Add-on Store → ⋮ → Repositories