Преглед изворни кода

feat(feyree_ev_portable_charger): expand to cover higher capacity models

According to discussion #3373 the 22kW feyree charger is almost compatible
except for target range. Full details for the same product id is in
issue #3355, so expand this config to cover the full dps of this series.

Obviously some of these are only relevant to the higher power models,
and 3-phase, so some are hidden by default to keep things simple for the
single-phase installations, which are perhaps more common in domestic
use cases.
Jason Rumney пре 8 месеци
родитељ
комит
85e1d7d2ed
1 измењених фајлова са 293 додато и 30 уклоњено
  1. 293 30
      custom_components/tuya_local/devices/feyree_ev_portable_charger.yaml

+ 293 - 30
custom_components/tuya_local/devices/feyree_ev_portable_charger.yaml

@@ -3,6 +3,9 @@ products:
   - id: 4ooiu7apnjjumn0d
     manufacturer: Feyree
     model: F-M24
+  - id: ebdm8ax35pgodi2s
+    manufacturer: Feyree
+    model: 22kW 3phase
 entities:
   - entity: sensor
     class: enum
@@ -49,32 +52,15 @@ entities:
           - dps_val: charge_pct
           - dps_val: charge_energy
           - dps_val: charge_schedule
-      - id: 15
-        type: integer
-        optional: true
-        name: balance_energy
-        unit: A
-        range:
-          min: 8
-          max: 16
-        mapping:
-          - scale: 3
-      - id: 18
-        type: boolean
+      - id: 23
+        type: string
         optional: true
-        name: switch
-      - id: 25
-        type: integer
+        name: version
+      - id: 108
+        type: string
         optional: true
-        name: charge_energy_once
-        unit: kWh
-        range:
-          min: 0
-          max: 999999
-        mapping:
-          - scale: 2
+        name: phase_info
   - entity: binary_sensor
-    name: Alarm event
     class: problem
     icon: 'mdi:alert-outline'
     dps:
@@ -87,7 +73,10 @@ entities:
           - value: true
       - id: 10
         type: bitfield
-        name: alarm_descriptions
+        name: fault_code
+      - id: 10
+        type: bitfield
+        name: description
         mapping:
           - dps_val: 0
             value: "Ready"
@@ -123,6 +112,19 @@ entities:
             value: "Socket leakage"
           - dps_val: 32768
             value: "Socket temperature is too high"
+  - entity: sensor
+    name: Balance energy
+    class: energy_storage
+    category: diagnostic
+    dps:
+      - id: 15
+        type: integer
+        optional: true
+        name: sensor
+        unit: kWh
+        class: measurement
+        mapping:
+          - scale: 1000
   - entity: button
     name: Clear energy
     class: restart
@@ -132,6 +134,42 @@ entities:
         type: boolean
         name: button
         optional: true
+  - entity: switch
+    category: config
+    dps:
+      - id: 18
+        type: boolean
+        optional: true
+        name: switch
+  - entity: sensor
+    name: Last charge
+    class: energy_storage
+    category: diagnostic
+    dps:
+      - id: 25
+        type: integer
+        optional: true
+        name: sensor
+        unit: kWh
+        class: measurement
+        mapping:
+          - scale: 100
+  - entity: switch
+    category: config
+    name: Live updates
+    icon: "mdi:chart-bar"
+    dps:
+      - id: 27
+        type: string
+        name: switch
+        optional: true
+        mapping:
+          - dps_val: online
+            value: true
+          - dps_val: offline
+            value: false
+          - value: false
+            hidden: true
   - entity: number
     name: Set charge current
     icon: "mdi:ev-plug-type2"
@@ -143,6 +181,79 @@ entities:
         range:
           min: 8
           max: 16
+        mapping:
+          - constraint: maximum
+            conditions:
+              - dps_val: Max32A
+                value_redirect: value_32a
+              - dps_val: Max40A
+                value_redirect: value_40a
+              - dps_val: Max50A
+                value_redirect: value_50a
+              - dps_val: Max60A
+                value_redirect: value_60a
+              - dps_val: Max80A
+                value_redirect: value_80a
+      - id: 113
+        type: string
+        optional: true
+        name: maximum
+        mapping:
+          - dps_val: Max16A
+            value: 16
+          - dps_val: Max32A
+            value: 32
+          - dps_val: Max40A
+            value: 40
+          - dps_val: Max50A
+            value: 50
+          - dps_val: Max60A
+            value: 60
+          - dps_val: Max80A
+            value: 80
+      - id: 113
+        type: string
+        optional: true
+        name: minimum
+        mapping:
+          - dps_val: Max80A
+            value: 24
+          - value: 8
+      - id: 115
+        type: integer
+        optional: true
+        name: value_32a
+        range:
+          min: 8
+          max: 32
+      - id: 116
+        type: integer
+        optional: true
+        name: value_40a
+        range:
+          min: 8
+          max: 40
+      - id: 117
+        type: integer
+        optional: true
+        name: value_50a
+        range:
+          min: 8
+          max: 50
+      - id: 125
+        type: integer
+        optional: true
+        name: value_60a
+        range:
+          min: 8
+          max: 60
+      - id: 126
+        type: integer
+        optional: true
+        name: value_80a
+        range:
+          min: 24
+          max: 80
   - entity: number
     name: Charge delay
     category: config
@@ -155,6 +266,10 @@ entities:
         range:
           min: 0
           max: 15
+      - id: 121
+        type: string
+        optional: true
+        name: display
   - entity: sensor
     class: power
     dps:
@@ -176,29 +291,101 @@ entities:
         class: measurement
         mapping:
           - scale: 10
-  - entity: switch
+  - entity: sensor
+    name: Temperature 2
+    class: temperature
+    category: diagnostic
+    hidden: unavailable
+    dps:
+      - id: 111
+        type: integer
+        optional: true
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+      - id: 111
+        type: integer
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
+  - entity: select
     name: Charging
+    icon: "mdi:ev-station"
     dps:
       - id: 124
         type: string
+        name: option
+        mapping:
+          - dps_val: CloseCharging
+            value: "off"
+          - dps_val: OpenCharging
+            value: "on"
+          - dps_val: WaitOperation
+            value: on_demand
+  - entity: sensor
+    class: voltage
+    category: diagnostic
+    dps:
+      - id: 102
+        type: integer
+        name: sensor
+        unit: V
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    class: voltage
+    translation_key: voltage_x
+    translation_placeholders:
+      x: B
+    category: diagnostic
+    hidden: unavailable
+    dps:
+      - id: 103
+        type: integer
         optional: true
-        name: switch
+        name: sensor
+        unit: V
+        class: measurement
         mapping:
-          - dps_val: "CloseCharging"
+          - scale: 10
+      - id: 103
+        type: integer
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
             value: false
-          - dps_val: "OpenCharging"
-            value: true
+          - value: true
   - entity: sensor
     class: voltage
+    translation_key: voltage_x
+    translation_placeholders:
+      x: C
     category: diagnostic
+    hidden: unavailable
     dps:
-      - id: 102
+      - id: 104
         type: integer
+        optional: true
         name: sensor
         unit: V
         class: measurement
         mapping:
           - scale: 10
+      - id: 104
+        type: integer
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: sensor
     class: current
     dps:
@@ -209,6 +396,50 @@ entities:
         class: measurement
         mapping:
           - scale: 10
+  - entity: sensor
+    class: current
+    translation_key: voltage_x
+    translation_placeholders:
+      x: B
+    hidden: unavailable
+    dps:
+      - id: 106
+        type: integer
+        name: sensor
+        unit: A
+        class: measurement
+        mapping:
+          - scale: 10
+      - id: 106
+        type: integer
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
+  - entity: sensor
+    class: current
+    translation_key: voltage_x
+    translation_placeholders:
+      x: C
+    hidden: unavailable
+    dps:
+      - id: 107
+        type: integer
+        name: sensor
+        unit: A
+        class: measurement
+        mapping:
+          - scale: 10
+      - id: 107
+        type: integer
+        optional: true
+        name: available
+        mapping:
+          - dps_val: null
+            value: false
+          - value: true
   - entity: sensor
     class: energy
     dps:
@@ -231,6 +462,10 @@ entities:
         range:
           min: 0
           max: 15
+      - id: 122
+        type: string
+        optional: true
+        name: display
   - entity: sensor
     name: Charging time
     category: diagnostic
@@ -238,3 +473,31 @@ entities:
       - id: 120
         type: string
         name: sensor
+  - entity: text
+    name: Alarm set 1
+    category: config
+    icon: "mdi:"
+    hidden: true
+    dps:
+      - id: 11
+        type: base64
+        optional: true
+        name: value
+  - entity: text
+    name: Alarm set 2
+    category: config
+    icon: "mdi:"
+    hidden: true
+    dps:
+      - id: 12
+        type: base64
+        optional: true
+        name: value
+  - entity: switch
+    name: RFID
+    category: config
+    dps:
+      - id: 123
+        type: boolean
+        optional: true
+        name: switch