ONVIF Events Reference
Anava Detections emit ONVIF events for VMS integration. This reference documents event structure, topics, and integration patterns.
ONVIF Event Basics
What is ONVIF?
ONVIF (Open Network Video Interface Forum) is an industry standard for IP-based security products. Anava uses ONVIF for:
- Emitting Detection events to VMS
- Subscribing to camera events (triggers)
- Standardized device discovery
Event Flow

Event Structure
Standard Fields
Every Anava ONVIF event contains:
| Field | Type | Description |
|---|---|---|
| Topic | String | Event namespace and type |
| Source | String | Camera serial number |
| Key | String | Unique event identifier |
| Timestamp | DateTime | When event occurred (UTC) |
| State | Boolean | True (detected) or False (cleared) |
| IsProperty | Boolean | True for stateful events |
Example Event
<wsnt:NotificationMessage>
<wsnt:Topic>
tns1:RuleEngine/tnsaxis:AnavaAI/person_detected
</wsnt:Topic>
<wsnt:Message>
<tt:Message UtcTime="2024-01-15T14:32:15Z" PropertyOperation="Changed">
<tt:Source>
<tt:SimpleItem Name="device" Value="ACCC8E123456"/>
<tt:SimpleItem Name="profile" Value="security-entrance"/>
</tt:Source>
<tt:Key>
<tt:SimpleItem Name="object" Value="person_detected"/>
</tt:Key>
<tt:Data>
<tt:SimpleItem Name="State" Value="true"/>
<tt:SimpleItem Name="confidence" Value="95"/>
</tt:Data>
</tt:Message>
</wsnt:Message>
</wsnt:NotificationMessage>
Event Topics
Topic Namespace
Anava events use the namespace:
tns1:RuleEngine/tnsaxis:AnavaAI/{object_or_question}
Topic Structure
| Component | Description |
|---|---|
tns1:RuleEngine | ONVIF rule engine namespace |
tnsaxis:AnavaAI | Axis/Anava analytics namespace |
{name} | Object or question name from Skill |
Topic Examples
| Detection Result | Topic |
|---|---|
| Person detected | tns1:RuleEngine/tnsaxis:AnavaAI/person |
| Vehicle detected | tns1:RuleEngine/tnsaxis:AnavaAI/vehicle |
| Hard hat missing | tns1:RuleEngine/tnsaxis:AnavaAI/no_hard_hat |
| Unauthorized access | tns1:RuleEngine/tnsaxis:AnavaAI/unauthorized |
Stateful vs Stateless Events
Stateful Events
Configured with stateful: true in skill objects/questions.
| State | Meaning |
|---|---|
true | Object detected / Condition met |
false | Object cleared / Condition ended |
Use for:
- VMS alarm acknowledgment
- Recording start/stop
- Output activation
Stateless Events
Objects/questions without stateful: true.
- Single event per detection
- No automatic clear
- Use for logging, notifications
Event Lifecycle

Event Data
Standard Data Fields
| Field | Type | Always Present | Description |
|---|---|---|---|
| State | Boolean | Yes | Detection state |
| confidence | Integer | Yes | Detection confidence (0-100) |
| timestamp | DateTime | Yes | Event time |
Object Detection Data
<tt:Data>
<tt:SimpleItem Name="State" Value="true"/>
<tt:SimpleItem Name="confidence" Value="95"/>
<tt:SimpleItem Name="object_type" Value="person"/>
</tt:Data>
Question Answer Data
<tt:Data>
<tt:SimpleItem Name="State" Value="true"/>
<tt:SimpleItem Name="confidence" Value="88"/>
<tt:SimpleItem Name="answer" Value="no"/>
<tt:SimpleItem Name="question_id" Value="authorized_access"/>
</tt:Data>
VMS Subscription
Subscription Methods
| Method | Description | Use Case |
|---|---|---|
| Basic | Pull-based polling | Simple integrations |
| Real-time | Push notifications | Production VMS |
Basic Subscription
VMS polls camera for events:
POST /onvif/events/pullpoint_subscription
<CreatePullPointSubscription>
<Filter>
<TopicExpression>
tns1:RuleEngine/tnsaxis:AnavaAI/*
</TopicExpression>
</Filter>
</CreatePullPointSubscription>
Topic Filtering
Subscribe to specific events:
| Filter | Receives |
|---|---|
tnsaxis:AnavaAI/* | All Anava events |
tnsaxis:AnavaAI/person | Person detection only |
tnsaxis:AnavaAI/no_* | All "no_" prefix events |
VMS Integration Examples
Milestone XProtect
Event Mapping:
Anava Event: person_detected
XProtect: Analytics Event → person_detected
Action: Start recording, send notification
Configuration:
- Add device → Events tab
- Find AnavaAI events
- Create action rule using event
Genetec Security Center
Event Mapping:
Anava Event: unauthorized
Genetec: Custom Event → unauthorized_access
Action: Display alarm, notify operators
Configuration:
- System → Custom Events
- Map ONVIF topic to Genetec event
- Create event-to-action in Alarm Management
Axis Camera Station
Native Integration:
- ACS auto-discovers Anava events
- Events appear in device event list
- Direct action rule creation
Event Timing
Detection to Event Latency
| Phase | Typical Duration |
|---|---|
| Trigger to capture | 100-500ms |
| Image upload | 100-300ms |
| AI analysis | 500-2000ms |
| Event emission | 50-100ms |
| Total | 750-2900ms |
State Change Timing
For stateful events:
| Transition | Timing |
|---|---|
| Detected → True | Immediate on detection |
| Detected → False | When object no longer detected |
| Timeout → False | After consecutive non-detections |
Troubleshooting
Events Not Reaching VMS
-
Check VMS subscription
- VMS subscribed to camera?
- Correct topic filter?
-
Check camera
- ONVIF enabled?
- User has event permissions?
-
Check Anava Detection
- Object/question is stateful?
- Detection occurring?
Wrong Event Data
-
Check Skill configuration
- Object name matches expected
- Stateful flag correct
-
Check Detection
- Confidence threshold not filtering
- Schedule is active
Duplicate Events
-
Check Detection frequency
- Multiple rapid Detections normal
- Consider talkdown buffer
-
Check VMS de-duplication
- Some VMS may show each event
- Configure event grouping
Event Reference
Common Object Events
| Object | Topic | State Meaning |
|---|---|---|
| person | .../AnavaAI/person | Person in scene |
| vehicle | .../AnavaAI/vehicle | Vehicle in scene |
| face | .../AnavaAI/face | Face detected |
| weapon | .../AnavaAI/weapon | Weapon visible |
| fire | .../AnavaAI/fire | Fire/smoke detected |
Common Question Events
| Question | Topic | State Meaning |
|---|---|---|
| authorized | .../AnavaAI/authorized | Access is authorized |
| hard_hat | .../AnavaAI/hard_hat | Wearing hard hat |
| vest | .../AnavaAI/vest | Wearing safety vest |
| badge | .../AnavaAI/badge | Badge visible |
| loitering | .../AnavaAI/loitering | Person loitering |
Special Events
| Event | Description |
|---|---|
system_online | ACAP started |
system_offline | ACAP stopping |
analysis_error | Analysis failed |
connection_lost | Cloud connection lost |
Related Topics
- VMS Integration Overview
- Milestone XProtect
- Genetec Security Center
- Skills Reference - Configuring stateful objects
- Trigger Types - Detection trigger configuration