From 1d8f6f4e8993931503f60f95010f853199841b4c Mon Sep 17 00:00:00 2001 From: Matthew Skinner Date: Tue, 22 Jul 2025 08:38:24 +1000 Subject: [PATCH] [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 --- .../internal/onvif/OnvifConnection.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/onvif/OnvifConnection.java b/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/onvif/OnvifConnection.java index 11b86ed34d..9707b45a90 100644 --- a/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/onvif/OnvifConnection.java +++ b/bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/onvif/OnvifConnection.java @@ -855,6 +855,13 @@ public class OnvifConnection { ipCameraHandler.noMotionDetected(CHANNEL_CELL_MOTION_ALARM); } 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": if ("Trigger".equals(dataValue)) { ipCameraHandler.motionDetected(CHANNEL_MOTION_ALARM); @@ -878,6 +885,7 @@ public class OnvifConnection { ipCameraHandler.noAudioDetected(); } break; + case "RuleEngine/AreaDetection/AreaDetected": case "RuleEngine/FieldDetector/ObjectsInside": if ("true".equals(dataValue)) { ipCameraHandler.motionDetected(CHANNEL_FIELD_DETECTION_ALARM); @@ -885,6 +893,7 @@ public class OnvifConnection { ipCameraHandler.noMotionDetected(CHANNEL_FIELD_DETECTION_ALARM); } break; + case "RuleEngine/LineCrossDetector/LineCross": case "RuleEngine/LineDetector/Crossed": if ("ObjectId".equals(dataName)) { ipCameraHandler.motionDetected(CHANNEL_LINE_CROSSING_ALARM); @@ -950,6 +959,9 @@ public class OnvifConnection { ipCameraHandler.changeAlarmState(CHANNEL_DOORBELL, OnOffType.OFF); } break; + case "RuleEngine/Analytics/VehicleDetection": + case "RuleEngine/VehicleDetector/Vehicle": + case "VideoAnalytics/VehicleDetection/Vehicle": case "RuleEngine/MyRuleDetector/VehicleDetect": if ("true".equals(dataValue)) { ipCameraHandler.changeAlarmState(CHANNEL_CAR_ALARM, OnOffType.ON); @@ -957,6 +969,7 @@ public class OnvifConnection { ipCameraHandler.changeAlarmState(CHANNEL_CAR_ALARM, OnOffType.OFF); } break; + case "RuleEngine/PetDetector/Pet": case "RuleEngine/MyRuleDetector/DogCatDetect": if ("true".equals(dataValue)) { ipCameraHandler.changeAlarmState(CHANNEL_ANIMAL_ALARM, OnOffType.ON); @@ -964,6 +977,7 @@ public class OnvifConnection { ipCameraHandler.changeAlarmState(CHANNEL_ANIMAL_ALARM, OnOffType.OFF); } break; + case "RuleEngine/FaceDetector/FaceDetected": case "RuleEngine/MyRuleDetector/FaceDetect": if ("true".equals(dataValue)) { ipCameraHandler.changeAlarmState(CHANNEL_FACE_DETECTED, OnOffType.ON); @@ -971,6 +985,10 @@ public class OnvifConnection { ipCameraHandler.changeAlarmState(CHANNEL_FACE_DETECTED, OnOffType.OFF); } break; + case "VideoAnalytics/PersonDetection/Person": + case "RuleEngine/PeopleDetector/People": + case "RuleEngine/SmartMotionHumanDetection/HumanDetection": + case "RuleEngine/HumanDetection/HumanDetected": case "RuleEngine/MyRuleDetector/PeopleDetect": if ("true".equals(dataValue)) { ipCameraHandler.changeAlarmState(CHANNEL_HUMAN_ALARM, OnOffType.ON);