Documente Academic
Documente Profesional
Documente Cultură
© 2017 Hella KGaA Hueck & Co., Lippstadt (hereinafter called 'Hella')
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
2
Table of contents
Table of contents
1 Introduction.......................................................................................................................................... 5
2 Basic Concept...................................................................................................................................... 6
3 Task Messages.................................................................................................................................... 7
3.1 Introduction.................................................................................................................................. 7
3.2 Startup and standard tasks......................................................................................................... 7
3.3 Adding, deleting, and changing tasks.......................................................................................... 8
3.4 Buffering APS messages in case of network interruption........................................................... 8
3.5 Persistent tasks beyond reboots............................................................................................... 10
3.6 Request alive notifications......................................................................................................... 10
3.7 Requesting feature infos........................................................................................................... 11
3.8 Requesting all counting gates values........................................................................................ 11
3.9 Requesting first counting gate values....................................................................................... 12
3.10 Requesting all monitored zone values...................................................................................... 13
3.11 Requesting a current object list................................................................................................. 13
3.12 Requesting a historic object list................................................................................................. 14
3.13 Requesting wireless tracking..................................................................................................... 14
3.14 Requesting image snapshots.................................................................................................... 15
3.15 Set date and time...................................................................................................................... 15
3.16 Requesting a firmware update.................................................................................................. 16
3.17 Requesting deletion of all Task................................................................................................. 16
3.18 Requesting deletion of all notifications...................................................................................... 17
4 Task Messages and trigger.............................................................................................................. 18
4.1 Time-based triggers.................................................................................................................. 18
4.1.1 Date element.............................................................................................................. 18
4.1.2 Start element.............................................................................................................. 19
4.1.3 Cycle element............................................................................................................ 19
4.1.4 Random offset element.............................................................................................. 19
4.2 Event-based trigger................................................................................................................... 20
4.2.1 Feature changed event.............................................................................................. 20
4.2.2 Count channels event................................................................................................ 21
4.2.3 Count event................................................................................................................ 22
4.2.4 Zone channels event.................................................................................................. 22
4.2.5 Current object list event............................................................................................. 23
4.2.6 Wireless tracking event.............................................................................................. 23
4.2.7 Optical self diagnosis event....................................................................................... 23
4.2.8 One-time event........................................................................................................... 24
4.2.9 Startup event.............................................................................................................. 24
5 Server answer messages.................................................................................................................. 25
6 APS notification messages.............................................................................................................. 27
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
3
Table of contents
6.1 Startup....................................................................................................................................... 28
6.2 Alive........................................................................................................................................... 29
6.3 Features info............................................................................................................................. 29
6.4 Count channels......................................................................................................................... 31
6.5 Count......................................................................................................................................... 31
6.6 Zone channels........................................................................................................................... 32
6.7 Current object list...................................................................................................................... 34
6.8 Historic object list...................................................................................................................... 36
6.9 Wireless tracking....................................................................................................................... 38
6.10 Image snapshots....................................................................................................................... 39
6.11 APS error message................................................................................................................... 40
7 Examples............................................................................................................................................ 42
7.1 Startup with invocation of tasks................................................................................................. 42
7.2 Persistent tasks stored inside the APS..................................................................................... 48
8 Tools................................................................................................................................................... 49
8.1 WSDL........................................................................................................................................ 49
8.2 APS........................................................................................................................................... 49
9 Appendix............................................................................................................................................ 51
9.1 OSD status codes..................................................................................................................... 51
9.2 APS error codes........................................................................................................................ 51
9.3 Server error codes..................................................................................................................... 52
9.4 Syslog error codes.................................................................................................................... 52
9.4.1 SOAP error codes...................................................................................................... 53
9.4.2 http error codes.......................................................................................................... 55
10 Support............................................................................................................................................... 57
11 Glossary and abbreviations............................................................................................................. 58
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
4
Introduction
1 Introduction
The APS can be configured so that data do not have to be
requested but be sent automatically from the APS to a server. This
so-called Push Service is based on the XML-based Simple Object
Access Protocol (SOAP). When the connection is established, the
server informs the APS of the required data and transmission
times. The APS then sends them accordingly. This allows commu-
nication with APS behind routers and firewalls.
This document is intended as an introduction and reference
manual for customers using the Push Service via SOAP on the
Hella Automatic People Sensor (APS). This include all variants of
APS-90, APS-180 and APS-90-Outdoor for retail, building and sta-
tionary applications.
Our sensors for bus and train applications use another firmware
with other features and partly different Push Service protocol - that
is not included in this document.
For developers there are additional examples of the backend
implementation. These examples are usable as try out or as a ref-
erence implementation of the communication. Hella provide only
the APS sensors with protocols - no backend or database systems.
Support
Service requests regarding the Automatic People
Sensor and Push Services via SOAP can be sent to
the following e-mail address:
– people.counter.support@hella.com
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
5
Basic Concept
2 Basic Concept
APS server communication The basic concept of the APS Push Service is to use a manage-
able server in the network. All the APSs can send data to that
known server using customizable tasks. The server response to
the connection established by the APSs can contain newly invoked
tasks that are addressed to the APS as task messages. This
method is commonly referred to as "inversion of control" similar to
the "don't call us, we'll call you" concept.
pushed data
by previous
requested
task
SOAP
acknowledge
for
pushed data
invocation of
new tasks
n * APS 1 * Server
► communication establishing ►
Intranet Internet
Notifications The APS sends notification messages with possible pushed data.
The server returns an Answer Message that contains a simple
acknowledgment of the APS notification message and an optional
list of new task messages.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
6
Task Messages
Startup and standard tasks
3 Task Messages
3.1 Introduction
The server can acknowledge notification messages from the APS
and optionally invoke new tasks by means of task messages,
which are described in this chapter. There are two types of tasks:
n Immediate tasks, e.g. to force setting of time.
n Data requests including triggers, e.g. to force multiple postings
of counting data.
Data requests do not need to be repeatedly requested by the
server. These tasks can use a customizable trigger for multiple
postings ( Ä Chapter 4 ‘Task Messages and trigger’ on page 18).
Both task messages are described in a <task_message> con-
tainer including the type of task, task ID, and other required values.
The following task causes the APS to send an Alive Message to
the server every 5 minutes:
Example
<task_subscribe_alive
task_type="TASK_ALIVE"
serverTask_ID="42"
activity_state="true">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE"/>
<start hours="0" minutes="0"
seconds="0"/>
<!--time trigger: every 5 minutes-->
<cycle>PT5M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_alive>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
7
Task Messages
Buffering APS messages in case of network interruption
Adding a new task To add a new task simply send a task message with a new
serverTask_ID to the APS. The APS supports 10 tasks - in addi-
tion to the two standard tasks for the startup message and the
cyclic Alive Message.
Deleting tasks To delete a single task send the task with the same
serverTask_ID to the APS, but set the activity state to false:
activity_state="false". (Sending the trigger is optional.)
Example
<task_subscribe_alive
task_type="TASK_ALIVE"
serverTask_ID="42"
activity_state="false">
</task_subscribe_alive>
Deleting all tasks Beside deleting tasks step by step, there is a special task to delete
all current tasks (see below TASK_DELETE_ALL_TASKS,
Ä Chapter 3.17 ‘Requesting deletion of all Task’ on page 16).
Use it in combination of new tasks in your task list.
Changing tasks To change a task first delete it and add a new one with the
changed settings.
Please avoid the same serverTask_ID in the case of sending
deletion and renew in the same task list of a server answer. If a
message is pending in the current queue, the renew with the same
id could be blocked.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
8
Task Messages
Buffering APS messages in case of network interruption
Example
<task_subscribe_count_channels
task_type="TASK_COUNT_CHANNELS"
serverTask_ID="123"
activity_state="true"
store_on_transmission_error="true">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE" />
<start hours="0" minutes="0"
seconds="0" />
<!--time trigger: every minute-->
<cycle>PT1M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_count_channels>
Power fail
Note that the message queues will only be saved in
the persistent memory, if the APS detects network
problems. In the case of a power fail with a preceding
network interruption of some seconds or minutes, it is
possible that the network connection did not time out
yet, and some messages may get lost.
Buffer overflow
If the buffer is completely filled, the APS deletes the
oldest message to free memory capacity for a new
message. The push service does not provide a fall-
back option for this worst case scenario.
Buffer deletion
To delete the content of the buffer in case of unneces-
sary data use:
– TASK_DELETE_ALL_NOTIFICATIONS (see
below)
– the Factory Reset
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
9
Task Messages
Request alive notifications
Example
<task_subscribe_count_channels
task_type="TASK_COUNT_CHANNELS"
serverTask_ID="123"
activity_state="true"
store_task="true"
store_on_transmission_error="true">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE" />
<start hours="0" minutes="0"
seconds="0" />
<!--time trigger: every minute-->
<cycle>PT1M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_count_channels>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
10
Task Messages
Requesting all counting gates values
Example
<task_subscribe_alive
task_type="TASK_ALIVE"
serverTask_ID="1" activity_state="true">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE"></date>
<start hours="0" minutes="0"
seconds="0"/>
<!--time trigger: every 5 minutes and
10 seconds-->
<cycle>PT5M10S</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_alive>
Example
<task_subscribe_features_info
task_type="TASK_FEATURES_INFO"
serverTask_ID="2"
activity_state="true">
<trigger>
<event_trigger>
<!--if settings changed-->
<feature_changed_event />
</event_trigger>
</trigger>
</task_subscribe_features_info>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
11
Task Messages
Requesting first counting gate values
Example
<task_subscribe_count_channels
task_type="TASK_COUNT_CHANNELS"
serverTask_ID="3"
activity_state="true"
store_on_transmission_error="true">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE" />
<start hours="0" minutes="0"
seconds="0" />
<!--every 5 minutes-->
<cycle>PT5M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_count_channels>
Example
<task_subscribe_counting
task_type="TASK_COUNT"
serverTask_ID="4"
activity_state="true"
store_on_transmission_error="true">
<trigger>
<!--if change of counting values>10
or more precisely: sum(indelta,outdelta)>10
-->
<event_trigger>
<count_event count_event_type=
"COUNT_EVENT_DELTA_SUM_IN_OUT"
delta="10"/>
</event_trigger>
</trigger>
<!--Counting Gate ID undefined in all
actual firmware versions-->
<counting_gate_id id="0"/>
</task_subscribe_counting>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
12
Task Messages
Requesting a current object list
Example
<task_subscribe_zone_channels
task_type="TASK_ZONE_CHANNELS"
serverTask_ID="5"
activity_state="true">
<trigger>
<event_trigger>
<zone_channels_event />
</event_trigger>
</trigger>
</task_subscribe_zone_channels>
Example
<task_subscribe_objlist
task_type="TASK_CURRENT_OBJECT_LIST"
serverTask_ID="6"
activity_state="true"
transfer_type="TRANSFER_INLINE">
<trigger>
<event_trigger>
<current_object_list_event />
</event_trigger>
</trigger>
</task_subscribe_objlist>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
13
Task Messages
Requesting wireless tracking
Example
<task_subscribe_objlist
task_type="TASK_HISTORIC_OBJECT_LIST"
serverTask_ID="7" activity_state="true"
transfer_type="TRANSFER_INLINE">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE"></date>
<start hours="0" minutes="0"
seconds="0"/>
<!--time trigger: every minute-->
<cycle>PT1M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_objlist>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
14
Task Messages
Set date and time
Example
<task_subscribe_wireless_tracking
task_type="TASK_WIRELESS_TRACKING"
serverTask_ID="12"
activity_state="true"
store_task="false">
<trigger>
<event_trigger>
<wireless_tracking_event />
</event_trigger>
</trigger>
</task_subscribe_wireless_tracking>
Example
<task_subscribe_image_snapshots
task_type="TASK_IMAGE_SNAPSHOTS"
serverTask_ID="14"
activity_state="true"
store_task="false">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE" />
<start hours="0" minutes="0"
seconds="0" />
<!--every day-->
<cycle>P1D</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_image_snapshots>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
15
Task Messages
Requesting deletion of all Task
Example
<task_set_date_time
task_type="TASK_SET_DATE_TIME"
serverTask_ID="8"
time_to_set="2013-08-01T10:00:00+02:00">
</task_set_date_time>
Example
<task_request_update
task_type="TASK_UPDATE"
serverTask_ID="9"
update_type="UPDATE_FIRMWARE"
packet_url=
"ftp://username:password
@ftp.hella-aglaia.de/
temp/updatefile.tar"
validity="12">
</task_request_update>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
16
Task Messages
Requesting deletion of all notifications
Example
<task_delete_all_tasks
task_type="TASK_DELETE_ALL_TASKS"
serverTask_ID="10" />
Example
<task_delete_all_notifications
task_type="TASK_DELETE_ALL_NOTIFICATIONS"
serverTask_ID="11" />
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
17
Task Messages and trigger
Time-based triggers > Date element
Example
<trigger>
<!--time based trigger: all 15 minutes-->
<time_trigger>
<date kind="DATE_DONT_CARE"/>
<start hours="0" minutes="0" seconds="0"/>
<cycle>PT15M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
18
Task Messages and trigger
Time-based triggers > Random offset element
Example
<start hours="15" minutes="0" seconds="0"/>
Example
<!-- every 5 minutes -->
<cycle>PT5M</cycle>
<!-- every day -->
<cycle>P1D</cycle>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
19
Task Messages and trigger
Event-based trigger > Feature changed event
Example
<!--with random time offset from 0 up to 30
minutes-->
<random_offset>PT30M</random_offset>
Example
<trigger>
<event_trigger>
<!-- if someone counted at any gate -->
<count_channels_event />
</event_trigger>
</trigger>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
20
Task Messages and trigger
Event-based trigger > Count channels event
Example
<trigger>
<event_trigger>
<!-- if settings changed -->
<feature_changed_event />
</event_trigger>
</trigger>
Example
<trigger>
<event_trigger>
<!-- if someone counted at any gate -->
<count_channels_event />
</event_trigger>
</trigger>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
21
Task Messages and trigger
Event-based trigger > Zone channels event
count_event_type:
delta: the value of change for the above count event types
Example
<trigger>
<event_trigger>
<count_event
<!-- if change of counting
both values > 10 -->
count_event_type=
"COUNT_EVENT_DELTA_SUM_IN_OUT"
delta="10"/>
</event_trigger>
</trigger>
Example
<trigger>
<event_trigger>
<!-- if someone counted at any gate -->
<zone_channels_event />
</event_trigger>
</trigger>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
22
Task Messages and trigger
Event-based trigger > Optical self diagnosis event
Example
<trigger>
<event_trigger>
<!-- at any change of
the current object list
with skip rate 1 second -->
<current_object_list_event skip="1000" />
</event_trigger>
</trigger>
Example
<trigger>
<event_trigger>
<!-- if wireless data list updated -->
<wireless_tracking_event />
</event_trigger>
</trigger>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
23
Task Messages and trigger
Event-based trigger > Startup event
n OSD_ERROR_TOO_DARK
illumination is less than ~7 lux
n OSD_ERROR_TOO_BRIGHT
more hypothetical,
because direct sunlight and reflexions from sunlight do not
cause "too bright"
The sensor did not stop counting in case of these errors. These
values could help in maintenance issues and is also available in
protocols to validate data.
Example
<trigger>
<event_trigger>
<!-- if OSD status changes -->
<osd_event />
</event_trigger>
</trigger>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
24
Server answer messages
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
25
Server answer messages
Example
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap=
"http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema">
<soap:Body>
<answer_message
referenced_notification_ID="8"
server_response_type="SOAP_SERVER_OK"
xmlns="http://www.aglaia-gmbh.de/xml/
2013/05/17/BaSS_SOAPd.xsd">
<task_subscribe_features_info
task_type="TASK_FEATURES_INFO"
serverTask_ID="1"
activity_state="true">
<trigger>
<event_trigger>
<feature_changed_event />
</event_trigger>
</trigger>
</task_subscribe_features_info>
<task_subscribe_count_channels
task_type="TASK_COUNT_CHANNELS"
serverTask_ID="2"
activity_state="true"
store_on_transmission_error="true">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE" />
<start hours="0" minutes="0"
seconds="0" />
<cycle>PT5M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_count_channels>
</answer_message>
</soap:Body>
</soap:Envelope>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
26
APS notification messages
Example
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=
"http://www.w3.org/2003/05/soap-envelope"
xmlns:SOAP-ENC=
"http://www.w3.org/2003/05/soap-encoding"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:sde1=
"http://www.aglaia-gmbh.de/xml/BaSS_SOAPd/"
xmlns:sde2=
"http://www.aglaia-gmbh.de/xml/
2015/05/17/BaSS_SOAPd.xsd">
<SOAP-ENV:Body>
<sde2:notification_message>
<sde2:alive_notification
timestamp=
"2016-02-05T12:04:38.025271+01:00"
callerType_ID="SERVER"
serverTask_ID="2"
notification_ID="6"
task_type="TASK_ALIVE"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD"
osd_state="OSD_STATE_OK"
customer_version="unsupported feature"
model="APS-90-8GB"
firmware_version="1.8.0.3"
ip_address="192.168.100.10">
</sde2:alive_notification>
</sde2:notification_message>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
All time stamp informations using the ISO 8601 format. It includes
the date as YYYY-MM-DD (year-month-day), the time seperator T,
the time as hh:mm:ss.fffff (hour:mintute:second.fraction) and time
zone information +01:00 (+/-hh:mm) or Z as UTC time.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
27
APS notification messages
Startup
To devide sensors to special APS variants the start, alive and error
messages include starting with firmware 1.8 a model information
(e.g. APS-90 or APS-180-IO-8GB).
The sensor did not stop counting in case of OSD errors. These
values could help in maintenance issues and is also available in
protocols to validate data.
6.1 Startup
Availability: APS firmware 1.0 The startup notification is fired at the startup process of the APS.
This message with the respective trigger is predefined and cannot
be disabled. The time is send with the time zone offset configured
in the APS settings.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
28
APS notification messages
Features info
Example
<startup_notification
xml_version=
"http://www.aglaia-gmbh.de/xml/
2015/05/17/BaSS_SOAPd.xsd"
reboot_type="SOAP_REBOOT_POWERON"
timestamp="2017-03-15T10:03:55.934850+01:00"
callerType_ID="SELF"
serverTask_ID="0"
notification_ID="1"
task_type="TASK_STARTUP"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD"
osd_state="OSD_STATE_OK"
customer_version="unsupported feature"
model="APS-90-8GB"
firmware_version="1.8.0.3"
ip_address="192.168.100.10">
</startup_notification>
6.2 Alive
Availability: APS firmware 1.0 Alive notifications should be used to stay in contact with the APS,
to invoke new tasks and for maintenance purposes.
For general maintenance, a standard task sends an alive notifica-
tion cyclically every 3 hours plus a random offset time of 0 to up to
5 minutes. This task and the notification with the respective trigger
are predefined and cannot be disabled. It can be identified by a
serverTask_ID="0" and callerType_ID="SELF".
Example
<alive_notification
timestamp="2017-03-15T10:05:00.642243+02:00"
callerType_ID="SERVER"
serverTask_ID="2"
notification_ID="5"
task_type="TASK_ALIVE"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD"
osd_state="OSD_STATE_WARNING_DARK"
customer_version="unsupported feature"
model="APS-90-8GB"
firmware_version="1.8.0.3"
ip_address="192.168.100.10">
</alive_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
29
APS notification messages
Features info
Example
<features_info_notification
customer_version="unsupported feature"
firmware_version="1.8.0.3"
ip_address="192.168.100.10"
osd_state="OSD_STATE_OK"
timestamp="2017-03-15T10:39:10.791321Z"
callerType_ID="SERVER"
serverTask_ID="18"
notification_ID="21"
task_type="TASK_FEATURES_INFO"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD">
<active_count_channels>
<count_channel
objClass="Adult"
name="Gate-A-left">
</count_channel>
<count_channel
objClass="Child"
name="Gate-A-left">
</count_channel>
<count_channel
objClass="Adult"
name="Gate-B-right">
</count_channel>
<count_channel
objClass="Child"
name="Gate-B-right">
</count_channel>
</active_count_channels>
<active_zone_channels>
<zone_channel
objClass="Adult"
name="Zone-Entrance">
</zone_channel>
<zone_channel
objClass="Child"
name="Zone-Entrance">
</zone_channel>
<zone_channel
objClass="Adult"
name="Zone-Exit">
</zone_channel>
<zone_channel
objClass="Child"
name="Zone-Exit">
</zone_channel>
</active_zone_channels>
</features_info_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
30
APS notification messages
Count
Example
<count_channels_notification
osd_state="OSD_STATE_OK"
timestamp="2017-03-15T10:47:11.964335Z"
callerType_ID="SERVER"
serverTask_ID="11"
notification_ID="12"
task_type="TASK_COUNT_CHANNELS"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD">
<count_channel
count_out="2"
count_in="1"
objClass="Adult"
channel_name="Gate-A-left">
</count_channel>
<count_channel
count_out="0"
count_in="1"
objClass="Child"
channel_name="Gate-A-left">
</count_channel>
<count_channel
count_out="2"
count_in="1"
objClass="Adult"
channel_name="Gate-B-right">
</count_channel>
<count_channel
count_out="1"
count_in="2"
objClass="Child"
channel_name="Gate-B-right">
</count_channel>
</count_channels_notification>
6.5 Count
Availability: APS firmware 1.0 This task is deprecated. It is available because of compatibility to
the older APC models. Please use if possible the
TASK_COUNT_CHANNELS.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
31
APS notification messages
Zone channels
Example
<count_notification
count_out="123"
count_in="111"
timestamp="2017-03-15T10:45:00.854691+02:00"
callerType_ID="SERVER"
serverTask_ID="1"
notification_ID="10"
task_type="TASK_COUNT"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD"
osd_state="OSD_STATE_OK">
<counting_gate_id id="0">
</counting_gate_id>
</count_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
32
APS notification messages
Zone channels
Example
<zone_channels_notification
osd_state="OSD_STATE_OK"
timestamp="2017-03-15T15:53:16.054250+02:00"
callerType_ID="SERVER"
serverTask_ID="2"
notification_ID="5"
task_type="TASK_ZONE_CHANNELS"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD">
<zone_channel
fill_level="3"
objClass="Adult"
zone_name="Zone-Entrance">
</zone_channel>
<zone_channel
fill_level="0"
objClass="Child"
zone_name="Zone-Entrance">
</zone_channel>
<zone_channel
fill_level="2"
objClass="Adult"
zone_name="Zone-Exit">
</zone_channel>
<zone_channel
fill_level="1"
objClass="Child"
zone_name="Zone-Exit">
</zone_channel>
</zone_channels_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
33
APS notification messages
Current object list
id General identifier of an
object across mes-
sages.
dwell Length of stay of an
object in the AOI. Unit of
measurement in sec-
onds with milliseconds
in the fractional part.
entry AOI entry coordinate
described by x and y at
ground level and with
the height z. Unit of
measurement is cm.
pos Current coordinate
described by x and y at
ground level and with
the height z. Unit of
measurement is cm.
mov Motion vector described
by x and y at ground
level. Unit of measure-
ment is cm/s.
objClass Current object classifica-
tion for this object as
Adult, Child or
Unknown.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
34
APS notification messages
Current object list
Example
<curr_objlist_notification
osd_state="OSD_STATE_OK"
timestamp="2017-03-15T10:50:27.276103+02:00"
callerType_ID="SERVER"
serverTask_ID="1003"
notification_ID="104"
task_type="TASK_CURRENT_OBJECT_LIST"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD">
<obj
dwell="0.850"
zone="00000"
objClass="Child"
id="9">
<entry z="120" y="-68" x="6">
</entry>
<pos z="125" y="-4" x="19">
</pos>
<mov y="-12" x="6">
</mov>
</obj>
<obj
dwell="1.650"
zone="00000"
objClass="Adult"
id="13">
<entry z="182" y="-69" x="-26">
</entry>
<pos z="185" y="93" x="91">
</pos>
<mov y="14" x="29">
</mov>
</obj>
</curr_objlist_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
35
APS notification messages
Historic object list
id General identifier of an
object across mes-
sages.
dwell Length of stay of an
object in the AOI. Unit of
measurement in sec-
onds with milliseconds
in the fractional part.
exit_time Time stamp when the
object leaves the AOI.
You can calculate the
entry time to the AOI
using the exit time and
the length of stay.
entry AOI entry coordinate
described by x and y at
ground level and with
the height z. Unit of
measurement is cm.
exit AOI exit coordinate
described by x and y at
ground level and with
the height z. Unit of
measurement is cm.
height Average of all height
measurements. Unit of
measurement is cm.
objClass Current object classifica-
tion for this object as
Adult, Child or
Unknown.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
36
APS notification messages
Historic object list
Example
<hist_objlist_notification
lost_count="0"
timestamp="2017-03-15T10:50:27.313766+02:00"
callerType_ID="SERVER"
serverTask_ID="1004"
notification_ID="105"
task_type="TASK_HISTORIC_OBJECT_LIST"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD">
<obj
height="184"
exit_time=
"2012-11-01T12:50:27.310350+02:00"
dwell="1.650"
zone="00000"
objClass="Adult"
id="13">
<entry z="182" y="-69" x="-26">
</entry>
<exit z="185" y="-18" x="21">
</exit>
</obj>
</hist_objlist_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
37
APS notification messages
Wireless tracking
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
38
APS notification messages
Image snapshots
Example
<wireless_tracking_notification
osd_state="OSD_STATE_OK"
timestamp="2017-03-15T10:33:05.009113+02:00"
callerType_ID="SERVER"
serverTask_ID="12"
notification_ID="72"
task_type="TASK_WIRELESS_TRACKING"
customer_ID="host"
mac_address="00:0B:91:80:AB:CD">
<wireless_tracking_results
timestamp="2016-11-03T10:33:05.008234+02:00">
<wireless_tracking_result
signal_strength="-60"
wireless_type="WIFI"
mac_address="AB:CD:EF:01:23:45" />
<wireless_tracking_-result
signal_strength="-42"
wireless_type="BLUETOOTH"
mac_address="FE:DC:BA:98:76:54" />
</wireless_tracking_results>
</wireless_tracking_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
39
APS notification messages
APS error message
Example
<image_snapshots_notification
mac_address="00:0B:91:90:00:45"
customer_ID="APS900045"
task_type="TASK_IMAGE_SNAPSHOTS"
notification_ID="7" serverTask_ID="4"
callerType_ID="SERVER"
timestamp="2017-03-16T11:15:04.671328Z"
xmlns="http://www.aglaia-gmbh.de/xml/
2013/05/17/BaSS_SOAPd.xsd">
<snapshots>
<bin_data>
<!-- BinaryData as Base64 -->
</bin_data>
</snapshots>
</image_snapshots_notification>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
40
APS notification messages
APS error message
Example
<sde2:error_message
error_text=
"src... error: Trigger not implemented
(cancel)."
error_reason="SOAP_ERROR_UNKNOWN_PARAM"
timestamp=
"2017-03-15T17:27:41.608587+02:00"
callerType_ID="SERVER"
serverTask_ID="3"
notification_ID="2"
task_type="TASK_FILL_LEVEL"
customer_ID="SENSOR01ABCD"
mac_address="00:0B:91:80:AB:CD"
osd_state="OSD_STATE_OK"
customer_version="unsupported feature"
model="APS-90-8GB"
firmware_version="1.8.0.3"
ip_address="192.168.100.10"
</sde2:error_message>
</SOAP-ENV:Body>
<SOAP-ENV:Envelope>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
41
Examples
Startup with invocation of tasks
7 Examples
Some short examples to understand the typical communication.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
42
Examples
Startup with invocation of tasks
Example
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
43
Examples
Startup with invocation of tasks
</trigger>
</task_subscribe_count_channels>
<task_subscribe_image_snapshots
task_type="TASK_IMAGE_SNAPSHOTS"
serverTask_ID="3" activity_state="true"
store_task="false">
<trigger>
<time_trigger>
<date kind="DATE_DONT_CARE" />
<start hours="0" minutes="0"
seconds="0" />
<cycle>PT15M</cycle>
<random_offset>PT0S</random_offset>
</time_trigger>
</trigger>
</task_subscribe_image_snapshots>
</answer_message>
</soap:Body>
</soap:Envelope>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
44
Examples
Startup with invocation of tasks
<soap:Body>
<answer_message
referenced_notification_ID="4"
server_response_type="SOAP_SERVER_OK"
xmlns="http://www.aglaia-gmbh.de/xml/
2013/05/17/BaSS_SOAPd.xsd" />
</soap:Body>
</soap:Envelope>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
45
Examples
Startup with invocation of tasks
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
46
Examples
Startup with invocation of tasks
notification_ID="9"
task_type="TASK_COUNT_CHANNELS"
customer_ID="APS900045" mac_address="00:0B:
91:90:00:45">
<sde2:count_channel count_out="0"
count_in="0" objClass="Adult"
channel_name="Polyline0">
</sde2:count_channel>
<sde2:count_channel count_out="0"
count_in="0" objClass="Child"
channel_name="Polyline0">
</sde2:count_channel>
</sde2:count_channels_notification>
</sde2:notification_message>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
...
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
47
Examples
Persistent tasks stored inside the APS
Example task_01.xml
<?xml version="1.0" encoding="UTF-8"?>
<sde2:task_subscribe_count_channels xmlns:SOAP-
ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-
encoding" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xmlns:xsd="http://
www.w3.org/2001/XMLSchema" xmlns:sde1="http://
www.aglaia-gmbh.de/xml/BaSS_SOAPd/"
xmlns:sde2="http://www.aglaia-gmbh.de/xml/
2013/05/17/BaSS_SOAPd.xsd" SOAP-
ENV:encodingStyle="http://www.w3.org/2003/05/
soap-encoding"
store_on_transmission_error="true"
store_task="true" activity_state="true"
serverTask_ID="2"
task_type="TASK_COUNT_CHANNELS"><sde2:trigger><
sde2:time_trigger><sde2:date
kind="DATE_DONT_CARE"></sde2:date><sde2:start
seconds="0" minutes="0" hours="0"></
sde2:start><sde2:cycle>PT0H1M0S</
sde2:cycle><sde2:random_offset>PT0S</
sde2:random_offset></sde2:time_trigger></
sde2:trigger></
sde2:task_subscribe_count_channels>
Example task_02.xml
<?xml version="1.0" encoding="UTF-8"?>
<sde2:task_subscribe_image_snapshots
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-
envelope" xmlns:SOAP-ENC="http://www.w3.org/
2003/05/soap-encoding" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sde1="http://www.aglaia-gmbh.de/xml/
BaSS_SOAPd/" xmlns:sde2="http://www.aglaia-
gmbh.de/xml/2013/05/17/BaSS_SOAPd.xsd" SOAP-
ENV:encodingStyle="http://www.w3.org/2003/05/
soap-encoding" store_task="true"
activity_state="true" serverTask_ID="3"
task_type="TASK_IMAGE_SNAPSHOTS"><sde2:trigger>
<sde2:time_trigger><sde2:date
kind="DATE_DONT_CARE"></sde2:date><sde2:start
seconds="0" minutes="0" hours="0"></
sde2:start><sde2:cycle>PT0H15M0S</
sde2:cycle><sde2:random_offset>PT0S</
sde2:random_offset></sde2:time_trigger></
sde2:trigger></
sde2:task_subscribe_image_snapshots>
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
48
Tools
APS
8 Tools
8.1 WSDL
Availability: APS firmware 1.0 Both the APS and the server use the same WSDL file defining the
SOAP interface.
This WSDL file can be translated with different SOAP toolkits to
communication stubs in C, C++, .NET, JAVA, php etc. The main
WSDL file is named BASS_SOAPd.wsdl. It includes the XML
schema definition BaSS_SOAPd.xsd.
Feel free not to use such a toolkit. It is also possible to build your
code from scretch by using string comparison or XML libraries.
8.2 APS
Availability: APS firmware 1.0 The APS contains a push service for data transfer via SOAP.
Use the web HMI to enable the push service, configure the pro-
tocol (HTTP or HTTPS), server IP address or the fully qualified
domain name of the server, IP port and possibly the HTTP proxy
settings for connecting to the server ( Ä ‘Availability: APS firmware
1.0’ on page 49).
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
49
Tools
APS
The APS retries to send the startup message until the connection
to the server is established. In addition to this startup message, the
APS sends an Alive Message cyclically every 3 hours plus a
random offset time of 0 to up to 5 minutes for maintenance pur-
poses.
The SOAP interfaces defined by WSDL are transformed using a
toolkit called gSOAP version 2.7. to generate C/C++ stubs. Use
this gSOAP as reference implementation, if you use different tool-
kits or you create your own code.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
50
Appendix
APS error codes
9 Appendix
9.1 OSD status codes
Availability: APS firmware 1.0 The status of the Optical Self Diagnosis (OSD) osd_state is
(added -COVERED, -TOO_DARK, - included in all messages that contain optically determined values
TOO_BRIGHT starting from version and additional in start, alive and error messages. The osd_state
1.8) contains one of the following values:
Error Description
SOAP_DEVICE_OK no error, task accepted
SOAP_ERROR_UNKNOWN_TASK task unknown or not implemented
SOAP_ERROR_UNKNOWN_PARAM task parameter unknown or not implemented
SOAP_ERROR_UNKNOWN_OUT_OF_RESSOURCES problems with the memory capacity of the APS
SOAP_ERROR_NO_LICENSE task initiated without licence for an add-on feature
SOAP_ERROR_TASK_EXECUTION execution of a task immediately stopped because of
errors
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
51
Appendix
Syslog error codes
Error Description
SOAP_SERVER_OK APS message processed without error
SOAP_ERROR_UNKNOWN_RESPONSE mapping error
SOAP_ERROR_UNKNOWN_MESSAGE unknown unprocessed message
SOAP_ERROR_UNKNOWN_DEVICE unknown APS
SOAP_ERROR_SERVER_DOWN the server can not acknoledge the message, please
send again.
Example
Jan 8 05:04:38 (none) user.warn soap: SOAPd
Error: Failed to send Count Notification.
(error code: 28)
The error code depends to SOAP library (-1 ... 49) or the http layer
used below (200 ... 505).
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
52
Appendix
Syslog error codes > SOAP error codes
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
53
Appendix
Syslog error codes > SOAP error codes
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
54
Appendix
Syslog error codes > http error codes
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
55
Appendix
Syslog error codes > http error codes
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
56
Support
10 Support
Service requests regarding the Advanced People Sensor and Push
Services via SOAP can be sent to the following e-mail address:
n people.counter.support@hella.com
The general contact information is provided on page 2.
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
57
Glossary and abbreviations
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
58
Glossary and abbreviations
This document has to be treated confidentially. Its contents are not to be passed on, duplicated, exploited or
23.03.2017 disclosed without our express permission. All rights reserved, especially the right to apply for protective rights.
59
Germany
59552 Lippstadt
Rixbecker Strasse 75
Hella KGaA Hueck & Co.
© 2017 Hella KGaA Hueck & Co., Lippstadt, HAGL-120-00076, 2017-03, SW 1.8