this post was submitted on 23 Mar 2026
201 points (98.1% liked)

homeassistant

18902 readers
266 users here now

Home Assistant is open source home automation that puts local control and privacy first.
Powered by a worldwide community of tinkerers and DIY enthusiasts.

Home Assistant can be self-installed on ProxMox, Raspberry Pi, or even purchased pre-installed: Home Assistant: Installation

Discussion of Home-Assistant adjacent topics is absolutely fine, within reason.
If you're not sure, DM @GreatAlbatross@feddit.uk

founded 2 years ago
MODERATORS
 

I constantly forget to take showers due to depression. I know I'm not the only one ๐Ÿ˜‚ summer is early here in Texas and I don't want to be the stinky dude

Uses the humidity readings of my bathroom to determine whether I was in the shower:

  • A running 1 hour average of the bathroom humidity is measured.
  • If the current humidity is 8% above the average, it is triggered as "wet".
  • Then it marks down the last time, and then converts that to "days & hours since" last shower.

I have a badge at the top of my main dashboard that will let me know how long it's been. It's already been useful. If I see anything over 2 days I know it's past time for a shower

I got a false positive from washing my hands when it was set to trigger by 5% increases, so I changed it to 8%.

Happy to share my code if anyone wants to do the same!

Edit: code in a comment below!

you are viewing a single comment's thread
view the rest of the comments
[โ€“] konim@sopuli.xyz 5 points 21 hours ago (2 children)

Would you be able to share your code? I have the same problem possibly due to undiagnosed ADHD instead. I've been basically guilt tripping myself (or a parent has) to motivate myself to shower my whole life. Thanks for posting this, it seems like a way more fun way where I can be nerdy about it and still be a functional human being.

[โ€“] 4lan@lemmy.world 1 points 3 hours ago

I just got tested myself so I might be in the same boat! Waiting to get the results

[โ€“] 4lan@lemmy.world 2 points 5 hours ago* (last edited 5 hours ago)

Here is my Automation:

alias: Update Last Shower Time
description: ""
triggers:
  - entity_id: binary_sensor.showering
    from: "on"
    to: "off"
    trigger: state
actions:
  - data:
      datetime: "{{ now() }}"
    action: input_datetime.set_datetime
    target:
      entity_id: input_datetime.last_shower

You need to create a 'DateTime' helper called "Last Shower" This is where the last shower time will be stored (and can be changed)

You need a 'Statistics' Helper too. Call it "Average Bathroom Humidity" and base it on whatever humidity sensor you have. Make it "average linear" then set Max Age to 1 hour. (leave other options default)

Make these template sensors too:

Template Binary Sensor called "Showering":

{{ (states('sensor.bathroom_sensor_humidity')|float - states('sensor.average_bathroom_humidity')|float) > 9 }}

Template Sensor called "Time Since Last Shower":

% set diff = now() - as_datetime(states('input_datetime.last_shower')).astimezone() %}
{% set days = diff.days %}
{% set hours = (diff.seconds // 3600) %}
{% if days > 0 %}
  {{ days }} day{{ 's' if days > 1 }} {{ hours }} hour{{ 's' if hours != 1 }}
{% else %}
  {{ hours }} hour{{ 's' if hours != 1 }}
{% endif %}

Let me know if you hit any snags!