Skip to content

Repository files navigation

Huckleberry Home Assistant Integration

Home Assistant custom integration for the Huckleberry baby tracking app.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Overview

This integration provides real-time baby tracking in Home Assistant by connecting to Huckleberry's Firebase backend using the huckleberry-api Python library.

Features

  • πŸ’€ 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).

Installation

HACS (Recommended)

  1. Add this repository as a custom repository in HACS
  2. Search for "Huckleberry Baby Tracker"
  3. Click Install
  4. Restart Home Assistant

Manual Installation

  1. Copy the custom_components/huckleberry folder to your Home Assistant custom_components directory
  2. Restart Home Assistant

Configuration

  1. Go to Settings β†’ Devices & Services
  2. Click Add Integration
  3. Search for "Huckleberry"
  4. Enter your Huckleberry account email and password
  5. Click Submit

Entities Created

Per Child:

  • 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 information
    • sensor.{child_name}_growth - Latest growth measurements
    • sensor.{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 timer
    • switch.{child_name}_nursing_left - Left side nursing
    • switch.{child_name}_nursing_right - Right side nursing
  • Calendar (1):

    • calendar.{child_name}_events - All historical events (sleep, nursing, diaper, growth)

Global:

  • sensor.huckleberry_children - Number of children

Services

All services support device selection for easy use in automations:

Sleep Tracking

  • huckleberry.start_sleep
  • huckleberry.pause_sleep
  • huckleberry.resume_sleep
  • huckleberry.cancel_sleep
  • huckleberry.complete_sleep

Nursing Tracking

  • huckleberry.start_nursing
  • huckleberry.pause_nursing
  • huckleberry.resume_nursing
  • huckleberry.switch_nursing_side
  • huckleberry.cancel_nursing
  • huckleberry.complete_nursing

Bottle Feeding

  • huckleberry.log_bottle - Log bottle feeding (formula or breastmilk) with amount in oz or ml

Pumping Tracking

  • huckleberry.log_pump - Log a pumping session with total amount and duration

Solid Food Tracking

  • huckleberry.log_solids - Log a solid food meal with one or more foods, optional notes and reaction (LOVED/MEH/HATED/ALLERGIC)

Activity Tracking

  • huckleberry.log_activity - Log an activity session (bath, brushTeeth, indoorPlay, outdoorPlay, screenTime, skinToSkin, storyTime, tummyTime) with optional duration and notes

Diaper Changes

  • huckleberry.log_diaper_pee
  • huckleberry.log_diaper_poo
  • huckleberry.log_diaper_both
  • huckleberry.log_diaper_dry

Growth Tracking

  • huckleberry.log_growth

Calendar

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.

Adding to Dashboard

Add the calendar card to your dashboard:

type: calendar
entities:
  - calendar.baby_name_events

Example Automations

See automation_examples.yaml for complete examples.

Bedtime Notification

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"

Feeding Timer Alert

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"

Log Bottle Feeding

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: ml

Log Solid Food Meal

automation:
  - 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: LOVED

Log Pumping Session

automation:
  - 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: ml

Log Activity Session

automation:
  - 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 session

Device Actions

Device 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.

Documentation

  • Migration Guide: See MIGRATION.md (upgrading from v0.3.x)

Development

  • uv sync --dev
  • uv run ruff check .
  • uv run ty check
  • uv run pytest

Requirements

  • Home Assistant 2026.3 or newer
  • Huckleberry account
  • huckleberry-api>=0.2.2 (automatically installed)

Support

For issues, questions, or feature requests, please open an issue on GitHub.

Related Projects

Disclaimer

This is an unofficial, community-developed integration. Not affiliated with, endorsed by, or connected to Huckleberry Labs Inc.

License

MIT License

About

Home Assistant integration for Huckleberry baby tracker app - monitor sleep, feeding, diapers, and growth tracking

Topics

Resources

Stars

38 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages