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!


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