Detect if somebody is taking a shower

This is probably most trickiest part where your expectations may or may not fit into desired limits.
It is not rare that with perfect conditions, the relative humidity may stay at 100% for quite long period before it starts to drop.

But anyway. Looking only the humidity value change does not do the trick. You should look at value change over the time period to make decision of falling or rising considered. And that keeps decision making slow. Also the change of humidity depends on much more than just forced ventilation and stopped or started hot shower. Or is the shower always hot? And the time under the shower :upside_down_face: Sometimes the door left open or something and for last and not for least, the overall conditions vary all the time.

So there will be quite many false positives to get rid before you can rely on calculated status.

Mathematically the solution might be like this;
Collect values over time period.
Calculate trend over that period
Trend slope tells if change of data is rapid enough to make decision of room status.

With every new incoming value get rid of old values which does not fit into time period
Start over the calculation