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!

  • jol@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 months ago

    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
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 months ago

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

      • jol@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        3
        ·
        8 months 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.

      • pmtriste@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        8 months ago

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

    • zr0@lemmy.dbzer0.comBanned
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      Or just trigger a machine which dispenses a treat whenever “wet” is detected

  • amelore@slrpnk.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 months ago

    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.

  • QueenMidna@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 months ago

    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.

    • Pup Biru@aussie.zone
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      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

      • AA5B@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 months ago

        That’s a great idea -some of the numbers people are putting out here seem so strange: last time I opened my windows, humidity shot up to 90%

    • 4lan@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

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

    • 4lan@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      8 months 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!

  • 4lan@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 months ago

    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’