I have a smart water filter/softener that tracks my daily water usage throughout the day (the softer automatically resets the gallon count to 0 at midnight each night).
I want to make a template or history stat that tracks it on a more gradual level and find out how many gallons were used between recordings, not an overall accumulation total for the day.
So if the water is turned on at 20 gallons and then turned off at 30 gallons the sensor shows 10 gallons used at the last instance. The the next time the water is turned on at 30 gallons and off at 45 the sensor shows 15 gallons.
I would think it would have to reset to 0 at midnight so the first recording isn’t negative in the morning too?
I’d also like a sensor for the last time water was used / turned on…are these possible via templates?
It would help if you gave us some details about the available data sources.
Here’s a basic outline…
template:
- trigger:
- platform: state
entity_id: binary_sensor.is_water_flowing
to: 'on'
from: 'off'
sensor:
- name: Flow meter last value
state: "{{ states('sensor.water_meter') }}"
- name: Water last on
state: "{{ now() }}"
- sensor:
- name: Water Quantity Last Instance
unit_of_measurement: Gal
state: >
{% if is_state('binary_sensor.water_flowing', 'off') %}
0
{% else %}
{{ states('sensor.water_meter') | float(0)
- states('sensor.flow_meter_last_value') | float(0) }}
{% endif %}
- name: Water Last On Duration
unit_of_measurement: hours
state: >
{% if is_state('binary_sensor.water_flowing', 'off') %}
0
{% else %}
{{ (now() - states('sensor.water_last_on') | as_datetime).total_seconds/3600 }}
{% endif %}