That’s a humidity sensor and I want to know if someone is taking bath, so Home Assistant should not turn off the lights (currently I’m using motion and door sensors. It’s fine but not perfect). I can not use absolute values because in winter humidity is different from summer. That’s why I need to spot that spike.
Meaning a simple condition in your automation wont work?
Add a condition on the “lights off after x time” automation that the humidity value should be <60?
If during summer humidity goes over 60, maybe you could use something like this to create an average daily humidity sensor
Or hardware solution … attach a small temp sensor to the outside of the bath… if significantly above ambient temp the bath tub is being used ? Could also attach a strain (weight) sensor under a leg of the bath.
You cannot use a fixed level to trigger at because humidity is relative. “Background” humidity will be higher on some days and you only want to measure the increase or change.
Trend should work, but hygrostat is designed for this.
Got it. Testing trend first
By the way, should not derivatives also solve this problems?
It would show how fast humidity is changing, if I am not mistaken
P.S. I don’t really want to use custom component if default once can handle this task. That’s why I’m starting with trend
For humidity, look at the rate-of-rise or slope of the line ( derivative of FFT of data points) to get an accurate detection.
If I were to design something to check bath usage, I would use 3 temp probes and some logic. The probes would be located:
1 in the drain, 1 at the source (handle), 1 at the top of the exit (before shower nozzle)
That would allow detection if you are showering or using the bath (if you have a shower), thought it would be a lot of work since temp probes need to be placed on copper pipes
steady high temp at the top and drain = shower
constant high temp at source, then drop in drain, then drop at source = bath filled
then…
increase temp in drain then dropoff = bath drained
You could also use a microphone to detect the sound of a bath filling or shower running, they have different acoustic profiles, volume levels in specific frequency bands are pretty obvious. My bath is adjacent to another room, an an acoustic probe placed on that rooms wall would probably work, keeping the hardware out of the bathroom and away from humidity.
Temp + acoustic + humidity triggers would make a bulletproof detection system
If the generic hygrostats do not meet your requirements. Just use the generic_thermostat. I’ve used that for ages for my hygrostats, since there was not really any alternatives. Only you have to live with pretending your humidity is temperature.
I did a little differently.
The fan in my bathroom is connected via Sonoff TH10 with AM2301 (temperature + humidity) sensor. ESPHome-based firmware is uploaded inside it.
The system can autonomously maintain the set indoor humidity (default: 75%). In this case, the states of the sensors are broadcast to HA and through MQTT you can reconfigure the fan response threshold.
You can also temporary change the threshold for a specified time. At the end of which, the system will return to the previous state.
The second option: by pressing a button on the TH10, the fan is forced to start for 5 minutes (also works without the participation of a smart home).
The general logic is simple: remove as much primitive work from the smart home as possible. At the same time, leaving it in full control of the situation.
Regarding the main topic …
IMHO, to accurately determine the presence of people, you will need two sensors: a door opening sensor + a PIR sensor.
Let us take as X time how long the PIR sensor waits before canceling the “in motion” state.
The logic is this:
The door is open - the light is always on;
If the door is closed more than X …
if the PIR sensor is ON (indicates the presence of movement), then there are people in the room. We leave this state unchanged until the door is opened.
if the PIR sensor is OFF (indicates there is no movement), then there are no people in the room and you can turn off the light.
I already use motion + door sensor
And I have that logic
But here is the case:
You leave bathroom and immediately next person gets in. Motion is not longer detected but person is in bath, Home Assistant thinks that person left (first person did) and turns off the light while you are in bath
that’s a rear case, that’s why I am ok for more than a year now with that logic, but it can be better
If there are failures, then you have some kind of violation of logic.
Or the PIR sensor is not scanning the entire room. Or the state of the PIR sensor is not checked after the X timeout after the door is closed.
If a person left and closed the door, after time X the PIR sensor will turn off. If a new person came next, he would move at least for a few seconds. This means that in time X after the door is closed, the PIR sensor will still be turned on.