Selaa lähdekoodia

Absina EV charger: add dynamic behaviour

- combine charging current settings into one, determined by the SetMaxA dp as to which to use.
- make phaseB and phaseC sensors available if Three_phase is being indicated by the device instead of hiding them unconditionally.

PR #2816
Jason Rumney 1 vuosi sitten
vanhempi
commit
3e4452c419
1 muutettua tiedostoa jossa 57 lisäystä ja 41 poistoa
  1. 57 41
      custom_components/tuya_local/devices/absina_evcharger.yaml

+ 57 - 41
custom_components/tuya_local/devices/absina_evcharger.yaml

@@ -210,24 +210,38 @@ entities:
     name: Phase B voltage
     class: voltage
     category: diagnostic
-    hidden: true
+    hidden: unavailable
     dps:
       - id: 103
         type: integer
         name: sensor
         unit: V
         class: measurement
+      - id: 108
+        type: string
+        name: available
+        mapping:
+          - dps_val: Three_phase
+            value: true
+          - value: false
   - entity: sensor  # C_Voltage
     name: Phase C voltage
     class: voltage
     category: diagnostic
-    hidden: true
+    hidden: unavailable
     dps:
       - id: 104
         type: integer
         name: sensor
         unit: V
         class: measurement
+      - id: 108
+        type: string
+        name: available
+        mapping:
+          - dps_val: Three_phase
+            value: true
+          - value: false
 
   # Only Channel A is providing values
   - entity: sensor  # A_Current -105-107- OK
@@ -245,7 +259,7 @@ entities:
   - entity: sensor  # B_Current
     name: Phase B current
     class: current
-    hidden: true
+    hidden: unavailable
     category: diagnostic
     dps:
       - id: 106
@@ -255,10 +269,17 @@ entities:
         class: measurement
         mapping:
           - scale: 10
+      - id: 108
+        type: string
+        name: available
+        mapping:
+          - dps_val: Three_phase
+            value: true
+          - value: false
   - entity: sensor  # C_Current
     name: Phase C current
     class: current
-    hidden: true
+    hidden: unavailable
     category: diagnostic
     dps:
       - id: 107
@@ -268,6 +289,13 @@ entities:
         class: measurement
         mapping:
           - scale: 10
+      - id: 108
+        type: string
+        name: available
+        mapping:
+          - dps_val: Three_phase
+            value: true
+          - value: false
 
   # Seems not to work or change. on single phase even when loading 3 phase
   - entity: sensor  # PhaseFlag -108-
@@ -329,19 +357,14 @@ entities:
           - scale: 10
         class: total_increasing
 
-  - entity: sensor  # DeviceMaxSetA -113- OK
-    name: DeviceMaxSetA
-    category: diagnostic
-    dps:
-      - id: 113
-        type: string
-        name: sensor
-
   - entity: number  # Set16A -114- OK
-    name: Current limit 16A
+    name: Current limit
     class: current
     category: config
     dps:
+      - id: 113
+        type: string
+        name: max_set_a
       - id: 114
         type: integer
         name: value
@@ -349,46 +372,39 @@ entities:
         range:
           min: 8
           max: 16
-
-  # Current regulation for devices with higher power than 11kw, untested
-  - entity: number  # Set32A -115- OK
-    name: Current limit 32A
-    hidden: true
-    class: current
-    category: config
-    dps:
+        mapping:
+          - constraint: max_set_a
+            conditions:
+              - dps_val: Max32A
+                value_redirect: value_32a
+                range:
+                  min: 8
+                  max: 32
+              - dps_val: Max40A
+                value_redirect: value_40a
+                range:
+                  min: 12
+                  max: 40
+              - dps_val: Max50A
+                value_redirect: value_50a
+                range:
+                  min: 12
+                  max: 50
       - id: 115
         type: integer
-        name: value
-        unit: A
+        name: value_32a
         range:
           min: 8
           max: 32
-
-  - entity: number  # Set40A -116- OK
-    name: Current limit 40A
-    hidden: true
-    class: current
-    category: config
-    dps:
       - id: 116
         type: integer
-        name: value
-        unit: A
+        name: value_40a
         range:
           min: 12
           max: 40
-
-  - entity: number  # Set50A -117- OK
-    name: Current limit 50A
-    class: current
-    hidden: true
-    category: config
-    dps:
       - id: 117
         type: integer
-        name: value
-        unit: A
+        name: value_50a
         range:
           min: 12
           max: 50