this post was submitted on 23 Mar 2026
195 points (98.0% liked)

homeassistant

18902 readers
252 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!

all 44 comments
sorted by: hot top controversial new old
[โ€“] QueenMidna@lemmy.ca 4 points 14 hours 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.

[โ€“] 4lan@lemmy.world 2 points 1 hour 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

[โ€“] pupbiru@aussie.zone 3 points 10 hours 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 3 points 4 hours ago

Ooh that works!

[โ€“] jol@discuss.tchncs.de 55 points 1 day ago (5 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.

[โ€“] brisk@aussie.zone 9 points 21 hours ago (1 children)

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

[โ€“] pmtriste@lemmy.world 2 points 7 hours ago

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

[โ€“] Azzu@lemmy.dbzer0.com 18 points 1 day ago (2 children)

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

[โ€“] 4lan@lemmy.world 2 points 1 hour ago

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

[โ€“] jol@discuss.tchncs.de 7 points 22 hours ago

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

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

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

[โ€“] HeyThisIsntTheYMCA@lemmy.world 6 points 20 hours 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 1 hour ago (1 children)

pro tip for texas summers: dont go outside :)

i had to take the bus :(

[โ€“] Kowowow@lemmy.ca 6 points 1 day ago

Maybe an option for every other day too

[โ€“] zr0@lemmy.dbzer0.com 1 points 20 hours ago

Or just trigger a machine which dispenses a treat whenever โ€œwetโ€ is detected

[โ€“] konim@sopuli.xyz 4 points 17 hours 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 1 points 1 hour ago* (last edited 1 hour 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!

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

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

[โ€“] 4lan@lemmy.world 2 points 1 hour ago

weather has been all over the place lately

[โ€“] ripcord@lemmy.world 4 points 20 hours ago (1 children)

maybe i needed to stay in my apartment more or something. that fucking moldslum.

[โ€“] amelore@slrpnk.net 9 points 1 day 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 4 points 1 day ago (2 children)

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

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

idk about the US but in australia most ceiling fans plug into standard outlets in the roof, so a smart plug is usually all you need

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

I'm about to go into my attic and find out!

[โ€“] tburkhol@lemmy.world 2 points 21 hours 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

[โ€“] 4lan@lemmy.world 3 points 1 day ago* (last edited 1 day 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 5 hours 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 1 hour ago (1 children)

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

[โ€“] AtHeartEngineer@lemmy.world 1 points 57 minutes ago

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

[โ€“] ThePantser@sh.itjust.works 2 points 1 day ago (2 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.

[โ€“] grue@lemmy.world 2 points 23 hours ago

Could make it more accurate by using a moisture sensor and placing the prongs in the shower.

Or better yet, plumb a flow rate meter into the supply pipe.

[โ€“] 4lan@lemmy.world 3 points 1 day 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

[โ€“] Moses@discuss.tchncs.de 2 points 1 day ago (2 children)

What sensors are you using for humidity?

[โ€“] 4lan@lemmy.world 5 points 1 day ago

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

[โ€“] walden@wetshav.ing 3 points 1 day ago* (last edited 1 day ago)

You didn't ask me, but as someone who has fiddled with these 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.

I connect mine to LOLIN D1 Minies running Tasmota.

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

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

Great automation tho!

[โ€“] gibmiser@lemmy.world 9 points 1 day ago

Not everyone is the same.

[โ€“] 4lan@lemmy.world 4 points 1 day ago (1 children)
[โ€“] avidamoeba@lemmy.ca 2 points 1 day ago* (last edited 1 day 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. Basically balance smell control with skin health. I also haven't had any fungal skin overgrowth since then.

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 3 points 1 day ago (1 children)

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.

[โ€“] avidamoeba@lemmy.ca 3 points 1 day ago* (last edited 1 day ago)

Yeah, I also tend to soap just the smell generators and vary soap/frequency depending on the intensity.