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

Add support for WDYK 3-phase energy meter circuit breaker.

Issue #550
Jason Rumney 2 лет назад
Родитель
Сommit
40f69acaae

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -242,3 +242,4 @@ Further device support has been made with the assistance of users.  Please consi
 - [karolzamosc](https://github.com/karolzamosc) for assisting with support for Rumba bathroom heaters, BHT-002-GALW thermostats.
 - [pnm1977](https://github.com/pnm1977) for assisting with support for Gosund UP111_RTL smartplugs.
 - [jprasm](https://github.com/jprasm) for assisting with support for Inkbird air quality monitors.
+- [Muelner](https://github.com/Muelner) for assisting with support for WDYK 3-phase energy meter circuit breakers.

+ 1 - 0
DEVICES.md

@@ -198,6 +198,7 @@
 - SmartMCB SMT006 energy meter
 - Taxnele circuit breaker and energy meter
 - TOMPD-63LW energy meter circuit breaker
+- WDYK 3 phase 4 pole 400V energy meter circuit breaker
 
 ### Battery Charger
 

+ 239 - 0
custom_components/tuya_local/devices/wdyk_3phase_energymonitor.yaml

@@ -0,0 +1,239 @@
+name: Energy monitoring circuit breaker
+primary_entity:
+  entity: switch
+  dps:
+    - id: 1
+      type: boolean
+      name: switch
+    - id: 26
+      type: bitfield
+      name: fault_code
+    - id: 104
+      type: integer
+      name: unknown_104
+    - id: 115
+      type: string
+      name: serial_number
+    - id: 118
+      type: integer
+      name: unknown_118
+    - id: 119
+      type: base64
+      name: historical_voltage
+    - id: 120
+      type: base64
+      name: historical_current
+secondary_entities:
+  - entity: number
+    name: Timer
+    category: config
+    icon: "mdi:timer"
+    dps:
+      - id: 9
+        type: integer
+        name: value
+        unit: min
+        range:
+          min: 0
+          max: 86400
+        mapping:
+          - scale: 60
+            step: 60
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 26
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+  - entity: select
+    name: Initial state
+    icon: "mdi:toggle-switch"
+    category: config
+    dps:
+      - id: 38
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "Off"
+          - dps_val: "1"
+            value: "On"
+          - dps_val: "2"
+            value: Last state
+  - entity: lock
+    name: Child lock
+    icon: "mdi:hand-back-right-off"
+    category: config
+    dps:
+      - id: 40
+        type: boolean
+        name: lock
+  - entity: sensor
+    name: Voltage A
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 101
+        type: base64
+        name: sensor
+        unit: V
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "FFFF00000000"
+  - entity: sensor
+    name: Voltage B
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 101
+        type: base64
+        name: sensor
+        unit: V
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "0000FFFF0000"
+  - entity: sensor
+    name: Voltage C
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 101
+        type: base64
+        name: sensor
+        unit: V
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "00000000FFFF"
+  - entity: sensor
+    name: Current A
+    class: current
+    category: diagnostic
+    dps:
+      - id: 102
+        type: base64
+        name: sensor
+        unit: mA
+        class: measurement
+        mapping:
+          - mask: "FFFFFF000000000000"
+  - entity: sensor
+    name: Current B
+    class: current
+    category: diagnostic
+    dps:
+      - id: 102
+        type: base64
+        name: sensor
+        unit: mA
+        class: measurement
+        mapping:
+          - mask: "000000FFFFFF000000"
+  - entity: sensor
+    name: Current C
+    class: current
+    category: diagnostic
+    dps:
+      - id: 102
+        type: base64
+        name: sensor
+        unit: mA
+        class: measurement
+        mapping:
+          - mask: "000000000000FFFFFF"
+  - entity: sensor
+    name: Total power
+    class: power
+    category: diagnostic
+    dps:
+      - id: 103
+        type: base64
+        name: sensor
+        unit: W
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "FFFFFF000000000000000000"
+  - entity: sensor
+    name: Power A
+    class: power
+    category: diagnostic
+    dps:
+      - id: 103
+        type: base64
+        name: sensor
+        unit: W
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "000000FFFFFF000000000000"
+  - entity: sensor
+    name: Power B
+    class: power
+    category: diagnostic
+    dps:
+      - id: 103
+        type: base64
+        name: sensor
+        unit: W
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "000000000000FFFFFF000000"
+  - entity: sensor
+    name: Power C
+    class: power
+    category: diagnostic
+    dps:
+      - id: 103
+        type: base64
+        name: sensor
+        unit: W
+        class: measurement
+        mapping:
+          - scale: 10
+            mask: "000000000000000000FFFFFF"
+  - entity: sensor
+    name: Temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 105
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: Remaining energy
+    category: diagnostic
+    dps:
+      - id: 107
+        type: integer
+        name: sensor
+        unit: Wh
+        class: measurement
+  - entity: sensor
+    name: Energy
+    class: energy
+    dps:
+      - id: 114
+        type: integer
+        name: sensor
+        unit: Wh
+        class: total_increasing
+  - entity: binary_sensor
+    name: Locking
+    class: lock
+    category: diagnostic
+    dps:
+      - id: 117
+        type: boolean
+        name: sensor