You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b08a29f
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,25 @@ the GitHub release body should be rendered from the matching version section her
23
23
24
24
- Nothing yet.
25
25
26
+
## [0.1.53] - 2026-04-25
27
+
28
+
### Added
29
+
30
+
- Collector diagnostics now track connection churn, dropped pending requests, disconnect reasons, and discovery restarts to make local write-path contention easier to diagnose.
31
+
32
+
### Changed
33
+
34
+
- Declarative SMG runtime gates now surface advisory warnings instead of locally hiding or hard-blocking controls; the inverter response and immediate readback confirmation are now the final authority for non-action writes.
35
+
36
+
### Fixed
37
+
38
+
- Non-action writes no longer report silent success when the refreshed value stays unchanged; EyeBond Local now raises an explicit `write_not_confirmed` error after readback.
39
+
- Temperature sensors backed by the affected PI18 and Anenji schemas now report `°C` instead of plain `C`.
40
+
41
+
### Docs
42
+
43
+
- Updated the English and Ukrainian READMEs plus the SMG support matrix to describe advisory runtime warnings, explicit readback confirmation, and the new collector contention diagnostics.
Copy file name to clipboardExpand all lines: README.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@ If your inverter's stock monitoring already works through the SmartESS app, that
25
25
-**Guided setup wizard** with auto-discovery and a manual fallback.
26
26
-**Safe by default** — controls stay read-only until detection is confident.
27
27
-**Optional SmartESS cloud assist** — collects reusable cloud evidence for diagnostics and metadata hints without bypassing local safety gates.
28
+
-**Explicit write confirmation** — non-action writes must confirm by immediate readback instead of reporting silent success when the value did not stick.
28
29
-**Configurable polling interval** — from `2` to `3600` seconds, so updates can be much more frequent than the stock SmartESS refresh.
29
30
-**Energy dashboard ready** — derived totals for PV, load, battery, and, on supported models, grid import/export.
30
31
-**Open architecture** — JSON-first profiles and register schemas.
@@ -155,8 +156,8 @@ After setup, the integration adds a single device with:
155
156
-**Polling control** — the sensor refresh interval is configurable from `2` to `3600` seconds in the integration options.
156
157
-**Energy totals** — derived `kWh` totals for PV production, load consumption, and battery charge/discharge, plus grid import/export on models that expose grid power. Drop them straight into the **Energy dashboard**.
-**Controls** — `number`, `select`, `switch`, and `button` entities for supported settings (charge limits, output mode, beep, etc.). On variants that ship model-specific tooling, this can also include dedicated actions such as **Sync Inverter Clock**. Control exposure is still gated by detection confidence and validation state.
159
-
-**Diagnostics** — connection state, driver match, support level, optional SmartESS cloud evidence export, explicit read-only fallback markers where applicable, and a one-click **Support Archive** export.
159
+
-**Controls** — `number`, `select`, `switch`, and `button` entities for supported settings (charge limits, output mode, beep, etc.). On variants that ship model-specific tooling, this can also include dedicated actions such as **Sync Inverter Clock**. Control exposure is still gated by detection confidence and validation state, but runtime-only SMG conditions now surface as warnings instead of hiding or locally hard-blocking the control.
160
+
-**Diagnostics** — connection state, driver match, support level, collector connection-churn and discovery-restart markers, optional SmartESS cloud evidence export, explicit read-only fallback markers where applicable, and a one-click **Support Archive** export.
160
161
161
162
<palign="center"><imgsrc="docs/images/sensors.png"alt="Live sensors after setup"width="320"></p>
162
163
@@ -204,6 +205,7 @@ The Support Archive contains an anonymized snapshot of your inverter's state, re
204
205
| Device stays on **EyeBond Setup Pending**| A Pending Device is a saved intermediate state, not a hard failure. Wait briefly, retry scan or manual probe, and then create a Support Archive if the collector callback or local match still does not complete. |
205
206
| Stuck on "Collector only" | The collector responded, but the integration still can't confidently identify the protocol, profile, or exact inverter model. Submit a Support Archive. |
206
207
| Sensors stay unavailable | Check that the collector is on the same subnet as Home Assistant, and that nothing is blocking TCP `8899` / UDP `58899`. |
208
+
| A write was accepted but the value immediately reverted | EyeBond Local now treats that as an explicit readback failure instead of silent success. Check the device diagnostics for collector disconnect/restart counters, pause competing SmartESS or vendor-app writes, and retry after the collector is stable. |
207
209
| Remote collector replies but never connects back | Check **Advertised callback IP** and **Advertised callback TCP port** first. They must match the address and forwarded TCP port that the collector can really reach. |
208
210
| Remote setup is flaky over the public internet | Prefer VPN over raw NAT if either side is behind CGNAT or if UDP/TCP forwarding is unreliable. |
209
211
| Controls are missing | In **Auto** mode, controls only appear when detection confidence is high and the relevant capabilities are marked as tested. Some runtime paths are intentionally read-only, such as the SMG family fallback. If monitoring works for a PI30-family inverter but the exact model was not matched, you can open **Runtime settings** and switch to **Full control**. This is a manual safety override that exposes every write command, so use it only at your own risk and preferably after exporting a Support Archive. |
Copy file name to clipboardExpand all lines: README.uk.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@
25
25
-**Майстер налаштування** з автопошуком і ручним резервним сценарієм.
26
26
-**Безпечно за замовчуванням** — керування лишається тільки для читання, доки система не впевнена в розпізнаванні.
27
27
-**Необов'язкова звірка через SmartESS** — збирає повторно використовувані хмарні дані для діагностики та підказок щодо метаданих, не обходячи локальні запобіжники безпеки.
28
+
-**Явне підтвердження запису** — зміни не-дійових параметрів тепер мають підтвердитися негайним readback, а не завершуються мовчазним успіхом, якщо значення не закріпилося.
28
29
-**Налаштовуваний інтервал опитування** — від `2` до `3600` секунд, тож дані можна оновлювати помітно частіше, ніж у штатному SmartESS.
29
30
-**Готово для панелі енергії Home Assistant** — обчислені лічильники для PV, навантаження, батареї та, на підтримуваних моделях, імпорту/експорту з мережі.
30
31
-**Відкрита архітектура** — описи профілів і регістрів у форматі JSON.
@@ -155,8 +156,8 @@ EyeBond Local працює з інверторами, для яких штатн
155
156
-**Налаштування частоти оновлення** — інтервал опитування можна змінити в межах від `2` до `3600` секунд у параметрах інтеграції.
156
157
-**Лічильники енергії** — обчислені значення в `kWh` для PV, навантаження та заряду/розряду батареї, а також імпорту/експорту з мережі на моделях, де доступний показник потужності мережі. Їх можна одразу додати до **панелі енергії Home Assistant**.
157
158
-**Бінарні сенсори** — режим роботи, помилки, аварії, стан заряджання.
158
-
-**Керування** — `number`, `select`, `switch`, `button` для підтримуваних налаштувань: ліміти заряду, вихідний режим, звуковий сигнал тощо. На деяких моделях це може також включати окремі службові дії, наприклад **Sync Inverter Clock**. Показ керування все одно залежить від упевненості розпізнавання та стану перевірки.
159
-
-**Діагностика** — стан з'єднання, відповідність драйвера, рівень підтримки, окремий експорт хмарних даних SmartESS, явні позначки режиму лише для читання за потреби й кнопка експорту **архіву підтримки**.
159
+
-**Керування** — `number`, `select`, `switch`, `button` для підтримуваних налаштувань: ліміти заряду, вихідний режим, звуковий сигнал тощо. На деяких моделях це може також включати окремі службові дії, наприклад **Sync Inverter Clock**. Показ керування все одно залежить від упевненості розпізнавання та стану перевірки, але суто runtime-умови SMG тепер показуються як попередження замість прихованого або локально жорстко заблокованого керування.
160
+
-**Діагностика** — стан з'єднання, відповідність драйвера, рівень підтримки, лічильники перепідключень колектора та перезапусків discovery, окремий експорт хмарних даних SmartESS, явні позначки режиму лише для читання за потреби й кнопка експорту **архіву підтримки**.
160
161
161
162
<palign="center"><imgsrc="docs/images/sensors.png"alt="Сенсори після налаштування"width="320"></p>
162
163
@@ -204,6 +205,7 @@ EyeBond Local працює з інверторами, для яких штатн
204
205
| Пристрій зависає в **EyeBond Setup Pending**| Це тимчасовий збережений стан, а не жорстка помилка. Зачекайте трохи, повторіть пошук або ручну перевірку, а якщо підтвердження інвертора чи зворотне підключення колектора так і не завершуються, створіть архів підтримки. |
205
206
| Зависає на статусі **Лише колектор**| Колектор відповів, але інтеграція ще не змогла впевнено визначити протокол, профіль або точну модель інвертора. Надішліть архів підтримки. |
206
207
| Сенсори лишаються недоступними | Переконайтесь, що колектор у тій самій підмережі, що й Home Assistant, і що TCP `8899` / UDP `58899` не заблоковані. |
208
+
| Запис наче прийнявся, але значення одразу повернулося назад | EyeBond Local тепер вважає це явною помилкою readback, а не мовчазним успіхом. Перевірте в діагностиці лічильники перепідключень і restart'ів collector/discovery, тимчасово зупиніть паралельні записи зі SmartESS або штатного застосунку і повторіть спробу після стабілізації колектора. |
207
209
| Віддалений колектор відповідає, але не підключається назад | Насамперед перевірте **Advertised callback IP** і **Advertised callback TCP port**. Вони мають збігатися з реально досяжною для колектора адресою та переадресованим TCP-портом. |
208
210
| Віддалене підключення через NAT працює нестабільно | Якщо можливо, використовуйте VPN замість "чистого" NAT, особливо коли одна зі сторін за CGNAT або маршрутизатори ненадійно перенаправляють UDP чи TCP. |
209
211
| Немає елементів керування | У режимі **Авто** керування з'являється лише за високої впевненості розпізнавання і для перевірених можливостей. Деякі внутрішні профілі роботи навмисно лишаються тільки для читання, наприклад `modbus_smg/family_fallback`. Якщо, наприклад, інвертор працює за протоколом PI30 і моніторинг уже є, але точну модель не розпізнано, можна в параметрах інтеграції відкрити **Параметри роботи** і вибрати режим **Повний контроль**. Це ручний обхід захисту, який відкриває всі команди без додаткової перевірки, тому використовуйте його лише на власний ризик і бажано після створення архіву підтримки. |
0 commit comments