Some amazing work has been done by the Baby Buddy project and @jcgoette to build the Baby Buddy Home Assistant HACS Integration.
Purpose
This blueprint makes it easier to log Baby Buddy actions from Home Assistant
What can you do with it?
If you have a baby you know that some people say you should log a variety of activities like sleep times, diaper changes, etc. To see what Baby Buddy can do start at the project’s GitHub page: GitHub - babybuddy/babybuddy: A buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.
To see what I did with it go to: Baby Buddy Dashboard & Blueprint
Pre-requisites
-
Baby Buddy project
– OR Baby Buddy addon Ingress is not currently working, see updates on Issue #2 - Baby Buddy Home Assistant HACS Integration built by @jcgoette
-
Home Assistant Companion app (iOS or Android)
–Used to receive notification when timer is running to allow quick logging access
This blueprint requires Helpers (You can use whatever name you want or use the below.)
- Input Button Button - Home Assistant
– BB Diaper Helper
– BB Feeding Helper
– BB Pumping Helper
– BB Sleep Helper
– BB Tummy Time Helper - Counter Counter - Home Assistant
– BB Diaper Counter
– BB Feeding Counter
– BB Pumping Counter - Input Text Input Text - Home Assistant
– BB Notes - Input Number Input Number - Home Assistant
– BB Amount
You should also create a new dashboard page. This will be used as the target page when you tap the timer notification.
blueprint:
name: Baby Buddy
author: noblewolf
description: "Notifications and control of Baby Buddy. Works with Baby Buddy https://github.com/jcgoette/baby_buddy_homeassistant \n\nThis blueprint requires Helpers (You can use whatever name you want or use the below.)
\n- Input Button https://www.home-assistant.io/integrations/button/
\n- - BB Diaper Helper
\n- - BB Feeding Helper
\n- - BB Pumping Helper
\n- - BB Sleep Helper
\n- - BB Tummy Time Helper
\n- Counter https://www.home-assistant.io/integrations/counter/
\n- - BB Diaper Counter
\n- - BB Feeding Counter
\n- - BB Pumping Counter
\n- Input Text https://www.home-assistant.io/integrations/input_text/
\n- - BB Notes
\n- Input Number https://www.home-assistant.io/integrations/input_number/
\n- - BB Amount
"
domain: automation
input:
bb_child:
name: Baby Buddy Child
description: Choose one child per automation.
selector:
entity:
domain: sensor
device_class: babybuddy_child
bb_child_last_timer:
name: Baby Buddy Child Last Timer
description: Timer created by Baby Buddy integration. Choose the same timer as the child name.
selector:
entity:
domain: sensor
device_class: timestamp
notification_group:
name: Notification or Notification Group
description: Device or notify group to notify of timer starting. Blueprint sends a notification each time a timer start. For example notify.josh_s_phone or notify.all_phones
diaper_button:
name: Diaper Button
description: Helper (button type) to trigger diaper log. Use this button in your UI to log a diaper change.
selector:
entity:
domain: input_button
feeding_button:
name: Feeding Button
description: Helper (button type) to trigger feeding log. Use this button in your UI to log a feeding long.
selector:
entity:
domain: input_button
pumping_button:
name: Pumping Button
description: Helper (button type) to trigger pumping log. Use this button in your UI to log a pumping session.
selector:
entity:
domain: input_button
tummy_time_button:
name: Tummy Timer Button
description: Helper (button type) to trigger tummy time log. Use this button in your UI to log tummy time.
selector:
entity:
domain: input_button
sleep_button:
name: Helper to trigger sleep log.
description: Helper (button type) to trigger sleep log. Use this button in your UI to log a sleep session.
selector:
entity:
domain: input_button
bb_timer:
name: Baby Buddy Timer
description: The timer created by Baby Buddy. Usually named switch.firstName_lastName_timer For example switch.lindsay_smith_timer
selector:
entity:
domain: switch
diaper_counter:
name: Diaper Change Counter
description: Helper you created to count diaper changes. Resets at midnight.
selector:
entity:
domain: counter
feeding_counter:
name: Feeding Counter
description: Helper you created to count feeing sessions. Resets at midnight.
selector:
entity:
domain: counter
pumping_counter:
name: Pumping Counter
description: Helper you created to count pumping sessions. Resets at midnight.
selector:
entity:
domain: counter
bb_notes:
name: Notes
description: Shared notes field for diaper change or feeding notes.
selector:
entity:
domain: input_text
bb_amount:
name: Amount
description: Shared amount field for diaper changes and feedings.
selector:
entity:
domain: input_number
bb_ui_url:
name: Link to Baby Buddy tab in your dashboard.
description: Link to a dashboard page that has your Baby Buddy controls. For example /lovelace/baby-buddy Used as the tap action in the timer notificaiton to allow quick access.
trigger:
- platform: state
entity_id: !input diaper_button
id: diaper-change
- platform: state
entity_id: !input feeding_button
id: feeding-log
- platform: state
entity_id: !input pumping_button
id: pumping-log
- platform: state
entity_id: !input tummy_time_button
id: tummy-time-end
- platform: state
entity_id: !input sleep_button
id: sleep-end-log
- platform: time
at: "00:00:00"
id: midnight
- platform: state
entity_id: !input bb_timer
to: "on"
id: timer-on
- platform: state
entity_id: !input bb_timer
to: "off"
id: timer-off
variables:
_bb_amount: !input bb_amount
_bb_notes: !input bb_notes
_bb_child_last_timer: !input bb_child_last_timer
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: diaper-change
sequence:
- service: babybuddy.add_diaper_change
data:
type: "{{ states('select.baby_buddy_diaper_type') }}"
color: "{{ states('select.baby_buddy_diaper_color') }}"
notes: "{{ states(_bb_notes) }}"
target:
entity_id: !input bb_child
- service: input_text.set_value
data:
value: ""
target:
entity_id: !input bb_notes
- service: counter.increment
data: {}
target:
entity_id: !input diaper_counter
- conditions:
- condition: trigger
id: feeding-log
sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ state_attr(_bb_child_last_timer, 'active') }}"
sequence:
- service: babybuddy.add_feeding
data:
timer: true
type: "{{ states('select.baby_buddy_feeding_type') }}"
method: "{{ states('select.baby_buddy_feeding_method') }}"
amount: "{{ states(_bb_amount) }}"
notes: "{{ states(_bb_notes) }}"
target:
entity_id: !input bb_timer
default:
- service: babybuddy.add_feeding
data:
type: "{{ states('select.baby_buddy_feeding_type') }}"
method: "{{ states('select.baby_buddy_feeding_method') }}"
amount: "{{ states(_bb_amount) }}"
notes: "{{ states(_bb_notes) }}"
target:
entity_id: !input bb_timer
- service: input_text.set_value
data:
value: ""
target:
entity_id: !input bb_notes
- service: input_number.set_value
data:
value: 0
target:
entity_id: !input bb_amount
- service: counter.increment
data: {}
target:
entity_id: !input feeding_counter
- conditions:
- condition: trigger
id: pumping-log
sequence:
- service: babybuddy.add_pumping
data:
amount: '{{ states(_bb_amount) }}'
notes: '{{ states(_bb_notes) }}'
target:
entity_id: !input bb_child
- service: counter.increment
data: {}
target:
entity_id: !input pumping_counter
- service: input_text.set_value
data:
value: ""
target:
entity_id: !input bb_notes
- service: input_number.set_value
data:
value: 0
target:
entity_id: !input bb_amount
- conditions:
- condition: trigger
id: tummy-time-end
sequence:
- service: babybuddy.add_tummy_time
data:
timer: true
target:
entity_id: !input bb_timer
- conditions:
- condition: trigger
id: sleep-end-log
sequence:
- service: babybuddy.add_sleep
data:
timer: true
target:
entity_id: !input bb_timer
- conditions:
- condition: trigger
id: midnight
sequence:
- service: counter.reset
data: {}
target:
entity_id:
- !input diaper_counter
- !input feeding_counter
- !input pumping_counter
- conditions:
- condition: trigger
id: timer-on
sequence:
- service: !input notification_group
data:
title: ⏳️ Baby Buddy Timer Running
message: Tap to open Baby Buddy to log timer.
data:
group: baby-buddy-timer
clickAction: !input bb_ui_url
url: !input bb_ui_url
persistent: true
tag: baby-buddy-timer
- conditions:
- condition: trigger
id: timer-off
sequence:
- service: !input notification_group
data:
message: clear_notification
data:
tag: baby-buddy-timer
mode: parallel
max: 10
Change Log
2022-11-12
Initial Commit