Controlling Humidity in a Room - feedback requested

I'm trying to get a rule that will control the Humidifier in a room based on an Aeon Multisensor 6 and a simple humidifier plugged into a peanut plug.

The following are my requirements for this rule:
I want the humidity to be 50-55% in the room while the person is sleeping, generally. It's a kid's bedroom, so they may be sleeping in there any time on the weekend, but only in the evening during the week.

I tried adding some error handling to keep from repeated signals being triggered (like sending the "turn on" signal repeatedly when the plug is already on).

I would like to know what you think of this and if there are any more efficient ways I could achieve the desired result.

Thanks!

I have one of the sensors - I don't use it for humidity but I looked at my logs and it appears to only report humidity once an hour using the built-in driver. I haven't tried the community driver. I was wondering if once an hour would work for you.

That's a great point. For me, it appears to report the humidity at each whole number change, which in my testing was as soon as every 5 minutes, and as soon as 1 minute later. I'm using the built-in driver for the sensor, but a community driver for the peanut plug.
Aeon%20Driver

Is it possible that it reports at minimum 1 hour if no change and earlier with change? I'll look in the documentation for it to see. I certainly just kind of hooked it up, but I really should confirm the reporting expectation. This is what my logs looks like for Humidity:

No comment on the humidity sensor; I use Konke sensors and they seem to update very frequently.

Anyway, I think a Rule like this should work for your needs:

Trigger:

Humidity of Humidity-sensor *changed*

Actions:

IF ( Humidity of Humidity-Sensor is <= 55  AND 
Humidity of Humidity-Sensor is >= 51 ) THEN
	Exit Rule
ELSE-IF ( ( Day in Monday, Tuesday, Wednesday, Thursday, Friday AND  Time between Sunset and Sunrise ) 
		XOR Day in Saturday, Sunday ) THEN
	IF (Humidity of Humidity-Sensor is <= 55 THEN
		On: Humidifier switch
	ELSE
		Off: Humidifier switch
	END-IF
END-IF
1 Like

Consider the following app:

I accomplished a similar task for a dehumidifier running when power is cheap (this cheap time varies season to season, we have Time of Use). Admittedly, my "when is power cheap" rules are annoyingly "complex", thus essentially requiring this method, but if you have anything else following that same timing pattern, this might help.

To unobfuscate the code for my dehumidifier trigger, I created a variable that has some code which changed the state of that variable based on various times:

I then greatly simplified the look of the Dehumifier code by removing all of the timing data and simply saying "is TimeOfUse = 0?" (which represents when power is cheaper). I didn't bother with the code to stop an "on" command when the dehumidifier is already on):
dehumidifier_example