diff --git a/event/stream/topics.go b/event/stream/topics.go index 552c132..1345233 100644 --- a/event/stream/topics.go +++ b/event/stream/topics.go @@ -79,7 +79,14 @@ var topicRules = []struct { // https://developer.axis.com/vapix/network-video/event-and-action-services/ {"MotionRegionDetector/Motion", KindMotion}, - // AXIS ACAP motion apps with CameraProfile suffixes. VMD is + // tns1:RuleEngine/tnsaxis:VMD3/vmd3_video_ — AXIS VMD 3, the + // firmware-builtin predecessor of the VMD 4 ACAP. It lives under + // RuleEngine, not CameraApplicationPlatform, so the VMD rule below + // does not cover it. Still shipping on deployed cameras. + // https://developer.axis.com/vapix/network-video/event-and-action-services/ + {"RuleEngine/VMD3/", KindMotion}, + + // AXIS ACAP motion apps with CameraProfile suffixes. VMD 4 is // the stock app shipped on the camera; the Guard suite are the // paid analytics products. Prefix-match because of the suffix. // https://developer.axis.com/vapix/applications/vmd4 diff --git a/event/stream/topics_test.go b/event/stream/topics_test.go index 617bf5b..8e12e26 100644 --- a/event/stream/topics_test.go +++ b/event/stream/topics_test.go @@ -31,6 +31,12 @@ func TestClassifyTopic(t *testing.T) { {"axis_vmd4_profile_any", "tnsaxis:CameraApplicationPlatform/VMD/Camera1ProfileANY", KindMotion}, {"axis_vmd4_profile_numbered", "tnsaxis:CameraApplicationPlatform/VMD/Camera1Profile1", KindMotion}, + // AXIS VMD 3 — the firmware-builtin predecessor, published under + // RuleEngine rather than CameraApplicationPlatform. Still shipping + // on deployed cameras; observed on site-07 camera-10. + {"axis_vmd3_video_1", "tns1:RuleEngine/tnsaxis:VMD3/vmd3_video_1", KindMotion}, + {"axis_vmd3_video_2", "tns1:RuleEngine/tnsaxis:VMD3/vmd3_video_2", KindMotion}, + // --- Tampering -------------------------------------------------- {"tamper_detector", "tns1:RuleEngine/TamperDetector/Tamper", KindTampering},