Context
Original inspiration: probably Tim Ferris with Jim Collins Most recent inspiration: Cal Newport with David Dewane
I have dabbled with this idea for quite a while, and finally got around to actually implementing this. I wanted it to be done within 30 minutes and I landed on this solution:
- Create an entity in Home Assistant for tracking it.
- Use a notification from the phone app to remind me, and set the value from the notification if possible.
Code
Entity code:
# configuration.yaml
input_number:
collins_scale_rating:
name: Daily Collins Scale Rating
initial: 0
min: -2
max: 2
step: 1
mode: box # Use 'slider' if you prefer a slider in the UI
icon: mdi:scale # Optional icon
Automation code:
# automations.yaml
- id: 'daily_collins_scale_prompt'
alias: Daily Collins Scale Prompt
description: Send a daily notification to rate the day on the Collins scale.
trigger:
- platform: time
at: "22:00:00"
condition: []
action:
- service: notify.mobile_app_YOUR_DEVICE_ID
data:
message: "Rate your day on the Collins Scale (-2 to +2)"
title: "Daily Check-in"
data:
actions:
- action: "-1"
title: "-1 (Bad)"
- action: "0"
title: "0 (Okay)"
- action: "1"
title: "+1 (Good)"
mode: single
# automations.yaml
- id: 'set_collins_scale_from_notification'
alias: Set Collins Scale from Notification
description: Sets the Collins scale rating using the value from the notification action button tap.
trigger:
- platform: event
event_type: mobile_app_notification_action
condition: []
action:
- service: input_number.set_value
target:
entity_id: input_number.collins_scale_rating
data:
# Get the action string (e.g., "-2", "0", "1") from the trigger event
# and convert it to an integer number for the service call
value: ""
mode: single
Problems and future
- I only get 3 notification buttons, so I trimmed it to be -1, 0, and +1 and I go into the dashboard for the more extreme cases.
- I will at some point want to move this out into my own CSV file in the diary section of the notes, but this is the next step.