Local only pet feeder options for Home Assistant
Honest local-first pet feeder options for Home Assistant — what really runs without the cloud, plus a realistic DIY ESPHome path.
On this page
Most popular automatic pet feeders (PetSafe, PETKIT, Petlibro, and similar Wi-Fi models) depend on the manufacturer’s cloud for scheduling and remote dispensing. There is one mainstream exception worth knowing about: the Aqara Smart Pet Feeder C1 is a plain Zigbee 3.0 device that pairs straight to Home Assistant with no hub and no account. Beyond that, the local options are a DIY ESPHome build or repurposing a local-control actuator to drive a feed mechanism. This article focuses on what actually works locally and skips the cloud devices.
The off-the-shelf option: Aqara Smart Pet Feeder C1
The Aqara Smart Pet Feeder C1 (model ZNCWWSQ01LM) is the closest thing to a buy-it-and-be-done local feeder. Retail listings say it requires an Aqara Zigbee 3.0 hub; that is marketing, not a hardware limit. It is an ordinary Zigbee 3.0 device and pairs directly to any Zigbee coordinator through ZHA or Zigbee2MQTT — no Aqara hub, no Aqara account, no cloud. ZHA applies a quirk for it automatically.
What you get locally:
- Dispense on demand, plus portion size, portions-per-day, and daily-weight counters as Home Assistant entities.
- On Zigbee2MQTT the feeding schedule is written to the feeder itself, so meals still happen if Home Assistant is down for maintenance. ZHA cannot push a schedule to the device, so on ZHA you trigger feeding from a Home Assistant automation instead.
- Child lock, LED indicator control, and a manual dispense button on the unit.
Practical notes: it takes a 5V supply (not included) and holds three D-cell batteries as power-outage backup, it handles roughly 1—12mm kibble, and it is sized for cats and small-to-medium dogs. Some owners have reported occasional off-schedule dispenses, so the confirmation sensor and failure alert described below are worth setting up rather than trusting it blind.
The DIY ESPHome route (most control)
If you want to control the mechanism end to end, build a feeder with ESPHome on an ESP32 (new to ESPHome? start with our ESPHome guide for Home Assistant), driving a motor that turns an auger or rotating hopper. ESPHome talks to Home Assistant over your LAN with no cloud at all.
A typical build:
- An ESP32 running ESPHome.
- A stepper or DC gear motor (with a driver board) to advance the feed auger a measured amount per portion.
- Optional: a load cell / HX711 to weigh dispensed food, or a microswitch to confirm a turn completed.
You then expose a “dispense portion” button/service to Home Assistant and schedule it with an automation. Because the schedule lives in Home Assistant (or even on the ESP32 itself), feeding continues even if your internet is down. This is more work than buying a feeder, but it’s fully local, transparent, and repairable.
Repurposing local-control hardware
If you’d rather not design a motor system from scratch, you can drive a simple gravity feeder or trapdoor with an existing local actuator:
- A smart plug or relay that powers a small motorized dispenser on a schedule. A SONOFF Zigbee/ESPHome relay or a Zigbee/Z-Wave plug works locally; a Hue smart plug works locally via the Hue Bridge. (Note: a plug just switches power on/off — it can’t meter a precise portion, so pair it with a feeder that dispenses on power.)
- A linear actuator or servo to open a flap, driven by an ESPHome board.
This is a hack, not a polished product, so test it thoroughly before trusting it with feeding.
What does NOT work for this
To save you from bad advice that’s circulated elsewhere:
- The ratgdo / ratgdo32 is a garage-door opener control board — it is not a pet feeder and does not run on a Raspberry Pi. Don’t buy it for feeding.
- A SwitchBot Lock or SwitchBot Roller Shade are designed for deadbolts and window shades; they’re a poor fit for portioning food and shouldn’t be presented as feeder solutions.
- A Sonoff Zigbee USB Dongle is a Zigbee coordinator (it’s how Home Assistant talks to Zigbee devices) — it is not itself a feeder or a feeder controller.
Home Assistant scheduling and safety
However you build the mechanism, do the scheduling in Home Assistant:
- A time-based automation for regular meals, with a
conditionto avoid double-feeding after a restart. - A confirmation sensor (weight or a turn-complete switch) so an automation can alert you if a dispense fails.
- A local push notification if a scheduled feed didn’t register, so an empty bowl doesn’t go unnoticed.
Keep the host on reliable power (a UPS helps; see the best UPS for smart homes) since a feeder that misses meals is worse than no automation.
Compatibility with HomeKit and Hubitat
If you also run HomeKit or Hubitat, the simplest path is to keep the feeder logic in Home Assistant and expose it outward — for example via the Home Assistant HomeKit bridge so a HomeKit scene can trigger a feed. The mechanism still runs locally through HA either way.
Quick verdict
The Aqara Smart Pet Feeder C1 is the one mainstream feeder you can buy and run fully locally — plain Zigbee 3.0, no Aqara hub, and on Zigbee2MQTT the schedule lives on the feeder itself. If you would rather build than buy, a DIY ESPHome + motor build gives you the most control, and repurposing a local relay/actuator can drive a simple dispenser. Schedule it in Home Assistant with a confirmation sensor and a failure alert. Ignore claims that a ratgdo, a SwitchBot lock/shade, or a Zigbee dongle is a “local pet feeder” — those are different products entirely.