Просмотр исходного кода

Deprecate camera entities

Cameras are not really properly supported by the local protocol, and
in the past it seems I have not understood limitations in the HA UI.

It is better to model them as switches and events in hindsight (though
events did not yet exist at the time camera support was added).

Discussion #5246
Jason Rumney 4 недель назад
Родитель
Сommit
f8ba91dbbe
37 измененных файлов с 1174 добавлено и 38 удалено
  1. 4 1
      custom_components/tuya_local/devices/README.md
  2. 24 0
      custom_components/tuya_local/devices/advwin_6l_petfeeder.yaml
  3. 32 0
      custom_components/tuya_local/devices/arlec_pfc002ha_petfeeder_camera.yaml
  4. 42 0
      custom_components/tuya_local/devices/bcom_intercom_camera.yaml
  5. 27 9
      custom_components/tuya_local/devices/camnsmart_e27_camera.yaml
  6. 50 0
      custom_components/tuya_local/devices/cleverio_cd200_doorbell.yaml
  7. 1 1
      custom_components/tuya_local/devices/device_config_schema.json
  8. 17 0
      custom_components/tuya_local/devices/door_peephole_camera.yaml
  9. 34 0
      custom_components/tuya_local/devices/emos_ip300_camera.yaml
  10. 18 0
      custom_components/tuya_local/devices/evergreen_birdfeeder.yaml
  11. 26 9
      custom_components/tuya_local/devices/feelneedy_plfp01_petfeeder.yaml
  12. 27 0
      custom_components/tuya_local/devices/frienhund_acf180wa_dualfeeder.yaml
  13. 18 0
      custom_components/tuya_local/devices/garage_door_camera.yaml
  14. 27 0
      custom_components/tuya_local/devices/homemate_ptzcamera.yaml
  15. 52 0
      custom_components/tuya_local/devices/huntertbk_hf6602t_doorbell.yaml
  16. 58 0
      custom_components/tuya_local/devices/kerui_200w_camera.yaml
  17. 42 0
      custom_components/tuya_local/devices/kerui_300w_camera.yaml
  18. 42 0
      custom_components/tuya_local/devices/kw02_video_doorbell.yaml
  19. 42 0
      custom_components/tuya_local/devices/lindasmart_7s_doorbell.yaml
  20. 43 0
      custom_components/tuya_local/devices/lsc_ptz_camera.yaml
  21. 34 0
      custom_components/tuya_local/devices/lscsmartconnect_camerapetfeeder.yaml
  22. 43 0
      custom_components/tuya_local/devices/lscsmartconnect_outdoorcamera.yaml
  23. 43 0
      custom_components/tuya_local/devices/lscsmartconnect_outdoorptzcamera.yaml
  24. 27 0
      custom_components/tuya_local/devices/moes_indoorptz_camera.yaml
  25. 15 6
      custom_components/tuya_local/devices/moes_wcmp52_camera.yaml
  26. 18 0
      custom_components/tuya_local/devices/mypin_6l_videopetfeeder.yaml
  27. 57 5
      custom_components/tuya_local/devices/myq_td8_videodoorbell.yaml
  28. 35 0
      custom_components/tuya_local/devices/nedis_outdoor_camera.yaml
  29. 43 0
      custom_components/tuya_local/devices/ningbo_bf314a_petfeeder.yaml
  30. 33 0
      custom_components/tuya_local/devices/petlibro_camera_feeder.yaml
  31. 18 0
      custom_components/tuya_local/devices/pinelake_birdfeeder.yaml
  32. 52 0
      custom_components/tuya_local/devices/rhpd10_doorbell_camera.yaml
  33. 25 4
      custom_components/tuya_local/devices/rl_video_lock.yaml
  34. 14 0
      custom_components/tuya_local/devices/rojeco_v200du3lvs_petfeeder.yaml
  35. 27 0
      custom_components/tuya_local/devices/sc116wz3a_camera.yaml
  36. 18 0
      custom_components/tuya_local/devices/smcm_doorbellpro_camera.yaml
  37. 46 3
      custom_components/tuya_local/devices/yakry_camera_petfeeder.yaml

+ 4 - 1
custom_components/tuya_local/devices/README.md

@@ -601,7 +601,10 @@ device detection unless set to optional. A value of true will be sent
 for a button press, map this to the desired dps_val if a different
 value is required.
 
-### `camera`
+### `camera` *deprecated*
+
+As cameras are not well supported locally, forcing them into a camera entity does not give good results, instead use switch entities for the controls, and event entities for "snapshots" (which usually contain URLs to fetch the image but need some unknown authentication).
+
 - **motion_enable** (optional, boolean) a dp that enables and disables motion detection features built into the camera.
 - **record** (optional, boolean) a dp that turns reecording on and off.
 - **snapshot** (optional, base64 string) a dp that returns a snapshot image.

+ 24 - 0
custom_components/tuya_local/devices/advwin_6l_petfeeder.yaml

@@ -7,7 +7,31 @@ products:
     manufacturer: Papifeed
     model: 7L camera 202301
 entities:
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
   - entity: camera
+    deprecated: switch_motion_detection and event_motion  # 2026-06-08
     dps:
       - id: 134
         type: boolean

+ 32 - 0
custom_components/tuya_local/devices/arlec_pfc002ha_petfeeder_camera.yaml

@@ -11,7 +11,39 @@ entities:
       - id: 103
         type: boolean
         name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: event_motion, switch_camera_record, switch_motion_detection
     dps:
       - id: 115
         type: base64

+ 42 - 0
custom_components/tuya_local/devices/bcom_intercom_camera.yaml

@@ -4,7 +4,49 @@ products:
     manufacturer: Bcom
     model: Majic IPBox
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+
   - entity: camera
+    # 2026-06-08
+    deprecated: switch_camera_record, event_motion, event_door_image
     dps:
       - id: 150
         name: record

+ 27 - 9
custom_components/tuya_local/devices/camnsmart_e27_camera.yaml

@@ -4,19 +4,17 @@ products:
     manufacturer: Camnsmart
     model: E27TY
 entities:
-  - entity: camera
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
     dps:
-      - id: 109
-        type: string
-        name: memory_card_capacity
-      - id: 134
-        type: boolean
-        name: motion_enable
-        optional: true
       - id: 150
         type: boolean
-        name: record
         optional: true
+        name: switch
+      - id: 109
+        type: string
+        name: memory_card_capacity
       - id: 178
         type: string
         name: log_event
@@ -25,6 +23,26 @@ entities:
         type: string
         name: log_message
         optional: true
+  - entity: switch
+    name: Motion detection
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+
+  - entity: camera
+    deprecated: switch_camera_record, switch_motion_detection  # 2026-06-08
+    dps:
+      - id: 134
+        type: boolean
+        name: motion_enable
+        optional: true
+      - id: 150
+        type: boolean
+        name: record
+        optional: true
   - entity: light
     translation_key: indicator
     category: config

+ 50 - 0
custom_components/tuya_local/devices/cleverio_cd200_doorbell.yaml

@@ -4,7 +4,57 @@ products:
     manufacturer: Cleverio
     model: CD-200
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    category: config
+    dps:
+      - id: 240
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_record, event_motion, event_door_image, switch_motion_detection
     dps:
       - id: 150
         type: boolean

+ 1 - 1
custom_components/tuya_local/devices/device_config_schema.json

@@ -49,7 +49,7 @@
                 "properties": {
                     "entity": {
                         "type": "string",
-                        "enum": ["alarm_control_panel", "binary_sensor", "button", "camera", "climate", "cover", "datetime", "event", "fan", "humidifier", "infrared", "lawn_mower", "light", "lock", "number", "remote", "select", "sensor", "siren", "switch", "text", "time", "vacuum", "valve", "water_heater"],
+                        "enum": ["alarm_control_panel", "binary_sensor", "button", "climate", "cover", "datetime", "event", "fan", "humidifier", "infrared", "lawn_mower", "light", "lock", "number", "remote", "select", "sensor", "siren", "switch", "text", "time", "vacuum", "valve", "water_heater"],
                         "description": "The type of entity (e.g., light, switch, sensor)."
                     },
                     "name": {

+ 17 - 0
custom_components/tuya_local/devices/door_peephole_camera.yaml

@@ -6,7 +6,24 @@ products:
     manufacturer: HQCAM
     model: 2MP peephole camera
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: switch_camera_record, switch_motion_detection  # 2026-06-08
     dps:
       - id: 134
         type: boolean

+ 34 - 0
custom_components/tuya_local/devices/emos_ip300_camera.yaml

@@ -4,7 +4,41 @@ products:
     manufacturer: EMOS
     model: IP-300
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: switch_record, switch_motion_detection, event_motion
     dps:
       - id: 134
         type: boolean

+ 18 - 0
custom_components/tuya_local/devices/evergreen_birdfeeder.yaml

@@ -5,7 +5,25 @@ products:
     model: Solar Smart Bird Feeder Camera
     model_id: ZCT2BF25510
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: switch_record, switch_motion_detection  # 2026-06-08
     dps:
       - id: 150
         name: record

+ 26 - 9
custom_components/tuya_local/devices/feelneedy_plfp01_petfeeder.yaml

@@ -18,22 +18,25 @@ entities:
       - id: 104
         type: boolean
         name: switch
-  - entity: camera
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
     dps:
       - id: 105
         type: boolean
         name: switch
-        mapping:
-          - dps_val: false
-            value: true
-          - dps_val: true
-            value: false
       - id: 117
         type: integer
         name: sd_format_state
-      - id: 134
-        type: boolean
-        name: motion_enable
       - id: 240
         type: string
         name: status
@@ -43,6 +46,20 @@ entities:
       - id: 248
         type: string
         name: storage
+  - entity: camera
+    deprecated: switch_camera_privacy, switch_motion_detection  # 2026-06-08
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
+        mapping:
+          - dps_val: false
+            value: true
+          - dps_val: true
+            value: false
+      - id: 134
+        type: boolean
+        name: motion_enable
   - entity: select
     translation_key: motion_sensitivity
     category: config

+ 27 - 0
custom_components/tuya_local/devices/frienhund_acf180wa_dualfeeder.yaml

@@ -33,7 +33,34 @@ entities:
       - id: 104
         type: boolean
         name: switch
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, switch_camera_privacy, switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 18 - 0
custom_components/tuya_local/devices/garage_door_camera.yaml

@@ -2,7 +2,25 @@ name: Garage door camera
 products:
   - id: bwalvfjqrhmediec
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: switch_camera_record, switch_motion_detection  # 2026-06-08
     dps:
       - id: 134
         type: boolean

+ 27 - 0
custom_components/tuya_local/devices/homemate_ptzcamera.yaml

@@ -4,7 +4,34 @@ products:
     manufacturer: HomeMate
     model: Indoor PTZ camera
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, switch_camera_privacy, switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 52 - 0
custom_components/tuya_local/devices/huntertbk_hf6602t_doorbell.yaml

@@ -4,7 +4,59 @@ products:
     manufacturer: HunterTBK
     model: HF-6602T
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, event_motion, event_door_image,
+      switch_motion_detection
     dps:
       - id: 150
         type: boolean

+ 58 - 0
custom_components/tuya_local/devices/kerui_200w_camera.yaml

@@ -4,7 +4,65 @@ products:
     manufacturer: Kerui
     model: "200W"
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    name: Notification
+    dps:
+      - id: 212
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: alert
+      - id: 212
+        type: utf16b64
+        optional: true
+        name: message
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, switch_camera_privacy, event_motion,
+      event_notification, switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 42 - 0
custom_components/tuya_local/devices/kerui_300w_camera.yaml

@@ -8,7 +8,49 @@ products:
     model: "5MP"
     name: Indoor camera
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    name: Notification
+    dps:
+      - id: 212
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: alert
+      - id: 212
+        type: utf16b64
+        optional: true
+        name: message
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    deprecated: >-
+      switch_camera_record, switch_camera_privacy, event_motion,
+      event_notification, switch_motion_detection
     dps:
       - id: 105
         name: switch

+ 42 - 0
custom_components/tuya_local/devices/kw02_video_doorbell.yaml

@@ -99,7 +99,49 @@ entities:
         type: integer
         optional: true
         name: formatting_status
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: event_motion, event_door_image, switch_motion_detection
     dps:
       - id: 115
         type: base64

+ 42 - 0
custom_components/tuya_local/devices/lindasmart_7s_doorbell.yaml

@@ -4,7 +4,49 @@ products:
     manufacturer: Linda Smart
     model: 7S
 entities:
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 240
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: event_motion, event_door_image, switch_motion_detection
     dps:
       - id: 154
         type: base64

+ 43 - 0
custom_components/tuya_local/devices/lsc_ptz_camera.yaml

@@ -10,7 +10,50 @@ products:
     manufacturer: Merkury
     model: CW035
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, event_motion,
+      switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 34 - 0
custom_components/tuya_local/devices/lscsmartconnect_camerapetfeeder.yaml

@@ -5,7 +5,41 @@ products:
   - id: hdvemiqnknebgflm
     manufacturer: Tesla Smart
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: switch_camera_record, event_motion, switch_motion_detection
     dps:
       - id: 134
         type: boolean

+ 43 - 0
custom_components/tuya_local/devices/lscsmartconnect_outdoorcamera.yaml

@@ -4,7 +4,50 @@ products:
     manufacturer: LSC Smart Connect
     model: Dual band outdoor camera
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, switch_motion_detection,
+      event_motion
     dps:
       - id: 105
         type: boolean

+ 43 - 0
custom_components/tuya_local/devices/lscsmartconnect_outdoorptzcamera.yaml

@@ -5,7 +5,50 @@ products:
     model: Outdoor PTZ
     model_id: "3206233"
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, event_motion,
+      switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 27 - 0
custom_components/tuya_local/devices/moes_indoorptz_camera.yaml

@@ -5,7 +5,34 @@ products:
     model: P52
     name: PTZ indoor security camera
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 15 - 6
custom_components/tuya_local/devices/moes_wcmp52_camera.yaml

@@ -6,6 +6,9 @@ products:
     name: PTZ indoor security camera
 entities:
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, switch_motion_detection
     dps:
       - id: 105
         type: boolean
@@ -21,23 +24,29 @@ entities:
       - id: 150
         type: boolean
         name: record
-  # DP 105 also controls camera power (inverted there); on = privacy engaged.
   - entity: switch
-    name: Privacy
-    icon: "mdi:eye-off"
+    name: Camera privacy
+    icon: "mdi:incognito"
     dps:
       - id: 105
         type: boolean
         name: switch
-  # DP 150 also drives the camera's is_recording; on = recording enabled.
   - entity: switch
-    name: Recording
-    icon: "mdi:record-rec"
+    name: Camera record
+    icon: "mdi:record"
     category: config
     dps:
       - id: 150
         type: boolean
         name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        name: switch        
   - entity: light
     translation_key: indicator
     category: config

+ 18 - 0
custom_components/tuya_local/devices/mypin_6l_videopetfeeder.yaml

@@ -4,7 +4,25 @@ products:
     manufacturer: Mypin
     model: 6L
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: switch_camera_record, switch_motion_detection  # 2026-06-08
     dps:
       - id: 113
         type: boolean

+ 57 - 5
custom_components/tuya_local/devices/myq_td8_videodoorbell.yaml

@@ -4,7 +4,64 @@ products:
     manufacturer: myQ
     model: TD8
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+      - id: 152
+        name: pir_switch
+        type: string
+        optional: true
+        # enum: ["0", "1", "2", "3"] - probably a select, but meanings unknown
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, event_motion, event_door_image,
+      switch_motion_detection
     dps:
       - id: 154
         name: snapshot
@@ -26,11 +83,6 @@ entities:
       - id: 150
         name: record
         type: boolean
-      - id: 152
-        name: pir_switch
-        type: string
-        optional: true
-        # enum: ["0", "1", "2", "3"] - probably a select, but meanings unknown
   - entity: light
     translation_key: indicator
     category: config

+ 35 - 0
custom_components/tuya_local/devices/nedis_outdoor_camera.yaml

@@ -4,7 +4,42 @@ products:
     manufacturer: Nedis
     model: WIFICO11CWT
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, event_motion, switch_motion_detection
     dps:
       - id: 115
         name: snapshot

+ 43 - 0
custom_components/tuya_local/devices/ningbo_bf314a_petfeeder.yaml

@@ -25,7 +25,50 @@ entities:
       - id: 104
         type: boolean
         name: switch
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, event_motion,
+      switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 33 - 0
custom_components/tuya_local/devices/petlibro_camera_feeder.yaml

@@ -69,8 +69,41 @@ entities:
       - id: 117
         type: integer
         name: format_state
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
     name: Camera
+    # 2026-06-08
+    deprecated: switch_camera_privacy, event_motion, switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 18 - 0
custom_components/tuya_local/devices/pinelake_birdfeeder.yaml

@@ -4,7 +4,25 @@ products:
     manufacturer: Pinelake
     model: BF002
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: switch_camera_record, switch_motion_detection  # 2026-06-08
     dps:
       - id: 150
         name: record

+ 52 - 0
custom_components/tuya_local/devices/rhpd10_doorbell_camera.yaml

@@ -4,7 +4,59 @@ products:
     manufacturer: Rehentint
     model: RH-PD10 3MP peephole camera
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 121
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_record, event_door_image, event_motion,
+      switch_motion_detection
     dps:
       - id: 121
         type: boolean

+ 25 - 4
custom_components/tuya_local/devices/rl_video_lock.yaml

@@ -3,7 +3,32 @@ products:
   - id: i6p5va1gvcagcude
     model: RL-617B17WIFI
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: event
+    class: doorbell
+    name: Door image
+    dps:
+      - id: 154
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: ring
+      - id: 154
+        type: base64
+        optional: true
+        name: snapshot
   - entity: camera
+    deprecated: switch_camera_record, event_door_image  # 2026-06-08
     dps:
       - id: 150
         name: record
@@ -17,10 +42,6 @@ entities:
         type: base64
         optional: true
         sensitive: true
-      - id: 191
-        name: smart_action
-        type: string
-        optional: true
   - entity: lock
     name: Lock 1
     dps:

+ 14 - 0
custom_components/tuya_local/devices/rojeco_v200du3lvs_petfeeder.yaml

@@ -42,7 +42,17 @@ entities:
             value: "medium"
           - dps_val: "2"
             value: "high"
+  - entity: switch
+    name: Motion enabled
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: event_motion, switch_motion_enabled  # 2026-06-08
     dps:
       - id: 113
         type: boolean
@@ -63,6 +73,10 @@ entities:
           - dps_val: null
             value: null
           - value: detected
+      - id: 115
+        type: base64
+        name: snapshot
+        optional: true
   - entity: switch
     name: Motion detection
     category: config

+ 27 - 0
custom_components/tuya_local/devices/sc116wz3a_camera.yaml

@@ -3,7 +3,34 @@ products:
   - id: b60fclvud3xtcufm
     model: SC116-WZ3A
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, switch_motion_detection
     dps:
       - id: 105
         type: boolean

+ 18 - 0
custom_components/tuya_local/devices/smcm_doorbellpro_camera.yaml

@@ -5,7 +5,25 @@ products:
     model: AC DoorBell Pro2
     model_id: DDV-207-Pro
 entities:
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
   - entity: camera
+    deprecated: switch_camera_record, switch_motion_detection  # 2026-06-08
     dps:
       - id: 134
         type: boolean

+ 46 - 3
custom_components/tuya_local/devices/yakry_camera_petfeeder.yaml

@@ -25,7 +25,53 @@ entities:
       - id: 104
         type: boolean
         name: switch
+  - entity: switch
+    name: Camera record
+    icon: "mdi:record"
+    dps:
+      - id: 150
+        type: boolean
+        optional: true
+        name: switch
+      - id: 254
+        type: string
+        name: mac_address
+  - entity: event
+    class: motion
+    dps:
+      - id: 115
+        type: base64
+        name: event
+        optional: true
+        mapping:
+          - dps_val: null
+            value: null
+          - value: detected
+      - id: 115
+        type: base64
+        optional: true
+        name: snapshot
+  - entity: switch
+    name: Motion detection
+    icon: "mdi:motion-sensor"
+    category: config
+    dps:
+      - id: 134
+        type: boolean
+        optional: true
+        name: switch
+  - entity: switch
+    name: Camera privacy
+    icon: "mdi:incognito"
+    dps:
+      - id: 105
+        type: boolean
+        name: switch
   - entity: camera
+    # 2026-06-08
+    deprecated: >-
+      switch_camera_privacy, switch_camera_record, event_motion,
+      switch_motion_detection
     dps:
       - id: 105
         type: boolean
@@ -47,9 +93,6 @@ entities:
       - id: 150
         type: boolean
         name: record
-      - id: 254
-        type: string
-        name: mac_address
   - entity: select
     translation_key: motion_sensitivity
     category: config