OK. Hereās the basic idea. This makes use of the new hierarchical group structure in 3.0, and group activities, to simplify the logic (well, I think itās simpler)ā¦
Conditions:
-
Root group: use AND operator, name it āDoor Monitorā (or whatever/similar)
-
(Sub)Group 1: AND operator, name it āDoor Openā
- Device State: door sensor, Tripped, IS TRUE
-
(Sub)Group 2: AND operator + NOT, name it āNotification Intervalā
- Interval: 300 seconds (leave base time fields empty)
Activities:
Thatās right, no activities. Butā¦ on the notifications tab, set up a notification for when the sensor is tripped (whether armed or disarmed).
That should do it. Hereās how it works:
The first subgroup, āDoor Openā, contains the single condition that checks the door. The group will be true if the door sensor is tripped, since thatās the only condition in this AND group.
The second subgroup, āNotification Intervalā has a little trick. It uses the NOT group operator to invert the state of its conditions, which is only a single Interval condition set for 300 seconds (5 minutes). If we used the interval condition by itself, it would be true every 5 minutes for a few seconds and then return to false. By putting it inside a group with a NOT, the group sits at true most of the time, but every 5 minutes goes false for a few seconds (itās the inverse state of the Interval conditionās state). Hereās why we do thisā¦
Since the root group is an āANDā, and the root group controls the tripped/untripped state of the ReactorSensor, the ReactorSensor will only be tripped when both subgroups are true. Since the Notification Interval group spends most of its time in true state (because of the NOT), then when the door is opened, the other group becomes true, both groups are then true and the ReactorSensor instantly trips, sending the first notification. If the door remains open, the Notification Interval group periodically becomes false for a few seconds, which causes the ReactorSensor to untrip. When the Intervalās pulse period of a few seconds lapses, the Notification Interval group returns to true, causing the ReactorSensor to trip again, causing a subsequent notification. This cycle continues while the door is open.
If we had not inverted the Interval condition using the NOT on a container subgroup, then when the door opened, the first notification would be delayed until the first interval expired, which means the first notification could be delayed up to 4 minutes 59 seconds. Not great. So by being a little tricky and inverting the Interval condition, the first notification when the door opens goes out immediately.