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

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
         name: sensor
         type: integer
-        unit: W
+        unit: kW
         class: measurement
         force: true
         mapping:
-          - scale: 10
+          - scale: 10000
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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