Yes - it's close to BSC but not quite there. BSC uses subaddressing to define , within the header, which of several internal endpoints are being reported. To do this (in xAP v1.2) the last two hex digits of the UID represent a numeric ID for the internal enpoint that is between 01 and FE ie 253 internal endpoints can be supported. 00 and FF are reserved. Each endpoint also has a sub address name that is appended to the source address after a ':' In your example you will see that endpoint 03 has a name 'BedsideLamp'.
ZoneMinder is using the 'reserved' 00 address - which is the address of the whole application , and not an endpoint ID. Additionally there is no sub address name. Actually the UID and Source are consistent - it's just that xAPBSC.info messages report endpoints and not the main application.
xAPBSC , although simple in purpose is quite involved in implementation. It is a bi-directional schema using subaddressing and wildcarding and supports discovery. It should be completely implemented in order to preserve the near plug and play integration that BSC provides.
I don't know what the info message is reporting ? What is 'on' as reported in the message and are there other things that ZM reports. Does it for example report movement in each zone or for each camera separately and if so how does it indicate which zone or camera has detected movement.
For example the cameras might be numbered 1-10 and if movement was detected on camera 9 named FrontDoor you might generate a message such as
xap-header
{
v=12
hop=1
uid=FFEA0909
class=xAPBSC.event
source=zm.zoneminder.ZM-XAP-HOUSE:FrontDoor
pid=1319
}
output.state
{
State=on
}
If you can provide a bit more info on what/how ZM reports over xAP that would be helpful.
Such info could also be presented this way...
xap-header
{
v=12
hop=1
uid=FFEA0900
class=Security.Event
source=zm.zoneminder.ZM-XAP-HOUSEpid=1319
}
Trigger
{
Camera=FrontDoor
Cause=Motion
Area=3
}
but here the 'context' of the data value is being set by other parameter(s) within the block, rather than in the header. We try to discourage this now because it makes it harder to extract specific data . Using sub addressing is the recommended approach - with or without BSC.
xap-header
{
v=12
hop=1
uid=FFEA0993
class=Security.Event
source=zm.zoneminder.ZM-XAP-HOUSE:FrontDoor.3
pid=1319
}
Trigger
{
Cause=Motion
}
K