Bläddra i källkod

Add Ovlaim 809 ceiling fan light (#5373)

This device (product ftqsaibnb3insvp9) was being detection-matched to
yoevu_eos_fanlight, whose brightness range (10-100) and color_temp (direct
kelvin) do not fit this hardware, so brightness pegged at max and color
temperature was unusable. Tuya cloud spec for this unit: bright_value 10-1000,
temp_value 0-1000 (raw, mapped to 2700-7000 K), fan_speed 1-6.

All controls verified on real hardware: on/off, brightness, color temperature
(warm/cool correct, no invert needed), fan speed, presets (fresh/nature),
direction and timer.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Andrea 1 vecka sedan
förälder
incheckning
0ee5501957

+ 71 - 0
custom_components/tuya_local/devices/ovlaim_809_ceiling_fanlight.yaml

@@ -0,0 +1,71 @@
+name: Ceiling fan
+products:
+  - id: ftqsaibnb3insvp9
+    manufacturer: Ovlaim
+    model: "809"
+entities:
+  - entity: light
+    dps:
+      - id: 20
+        name: switch
+        type: boolean
+      - id: 21
+        name: work_mode
+        type: string
+        optional: true
+      - id: 22
+        name: brightness
+        type: integer
+        optional: true
+        range:
+          min: 10
+          max: 1000
+      - id: 23
+        name: color_temp
+        type: integer
+        optional: true
+        range:
+          min: 0
+          max: 1000
+        mapping:
+          - target_range:
+              min: 2700
+              max: 7000
+  - entity: fan
+    dps:
+      - id: 60
+        name: switch
+        type: boolean
+      - id: 61
+        name: preset_mode
+        type: string
+        optional: true
+        mapping:
+          - dps_val: fresh
+            value: fresh
+          - dps_val: nature
+            value: nature
+      - id: 62
+        name: speed
+        type: integer
+        optional: true
+        range:
+          min: 1
+          max: 6
+      - id: 63
+        name: direction
+        type: string
+        optional: true
+  - entity: number
+    translation_key: timer
+    class: duration
+    category: config
+    dps:
+      - id: 64
+        name: value
+        type: integer
+        optional: true
+        unit: min
+        range:
+          min: 0
+          max: 540