Best

Local only pet feeder options for Home Assistant

Local-first pet feeder options for Home Assistant - what really runs without the cloud, plus a realistic DIY ESPHome path.

On this page
  1. The off-the-shelf option: Aqara Smart Pet Feeder C1
  2. The DIY ESPHome route (most control)
  3. Repurposing local-control hardware
  4. Home Assistant scheduling and safety
  5. Compatibility with HomeKit

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 Aqara hub and no account - it joins any Zigbee coordinator you already run. 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 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 and motor build gives you the most control. Schedule it in Home Assistant with a confirmation sensor and a failure alert. I don’t run a feeder myself; the C1 pick rests on the spec sheet, the ZHA and Zigbee2MQTT device pages, and what other Home Assistant users report.

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 runs on 5V over USB-A (Aqara ships the cord, not the adapter) and takes D-cell (LR20) batteries as power-outage backup, it handles 2 - 12mm kibble, and it is sized for cats and small-to-medium dogs. Some Home Assistant users 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 my 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.

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 condition to 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

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.

Keep going

All articles →
Article

The complete ESPHome guide for Home Assistant

What ESPHome is, why it is the most local way to build smart home sensors, and how to start - from no-solder ready-made boards to DIY mmWave presence.

Read article →
Article

Local fall detection without a subscription

How to approach fall detection in a local-first Home Assistant setup using mmWave radar and DIY sensors, with realistic expectations and no monthly fees.

Read article →
Article

The case against cloud only smart home gear

Cloud-only smart home devices create dependency, fragility, and lock-in. Here's how to build a resilient local-first setup.

Read article →
New guides and product notes, no inbox required. Follow via RSS →