[ipcamera] Add missing ONVIF event topics for TP Link Tapo cameras. (#18996)

* Add missing ONVIF topics for TP Link Tapo cameras.

Signed-off-by: Matthew Skinner <matt@pcmus.com>
This commit is contained in:
Matthew Skinner
2025-07-22 00:38:24 +02:00
committed by GitHub
parent bf85797032
commit 1d8f6f4e89
@@ -855,6 +855,13 @@ public class OnvifConnection {
ipCameraHandler.noMotionDetected(CHANNEL_CELL_MOTION_ALARM); ipCameraHandler.noMotionDetected(CHANNEL_CELL_MOTION_ALARM);
} }
break; break;
case "RuleEngine/PackageDetector/PackageDetected":
if ("true".equals(dataValue)) {
ipCameraHandler.motionDetected(CHANNEL_ITEM_LEFT);
} else if ("false".equals(dataValue)) {
ipCameraHandler.noMotionDetected(CHANNEL_ITEM_LEFT);
}
break;
case "VideoAnalytics/Motion": case "VideoAnalytics/Motion":
if ("Trigger".equals(dataValue)) { if ("Trigger".equals(dataValue)) {
ipCameraHandler.motionDetected(CHANNEL_MOTION_ALARM); ipCameraHandler.motionDetected(CHANNEL_MOTION_ALARM);
@@ -878,6 +885,7 @@ public class OnvifConnection {
ipCameraHandler.noAudioDetected(); ipCameraHandler.noAudioDetected();
} }
break; break;
case "RuleEngine/AreaDetection/AreaDetected":
case "RuleEngine/FieldDetector/ObjectsInside": case "RuleEngine/FieldDetector/ObjectsInside":
if ("true".equals(dataValue)) { if ("true".equals(dataValue)) {
ipCameraHandler.motionDetected(CHANNEL_FIELD_DETECTION_ALARM); ipCameraHandler.motionDetected(CHANNEL_FIELD_DETECTION_ALARM);
@@ -885,6 +893,7 @@ public class OnvifConnection {
ipCameraHandler.noMotionDetected(CHANNEL_FIELD_DETECTION_ALARM); ipCameraHandler.noMotionDetected(CHANNEL_FIELD_DETECTION_ALARM);
} }
break; break;
case "RuleEngine/LineCrossDetector/LineCross":
case "RuleEngine/LineDetector/Crossed": case "RuleEngine/LineDetector/Crossed":
if ("ObjectId".equals(dataName)) { if ("ObjectId".equals(dataName)) {
ipCameraHandler.motionDetected(CHANNEL_LINE_CROSSING_ALARM); ipCameraHandler.motionDetected(CHANNEL_LINE_CROSSING_ALARM);
@@ -950,6 +959,9 @@ public class OnvifConnection {
ipCameraHandler.changeAlarmState(CHANNEL_DOORBELL, OnOffType.OFF); ipCameraHandler.changeAlarmState(CHANNEL_DOORBELL, OnOffType.OFF);
} }
break; break;
case "RuleEngine/Analytics/VehicleDetection":
case "RuleEngine/VehicleDetector/Vehicle":
case "VideoAnalytics/VehicleDetection/Vehicle":
case "RuleEngine/MyRuleDetector/VehicleDetect": case "RuleEngine/MyRuleDetector/VehicleDetect":
if ("true".equals(dataValue)) { if ("true".equals(dataValue)) {
ipCameraHandler.changeAlarmState(CHANNEL_CAR_ALARM, OnOffType.ON); ipCameraHandler.changeAlarmState(CHANNEL_CAR_ALARM, OnOffType.ON);
@@ -957,6 +969,7 @@ public class OnvifConnection {
ipCameraHandler.changeAlarmState(CHANNEL_CAR_ALARM, OnOffType.OFF); ipCameraHandler.changeAlarmState(CHANNEL_CAR_ALARM, OnOffType.OFF);
} }
break; break;
case "RuleEngine/PetDetector/Pet":
case "RuleEngine/MyRuleDetector/DogCatDetect": case "RuleEngine/MyRuleDetector/DogCatDetect":
if ("true".equals(dataValue)) { if ("true".equals(dataValue)) {
ipCameraHandler.changeAlarmState(CHANNEL_ANIMAL_ALARM, OnOffType.ON); ipCameraHandler.changeAlarmState(CHANNEL_ANIMAL_ALARM, OnOffType.ON);
@@ -964,6 +977,7 @@ public class OnvifConnection {
ipCameraHandler.changeAlarmState(CHANNEL_ANIMAL_ALARM, OnOffType.OFF); ipCameraHandler.changeAlarmState(CHANNEL_ANIMAL_ALARM, OnOffType.OFF);
} }
break; break;
case "RuleEngine/FaceDetector/FaceDetected":
case "RuleEngine/MyRuleDetector/FaceDetect": case "RuleEngine/MyRuleDetector/FaceDetect":
if ("true".equals(dataValue)) { if ("true".equals(dataValue)) {
ipCameraHandler.changeAlarmState(CHANNEL_FACE_DETECTED, OnOffType.ON); ipCameraHandler.changeAlarmState(CHANNEL_FACE_DETECTED, OnOffType.ON);
@@ -971,6 +985,10 @@ public class OnvifConnection {
ipCameraHandler.changeAlarmState(CHANNEL_FACE_DETECTED, OnOffType.OFF); ipCameraHandler.changeAlarmState(CHANNEL_FACE_DETECTED, OnOffType.OFF);
} }
break; break;
case "VideoAnalytics/PersonDetection/Person":
case "RuleEngine/PeopleDetector/People":
case "RuleEngine/SmartMotionHumanDetection/HumanDetection":
case "RuleEngine/HumanDetection/HumanDetected":
case "RuleEngine/MyRuleDetector/PeopleDetect": case "RuleEngine/MyRuleDetector/PeopleDetect":
if ("true".equals(dataValue)) { if ("true".equals(dataValue)) {
ipCameraHandler.changeAlarmState(CHANNEL_HUMAN_ALARM, OnOffType.ON); ipCameraHandler.changeAlarmState(CHANNEL_HUMAN_ALARM, OnOffType.ON);