this post was submitted on 23 Mar 2026
131 points (98.5% liked)

homeassistant

19150 readers
5 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!

top 38 comments
sorted by: hot top controversial new old
[โ€“] jol@discuss.tchncs.de 41 points 3 weeks ago (4 children)

If you want to hijack your depressed reward system further, you could try to show a streak of how many days you've gone without missing a shower.

[โ€“] Azzu@lemmy.dbzer0.com 14 points 3 weeks ago (2 children)

Why not try a challenge for how long you can go without a shower?

[โ€“] jol@discuss.tchncs.de 4 points 3 weeks ago

I think that's the opposite of what OP wants but still a nice technical challenge nonetheless

[โ€“] 4lan@lemmy.world 2 points 3 weeks ago

I already felt this urge to get the "high score" LOL

[โ€“] brisk@aussie.zone 10 points 3 weeks ago (2 children)

For me streaks are a double edged sword; if I break a streak then the stat becomes a disincentive

[โ€“] pmtriste@lemmy.world 3 points 3 weeks ago

I have that same problem. I feel like nobody else I talk to understands what I'm saying.

[โ€“] jol@discuss.tchncs.de 1 points 3 weeks ago

I actually have that too. I stopped using duolingo because I got so obcesed with my streak that once I broke it I lost all will to use it anymore.

[โ€“] Kowowow@lemmy.ca 3 points 3 weeks ago

Maybe an option for every other day too

[โ€“] 4lan@lemmy.world 2 points 3 weeks ago (1 children)

Good idea! I aim for 2 days. My skin and hair hate Texas water

[โ€“] HeyThisIsntTheYMCA@lemmy.world 4 points 3 weeks ago (1 children)

dude when i lived in texas i had to shower twice a day i got so greasy

[โ€“] 4lan@lemmy.world 3 points 3 weeks ago (1 children)

pro tip for texas summers: dont go outside :)

i had to take the bus :(

[โ€“] amelore@slrpnk.net 8 points 3 weeks ago (1 children)

I have also checked what time I showered with the logs of the humidity sensor. It's a small bathroom so humidity goes from like 30% to 50% in 2-3 minutes and to 60% by the time I'm done showering. Normal humidity here is 25 to 40. So I just put the trigger on 55%, no average or comparing with another room necessary.

My use case was triggering the existing ventilation but I haven't gotten around to changing the switch for that yet.

[โ€“] 4lan@lemmy.world 2 points 3 weeks ago (1 children)

I'd like to do the same eventually. I rent though so it would have to be reversible

[โ€“] tburkhol@lemmy.world 1 points 3 weeks ago

Shelly makes miniature switches and power monitors that are small enough to fit inside a 1-gang electrical box beside a manual switch or outlet. It's tight, but it's a fair way to convert existing hardware. Zigbee/bluetooth/wifi https://us.shelly.com/products/shelly-1-mini-gen4

[โ€“] QueenMidna@lemmy.ca 4 points 3 weeks ago (2 children)

Could you not also tie it into if the ceiling fan is running? Or a flow sensor on the shower?

I'm just thinking of natural humidity and how that might skew the numbers.

That's a really cool and neat way to pull it off. I helped myself shower more by attaching a NFC tag to the shower wall and have an alarm my phone that can only be turned off by tapping the tag. The thinking is that I might as well shower while I'm there.

[โ€“] pupbiru@aussie.zone 3 points 3 weeks ago (1 children)

i have a humidity sensor in the bathroom that turns the ceiling fan on, and the way that works is that it compares the bathroom humidity to humidity in other areas of the house, so it takes into account humid/dry days automatically

[โ€“] QueenMidna@lemmy.ca 2 points 3 weeks ago

Ooh that works!

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

i dont have a way to see if the fan is on currently. but it gets around natural humidity swings by comparing it to the 1hour average.
that means if it creeps up to 70% humidity, it wont think im in the shower until it hits 78%. It has to be a sudden change because of this logic

[โ€“] ThePantser@sh.itjust.works 2 points 3 weeks ago (1 children)

Could make it more accurate by using a moisture sensor and placing the prongs in the shower. Could also just add a smart button on the show door/wall that you press when you shower to reset the timer.

I have a water shutoff that I installed to cut my kids showers off, they have to press a button to turn on the shower valve. So it runs for 10min and then cuts off. Hmm my son forgets to shower often so maybe I should do something similar to remind him.

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

I might look into that if this ends up giving false positives or something. So far it's working great

I do the ability to manually change the date and time of last shower. I had to do that when tweaking the sensitivity

[โ€“] 4lan@lemmy.world 2 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

Also! I was able to use this to make my PIR sensor presence detection more accurate

before it would not see me in my shower and think im not there. Now that automation only triggers if the bathroom is also 'dry'

[โ€“] AtHeartEngineer@lemmy.world 1 points 3 weeks ago (1 children)

if/when you can afford it, mmwave precense sensors are way better, mine can see me through the shower curtain standing still

[โ€“] 4lan@lemmy.world 1 points 3 weeks ago (1 children)

thats the goal! It's a glass door though, does that matter?

[โ€“] AtHeartEngineer@lemmy.world 2 points 3 weeks ago

hmm, I think it should still work through glass, it works through drywall.

[โ€“] HeyThisIsntTheYMCA@lemmy.world 2 points 3 weeks ago (2 children)

texas? 68% humidity? how did you get it that low

[โ€“] ripcord@lemmy.world 3 points 3 weeks ago

Air conditioning

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

weather has been all over the place lately

[โ€“] konim@sopuli.xyz 1 points 3 weeks ago (1 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 2 points 3 weeks ago* (last edited 3 weeks 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" 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!

[โ€“] Moses@discuss.tchncs.de 0 points 3 weeks ago (2 children)

What sensors are you using for humidity?

[โ€“] walden@wetshav.ing 3 points 3 weeks ago

You didn't ask me, but as someone who has fiddled with this things my favorite sensor is the BME680, specifically the board that Adafruit sells. It costs more than other sensors, but that's because it's the best. It also does temperature, atmospheric pressure, and measures VOC. I think you can even use it to detect when someone takes a poo, but I haven't tried.

[โ€“] 4lan@lemmy.world 2 points 3 weeks ago

just the DHT-22 running on a Wemos D1.
I set it up using ESPhome

[โ€“] avidamoeba@lemmy.ca -5 points 3 weeks ago* (last edited 3 weeks ago) (3 children)

Frequent showers are overrated, especially when done with soap which strips your skin microbiota. ๐Ÿ˜…

Great automation tho!

[โ€“] gibmiser@lemmy.world 6 points 3 weeks ago

Not everyone is the same.

[โ€“] 4lan@lemmy.world 2 points 3 weeks ago (1 children)
[โ€“] avidamoeba@lemmy.ca 2 points 3 weeks ago* (last edited 3 weeks ago)

My skin didn't appear to give a shit up until my mid-30s. Perhaps I just didn't notice cause it wasn't bad enough. These days a proper bath with soap produces dry and itchy skin. That's why I've switched to mostly water with mild soap only for the smell-accumulating regions. I also haven't had any fungal skin overgrowth since then. Basically balance smell control with skin health. My 20-year-old self would be disgusted by my 40-year-old one. ๐Ÿ˜…

That said, am married and wife is happy with the total VOC output so I have the privilege to not have to cater to other standards.

[โ€“] walden@wetshav.ing 2 points 3 weeks ago

I half agree with you. I shower daily but only use soap on my pits and bits. If I've done yardwork or exercise I'll hit everything with soap, though.