Axis Dynamic Integration

Have more questions? Submit a request

 

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

protocol=https;

 

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

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)

virtual_inputs=1,2;

Note:  There must be no spaces between the numbers

virtual_inputs=1,2; Works

virtual_inputs=1, 2; Fails

 

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

https://guidgenerator.com/

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

  1. System
  2. Events
  3. Recipients
  4. 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

  1. System
  2. Events
  3. Rules
  4. 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 source doesn’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 source both 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

Outputs

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

 

Articles in this section

Was this article helpful?
0 out of 0 found this helpful
Share

Comments

0 comments

Please sign in to leave a comment.