Преглед на файлове

Update CN EV charger 22kw.yaml

feat(ev_charger): Refactor Tuya Local EV Charger config to resolve sensor errors

Refactored the Home Assistant Tuya Local configuration for the EV charger to address previous errors related to unit of measurement and state class definitions.

Key changes:
- **Updated YAML structure:** Migrated the entity definitions to the recommended `entity` and `dps` nested structure. This ensures proper application of `unit` (previously `unit_of_measurement`) and `class` (previously `device_class`).
- **Corrected units and device classes:** Ensured all sensors correctly specify their `unit` and `class` directly within the `dps` block, resolving the "native unit of measurement 'None'" errors.
- **Adjusted state class for monetary sensor:** Removed `state_class: total_increasing` from the "Transaction Amount" (`DP 155`) sensor, as it is incompatible with the `monetary` device class.

These changes aim to ensure all EV charger parameters are correctly displayed in Home Assistant without log warnings.
Anzic23 преди 8 месеца
родител
ревизия
6c6ad83fff
променени са 1 файла, в които са добавени 51 реда и са изтрити 34 реда
  1. 51 34
      custom_components/tuya_local/devices/CN EV charger 22kw.yaml

+ 51 - 34
custom_components/tuya_local/devices/CN EV charger 22kw.yaml

@@ -1,9 +1,10 @@
-name: CN EV charger # Название, которое будет отображаться в Home Assistant
+name: Моя Зарядная Станция # Название, которое будет отображаться в Home Assistant
 products:
 products:
-  - id: s2wublk5n2pycus1 # product_id, который вы предодоставили
+  - id: s2wublk5n2pycus1 # Product ID из ваших данных
     manufacturer: cn ev charger # Производитель, который вы предоставили
     manufacturer: cn ev charger # Производитель, который вы предоставили
     model: 22kw # Модель, которую вы предоставили
     model: 22kw # Модель, которую вы предоставили
-    model_id: 000004uqrl # modelId из данных вашей зарядки
+    name: EV Charger # Название продукта
+    model_id: 000004uqrl # Model ID из ваших данных
 entities:
 entities:
   # DP 109: charging_state (Boolean) - Переключатель состояния зарядки
   # DP 109: charging_state (Boolean) - Переключатель состояния зарядки
   # accessMode: rw
   # accessMode: rw
@@ -19,12 +20,13 @@ entities:
   # accessMode: ro
   # accessMode: ro
   - entity: sensor
   - entity: sensor
     name: Напряжение Фазы A
     name: Напряжение Фазы A
-    class: voltage
-    unit: V
+    class: voltage # device_class
     dps:
     dps:
       - id: 103
       - id: 103
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: V # unit_of_measurement
+        class: measurement # state_class
         mapping:
         mapping:
           - scale: 100 # Делим на 100 для корректного значения
           - scale: 100 # Делим на 100 для корректного значения
 
 
@@ -33,11 +35,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Напряжение Фазы B
     name: Напряжение Фазы B
     class: voltage
     class: voltage
-    unit: V
     dps:
     dps:
       - id: 104
       - id: 104
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: V
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -46,11 +49,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Напряжение Фазы C
     name: Напряжение Фазы C
     class: voltage
     class: voltage
-    unit: V
     dps:
     dps:
       - id: 105
       - id: 105
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: V
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -59,11 +63,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Ток Фазы A
     name: Ток Фазы A
     class: current
     class: current
-    unit: A
     dps:
     dps:
       - id: 106
       - id: 106
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: A
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -72,11 +77,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Ток Фазы B
     name: Ток Фазы B
     class: current
     class: current
-    unit: A
     dps:
     dps:
       - id: 107
       - id: 107
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: A
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -85,11 +91,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Ток Фазы C
     name: Ток Фазы C
     class: current
     class: current
-    unit: A
     dps:
     dps:
       - id: 108
       - id: 108
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: A
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -98,11 +105,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Общий Ток
     name: Общий Ток
     class: current
     class: current
-    unit: A
     dps:
     dps:
       - id: 131
       - id: 131
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: A
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -111,12 +119,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Заряженная Энергия
     name: Заряженная Энергия
     class: energy
     class: energy
-    unit: kWh
     dps:
     dps:
       - id: 110
       - id: 110
         type: integer
         type: integer
         name: sensor
         name: sensor
-        class: total_increasing # Или measurement, если это мгновенное значение
+        unit: kWh
+        class: total_increasing # Этот state_class допустим для device_class: energy
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -125,11 +133,11 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Мощность Зарядки 1
     name: Мощность Зарядки 1
     class: power
     class: power
-    unit: kW
     dps:
     dps:
       - id: 150
       - id: 150
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: kW
         class: measurement
         class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
@@ -139,11 +147,11 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Мощность Зарядки 2
     name: Мощность Зарядки 2
     class: power
     class: power
-    unit: kW
     dps:
     dps:
       - id: 151
       - id: 151
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: kW
         class: measurement
         class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
@@ -153,12 +161,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Энергия Транзакции
     name: Энергия Транзакции
     class: energy
     class: energy
-    unit: kWh
     dps:
     dps:
       - id: 153
       - id: 153
         type: integer
         type: integer
         name: sensor
         name: sensor
-        class: total_increasing # Или measurement
+        unit: kWh
+        class: total_increasing # Этот state_class допустим для device_class: energy
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -167,23 +175,27 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Время Транзакции
     name: Время Транзакции
     class: duration
     class: duration
-    unit: s # Предполагаем секунды, так как unit в данных пустой
     dps:
     dps:
       - id: 154
       - id: 154
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: s # unit_of_measurement: s (секунды)
+        class: measurement # state_class: measurement
+        # range: # Если есть диапазон, можно добавить
+        # min: 0
+        # max: 999999999
 
 
   # DP 155: transaction_monry (Value / integer, scale 2) - Сенсор суммы транзакции
   # DP 155: transaction_monry (Value / integer, scale 2) - Сенсор суммы транзакции
   # accessMode: ro
   # accessMode: ro
   - entity: sensor
   - entity: sensor
     name: Сумма Транзакции
     name: Сумма Транзакции
-    class: monetary
-    unit: RUB # Измените на вашу валюту при необходимости
+    class: monetary # device_class
     dps:
     dps:
       - id: 155
       - id: 155
         type: integer
         type: integer
         name: sensor
         name: sensor
-        class: total_increasing # Или measurement
+        unit: RUB # unit_of_measurement
+        # class: total # Удален total_increasing, можно оставить пустым или поставить total
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -191,7 +203,7 @@ entities:
   # accessMode: ro
   # accessMode: ro
   - entity: binary_sensor
   - entity: binary_sensor
     name: Статус Транзакции
     name: Статус Транзакции
-    class: running
+    class: running # device_class
     dps:
     dps:
       - id: 156
       - id: 156
         type: boolean
         type: boolean
@@ -201,14 +213,15 @@ entities:
   # accessMode: rw
   # accessMode: rw
   - entity: number
   - entity: number
     name: Номинальный Ток
     name: Номинальный Ток
-    class: current
+    category: config
+    class: current # device_class
     mode: box
     mode: box
     icon: "mdi:current-ac"
     icon: "mdi:current-ac"
-    unit: A
     dps:
     dps:
       - id: 115
       - id: 115
         type: integer
         type: integer
         name: value
         name: value
+        unit: A # unit_of_measurement
         range: # Согласно вашим данным (0-20000, т.е. 0-200 A)
         range: # Согласно вашим данным (0-20000, т.е. 0-200 A)
           min: 0
           min: 0
           max: 200
           max: 200
@@ -219,14 +232,15 @@ entities:
   # accessMode: rw
   # accessMode: rw
   - entity: number
   - entity: number
     name: Ток Балансировки Нагрузки
     name: Ток Балансировки Нагрузки
+    category: config
     class: current
     class: current
     mode: box
     mode: box
     icon: "mdi:current-ac"
     icon: "mdi:current-ac"
-    unit: A
     dps:
     dps:
       - id: 117
       - id: 117
         type: integer
         type: integer
         name: value
         name: value
+        unit: A
         range: # Согласно вашим данным (0-20000, т.е. 0-200 A)
         range: # Согласно вашим данным (0-20000, т.е. 0-200 A)
           min: 0
           min: 0
           max: 200
           max: 200
@@ -237,7 +251,7 @@ entities:
   # accessMode: ro
   # accessMode: ro
   - entity: binary_sensor
   - entity: binary_sensor
     name: Состояние Балансировки Нагрузки
     name: Состояние Балансировки Нагрузки
-    class: safety
+    class: safety # device_class
     dps:
     dps:
       - id: 116
       - id: 116
         type: boolean
         type: boolean
@@ -327,7 +341,7 @@ entities:
   # accessMode: ro
   # accessMode: ro
   - entity: binary_sensor
   - entity: binary_sensor
     name: Предупреждение о Прикосновении
     name: Предупреждение о Прикосновении
-    class: problem # Или safety
+    class: problem # device_class
     dps:
     dps:
       - id: 142
       - id: 142
         type: boolean
         type: boolean
@@ -378,11 +392,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Накопленный Баланс
     name: Накопленный Баланс
     class: monetary
     class: monetary
-    unit: RUB # Измените на вашу валюту при необходимости
     dps:
     dps:
       - id: 111
       - id: 111
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: RUB
+        # Удален state_class для monetary
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -391,11 +406,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Баланс Карты
     name: Баланс Карты
     class: monetary
     class: monetary
-    unit: RUB # Измените на вашу валюту при необходимости
     dps:
     dps:
       - id: 112
       - id: 112
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: RUB
+        # Удален state_class для monetary
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -403,7 +419,7 @@ entities:
   # accessMode: ro
   # accessMode: ro
   - entity: binary_sensor
   - entity: binary_sensor
     name: Статус Логина
     name: Статус Логина
-    class: connectivity # Или other appropriate class
+    class: connectivity # device_class
     dps:
     dps:
       - id: 102
       - id: 102
         type: boolean
         type: boolean
@@ -414,11 +430,12 @@ entities:
   - entity: sensor
   - entity: sensor
     name: Напряжение CP
     name: Напряжение CP
     class: voltage
     class: voltage
-    unit: V
     dps:
     dps:
       - id: 114
       - id: 114
         type: integer
         type: integer
         name: sensor
         name: sensor
+        unit: V
+        class: measurement
         mapping:
         mapping:
           - scale: 100
           - scale: 100
 
 
@@ -441,7 +458,7 @@ entities:
       - id: 125
       - id: 125
         type: string
         type: string
         name: value
         name: value
-
+        
   # DP 132: apn (String) - Текстовое поле для APN
   # DP 132: apn (String) - Текстовое поле для APN
   # accessMode: rw
   # accessMode: rw
   - entity: text
   - entity: text
@@ -471,7 +488,7 @@ entities:
       - id: 134
       - id: 134
         type: string
         type: string
         name: value
         name: value
-
+        
   # DP 135: charge_card_no1 (String) - Текстовое поле для Авторизованной карты 1
   # DP 135: charge_card_no1 (String) - Текстовое поле для Авторизованной карты 1
   # accessMode: rw
   # accessMode: rw
   - entity: text
   - entity: text
@@ -481,7 +498,7 @@ entities:
       - id: 135
       - id: 135
         type: string
         type: string
         name: value
         name: value
-
+        
   # DP 136: charge_card_no2 (String) - Текстовое поле для Авторизованной карты 2
   # DP 136: charge_card_no2 (String) - Текстовое поле для Авторизованной карты 2
   # accessMode: rw
   # accessMode: rw
   - entity: text
   - entity: text