Automating ADHD

Important

This article will be constantly updated with new solutions and improvements to existing solutions that I implement for myself.

Note

The automations below require some hardware (sensors, zigbee radio) and software (Home Assistant), but can probably achieved with other combinations. Adapt the logic to your needs and constraints!

As I'm sure I wrote before – I have ADHD, which comes with a unique set of benefits, but also a fucking mountain of challenges. It is also the catalyst and driving force behind a large chunk of my personal projects.

And so, as part of my never-ending pursuit for improving and streamlining as much of my daily life as possible, I decided to try and tackle some of those annoying tasks that most of us (yes, even people that don't have "a little bit of ADHD") just tend to forget to do.

Automatic

Reminding me to cleaning the cats' litter-box

Note

This can, and probably should, be further improved to complete existing tasks for example, instead of having to complete them manually.

The principle of this automation, which actually has two parts, is both create a reminder that is based on completion date and nag me in case I forgot to remove the bio-hazard waste.

The magic is achieved by placing the magnetic switch on the drawer of the litter-box, which you ideally will only open when performing maintenance on the feline waste container.

Reminding me to take my meds

Note

Due to the configuration oddities of the sensor, fine-tuning this automation may be more difficult than necessary. But with some extra logic you'll be able to do it!

I often forget to take my meds in the morning, especially with how hectic some mornings may be, and even though my phone gently nudges me to take the meds at 8:35AM (and then punches me in the ribs yells much louder at 9:15AM), I will still forget to do so.

So I came up with a solution through HomeAssistant to keep annoying me until I take my meds.

Hardware Requirements

The Setup

  1. Create a Input Boolean helper in helpers. I called mine Paul Meds Taken and gave it the mdi:pill icon
  2. Create a reset Automation in automations. The gist is to reset the boolean at midnight
alias: Reset Meds Taken Status
description: >-
  Automatically reset the medication status to 'not taken' at midnight if it was
  marked as taken.
triggers:
  - trigger: time
    at: "00:00:00"
conditions: []
actions:
  - action: input_boolean.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.paul_meds_taken
mode: single
  1. Create a reminder Automation which will constantly nag you to take your meds, until the boolean you created earlier is set as true.

    Note

    For my automation, I also included the phone location, as if I'm not home (which is where the drugs are) there's no reason to constantly nag me.

alias: "Reminder to Take Meds"
description: Automatically reminds Paul to take his medications every hour if not done by 12 PM.
triggers:
  - trigger: time_pattern
    hours: /1 #Reminder every hour
conditions:
  - condition: and
    conditions:
      - condition: time
        after: "08:00:00"
        before: "12:00:00"
      - condition: state
        entity_id: input_boolean.paul_meds_taken
        state:
          - "off"
      - condition: zone
        entity_id: person.paul
        zone: zone.home_city
actions:
  - action: notify.mobile_app_phoney
    metadata: {}
    data:
      message: 💊 TAKE YOUR MEDS
      title: 💊 TAKE YOUR MEDS
mode: single   
  1. Create an Automation to indicate you've taken your government-issued brain medication.

    Note

    Note the zone check in this automation. It's there to prevent turning the automation off by mistake in case my wife decides to pick up the happiness jar.

alias: Paul – Cancel Medication Reminder
description: >-
  This automation activates when the medbox lid is tilted and sets
  the helper as true meaning meds taken.
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.medbox_vibration_sensor_tilt
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 3
conditions:
  - condition: and
    conditions:
      - condition: time
        after: "07:00:00"
      - condition: state
        entity_id: input_boolean.paul_meds_taken
        state:
          - "off"
      - condition: zone
        entity_id: person.paul
        zone: zone.home_city
actions:
  - action: input_boolean.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.paul_meds_taken
  - action: notify.ntfy_home
    metadata: {}
    data:
      title: MedBox
      message: Paul took his meds
mode: single

Wife's Version

I ended up being able to convince my wife to allow me to create a similar automation for her, as she also seldom forgets to partake in the medicinal journey, albeit with her own pills. She however, did not want to put her medication in a small jar with a vibration sensor glued to it, so I proposed a different solution for her. The principle is the same to the one I use, but the activation is different. 1. Wife forgets to take her medication 2. A notification is being broadcast through NTFY as well as the living room smart speaker 3. Wife scans an NFC Tag which runs a iOS Shortcuts Automation 4. The automation pens the Health app on the Medication view and executes a HomeAssistant Automation which sends a NTFY notification and sets the Input Boolean to true

Interaction Based

Reminding me to buy cat food and litter

Important Shopping List