Przeglądaj źródła

Add SNRE battery and Rinnai heat pump water heater profiles (#5051)

* Add SNRE battery and Rinnai water heater profiles

* Clean up device profile diagnostics

* fix: remove redundant names that hide class translations

- Remove name: Current / name: Voltage from SNRE battery (class translation covers these)
- Replace name: Ambient temperature with translation_key: ambient_temperature in Rinnai profile

* fix: address review feedback on Rinnai and SNRE device profiles

- Remove branding from water_heater entity name
- Map operation_modes to HA standard values (heat_pump/eco/performance/electric/away)
- Add class: running to Fan binary_sensor
- Remove name from Mains voltage sensor
- Rename Compressor operation hours -> Compressor runtime
- Rename Unit on hours -> Unit runtime
- Remove name from State of charge sensor (snre_battery)

* fix(snre_battery): unbrand top level name

PR #5051

---------

Co-authored-by: oscar de lellos <o@enzo-luca.com>
Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
PetePeter 1 dzień temu
rodzic
commit
7588a3dd54

+ 149 - 0
custom_components/tuya_local/devices/rinnai_heat_pump_water_heater.yaml

@@ -0,0 +1,149 @@
+name: Heat pump water heater
+products:
+  - id: svhcpdyj8gvgagyg
+    manufacturer: Rinnai
+    model: Heat pump hot water system
+entities:
+  - entity: water_heater
+    dps:
+      - id: 2
+        type: string
+        name: operation_mode
+        mapping:
+          - dps_val: STANDARD
+            value: heat_pump
+            default: true
+          - dps_val: ECO
+            value: eco
+          - dps_val: HYBRID
+            value: performance
+          - dps_val: ELECTRIC
+            value: electric
+          - dps_val: VACATION
+            value: away
+      - id: 3
+        type: integer
+        name: current_temperature
+        unit: C
+      - id: 5
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 25
+          max: 75
+  - entity: switch
+    name: Power
+    dps:
+      - id: 1
+        type: boolean
+        name: switch
+  - entity: lock
+    translation_key: child_lock
+    dps:
+      - id: 12
+        type: boolean
+        name: lock
+  - entity: sensor
+    name: Operating state
+    category: diagnostic
+    dps:
+      - id: 8
+        type: string
+        name: sensor
+  - entity: sensor
+    translation_key: ambient_temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 101
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: Tank temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 102
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: Discharge temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 103
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: Evaporator temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 104
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: Suction temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 105
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: EEV opening
+    category: diagnostic
+    dps:
+      - id: 107
+        type: integer
+        name: sensor
+        unit: steps
+        class: measurement
+  - entity: binary_sensor
+    name: Fan
+    class: running
+    category: diagnostic
+    dps:
+      - id: 108
+        type: boolean
+        name: sensor
+  - entity: sensor
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 114
+        type: integer
+        name: sensor
+        unit: V
+        class: measurement
+  - entity: sensor
+    name: Compressor runtime
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 118
+        type: integer
+        name: sensor
+        unit: h
+        class: total_increasing
+  - entity: sensor
+    name: Unit runtime
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 119
+        type: integer
+        name: sensor
+        unit: h
+        class: total_increasing

+ 308 - 0
custom_components/tuya_local/devices/snre_battery.yaml

@@ -0,0 +1,308 @@
+name: Battery
+products:
+  - id: l2ak4zqufuarm0j3
+    manufacturer: SNRE
+    model: Battery module
+entities:
+  - entity: sensor
+    class: current
+    dps:
+      - id: 101
+        type: integer
+        name: sensor
+        unit: A
+        mapping:
+          - scale: 100
+        class: measurement
+  - entity: sensor
+    class: voltage
+    dps:
+      - id: 102
+        type: integer
+        name: sensor
+        unit: V
+        mapping:
+          - scale: 100
+        class: measurement
+  - entity: sensor
+    class: battery
+    dps:
+      - id: 103
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+  - entity: sensor
+    name: Remaining capacity
+    category: diagnostic
+    dps:
+      - id: 105
+        type: integer
+        name: sensor
+        unit: Ah
+        mapping:
+          - scale: 10
+        class: measurement
+  - entity: sensor
+    name: Capacity
+    category: diagnostic
+    dps:
+      - id: 106
+        type: integer
+        name: sensor
+        unit: Ah
+        mapping:
+          - scale: 10
+        class: measurement
+  - entity: sensor
+    name: Cycle count
+    category: diagnostic
+    dps:
+      - id: 109
+        type: integer
+        name: sensor
+        class: total_increasing
+  - entity: sensor
+    name: Battery temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 115
+        type: integer
+        name: sensor
+        unit: C
+        mapping:
+          - scale: 10
+        class: measurement
+  - entity: sensor
+    name: MOS temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 116
+        type: integer
+        name: sensor
+        unit: C
+        mapping:
+          - scale: 10
+        class: measurement
+  - entity: sensor
+    name: Environment temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 119
+        type: integer
+        name: sensor
+        unit: C
+        mapping:
+          - scale: 10
+        class: measurement
+  - entity: sensor
+    name: Cell 01 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 120
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 02 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 121
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 03 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 122
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 04 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 123
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 05 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 124
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 06 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 125
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 07 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 126
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 08 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 127
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 09 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 128
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 10 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 129
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 11 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 130
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 12 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 131
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 13 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 132
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 14 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 133
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 15 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 134
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement
+  - entity: sensor
+    name: Cell 16 voltage
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 135
+        type: integer
+        name: sensor
+        unit: V
+        precision: 2
+        mapping:
+          - scale: 1000
+        class: measurement