Native Integration Available
This is a Sureview Enterprise only integration requires a Class 1 License and a Device Server. Please contact your account manager for more details.
Supported Features
- Live Video
- Output Control
- Get Config
- Alarms
Requirements
Package Requirements
The following packages will be deployed by your SureView Engineer
- Dynamic Integration 1.5.2.6036 (or above)
- SureViewEnterpriseHTTPReceiver
- CC-DEVICE-AxisDynamicIntegration
Important: This integration is for SureView Enterprise only. SureView Response SaaS is currently not supported.
Model/Version Tested against:
AXIS P3277-LV Dome Camera
AXIS OS version 12.5.68
Manufacturer License Requirements
N/A - No additional manufacturer license required
Network Requirements
| From | To | Port | Description |
| Sureview Device Server(s) | Axis Camera | 80 (HTTP) / 443 (HTTPS) TCP | Camera Controls |
| Sureview Device Server(s) | Axis Camera | 554 TCP | Video Streaming |
| Axis Camera |
Sureview Device Server(s) (Enterprise Only) |
80 (HTTP) / 443 (HTTPS) TCP | HTTP(s) Alarms |
Note: If using HTTPS you must set the Axis Extra Value in Sureview to protocol=https;
This option only works if the camera presents a certificate the device server trusts. A self-signed certificate fails outright and doesn’t fall back to HTTP
Permission Requirements
At least Operator permission group with access to all Cameras and Outputs that are needed.
Sureview Device Setup
The following Device Setup can be used with Get Config.
| Type | Axis |
| Host |
The Axis DNS or IP address Note: Do not include http:// or https:// in the host address |
| Port |
80 / 443 (The port for the Axis web interface) |
| Username | The username of the Axis account you would like Sureview to use |
| Password | The password of the Axis account you would like Sureview to use |
| Extra Value | Can be left blank to use default options or customised using the options below |
Configuration (ExtraValue) options
Multiple ExtraValue options can be included by using a ; separator e.g.
protocol=https;rtspport=5559;output_pulse_ms=500;virtual_inputs=1
| Field | Description | Default Value | Example |
|---|---|---|---|
| protocol | Axis VAPIX (Web) protocol. (http or https) |
http |
Note: If using HTTPS you must set the Axis Extra Value in Sureview to This option only works if the camera presents a certificate the device server trusts. A self-signed certificate fails outright and doesn’t fall back to HTTP |
| rtspport | RTSP Camera Streaming port | 554 | rtspport=5559; |
| output_pulse_ms | Output pulse duration (ms) | 10000 | output_pulse_ms=500; |
| virtual_inputs | Comma-separated list of Axis virtual inputs (1 to 64) for Get Config to offer as outputs, alongside the physical outputs | n/a (default virtual_inputs are not included) |
Note: There must be no spaces between the numbers
|
Cameras
Camera fields will be automatically populated by Get Config. There is only ever one camera per Axis device (IP camera)
| Title | The camera’s product name as reported by the device, for example AXIS P3277-LV Dome Camera. If it can’t be read, Camera 1. Can be renamed after Get Config. |
| Input1 |
1. Always 1, as there is only one camera per device. |
| Input2 | -1 - not used |
| Extra Value | N/A - not used |
Outputs
Output fields will be automatically populated by Get Config
Note: Get Config can’t detect whether an output drives a door, or which actions it supports. After Get Config, set the Relay Type (Output or Door) and tick On/Off and/or Pulse as required.
| Title |
The port name reported by the camera, for example Port 2. If the port has no name, "Output #". For a virtual input, "Virtual input # |
| Input1 |
Physical output: the port number as shown on the camera’s System → Accessories → I/O ports page, counting from 1. Virtual input: the virtual input number, 1 to 64. |
| Input2 | 0 for a physical output, 1 for a virtual input |
| Extra Value | N/A - not used |
Alarm Points
Alarm points need to be added manually. These are not returned by Get Config
| Title | The name of the alarm you want to add. |
| Input1 | Autoincrement from 1 |
| Input2 | -1 |
| Extra Value |
Generate a unique GUID for each individual alarm. This can be done using or using the PowerShell command [guid]::NewGuid().ToString()
|
Axis Alarm Setup
Step 1 - Set up the HTTP Alarm Recipient
Log in to the Axis Camera administrator interface and navigate
- System
- Events
- Recipients
- Add Recipient
From here enter the following fields
| Field | Value |
|---|---|
| Name | SureView receiver |
| Type | HTTP (not HTTPS unless the receiver has a cert the camera trusts) |
| URL | http://<receiverhost>/receiver/<ServerID> |
<receiverhost> is the host address (IP or DNS address) of your Sureview Server(s)
<ServerID> can be found on the Device Setup page in SureView.
Step 2- Set up your Alarm Rules
Log in to the Axis Camera administrator interface and navigate
- System
- Events
- Rules
- Add Rule
| Field | Value |
|---|---|
| Name | A descriptive name, for example SureView - Gate 1 line crossing. |
| Condition | The event that should raise the alarm, for example an AXIS Object Analytics scenario. |
| Wait between actions |
00:00:30 or more. A shorter interval can flood SureView with repeat alarms, because analytics conditions fire continuously while the condition is true. |
| Action | Send notification through HTTP |
| Recipient | The SureView recipient created in Step 1. |
| Method | POST. The Body field only appears once POST is selected. |
| Message / Query string suffix | Leave blank. |
| Body | The alarm message, described below. |
What to enter in the Body
The body is a short message in JSON format that tells SureView which alarm point has been triggered, and what text to show the operator.
| Field | Required | Description |
|---|---|---|
source |
Yes | Identifies the alarm point in SureView. It must exactly match the Extra Value of the alarm point, including upper and lower case. |
name |
Recommended | A short name for the alarm, shown at the start of the alarm text. |
description |
Optional | Further detail, shown after the name. |
eventType |
Optional |
This can be used to match to your custom Alarm Event Types as defined in Sureview Event Configuration page (see "SureView Alarm Event Types" for details). Important: eventTypes are not pre-loaded. These will need to be configured as needed. |
Example: an alarm point in SureView has the Extra Value 3f2b9c1e-8d4a-4e7b-9a61-2c5d0f7e1b43. The body for its rule would be:
{"eventType":"MotionDetected","source":"3f2b9c1e-8d4a-4e7b-9a61-2c5d0f7e1b43","name":"Gate 1 line crossing","description":"Object Analytics"}When writing the body, check the following:
- Copy the Extra Value from SureView rather than retyping it. If
sourcedoesn’t match exactly, the alarm still arrives, but it isn’t linked to the alarm point and none of its automations run. - Use straight double quotes (
"), not curly quotes. Text pasted from Word or email often converts them, and the message then can’t be read. - Each rule needs its own alarm point with a different Extra Value. Two rules with the same
sourceboth raise alarms on the same alarm point.
When the rule is saved, check Full recipient URL on the action. It should end in /receiver/<ServerID>, where <ServerID> is the ID of this camera’s server in SureView.
Sureview Alarm Event Types
Axis does not have any pre-loaded Alarm Event Types but you can add your own in the "Event Configuration" setup in Sureview.
Ensure that any Event Types that you configure have the "Event Code" set to match exactly with what you are sending in the Axis alarm
Sureview Alarm Text
Axis alarms being received in sureview will use the format below
[Sureview Event Type] - [Alarm Point Title] - {name} | {description} |
e.g.
Motion - Gate 1 - Gate 1 line crossing | Object Analytics |
Troubleshooting
Device worker log:
| Symptom | Cause |
|---|---|
No Requesting... OutputPulse
|
Automation never fired — check the alarm and automation are armed |
(Unauthorized) with stale=true
|
Dynamic Integration below v1.5.2.3626
|
(BadRequest) |
Wrong port number, or the port is an input |
(OK) but nothing moves |
Camera accepted it — suspect the wiring or the port |
A healthy request:
Requesting... OutputPulse Replaced URL: http://<camera>/axis-cgi/io/port.cgi?action=2%3A%2F1000%5C Status Code: (OK) OK Authentication-Info: rspauth="..." rspauth is worth looking for specifically — Apache only returns it when the client's digest response verified, so it distinguishes real authentication from a 200 that happened for some other reason.
Poll the port to confirm it physically moved; a 1-second pulse is too brief to catch otherwise:
curl -s --digest -u <user> 'http://<camera>/axis-cgi/io/port.cgi?checkactive=2'
HTTP Alarms
| Symptom | Likely cause |
|---|---|
| Alarm arrives but doesn't match in Sureview to the correct point |
source in the camera body doesn’t exactly match the alarm point’s Extra Value |
| Camera gets 404 “Device not found or not configured for advanced decoding” | Recipient URL isn't using the correct ServerID |
| Nothing arrives at all | Receiver not reachable. Browse to http://<receiverhost>/receiver/health, which should return Service running
|
Comments
0 commentsPlease sign in to leave a comment.