How to Setup Baby Buddy in Home Assistant


If you recently had a newborn, than you are already getting familiar with the amount of effort needed from you, the caregiver. Keeping track of all the things a baby needs is a substantial chore and much of your own free time and hobbies are going to be put on hold.

If you do have a baby, this is the Home Assistant integration for you right now. If you do it right, it will improve the WAF (Wife Acceptance Factor) significantly and make your wife happy. If you do it wrong, and somehow manage to promote it as a chore for her, on top of what she’s already dealing with, bad for you and Home Assistant my dear guy.

My youngest one is a year old, so I’ve been meaning to write this tutorial for a while now. So, here it is, Baby Buddy in Home Assistant.

What’s Baby Buddy?

Baby Buddy is an open source software which helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict your baby’s needs, without (or as much) guess work.

Baby Buddy Home Assistant Demo

To familiarize yourself with the capabilities and dashboard of Baby Buddy, visit the demo instance and click around. Login with username: admin and password: admin

How it works?

Baby Buddy comes as a Home Assistant Add-on and an Integration and to really utilize it’s features, you are going to want both. The Add-On hosts the Baby Buddy instance directly on your Home Assistant server, while the Integration is used to monitor data, start timers and automate things natively within HA.

Other installation methods are possible for Baby Buddy:

  • Docker
  • Clever Cloud
  • Manual Installation to any Server/VPS

For the purpose of this tutorial, I’m going to install both the Baby Buddy Add-on and Integration on Home Assistant directly and show you how to use it.

Installation

Home Assistant Add-On

Baby Buddy Home Assistant Addon Store

To install the Baby Buddy Add-on, first we need to add the repository to Home Assistant:

  • Navigate to Settings > Add-ons > Add-on Store
  • Click the three dots in the top right corner
  • Click Repositories
  • Paste the Repository https://github.com/OttPeterR/addon-babybuddy
  • Click Add
  • Click the Baby Buddy Add-on and click Install
  • Done

After the installation is finished, you can toggle the Start on boot, Watchdog and Show in sidebar settings. In the Configuration tab, some additional settings can be tweaked.

CSRF_TRUSTED_ORIGINS

If you are hosting your baby buddy via another domain (such as babybuddy.mydomain.com) then add this here to be allowed to access it. If you want to use multiple domains, enter them with a comma and no space (e.g. http://baby.mydomain.com,https://babybuddy.myotherdomain.com)

NETWORK PORT

Access Baby Buddy through this port. (ex: homeassistant.local:8889 when set to 8889), be sure to check that this port is not already taken. The port needs to enabled for the Baby Buddy integration to work, so make sure you turn on the Network toggle.

USE_24_HOUR_TIME_FORMAT

Toggle this to use 24 hours format in Baby Buddy’s interface and reporting instead of 12 hours.

The Add-on will appear in your Home Assistant sidebar and you can access it by through Home Assistant Ingress by simply clicking on it. Login with username: admin and password: admin. You will be presented with a Welcome Screen.

Baby Buddy Home Assistant Add-on Welcome Screen

Once you are logged in, we need to obtain the API key, which we will use to enable the Baby Buddy Integration.

  • Click your username at the top right corner
  • Click Setting
  • At the end of the screen, select and copy the API Key
  • You can click Regenerate to create a new key

Baby Buddy Home Assistant API Key

You can also use the Settings menu to change the login credentials from the default admin/admin.

Home Assistant Integration

The Baby Buddy Integration is already available in HACS, no need to add a custom repository for it.

  1. Navigate to HACS > Integrations page
  2. Click “Explore & Add Repositories” in the bottom right corner
  3. Search for “Baby Buddy“.
  4. Click “Install this Repository in HACS
  5. Click “Install

Baby Buddy Home Assistant HACS Integration

Once the Integration is installed, we need to enable it:

  1. Navigate to Settings > Devices & Services > + Add Integration
  2. Search for Baby Buddy
  3. Input the following information:

Baby Buddy Home Assistant Adding Integration

  • Host: Host URL for your instance of Baby Buddy, without sub path
  • Port: Host port (default = 8000), anything else If you’ve changed it
  • Path: Sub path of your Baby Buddy instance (default = “”)
  • API Key: The API key from the user settings page on your instance of Baby Buddy

Click submit and you will be greeted with a Success message. If you added your baby details previously, a couple of entities will appear for it from the Baby Buddy Integration. If not, follow along to add some information and see how Baby Buddy works.

Using the Baby Buddy Add-on

Baby Buddy has a very beginner friendly user interface, which makes it a pleasure to work with. To start, first click Add Child in the middle of the Welcome Screen.

Add First name, Last name, Birth date and a Baby picture if you want to.

Baby Buddy Home Assistant Add Children

Once you’ve added the information, click Submit. Your baby’s name will appear in a list which you can edit later on. Repeat the process if you have more children.

Baby Buddy Home Assistant Addon Added Children List

Measurements

The first things you might want to add, is some measurements and general description of your baby. You can occasionally measure you baby and input these values in Baby Buddy, so you can keep track of their growth and progress. You can add the following:

  • Height
  • Weight
  • Temperature
  • BMI: Body Mass Index
  • Head Circumference

For example, let’s add a height value of the baby. Click Measurements at the top bar, and click + Height entry:

Baby Buddy Home Assistant Adding Height

Click Submit and the value will be stored. If you have the Integration enabled, a sensor.babyname_last_height will be created reporting the value in Home Assistant.

Baby Buddy Home Assistant Adding Height Exposed Entity

You store as much data as you want under the Measurements section of Baby Buddy. Each will be stored in the database and a sensor created in Home Assistant. Tracking height, weight, temperature is easy and intuitive with this integration.

Activities

To track baby activities, such as sleeping, feeding, diaper changes click on the Activities tab in the top bar. You can add information for the following:

  • Diaper changes
  • Feeding
  • Sleeping
  • Pumping
  • Tummy time

For example, let’s say you want to log the last feeding time and it’s duration. Click Activities > + Feeding:

Baby Buddy Home Assistant Adding Feeding Entry

Input the start time, end time, type of feeding and method. Additionally, you can set the amount and add a note. The tag field can be used to create tags, for easier sorting of the available information later on.

As another example, let’s say you want to add the last diaper change of your baby. Click Activities > + Change:

Baby Buddy Home Assistant Adding Diaper Change Entry

Input the time, type (wet or solid), color, amount and add an optional note.

Dashboard & Timeline

When you add enough information and activity entries, the dashboard will become populated with your baby’s last activities. You can use it quickly glance information about your data, cycle through activities and event and for quick navigation to the logbook.

Baby Buddy Home Assistant Dashboard

Another very useful asset of Baby Buddy is it’s Timeline feature, which provides the information you provided through activity and measurement entries organized in a timeline tree for easy navigation through data.

Baby Buddy Home Assistant Timeline

Using the Baby Buddy Integration

The Baby Buddy integration provides some really useful information from the data you input in the Add-on and pushes it to Home Assistant in various entities. Organized by domains, it exposes the following information:

  • sensor:
    • Sensor for each child, with date of birth returned as state
    • Sensor for each last data entry
      • Last diaper change, feeding, sleep, temperature, height, weight, tummy time and notes
  • switch:
    • Switch for each child to handle its timer entry.
      • Turning on the switch starts a new timer for the linked child
      • Turning off the switch deletes the timer
      • FeedingSleep, and Tummy time can be linked to a timer

Service Calls

To use the integration in automations, scripts or dashboards in Home Assistant, the Baby Buddy Integration provides various services which you can use to log some data without using the web interface of the add-on. The following service calls are available for Baby Buddy:

babybuddy.add_child: Adds a new child with a service call.

service: babybuddy.add_child
data:
  first_name: Marco
  last_name: Last Name
  birth_date: "2022-03-08"
Code language: YAML (yaml)

babybuddy.add_bmi: Adds a BMI (Body Mass Index) entry

service: babybuddy.add_bmi
data:
  bmi: 45
  date: "2023-03-15"
  notes: Optimal
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_diaper_change: Adds a new diaper change entry

service: babybuddy.add_diaper_change
data:
  time: "15:00:00"
  type: Solid
  color: Brown
  amount: 1
  notes: Solid
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_feeding: Adds a new feeding entry

service: babybuddy.add_feeding
data:
  start: "15:00:00"
  end: "15:25:00"
  type: Formula
  method: Parent fed
  amount: 100
  notes: 100 grams
Code language: YAML (yaml)

babybuddy.add_head_circumference: Adds a new head circumference entry

service: babybuddy.add_head_circumference
data:
  head_circumference: 28
  date: "2023-02-15"
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_height: Adds a new weight entry

service: babybuddy.add_height
data:
  height: 67
  date: "2023-03-15"
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_weight: Adds a new weight entry

service: babybuddy.add_weight
data:
  weight: 6
  date: "2023-03-15"
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_pumping: Adds a new pumping entry

service: babybuddy.add_pumping
data:
  amount: 45
  time: "15:00:00"
  notes: 45grams
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_sleep: Adds a new sleeping entry on a timer

service: babybuddy.add_sleep
data:
  start: "15:00:00"
  end: "16:00:00"
  notes: 1 hour of uninterupted sleep
  timer: true
target:
  entity_id: switch.marco_timer
Code language: YAML (yaml)

babybuddy.add_tummy_time: Adds a new tummy time entry on a timer

service: babybuddy.add_tummy_time
data:
  timer: true
  start: "15:00:00"
  end: "15:05:00"
  milestone: 5 minutes done, need 15
target:
  entity_id: switch.marco_timer
Code language: YAML (yaml)

babybuddy.add_note: Adds a new note entry

service: babybuddy.add_note
data:
  note: Some thing to do or remember
  time: "15:00:00"
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.add_temperature: Adds a new temperature entry

service: babybuddy.add_temperature
data:
  temperature: 38
  time: "15:00:00"
  notes: Slight fever
target:
  entity_id: sensor.baby_marco
Code language: YAML (yaml)

babybuddy.start_timer: Starts a baby timer

service: babybuddy.start_timer
data:
  start: "15:00:00"
target:
  entity_id: switch.marco_timer
Code language: YAML (yaml)

babybuddy.delete_last_entry: Deletes last entry added, can be a list

service: babybuddy.delete_last_entry
data: {}
target:
  entity_id:
    - sensor.marco_last_feeding
    - sensor.marco_last_pumping
Code language: YAML (yaml)

Automations

From the available services, we can create automations that will log different data without ever opening the Baby Buddy web interface. This is especially useful if you pair it with a simple remote, and assign actions to the buttons to be triggered whenever you need to.

Let’s say you’ve just finished changing your baby’s diaper and want to quickly log it without taking our phone. As a trigger, I’m going to use a button press on my Loratap Zigbee remote, but you can use anything that’s easier for you.

description: Log Diaper Change
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.tuya_4_button_remote_ss6400zb_action
    attribute: action
    to: 1_single #Single button click
action:
  - service: babybuddy.add_diaper_change
    data:
      type: Wet #Wet or Solid
    target:
      entity_id: sensor.baby_marco
Code language: YAML (yaml)

If you leave the time field empty in the automation, the log will be entered with the current time and date in Baby Buddy. This particular automation logs a wet diaper change on a single click, so you can create a separate automation for logging solids with a double click instead:

description: Log Diaper Change
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.tuya_4_button_remote_ss6400zb_action
    attribute: action
    to: 1_double #Double button click
action:
  - service: babybuddy.add_diaper_change
    data:
      type: Solid #Wet or Solid
    target:
      entity_id: sensor.baby_marco
Code language: YAML (yaml)

Summary

Baby Buddy by itself is a really useful piece of software, but paired with Home Assistant it’s an extremely powerful baby tracking tool. You can track so many things for your newborn, and later analyze things and pattern when needed. If you want to go the extra mile, developer sfage created Baby Buddy ESPHome Bottle Scale as well as a Quick Entry ESPHome Keypad.

The Add-on allows you to run Baby Buddy deployed directly on your Home Assistant instance and access it via Ingress. You can also deploy it manually to any server, docker or Clever Cloud.

The Integration allows you to expose data from the Add-on to Home Assistant, and input activities and measurements directly to the add-on database via it’s numerous service calls. You have to open the web interface once, and log every diaper change with the press of a button.

Once again I remind any new baked fathers, to thread lightly when talking to their spouses about Baby Buddy. Tell her you are going to be doing all this for her, to make it easier on her and keep track of things. Be careful not to promote it as chore, otherwise the WAF is gonna go down and you might get yelled at. Don’t ask me how I know.

SmartHomeScene.com is a participant in the Amazon Services LLC Associates Program & AliExpress Portals Affiliate Program.
We may earn a small commission on qualifying purchases from these websites, which incurs no additional cost to you.
SmartHomeScene © 2023 All rights reserved
Ko-Fi SmartHomeScene.com

3 thoughts on “How to Setup Baby Buddy in Home Assistant”

  1. Hi there, I am getting an error when clicking on Install in Add-Ons. The error reads: The command ‘/bin/bash -o pipefail -c echo “**** install build packages ****” && apk add –no-cache –virtual=build-dependencies build-base curl jpeg-dev libffi-dev libxml2-dev libxslt-dev postgresql-dev python3-dev zlib-dev’ returned a non-zero code: 15

    Any idea what might be causing this?

  2. Height, weight… is good, but what i am missing is: what scale do i have to insert it? i tried grams, because that’s how babies are weighted here, also kg.

Comments are closed.