|
1 | 1 | # Changelog |
2 | 2 |
|
3 | 3 | <https://github.com/kellerza/sunsynk/commits/> |
| 4 | + |
| 5 | +## Unreleased |
| 6 | + |
| 7 | +All items below are changes since add-on **0.10.1** (stable release on GitHub `main`). |
| 8 | + |
| 9 | +### GitHub issues (in progress) |
| 10 | + |
| 11 | +- [#639](https://github.com/kellerza/sunsynk/issues/639) – Loss of communication with one inverter |
| 12 | + blocked MQTT updates for **all** inverters; **per-inverter availability** is aimed at isolating |
| 13 | + failure to the affected device. Issue remains **open** until validated in the field. |
| 14 | +- [#642](https://github.com/kellerza/sunsynk/issues/642) – Ongoing work to improve |
| 15 | + **AUX / generator port** alignment between **single-phase** and **three-phase** sensor definitions |
| 16 | + (issue **not closed**). _(GitHub thread title may also cover related inverter-side options.)_ |
| 17 | +- [#641](https://github.com/kellerza/sunsynk/issues/641) – Solarman / dongle connectivity (e.g. Fuji |
| 18 | + micro-inverter setups); **clearer warnings and validation** around **`DONGLE_SERIAL_NUMBER`** so |
| 19 | + misconfiguration shows up early in logs. Issue **open** while scenarios are confirmed. |
| 20 | +- [#635](https://github.com/kellerza/sunsynk/issues/635) – New firmware **SELL** option per time |
| 21 | + program slot; **commented-out** proposed `SwitchRWSensor` definitions (`Prog1 sell` … |
| 22 | + `Prog6 sell`) are in `single_phase.py` for review—**not enabled** until register/bitmask behaviour |
| 23 | + is **verified** on hardware. Issue **open**. |
| 24 | + |
| 25 | +### Add-on behaviour |
| 26 | + |
| 27 | +- **Per-inverter availability** – Each inverter publishes its own retained lifecycle topic |
| 28 | + (`SS/availability_1_<HA_PREFIX>`). Home Assistant device discovery uses that together with the |
| 29 | + add-on MQTT session topic, so one inverter can enter a **stale** state (failed reads / timeouts) |
| 30 | + and its entities reflect **unavailable** without dragging the whole multi-inverter add-on offline. |
| 31 | +- **`TIMEOUT`** – Modbus connect/read timeout in **seconds** (edge schema and translations). A full |
| 32 | + sensor batch/run is bounded by **`2 × TIMEOUT`** (`asyncio.timeout`) so slow buses can be tuned |
| 33 | + without changing schedule intervals alone. |
| 34 | +- **`STALE_INVERTER_AFTER_SECONDS`** / **`STALE_INVERTER_SKIP_SECONDS`** – Grace period after the |
| 35 | + last good read before going stale, and how long to skip Modbus for that inverter while in stale |
| 36 | + quiet (then probe again). Defaults appear in edge `config.yaml`; see reference docs for details. |
| 37 | +- **`DONGLE_SERIAL_NUMBER` (Solarman)** – Clearer **validation and logging** for the Wi-Fi dongle |
| 38 | + serial (non-zero integer, driver consistency, ignored values on non-Solarman drivers)—see |
| 39 | + [#641](https://github.com/kellerza/sunsynk/issues/641). |
| 40 | + |
| 41 | +### Sensor definitions |
| 42 | + |
| 43 | +- **Aliases** – Sensors may declare an `alias` (string or tuple). Each alias is registered in |
| 44 | + `SensorDefinitions.all` under a **slug** of that name, pointing at the **same** `Sensor` instance |
| 45 | + as the canonical `name`. Your `SENSORS` list can use either the primary id (from `name`) or any |
| 46 | + alias id (e.g. **Gen** vs **AUX** labelling on generator port registers) without duplicating |
| 47 | + registers in the definition set. |
| 48 | +- **Single-phase / three-phase** – Commented register notes for **Essential power** math sensors; |
| 49 | + continued tweaks in `single_phase.py` and `three_phase_common.py` (including **Gen** / **AUX** |
| 50 | + port sensors) toward clearer parity across definitions. |
| 51 | +- **Program slot SELL (proposed)** – Commented **`Prog1 sell` … `Prog6 sell`** `SwitchRWSensor` |
| 52 | + lines (one per slot) for the new firmware **SELL** bit; left disabled pending verification—see |
| 53 | + [#635](https://github.com/kellerza/sunsynk/issues/635). |
| 54 | +- **Tooling and docs** – `gen_sensors.py`, **Solarman** read path, generated **reference group** |
| 55 | + HTML, and power-flow / Lovelace examples updated to stay in sync with definition changes. |
| 56 | + |
| 57 | +### Diagnostics and library |
| 58 | + |
| 59 | +- **RS485 timeout** – Per-inverter MQTT sensor reflecting timeout counters from the connector (helps |
| 60 | + spot noisy RS485 / Solarman issues). |
| 61 | + |
| 62 | +### Docs and repo hygiene |
| 63 | + |
| 64 | +- **rumdl** – Markdown rules wired into **pre-commit** and applied across the VitePress site, README |
| 65 | + files, and GitHub issue templates (consistent lists, headings, emphasis). |
| 66 | +- **Wiring** – [Wiring guide](https://kellerza.github.io/sunsynk/guide/wiring.html) clarifies using |
| 67 | + the inverter **RS‑232 (DB9)** port: **Modbus RTU** at **RS‑232** signalling (TX/RX vs ground), |
| 68 | + **not** RS‑485 levels—use a **USB‑RS‑232** adapter or a gateway that supports that port when you |
| 69 | + want a dedicated serial link instead of the **RS‑485** terminal block bus. |
| 70 | +- **Reference docs** – `multi-options.md` updated for `TIMEOUT`, stale options, and the two-level |
| 71 | + availability model; other guide/example fixes (e.g. fault-finding, Lovelace). |
| 72 | + |
| 73 | +### Internal / developer |
| 74 | + |
| 75 | +- **Cursor and Copilot instructions** – Added **Cursor** rules (e.g. `.cursor/rules/`) and |
| 76 | + **GitHub Copilot** repo instructions (`.github/copilot-instructions.md`) so contributors and AI |
| 77 | + assistants follow the same add-on layout and editing policy. |
| 78 | +- **`sunsynk.utils`** split (e.g. stats vs. pretty table), expanded **`a_inverter`** tests, and |
| 79 | + related **`uv.lock`** / dependency updates from the same workstream. |
0 commit comments