Explorar o código

Add support for Mantra ceiling fans.

Issue #680
Jason Rumney %!s(int64=2) %!d(string=hai) anos
pai
achega
625bacdc8a
Modificáronse 3 ficheiros con 143 adicións e 0 borrados
  1. 2 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 140 0
      custom_components/tuya_local/devices/mantra_fan.yaml

+ 2 - 0
ACKNOWLEDGEMENTS.md

@@ -302,3 +302,5 @@ Further device support has been made with the assistance of users.  Please consi
 - [jorometala](https://github.com/jorometala) for assisting with support for Iebeyond ECH RF hub doorbells.
 - [Yersi88](https://github.com/Yersi88) for contributing support for Costway portable air conditioners.
 - [bdkacz](https://github.com/bdkacz) for assisting with support for ZX-GS21 gask leak alarms.
+- [mild-delirium](https://github.com/mild-delirium) for contributing a bugfix for polling devices.
+- [jorgejavier2321](https://github.com/jorgejavier2321) for assisting with support for Mantra ceiling fans.

+ 1 - 0
DEVICES.md

@@ -125,6 +125,7 @@
 - Goldair GCPF315 fan
 - Ledkia fan and light controller
 - Lexy F501 fan
+- Mantra ceiling fan with light
 - Skyfan DC fan
 - Skyfan DC fan with light
 - Stirling FS1-40DC pedestal fan

+ 140 - 0
custom_components/tuya_local/devices/mantra_fan.yaml

@@ -0,0 +1,140 @@
+name: Ceiling fan
+primary_entity:
+  entity: fan
+  dps:
+    - id: 1
+      type: boolean
+      name: switch
+    - id: 3
+      type: string
+      name: speed
+      mapping:
+        - dps_val: "1"
+          value: 3
+        - dps_val: "2"
+          value: 6
+        - dps_val: "3"
+          value: 9
+        - dps_val: "4"
+          value: 13
+        - dps_val: "5"
+          value: 16
+        - dps_val: "6"
+          value: 19
+        - dps_val: "7"
+          value: 22
+        - dps_val: "8"
+          value: 25
+        - dps_val: "9"
+          value: 28
+        - dps_val: "10"
+          value: 31
+        - dps_val: "11"
+          value: 34
+        - dps_val: "12"
+          value: 38
+        - dps_val: "13"
+          value: 41
+        - dps_val: "14"
+          value: 44
+        - dps_val: "15"
+          value: 47
+        - dps_val: "16"
+          value: 50
+        - dps_val: "17"
+          value: 53
+        - dps_val: "18"
+          value: 56
+        - dps_val: "19"
+          value: 59
+        - dps_val: "20"
+          value: 63
+        - dps_val: "21"
+          value: 66
+        - dps_val: "22"
+          value: 69
+        - dps_val: "23"
+          value: 72
+        - dps_val: "24"
+          value: 75
+        - dps_val: "25"
+          value: 78
+        - dps_val: "26"
+          value: 81
+        - dps_val: "27"
+          value: 84
+        - dps_val: "28"
+          value: 88
+        - dps_val: "29"
+          value: 91
+        - dps_val: "30"
+          value: 94
+        - dps_val: "31"
+          value: 97
+        - dps_val: "32"
+          value: 100
+    - id: 101
+      type: boolean
+      name: direction
+      mapping:
+        - dps_val: false
+          value: forward
+        - dps_val: true
+          value: reverse
+secondary_entities:
+  - entity: select
+    name: Timer
+    icon: "mdi:timer"
+    dps:
+      - id: 6
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "Off"
+          - dps_val: "1"
+            value: "1 hour"
+          - dps_val: "2"
+            value: "2 hours"
+          - dps_val: "3"
+            value: "3 hours"
+          - dps_val: "4"
+            value: "4 hours"
+          - dps_val: "5"
+            value: "5 hours"
+          - dps_val: "6"
+            value: "6 hours"
+          - dps_val: "7"
+            value: "7 hours"
+          - dps_val: "8"
+            value: "8 hours"
+  - entity: sensor
+    name: Time remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 7
+        type: integer
+        name: sensor
+        unit: min
+  - entity: light
+    name: Light
+    dps:
+      - id: 9
+        type: boolean
+        name: switch
+      - id: 10
+        name: brightness
+        type: integer
+        range:
+          min: 10
+          max: 1000
+      - id: 11
+        name: color_temp
+        type: integer
+        range:
+          min: 0
+          max: 1000
+
+
+