The agocontrol security system is implemented in the "agosecurity" component. It provides a "securitycontroller" device to the system. This is used to interface with the security system, like changing the house mode, cancelling an alarm and triggering zones.
There is no fixed assignment of sensors into zones, like in other systems. In agocontrol you trigger a zone by sending the command "triggerzone" to the securitycontroller device. It takes a "zone" parameter. Usually this command is sent from an action in an event handler. This gives endless possibilities, as you can use arbitrary criteria in your events.
Different housemodes define the state of zones. A zone can be either "inactive", or be set to a specific delay value in seconds per housemode. In this example we use three housemodes: "armed", "armed_athome" and "disarmed". "armed_athome" shall trigger instant alarm for the "hull" zone (which will be triggered by a door sensor), but not react upon triggers in the zone "inside", as we don't want the movement detector in the foyer to trigger an alarm when we're at home. When being away, housemode is set to "armed'. The delay will allow us to disarm the system before the alarm sets off when coming home.
When a zone is triggered, the zone state in the current housemode is evaluated. If it is not "inactive", a countdown will start with the set value (with a delay of "0" there will be instant alarm)
The countdown start will be announced with an event, and a follow-up event will be sent every second with the remaining time. This will trigger a popup with a pin entry in the web admin. It can also be used to give feedback, like playing a sound or blink a light. If the countdown is not cancelled, an alarm event will be sent. An event handler can be used to take action, like firing an alarm scenario (switching on a siren, sending SMS, turning on the lights, ...)
Arming is done by setting a specific housemode which has active zones. This can be done with the "sethousemode" command or via the web interface: