Using EdgeVis triggers as ONVIF alarms
Updated over a week ago


VMSG Gateway 8.3 introduces the ability to send Safezone-2D motion started and motion stopped triggers that are generated by your encoder to VMS Gateway. VMS Gateway will then pass those onto any VMS that registers an interest.

You can use these EdgeVis triggers within your VMS to create alarm rules. The most common use case is to be able to use event-driven recording:

  • When Safezone-2D detects motion, begin recording

  • When Safezone-2D no longer detects motion, stop recording

This allows you to make significant cost savings as you will no longer be recording 24/7 within your VMS.

In many VMS you can also use the EdgeVis triggers to initiate a playback window within the VMS viewing client or alarming system, to draw attention to your VMS operators.

This article outlines:


This feature only passes through alerts for the selected camera in EdgeVis. While most VMS will not allow your users to change the camera input, it is possible an EdgeVis Client user could switch the currently viewed camera to a different camera (or even a quad view).

We strongly recommend that if you use this feature you limit your encoders to one camera per EdgeVis output stream - this stops your users from switching input accidentally, and stopping alerts getting through to VMS Gateway.

Alternatively, use EdgeVis roles and permissions to limit the use of input switching to only those users you trust to leave the input in the correct state after use.

EdgeVis steps to generate Safezone-2D triggers

You should set up your encoder normally:

  • Connect your encoder to EdgeVis Server

  • Grant the appropriate licences and extensions within EdgeVis Server (each camera must have an EdgeVis licence assigned and a Safezone-2D licence assigned):

  • From within EdgeVis Client open the desired video encoder, and select the appropriate camera input

  • From the Settings icon at the top, select the Change analytic option. This will open the analytics configurations page - here you should enable and configure Safezone-2D.

NOTE: You do not need to configure an EdgeVis alarm rule in this instance (from within EdgeVis Server). The encoder will send all SafeZone-2D triggers to VMS Gateway - that way you do not have to have two sets of alarm rules - one in EdgeVis Server, and the other in yout VMS

Using event-driven recording using Safezone-2D triggers

This section will show you how to configure Milestone XProtect to:

  • register for the relevant ONVIF events from VMS Gateway

  • create an alarm rule that runs when the relevant trigger arrives from VMS Gateway

These principles will apply in any VMS you wish to use.

Register for the relevant ONVIF events

(This assumes you have already added your VMS Gateway to Milestone, and that recording is enabled).

This step is performed in the Milestone Management Client.

  • From the left menu, under the Server section, select Recording Servers.

  • From the middle section, open the VMS Gateway device, so that it lists all of the cameras (which are really encoders in EdgeVis). Click on the desired encoder (use the preview at the bottom to help).

  • The right panel will now show the options for the encoder. Click the Events tab along the bottom:

  • Click the Add... button and select Motion Started (HW), then select OK:

  • Repeat the above step, but select Motion Stopped (HW) this time.

  • The configuration window should now show both events listed:

  • IMPORTANT: To save these changes you must change the tab underneath the above list. To receive the Save prompt click on another tab button (e.g. Info or Settings). You should select Yes in the next prompt:

Milestone is now registered to listen for the two Safezone-2D alerts that VMS Gateway will now send (when triggered).

Create an on-demand recording alarm rule

This step is also performed in the Milestone Management Client.

  • From the left menu, under the Rules and Events section, select Rules.

  • From the middle section, right-click on Rules and select Add Rule...

  • This will open the rule editor:

  • In the bottom box, click the event hyperlink. In the resulting Select an Event, go into the Devices section, then Configurable Events, and select the Motion Started (HW) event:

  • In the bottom box, click the devices/recording server/management server link. From the resultant dialog, move the desired encoder over to the right window:

  • Your rule section should now look similar to this - click Next to move to the next step:

  • The next page shows Select conditions to apply - we can ignore that. Click Next again to continue.

  • The next page shows the actions to perform:

  • Click two boxes:

    • Start recording on <devices>

    • Make new <log entry>

  • Click the 'log entry' link in the bottom section. In the resulting dialog, click the Device name and Event name links, so your Text to log: looks like this:

  • After selecting OK select Next again to take you to the next step. The editor will automatically put an entry for a 'stop action', based on Motion Stopped (HW) - click Next again and it will automatically put in the action of stop recording. Your final rule will end up looking like this:

  • Click Finish to save and activate the rule.

Checking the rule works

There are two ways to see the rule in effect:

  • Gaps in recording where there is no motion

    From within the Milestone Smart Client, if you open the encoder for live playback, you will notice that there are gaps in the recordings in the timeline along the bottom:

    This means that the video from the encoder is only being recorded within Milestone during motion events, saving you recording disk space.

  • The relevant log entry in the Server Logs

    From within the Milestone Management Client select Server Logs from the left menu, then Rule-triggered logs from the tabs on the right panel. This should list the events that have been received from your encoder, when the rule fires:

Did this answer your question?