Преглед изворни кода

Add support for WDYK 2P63A energy meter.

Issue #659
Jason Rumney пре 2 година
родитељ
комит
d2bec1e02d

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -262,3 +262,4 @@ Further device support has been made with the assistance of users.  Please consi
 - [aurelmarius](https://github.com/aurelmarius) for assisting with support for Ditua DT-1522-YN aroma diffuser.
 - [ssorgatem](https://github.com/ssorgatem) for contributing support for Ledlux thermostat and another variant of quad powerstrip with USB and timers.
 - [remoteassist](https://github.com/remoteassist) for assisting with support for Lefant LS1 Pro vacuums.
+- [csarmat](https://github.com/csarmat) for assisting with support for WDYK 2P63A energy meters.

+ 2 - 0
DEVICES.md

@@ -202,8 +202,10 @@
 - SmartMCB SMT006 energy meter
 - Taxnele circuit breaker and energy meter
 - TOMPD-63LW energy meter circuit breaker
+- WDYK 2P63A energy meter
 - WDYK 3 phase 4 pole 400V energy meter circuit breaker
 
+
 ### Battery Charger
 
 - Parkside PLGS 2012 A1 smart charger for powertools

+ 0 - 5
custom_components/tuya_local/devices/taxnele_energy_meter.yaml

@@ -84,8 +84,3 @@ secondary_entities:
         name: sensor
         unit: C
         class: measurement
-
-
-
-
-

+ 404 - 0
custom_components/tuya_local/devices/wdyk_2p63a_energy_meter.yaml

@@ -0,0 +1,404 @@
+name: Energy meter
+products:
+  - id: r9kg2g1uhhyicycb
+    name: WDYK 2P63A
+primary_entity:
+  entity: sensor
+  name: Energy
+  class: energy
+  dps:
+    - id: 1
+      type: integer
+      name: sensor
+      unit: kWh
+      class: total_increasing
+      mapping:
+        - scale: 100
+    - id: 6
+      name: phase_a
+      type: base64
+      optional: true
+      force: true
+    - id: 7
+      name: phase_b
+      type: base64
+      optional: true
+      force: true
+    - id: 8
+      name: phase_c
+      type: base64
+      optional: true
+      force: true
+    - id: 9
+      type: bitfield
+      name: fault_code
+    - id: 19
+      type: string
+      name: breaker_number
+secondary_entities:
+  - entity: binary_sensor
+    name: Short circuit
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 1
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Surge
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 2
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Overload
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 4
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Current leak
+    class: safety
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 8
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Temperature
+    class: heat
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 16
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Fire
+    class: smoke
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 32
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: High power
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 64
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Self test
+    class: running
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 128
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Over current
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 256
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Unbalanced
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 512
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Over voltage
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 1024
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Under voltage
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 2048
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Out of phase
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 4096
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Outage
+    class: power
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 8192
+            value: false
+          - value: true
+  - entity: binary_sensor
+    name: Magnetism
+    class: tamper
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 16384
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Credit low
+    class: problem
+    icon: "mdi:cash"
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 32768
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: "No balance"
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 65536
+            value: true
+          - value: false
+  - entity: switch
+    name: Prepay
+    category: config
+    icon: "mdi:cash"
+    dps:
+      - id: 11
+        type: boolean
+        name: switch
+  - entity: button
+    name: Reset energy
+    category: config
+    class: restart
+    dps:
+      - id: 12
+        type: boolean
+        name: button
+  - entity: sensor
+    name: Energy balance
+    category: diagnostic
+    dps:
+      - id: 13
+        type: integer
+        name: sensor
+        unit: kWh
+        class: measurement
+        mapping:
+          - scale: 100
+  - entity: number
+    name: Charge energy
+    category: config
+    icon: "mdi:cash"
+    dps:
+      - id: 14
+        type: integer
+        name: value
+        unit: kWh
+        optional: true
+        range:
+          min: 0
+          max: 999999
+        mapping:
+          - scale: 100
+  - entity: switch
+    name: Circuit breaker
+    category: config
+    dps:
+      - id: 16
+        type: boolean
+        name: switch
+        optional: true
+  - entity: sensor
+    name: Voltage A
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        mapping:
+          - mask: "FFFFFF0000000000000000"
+            scale: 10
+  - entity: sensor
+    name: Current A
+    class: current
+    category: diagnostic
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: mA
+        mapping:
+          - mask: "000000FFFFFF0000000000"
+  - entity: sensor
+    name: Power A
+    class: power
+    category: diagnostic
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: W
+        mapping:
+          - mask: "000000000000FFFFFF0000"
+  - entity: sensor
+    name: Voltage B
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 7
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        mapping:
+          - mask: "FFFFFF0000000000000000"
+            scale: 10
+  - entity: sensor
+    name: Current B
+    class: current
+    category: diagnostic
+    dps:
+      - id: 7
+        type: base64
+        name: sensor
+        optional: true
+        unit: mA
+        mapping:
+          - mask: "000000FFFFFF0000000000"
+  - entity: sensor
+    name: Power B
+    class: power
+    category: diagnostic
+    dps:
+      - id: 7
+        type: base64
+        name: sensor
+        optional: true
+        unit: W
+        mapping:
+          - mask: "000000000000FFFFFF0000"
+  - entity: sensor
+    name: Voltage C
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 8
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        mapping:
+          - mask: "FFFFFF0000000000000000"
+            scale: 10
+  - entity: sensor
+    name: Current C
+    class: current
+    category: diagnostic
+    dps:
+      - id: 8
+        type: base64
+        name: sensor
+        optional: true
+        unit: mA
+        mapping:
+          - mask: "000000FFFFFF0000000000"
+  - entity: sensor
+    name: Power C
+    class: power
+    category: diagnostic
+    dps:
+      - id: 8
+        type: base64
+        name: sensor
+        optional: true
+        unit: W
+        mapping:
+          - mask: "000000000000FFFFFF0000"