|
1 | | -# 🎉 EcoFlow API Integration v1.1.2 - Signature Fix (WORKING!) |
| 1 | +# 🔧 EcoFlow API Integration v1.1.3 - Timestamp Fix |
2 | 2 |
|
3 | | -**ТЕПЕР РЕАЛЬНО ПРАЦЮЄ!** Виправлення підпису для PUT запитів протестовано та підтверджено! |
| 3 | +Виправлення помилки timestamp сенсорів. |
4 | 4 |
|
5 | | -## ✅ Що виправлено |
| 5 | +## 🐛 Що виправлено |
6 | 6 |
|
7 | | -### Правильна генерація підпису для PUT запитів |
| 7 | +### Timestamp Sensor Error |
8 | 8 |
|
9 | | -**Проблема:** Версія 1.1.1 помилково НЕ включала параметри JSON body в підпис, що призводило до помилки: |
| 9 | +**Проблема:** При використанні контролів (number/switch/select) з'являлася помилка: |
10 | 10 | ``` |
11 | | -API error (code 8521): signature is wrong |
| 11 | +Failed to perform the action number/set_value. |
| 12 | +Invalid datetime: sensor.ecoflow_delta_pro_3_cloud_timestamp has timestamp |
| 13 | +device class but provides state 2025-12-10 04:33:33:<class 'str'> |
| 14 | +resulting in ''str' object has no attribute 'tzinfo'' |
12 | 15 | ``` |
13 | 16 |
|
14 | | -**Рішення:** Тепер підпис для PUT запитів правильно включає **всі параметри з JSON body** у вирівняному (flattened) вигляді, як вимагає [документація EcoFlow API](https://developer-eu.ecoflow.com/us/document/deltaPro3). |
| 17 | +**Причина:** Timestamp сенсори повертали строку замість datetime об'єкта. |
15 | 18 |
|
16 | | -**Приклад підпису для PUT запиту:** |
17 | | -``` |
18 | | -cmdFunc=254&cmdId=17&dest=2&dirDest=1&dirSrc=1&needAck=true¶ms.cfgPlugInInfoAcInChgPowMax=1500&sn=XXX&accessKey=XXX&nonce=XXX×tamp=XXX |
19 | | -``` |
20 | | - |
21 | | -### Додаткові виправлення |
22 | | - |
23 | | -- ✅ Boolean значення правильно конвертуються в lowercase (`true`/`false`) |
24 | | -- ✅ Вкладені параметри правильно вирівнюються (`params.cfgBeepEn`) |
25 | | - |
26 | | -## 🧪 Протестовано та підтверджено |
27 | | - |
28 | | -Тест на реальному пристрої Delta Pro 3: |
29 | | -- **AC Charging Power**: 1200W → 1500W ✅ |
30 | | -- **API відповідь**: `{"code":"0","message":"Success"}` ✅ |
31 | | -- **Підпис прийнято**: Без помилок ✅ |
32 | | - |
33 | | -## 📊 Що тепер працює |
| 19 | +**Рішення:** |
| 20 | +- Timestamp значення тепер правильно конвертуються в timezone-aware datetime об'єкти |
| 21 | +- Додано обробку помилок парсингу з логуванням |
| 22 | +- Використовується UTC timezone якщо timezone не вказано |
34 | 23 |
|
35 | | -Всі елементи керування тепер працюють коректно: |
| 24 | +## ✅ Що працює |
36 | 25 |
|
37 | | -### ✅ Number (Числові значення) |
38 | | -- AC Charging Power (200-2900W) |
39 | | -- Max Charge Level (0-100%) |
40 | | -- Min Discharge Level (0-100%) |
41 | | -- LCD Brightness (0-100%) |
42 | | -- Screen Off Time (0-3600s) |
43 | | -- Generator Start/Stop SOC |
44 | | -- Solar current limits |
45 | | -- Power In/Out settings |
46 | | -- Standby times |
| 26 | +Версія 1.1.3 містить всі виправлення з 1.1.2: |
47 | 27 |
|
48 | | -### ✅ Switch (Перемикачі) |
49 | | -- AC Output HV/LV |
50 | | -- DC Output (12V, 24V) |
51 | | -- X-Boost |
52 | | -- Beeper |
53 | | -- AC Energy Saving |
54 | | -- Generator Auto Start |
55 | | -- And more... |
| 28 | +### ✅ Device Controls (Протестовано!) |
| 29 | +- **Number entities**: AC Charging Power, charge levels, brightness, тощо |
| 30 | +- **Switch entities**: AC/DC outputs, X-Boost, Beeper, тощо |
| 31 | +- **Select entities**: Standby times, output frequency, тощо |
56 | 32 |
|
57 | | -### ✅ Select (Списки вибору) |
58 | | -- AC/DC Standby Time |
59 | | -- Device Standby Time |
60 | | -- AC Output Frequency |
61 | | -- Battery charge/discharge mode |
| 33 | +### ✅ Sensors |
| 34 | +- Всі сенсори даних (battery, power, temperature, тощо) |
| 35 | +- **Timestamp сенсори** тепер працюють правильно |
62 | 36 |
|
63 | | -## 📦 Встановлення через HACS |
| 37 | +## 📦 Оновлення |
64 | 38 |
|
| 39 | +### Через HACS: |
65 | 40 | 1. Відкрийте **HACS** → **Integrations** |
66 | 41 | 2. Знайдіть **EcoFlow API** |
67 | | -3. Натисніть **Update** (версія 1.1.2) |
| 42 | +3. Натисніть **Update** (версія 1.1.3) |
68 | 43 | 4. **Перезапустіть Home Assistant** |
69 | 44 |
|
70 | | -## 🔄 Оновлення вручну |
71 | | - |
72 | | -1. Завантажте: [ecoflow-api-v1.1.2.zip](https://github.com/TarasKhust/hassio-ecoflow-api/releases/download/v1.1.2/ecoflow-api-v1.1.2.zip) |
| 45 | +### Вручну: |
| 46 | +1. Завантажте: [ecoflow-api-v1.1.3.zip](https://github.com/TarasKhust/hassio-ecoflow-api/releases/download/v1.1.3/ecoflow-api-v1.1.3.zip) |
73 | 47 | 2. Замініть файли в `config/custom_components/ecoflow_api/` |
74 | 48 | 3. Перезапустіть Home Assistant |
75 | 49 |
|
76 | | -## 🧪 Тестування |
77 | | - |
78 | | -Додано скрипт `test_set_ac_power.py` для ручного тестування керування пристроєм. Можна використовувати як приклад для власних тестів. |
79 | | - |
80 | | -## 📝 Технічні деталі |
81 | | - |
82 | | -Згідно з офіційною документацією EcoFlow Delta Pro 3, підпис для PUT запитів генерується так: |
83 | | - |
84 | | -1. **Вирівнювання параметрів** - вкладені об'єкти конвертуються в flat структуру: |
85 | | - - `needAck: true` → `needAck=true` |
86 | | - - `params: {cfgBeepEn: true}` → `params.cfgBeepEn=true` |
87 | | - |
88 | | -2. **Сортування** - всі ключі сортуються алфавітно |
89 | | - |
90 | | -3. **Конкатенація** - формується рядок з параметрами + auth параметри |
| 50 | +## 📝 Changelog |
91 | 51 |
|
92 | | -4. **HMAC-SHA256** - генерується підпис |
| 52 | +- v1.1.3: Fix timestamp sensor datetime conversion |
| 53 | +- v1.1.2: Working signature fix (tested on real device) |
| 54 | +- v1.1.1: Initial signature fix attempt |
| 55 | +- v1.1.0: Code improvements and translations |
93 | 56 |
|
94 | 57 | ## 🐛 Повідомити про помилку |
95 | 58 |
|
|
0 commit comments