Browse Source

Add support for Yagusmart energy meter

Issue #1473
Jason Rumney 2 năm trước cách đây
mục cha
commit
8a40086bfa

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -463,3 +463,4 @@ Further device support has been made with the assistance of users. Please consid
 - [rbrtwillis](https://github.com/rbrtwillis) for assisting with support for Inkbird IHC-200 humidity controllers.
 - [vojeroen](https://github.com/vojeroen) for contributing support for CleanAir 605B humidifiers.
 - [fantnhu](https://github.com/fantnhu) for assisting with support for Tesla aroma diffusers and PNI water feeders.
+- [sudo-nitz](https://github.com/sudo-nitz) for assisting with support for Yagusmart 3PN 63A energy meter.

+ 1 - 0
DEVICES.md

@@ -316,6 +316,7 @@
 - V-WIFI-DL02-ES energy consumption clamp meter
 - WDYK 2P63A energy meter
 - WDYK 3 phase 4 pole 400V energy meter circuit breaker
+- Yagusmart 3PN 63A 3-phase eneregy meter 
 - ZM-Wi-Fi smart meter
 
 ### Battery Charger

+ 223 - 0
custom_components/tuya_local/devices/yagusmart_3pn_energymeter.yaml

@@ -0,0 +1,223 @@
+name: Energy meter
+products:
+  - id: fygozcnralhwbauo
+    name: Yagusmart 3PN 63A
+primary_entity:
+  entity: sensor
+  class: energy
+  dps:
+    - id: 1
+      type: integer
+      name: sensor
+      unit: kWh
+      class: total_increasing
+      mapping:
+        - scale: 100
+    - id: 17
+      type: string
+      name: alarm_set_1
+      optional: true
+    - id: 18
+      type: string
+      name: alarm_set_2
+      optional: true
+    - id: 19
+      type: string
+      name: breaker_id
+secondary_entities:
+  - entity: sensor
+    name: Reverse energy
+    class: energy
+    category: diagnostic
+    dps:
+      - id: 2
+        type: integer
+        name: sensor
+        unit: kWh 
+        class: measurement
+        mapping:
+          - scale: 100
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 9
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 9
+        type: bitfield
+        name: fault_code
+  - entity: switch
+    name: Prepay
+    category: config
+    icon: "mdi:hand-coin"
+    dps:
+      - id: 11
+        type: boolean
+        name: switch
+  - entity: button
+    name: Balance reset
+    category: config
+    dps:
+      - id: 12
+        type: boolean
+        name: button
+  - entity: sensor
+    name: Energy balance
+    class: energy_storage
+    category: diagnostic
+    dps:
+      - id: 13
+        type: integer
+        name: sensor
+        unit: kWh
+        class: measurement
+        mapping:
+          - scale: 100
+  - entity: number
+    name: Charge energy
+    class: energy_storage
+    category: config
+    icon: "mdi:cash"
+    dps:
+      - id: 14
+        type: integer
+        name: value
+        optional: true
+        unit: kWh
+        range:
+          min: 0
+          max: 999999
+        mapping:
+          - scale: 100
+  - entity: sensor
+    name: Voltage A
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 6
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        class: measurement
+        mapping:
+          - mask: "FFFF000000000000"
+            scale: 10
+  - entity: sensor
+    name: Current A
+    class: current
+    category: diagnostic
+    dps:
+      - id: 6
+        type: base64
+        optional: true
+        name: sensor
+        unit: A
+        class: measurement
+        mapping:
+          - mask: "0000FFFFFF000000"
+            scale: 1000
+  - entity: sensor
+    name: Power A
+    class: power
+    category: diagnostic
+    dps:
+      - id: 6
+        type: base64
+        optional: true
+        name: sensor
+        unit: kW
+        class: measurement
+        mapping:
+          - mask: "0000000000FFFFFF"
+            scale: 1000
+  - entity: sensor
+    name: Voltage B
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 7
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        class: measurement
+        mapping:
+          - mask: "FFFF000000000000"
+            scale: 10
+  - entity: sensor
+    name: Current B
+    class: current
+    category: diagnostic
+    dps:
+      - id: 7
+        type: base64
+        optional: true
+        name: sensor
+        unit: A
+        class: measurement
+        mapping:
+          - mask: "0000FFFFFF000000"
+            scale: 1000
+  - entity: sensor
+    name: Power B
+    class: power
+    category: diagnostic
+    dps:
+      - id: 7
+        type: base64
+        optional: true
+        name: sensor
+        unit: kW
+        class: measurement
+        mapping:
+          - mask: "0000000000FFFFFF"
+            scale: 1000
+  - entity: sensor
+    name: Voltage C
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 8
+        type: base64
+        name: sensor
+        optional: true
+        unit: V
+        class: measurement
+        mapping:
+          - mask: "FFFF000000000000"
+            scale: 10
+  - entity: sensor
+    name: Current C
+    class: current
+    category: diagnostic
+    dps:
+      - id: 8
+        type: base64
+        optional: true
+        name: sensor
+        unit: A
+        class: measurement
+        mapping:
+          - mask: "0000FFFFFF000000"
+            scale: 1000
+  - entity: sensor
+    name: Power C
+    class: power
+    category: diagnostic
+    dps:
+      - id: 8
+        type: base64
+        optional: true
+        name: sensor
+        unit: kW
+        class: measurement
+        mapping:
+          - mask: "0000000000FFFFFF"
+            scale: 1000