I added the min/max integration then created two helper entities:
But the min and max sensors always contain the current sensor value:
Do I not understand the integration, or did I set it up wrong?
I added the min/max integration then created two helper entities:
But the min and max sensors always contain the current sensor value:
Do I not understand the integration, or did I set it up wrong?
Based on your naming convention, it seems you assumed this would give you the minimum or maximum value over a time period? The Min/Max integration gives you the min or max value from a series of sensors at the current time.
If you want the min or max value on a single sensor over a time period, use statistics
Ah! Got it. (I think). So if I have temperature sensors all over my garden I can use min/max to get the hottest and coolest temperatures over all of the listed sensors. One value, multiple sensors.
I will look at Statistics.
Yes, for statistics, use value_min for the state_characteristic
Statistics worked great. For the benefit of any future search for a similar solution:
In my sensors.yaml file:
- platform: statistics
name: "Freezer min"
entity_id: sensor.freezer_temperature_c
state_characteristic: value_min
max_age:
hours: 24
- platform: statistics
name: "Freezer max"
entity_id: sensor.freezer_temperature_c
state_characteristic: value_max
max_age:
hours: 24
You will only average 20 samples in 24 hours. You may want more than this (I would consider 100 as the sample size if you get a reading every 15 minutes)
sampling_size integer (Optional, **default: 20**)
Maximum number of source sensor measurements stored. Be sure to choose a reasonably high number if the limit should be driven by max_age instead.
I am doing:
dallas:
- pin: D4
update_interval: 5.0s
This should be a lot more than 20 samples, shouldn’t it?
Thanks for the tip. I went back to the docs and now understand that my update_interval is not related to the sample_size.
@ AllHailJJ Gent
Can you help me understand why my min-max is only reporting the past few hours (The highlighted range in the image). Is my sample size too small?
Thanks.
The last high of -5.5 °C was at 12:02, and the last reading was at 9:21 AM. Not even 12 hours.
Here is my sensor component in configuration.yaml:
#Freezer minimum and maximum temperatures
- platform: statistics
name: "Freezer min"
entity_id: sensor.freezer_temperature_c
state_characteristic: value_min
sampling_size: 100
max_age:
hours: 24
- platform: statistics
name: "Freezer max"
entity_id: sensor.freezer_temperature_c
state_characteristic: value_max
sampling_size: 100
max_age:
hours: 24
because your sample size is too small. You said your update interval is every 5 seconds. There is 24 * 60 * 60 seconds in a day. Divide that by 5 and that’s 86400/5, exactly 17280 samples.
Thanks. I thought so after writing my post. I bumped t to 20,00 and now I have the data I wanted. Am I correct that this just reads the data already stored in the database?
Yep, that’s all it does