Home Assistant custom integration for the Huckleberry baby tracking app.
This integration provides real-time baby tracking in Home Assistant by connecting to Huckleberry's Firebase backend using the huckleberry-api Python library.
- π€ Sleep Tracking: Sensors, switches, and automation services
- π€± Nursing Tracking: Left/right side tracking with switches and services
- πΌ Bottle Feeding: Log bottle feeds with amount and type
- π€± Pumping Tracking: Track pumping sessions with duration and amount
- π§Έ Activity Tracking: Log activities like tummy time, bath, and play
- π§· Diaper Changes: Log pee, poo, both, or dry checks
- π Growth Measurements: Track weight, height, head circumference
- π Calendar: Historical events per child in HA's calendar view
- π Real-time Sync: Instant updates via Firebase listeners
- πΆ Multi-child Support: Separate devices per child
Upgrading from v0.3.x? See the Migration Guide for a full list of breaking changes (renamed services, entity IDs, and removed device actions).
- Add this repository as a custom repository in HACS
- Search for "Huckleberry Baby Tracker"
- Click Install
- Restart Home Assistant
- Copy the
custom_components/huckleberryfolder to your Home Assistantcustom_componentsdirectory - Restart Home Assistant
- Go to Settings β Devices & Services
- Click Add Integration
- Search for "Huckleberry"
- Enter your Huckleberry account email and password
- Click Submit
-
Sensors:
sensor.{child_name}_sleep- Sleep status (sleeping, paused, none)sensor.{child_name}_nursing- Nursing status (nursing, paused, none)sensor.{child_name}_pumping- Pumping session status (active, paused, none)sensor.{child_name}_profile- Child profile informationsensor.{child_name}_growth- Latest growth measurementssensor.{child_name}_bottle- Last bottle feeding (time, amount, type)sensor.{child_name}_diaper- Last diaper change
-
Switches (3):
switch.{child_name}_sleep_timer- Start/stop the sleep timerswitch.{child_name}_nursing_left- Left side nursingswitch.{child_name}_nursing_right- Right side nursing
-
Calendar (1):
calendar.{child_name}_events- All historical events (sleep, nursing, diaper, growth)
sensor.huckleberry_children- Number of children
All services support device selection for easy use in automations:
huckleberry.start_sleephuckleberry.pause_sleephuckleberry.resume_sleephuckleberry.cancel_sleephuckleberry.complete_sleep
huckleberry.start_nursinghuckleberry.pause_nursinghuckleberry.resume_nursinghuckleberry.switch_nursing_sidehuckleberry.cancel_nursinghuckleberry.complete_nursing
huckleberry.log_bottle- Log bottle feeding (formula or breastmilk) with amount in oz or ml
huckleberry.log_pump- Log a pumping session with total amount and duration
huckleberry.log_solids- Log a solid food meal with one or more foods, optional notes and reaction (LOVED/MEH/HATED/ALLERGIC)
huckleberry.log_activity- Log an activity session (bath, brushTeeth, indoorPlay, outdoorPlay, screenTime, skinToSkin, storyTime, tummyTime) with optional duration and notes
huckleberry.log_diaper_peehuckleberry.log_diaper_poohuckleberry.log_diaper_bothhuckleberry.log_diaper_dry
huckleberry.log_growth
Each child gets a calendar entity that displays all historical events:
- π€ Sleep events: Shows duration and timing of all sleep sessions
- πΌ Feeding events: Shows duration, left/right side information
- π©² Diaper changes: Shows type (pee/poo/both/dry) and details
- π Growth measurements: Shows weight, height, head circumference
The calendar can be added to dashboards and used in automations. Events are automatically fetched when you view the calendar for a specific date range.
Add the calendar card to your dashboard:
type: calendar
entities:
- calendar.baby_name_eventsSee automation_examples.yaml for complete examples.
automation:
- alias: "Baby Sleep Started"
trigger:
- platform: state
entity_id: sensor.baby_name_sleep
to: "sleeping"
action:
- service: notify.mobile_app
data:
message: "Baby started sleeping"automation:
- alias: "Nursing Duration Alert"
trigger:
- platform: state
entity_id: sensor.baby_name_nursing
to: "nursing"
for:
minutes: 20
action:
- service: notify.mobile_app
data:
message: "Baby has been nursing for 20 minutes"automation:
- alias: "Log Bottle at Scheduled Time"
trigger:
- platform: time
at: "09:00:00"
action:
- service: huckleberry.log_bottle
target:
device_id: YOUR_DEVICE_ID # Select your child's device
data:
amount: 120.0
bottle_type: Formula
units: mlautomation:
- alias: "Log Lunch Solids"
trigger:
- platform: time
at: "12:30:00"
action:
- service: huckleberry.log_solids
target:
device_id: YOUR_DEVICE_ID
data:
foods:
- Banana
- Yogurt
notes: Lunch
reaction: LOVEDautomation:
- alias: "Log Morning Pump"
trigger:
- platform: time
at: "08:00:00"
action:
- service: huckleberry.log_pump
target:
device_id: YOUR_DEVICE_ID
data:
total_amount: 150.0
duration: 15
duration_unit: minutes
units: mlautomation:
- alias: "Log Tummy Time"
trigger:
- platform: time
at: "10:30:00"
action:
- service: huckleberry.log_activity
target:
device_id: YOUR_DEVICE_ID
data:
mode: tummyTime
duration: 300
notes: Morning play mat sessionDevice actions have been removed in v0.4.0. Use HA services instead β they support the same device_id selector in the automation editor. See Services above and the Migration Guide.
- Migration Guide: See
MIGRATION.md(upgrading from v0.3.x)
uv sync --devuv run ruff check .uv run ty checkuv run pytest
- Home Assistant 2026.3 or newer
- Huckleberry account
huckleberry-api>=0.2.2(automatically installed)
For issues, questions, or feature requests, please open an issue on GitHub.
- huckleberry-api - Python API library used by this integration
This is an unofficial, community-developed integration. Not affiliated with, endorsed by, or connected to Huckleberry Labs Inc.
MIT License