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

Energy meters: standardise units to A, kW

For energy meters, the device's intention is to monitor a whole
circuit, not just a single device which may be low power.  So it makes
sense for such devices to return current in amps, and power in kW,
even if the underlying device is giving mA and 0.1W precision like most
smartplugs do.

This is a frequently asked change, which can be taken care of in the
UI, but making the change at least for energy meters should head off
further requests.

For smartplugs, a nore convincing case can be made that it is a matter
of preference and that many use cases will be for loads where the
smaller units make more sense.
Jason Rumney 2 лет назад
Родитель
Сommit
16b193ef96

+ 2 - 2
custom_components/tuya_local/devices/compteur_energy_meter.yaml

@@ -65,9 +65,9 @@ secondary_entities:
       - id: 19
       - id: 19
         name: sensor
         name: sensor
         type: integer
         type: integer
-        unit: W
+        unit: kW
         class: measurement
         class: measurement
         force: true
         force: true
         mapping:
         mapping:
-          - scale: 10
+          - scale: 10000
 
 

+ 4 - 2
custom_components/tuya_local/devices/emylo_energy_meter.yaml

@@ -116,9 +116,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: mA
+        unit: A
         mapping:
         mapping:
           - mask: "000000FFFFFF0000000000"
           - mask: "000000FFFFFF0000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Power A
     name: Power A
     class: power
     class: power
@@ -128,6 +129,7 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: W
+        unit: kW
         mapping:
         mapping:
           - mask: "000000000000FFFFFF0000"
           - mask: "000000000000FFFFFF0000"
+            scale: 1000

+ 5 - 2
custom_components/tuya_local/devices/parkside_plgs2012a1_smart_charger.yaml

@@ -26,7 +26,8 @@ secondary_entities:
           max: 30000
           max: 30000
         mapping:
         mapping:
           - step: 100
           - step: 100
-        unit: mA
+            scale: 1000
+        unit: A
   - entity: number
   - entity: number
     name: Charge voltage
     name: Charge voltage
     icon: "mdi:battery-charging"
     icon: "mdi:battery-charging"
@@ -122,7 +123,9 @@ secondary_entities:
       - id: 101
       - id: 101
         type: integer
         type: integer
         name: sensor
         name: sensor
-        unit: mA
+        unit: A
+        mapping:
+          - scale: 1000
   - entity: sensor
   - entity: sensor
     name: Time remaining
     name: Time remaining
     class: duration
     class: duration

+ 3 - 1
custom_components/tuya_local/devices/pj1103_clamp_meter.yaml

@@ -35,9 +35,11 @@ secondary_entities:
       - id: 18
       - id: 18
         type: integer
         type: integer
         name: sensor
         name: sensor
-        unit: mA
+        unit: A
         force: true
         force: true
         class: measurement
         class: measurement
+        mapping:
+          - scale: 1000
       - id: 23
       - id: 23
         type: integer
         type: integer
         name: calibration
         name: calibration

+ 4 - 2
custom_components/tuya_local/devices/smartmcb_smt006_energymeter.yaml

@@ -298,9 +298,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: mA
+        unit: A
         mapping:
         mapping:
           - mask: "000000FFFFFF0000000000"
           - mask: "000000FFFFFF0000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Power A
     name: Power A
     class: power
     class: power
@@ -310,6 +311,7 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: W
+        unit: kW
         mapping:
         mapping:
           - mask: "000000000000FFFFFF0000"
           - mask: "000000000000FFFFFF0000"
+            scale: 1000

+ 3 - 1
custom_components/tuya_local/devices/taxnele_energy_meter.yaml

@@ -64,8 +64,10 @@ secondary_entities:
       - id: 15
       - id: 15
         type: integer
         type: integer
         name: sensor
         name: sensor
-        unit: mA
+        unit: A
         class: measurement
         class: measurement
+        mapping:
+          - scale: 1000
   - entity: switch
   - entity: switch
     name: Circuit breaker
     name: Circuit breaker
     icon: "mdi:fuse"
     icon: "mdi:fuse"

+ 4 - 2
custom_components/tuya_local/devices/tompd_63lw_breaker.yaml

@@ -129,9 +129,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: mA
+        unit: A
         mapping:
         mapping:
           - mask: "000000FFFFFF0000000000"
           - mask: "000000FFFFFF0000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Power A
     name: Power A
     class: power
     class: power
@@ -141,6 +142,7 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: W
+        unit: kW
         mapping:
         mapping:
           - mask: "000000000000FFFFFF0000"
           - mask: "000000000000FFFFFF0000"
+            scale: 1000

+ 12 - 6
custom_components/tuya_local/devices/wdyk_2p63a_energy_meter.yaml

@@ -313,9 +313,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: mA
+        unit: A
         mapping:
         mapping:
           - mask: "000000FFFFFF0000000000"
           - mask: "000000FFFFFF0000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Power A
     name: Power A
     class: power
     class: power
@@ -325,9 +326,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: W
+        unit: kW
         mapping:
         mapping:
           - mask: "000000000000FFFFFF0000"
           - mask: "000000000000FFFFFF0000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Voltage B
     name: Voltage B
     class: voltage
     class: voltage
@@ -350,9 +352,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: mA
+        unit: A
         mapping:
         mapping:
           - mask: "000000FFFFFF0000000000"
           - mask: "000000FFFFFF0000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Power B
     name: Power B
     class: power
     class: power
@@ -362,9 +365,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: W
+        unit: kW
         mapping:
         mapping:
           - mask: "000000000000FFFFFF0000"
           - mask: "000000000000FFFFFF0000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Voltage C
     name: Voltage C
     class: voltage
     class: voltage
@@ -387,9 +391,10 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: mA
+        unit: A
         mapping:
         mapping:
           - mask: "000000FFFFFF0000000000"
           - mask: "000000FFFFFF0000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Power C
     name: Power C
     class: power
     class: power
@@ -399,6 +404,7 @@ secondary_entities:
         type: base64
         type: base64
         name: sensor
         name: sensor
         optional: true
         optional: true
-        unit: W
+        unit: kW
         mapping:
         mapping:
           - mask: "000000000000FFFFFF0000"
           - mask: "000000000000FFFFFF0000"
+            scale: 1000

+ 20 - 13
custom_components/tuya_local/devices/wdyk_3phase_energymonitor.yaml

@@ -121,10 +121,11 @@ secondary_entities:
       - id: 102
       - id: 102
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: mA
+        unit: A
         class: measurement
         class: measurement
         mapping:
         mapping:
           - mask: "FFFFFF000000000000"
           - mask: "FFFFFF000000000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Current B
     name: Current B
     class: current
     class: current
@@ -133,10 +134,11 @@ secondary_entities:
       - id: 102
       - id: 102
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: mA
+        unit: A
         class: measurement
         class: measurement
         mapping:
         mapping:
           - mask: "000000FFFFFF000000"
           - mask: "000000FFFFFF000000"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Current C
     name: Current C
     class: current
     class: current
@@ -145,10 +147,11 @@ secondary_entities:
       - id: 102
       - id: 102
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: mA
+        unit: A
         class: measurement
         class: measurement
         mapping:
         mapping:
           - mask: "000000000000FFFFFF"
           - mask: "000000000000FFFFFF"
+            scale: 1000
   - entity: sensor
   - entity: sensor
     name: Total power
     name: Total power
     class: power
     class: power
@@ -157,10 +160,10 @@ secondary_entities:
       - id: 103
       - id: 103
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: W
+        unit: kW
         class: measurement
         class: measurement
         mapping:
         mapping:
-          - scale: 10
+          - scale: 10000
             mask: "FFFFFF000000000000000000"
             mask: "FFFFFF000000000000000000"
   - entity: sensor
   - entity: sensor
     name: Power A
     name: Power A
@@ -170,10 +173,10 @@ secondary_entities:
       - id: 103
       - id: 103
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: W
+        unit: kW
         class: measurement
         class: measurement
         mapping:
         mapping:
-          - scale: 10
+          - scale: 10000
             mask: "000000FFFFFF000000000000"
             mask: "000000FFFFFF000000000000"
   - entity: sensor
   - entity: sensor
     name: Power B
     name: Power B
@@ -183,10 +186,10 @@ secondary_entities:
       - id: 103
       - id: 103
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: W
+        unit: kW
         class: measurement
         class: measurement
         mapping:
         mapping:
-          - scale: 10
+          - scale: 10000
             mask: "000000000000FFFFFF000000"
             mask: "000000000000FFFFFF000000"
   - entity: sensor
   - entity: sensor
     name: Power C
     name: Power C
@@ -196,10 +199,10 @@ secondary_entities:
       - id: 103
       - id: 103
         type: base64
         type: base64
         name: sensor
         name: sensor
-        unit: W
+        unit: kW
         class: measurement
         class: measurement
         mapping:
         mapping:
-          - scale: 10
+          - scale: 10000
             mask: "000000000000000000FFFFFF"
             mask: "000000000000000000FFFFFF"
   - entity: sensor
   - entity: sensor
     name: Temperature
     name: Temperature
@@ -218,8 +221,10 @@ secondary_entities:
       - id: 107
       - id: 107
         type: integer
         type: integer
         name: sensor
         name: sensor
-        unit: Wh
+        unit: kWh
         class: measurement
         class: measurement
+        mapping:
+          - scale: 1000
   - entity: sensor
   - entity: sensor
     name: Energy
     name: Energy
     class: energy
     class: energy
@@ -227,8 +232,10 @@ secondary_entities:
       - id: 114
       - id: 114
         type: integer
         type: integer
         name: sensor
         name: sensor
-        unit: Wh
+        unit: kWh
         class: total_increasing
         class: total_increasing
+        mapping:
+          -scale: 1000
   - entity: binary_sensor
   - entity: binary_sensor
     name: Locking
     name: Locking
     class: lock
     class: lock