Skip to content

Commit 9f03ec6

Browse files
committed
Release v1.1.3
Fixed timestamp sensor datetime conversion error. Fixed: - Timestamp sensors now return datetime objects (not strings) - Added timezone-aware conversion (UTC default) - Fixed 'str' object has no attribute 'tzinfo' error This resolves the error when using device controls.
1 parent 5edd263 commit 9f03ec6

File tree

4 files changed

+40
-71
lines changed

4 files changed

+40
-71
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.1.3] - 2024-12-09
9+
10+
### Fixed
11+
- 🐛 **Timestamp sensor error** - Fixed "str object has no attribute 'tzinfo'" error for timestamp sensors
12+
- 🕐 **Datetime conversion** - Timestamp sensors now correctly return timezone-aware datetime objects
13+
814
## [1.1.2] - 2024-12-09
915

1016
### Fixed

RELEASE_NOTES.md

Lines changed: 33 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,58 @@
1-
# 🎉 EcoFlow API Integration v1.1.2 - Signature Fix (WORKING!)
1+
# 🔧 EcoFlow API Integration v1.1.3 - Timestamp Fix
22

3-
**ТЕПЕР РЕАЛЬНО ПРАЦЮЄ!** Виправлення підпису для PUT запитів протестовано та підтверджено!
3+
Виправлення помилки timestamp сенсорів.
44

5-
## Що виправлено
5+
## 🐛 Що виправлено
66

7-
### Правильна генерація підпису для PUT запитів
7+
### Timestamp Sensor Error
88

9-
**Проблема:** Версія 1.1.1 помилково НЕ включала параметри JSON body в підпис, що призводило до помилки:
9+
**Проблема:** При використанні контролів (number/switch/select) з'являлася помилка:
1010
```
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''
1215
```
1316

14-
**Рішення:** Тепер підпис для PUT запитів правильно включає **всі параметри з JSON body** у вирівняному (flattened) вигляді, як вимагає [документація EcoFlow API](https://developer-eu.ecoflow.com/us/document/deltaPro3).
17+
**Причина:** Timestamp сенсори повертали строку замість datetime об'єкта.
1518

16-
**Приклад підпису для PUT запиту:**
17-
```
18-
cmdFunc=254&cmdId=17&dest=2&dirDest=1&dirSrc=1&needAck=true&params.cfgPlugInInfoAcInChgPowMax=1500&sn=XXX&accessKey=XXX&nonce=XXX&timestamp=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 не вказано
3423

35-
Всі елементи керування тепер працюють коректно:
24+
## ✅ Що працює
3625

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:
4727

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, тощо
5632

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 сенсори** тепер працюють правильно
6236

63-
## 📦 Встановлення через HACS
37+
## 📦 Оновлення
6438

39+
### Через HACS:
6540
1. Відкрийте **HACS****Integrations**
6641
2. Знайдіть **EcoFlow API**
67-
3. Натисніть **Update** (версія 1.1.2)
42+
3. Натисніть **Update** (версія 1.1.3)
6843
4. **Перезапустіть Home Assistant**
6944

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)
7347
2. Замініть файли в `config/custom_components/ecoflow_api/`
7448
3. Перезапустіть Home Assistant
7549

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
9151

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
9356

9457
## 🐛 Повідомити про помилку
9558

custom_components/ecoflow_api/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"iot_class": "cloud_polling",
1010
"issue_tracker": "https://github.com/TarasKhust/hassio-ecoflow-api/issues",
1111
"requirements": ["aiohttp>=3.8.0"],
12-
"version": "1.1.2"
12+
"version": "1.1.3"
1313
}
1414

1515

0 commit comments

Comments
 (0)