Mode Manager Restriction Question

Is there an easy way to specify a restriction in Mode Manager to prevent changing modes based on being in a specific mode.

This seems to be an option for some of the automations like simple lighting, but I can't seem to figure out how to achieve this with mode manager. What happens for me is that I have a certain mode I put the system in when I have people over 'Company' where I avoid turning lights off due to Motion or other conditions to keep things going dark on unexpected guests. The biggest hangup, however, is when I go to leave to pickup ice or something else, I have a rule when the mode switches to Away that fires off and turns off all the lights. I can avoid the lights being turned off with the restrictions I just referenced in simple lighting but then the change in modes causes the other Motion Automations to behave differently and strange things happen.

The best option would be to prevent the mode change in the first place when a particular mode is set. Possible without trying to wrap my mind around Rule Machine? Seems so close.

The simple answer is no. But, there is a way to accomplish what you want.

I have a similar situation with a mode called Cleaning. First of all, Cleaning is not dealt with at all in Mode Manager. It is initiated by a button being pushed. My various lighting apps treat Cleaning as a different case, including not turning the lights off while in this mode (sound familiar). Motion Lighting has this option. It also has a setting for turning the lights on, and for Cleaning it's to full brightness. However, once a light comes on, it won't turn off.

The next part of the challenge is dealing with leaving. This pretty much has to be done with Rule Machine. In Mode Manager, don't use the automatic setting to Away when people leave. Deal with this in RM instead. The "Goodbye" rule could be restricted not to run when in Company mode.

Rule:
Condition: all presence sensors not present
Rule: ditto (will autofill)
Action for true: Set mode to Away
Restrictions: Only when in the other modes, not Company

I will look into the possibility of adding a mode restriction for setting Away in Mode Manager. That would simplify things, you are right about that.

1 Like

I create a virtual presence device and when this virtual device is presence. Keep mode in home mode.

Thank you very much for the thoughtful workaround and considering adding this to Mode Manager- will keep my fingers crossed it makes its way in soon. Very impressed with how simple and straightforward it works.

Also, like the idea for the cleaning mode and the lights coming on at full brightness- should have thought of that myself!

Tested the Rule Machine workaround it did the trick as far as not changing mode to 'Away' when the mode was set to 'Company' and the presence sensor left. Still thinking I need to do more with it, however, as when I returned, the Mode Manager app kicked in and switched the mode out of 'Company' to 'Evening' which then started to process motion events, set different dimmer levels, etc.

Should I abandon Mode Manager? What logic do I need to include for my 'Hello' mode change in Rule Machine? I appreciate the blow by blow advice to set 'Away' mode and was hoping for something similar for the Hello. I currently set a 'Day' mode upon arrival between sunrise and sunset and an 'Evening' mode on arrival between sunset and sunrise through mode manager. I would want to do the same except not change the mode to either of those when the mode is set to 'Company'.

Thanks again for the help.

‘Modes Plus’ can do this.
You can restrict by current mode.

Andy

This feature is in the upcoming next release.

Great- thanks! Looking forward to it as the simplicity and elegance of Mode Manager is hard to beat.

If this has been addressed and I missed it, sorry. I am trying to add a virtual presence device called “house guest” to mode manager. But a change in presence has no effect to mode manager. Is this a bug, or by design? Is this different than what is being discussed here?

You need to show us your Mode Manager setup to see what you're trying to do.

I don’t mean to hijack the thread. But since you asked:

As you can see, I have one presence sensor. It present, it should use the time schedule and if not present it should be in away mode. As I toggle the virtual presence sensor between present and not present, I can the device state change in the logs but I do not see the mode manager trigger at all. Under events I do not see any events, and as you can see in this image, the mode manager does know that house guest is present...

The additional sensors are not in use, as I removed them to trouble shoot this issue.

Is this a built-in driver? Or custom? Can you show the device events for it.

I am using the built-in virtual presence device, and the built-in mode manager app.

The events are rather eventless.

I deleted both and recreated. When I recreated mode manager, it was already in away mode, so this does not shown more than since I recreated it. I did try toggling house guest a as you can see in the first one.

@bravenel I know I am digging out an old post, but I wonder if your approach has changed with the new Mode Manager? I still don't see a way to skip mode change if a virtual button is pressed (which is the use case for the TS and your "Cleaning mode"), but maybe I missed something. I realize it's all done with RM, but hey, we have the Mode Manager for a reason :slight_smile:

Mode Manager doesn't offer restrictions.

You would have to use a rule in some way to alter the mode from whatever Mode Manager would set it to, or don't use Mode Manager to set that mode, using a rule instead to get some logic applied.

Generally, your previous answer still applies then. Skip setting away from the mode manager, write a simple rule with a trigger all are away, and add a condition to it.

1 Like

What would be the best way to get back to the mode based on timing when, for instance, when Cleaning mode is no longer applicable? Just a bunch of if-thens checking time of day or is there a simpler way? Maybe a reset mode or something?