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 eb2979d
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,34 @@ the GitHub release body should be rendered from the matching version section her
23
23
24
24
- Nothing yet.
25
25
26
+
## [0.1.52] - 2026-04-23
27
+
28
+
### Added
29
+
30
+
- Added an explicit built-in `anenji_4200_protocol_1` SMG runtime path for classic protocol-1 hardware that matches the documented `device_type=0x3501`, `protocol_number=1`, and `rated_power=4200` anchors.
31
+
- Added documented `power_flow_status` decoding for classic SMG protocol-1 layouts, exposing diagnostic connection, battery, load, and charge-source states instead of leaving the raw register uninterpreted.
32
+
- Added documented classic protocol-1 fault/log support-capture coverage for `700..744`, so support archives retain a broader evidence window for SMG 6200 and the document-backed Anenji 4200 path.
33
+
34
+
### Changed
35
+
36
+
- SMG protocol-1 writable metadata is now layered through a real shared base plus model overlays, so the common path carries only the shared protocol-1 controls and presets while 6200-only extras stay model-scoped.
37
+
- The support workflow and support-bundle markers now treat explicit but still-unverified model-specific profiles separately from the read-only SMG family fallback, keeping the new Anenji 4200 path at partial support instead of labeling it as a generic fallback.
38
+
39
+
### Fixed
40
+
41
+
- SMG common protocol-1 schemas and probe metadata no longer leak 6200-only diagnostics like `341..343` and `max_discharge_current_protection` into other protocol-1 variants.
42
+
- The Anenji ANJ-11KW-48V-WIFI-P schema no longer depends on accidentally inherited low-DC measurement metadata after the SMG common/base cleanup.
43
+
- The project-wide support overview export now includes the new built-in Anenji 4200 protocol-1 runtime profile instead of silently omitting it from release documentation.
44
+
- Runtime control-mode labels in the options flow are now localized instead of falling back to hard-coded English labels.
45
+
- Re-adding the verified default SMG 6200 integration now restores the tested write controls that should be enabled by default, including the equalization settings and the previously verified battery threshold controls.
46
+
-`Sync Inverter Clock` no longer leaks into the verified default SMG 6200 runtime path; it now stays scoped to the Anenji ANJ-11KW-48V-WIFI-P model-specific tooling path.
47
+
- Pending onboarding no longer stalls when a saved manual or pending device keeps the default broadcast discovery target as `collector_ip`; the shared listener now aliases that placeholder to the real collector callback IP.
48
+
49
+
### Docs
50
+
51
+
- Updated the English and Ukrainian READMEs, the SMG support matrix, and the generated support overview to describe the new Anenji 4200 protocol-1 path, the stricter SMG common-vs-model layering, the verified default SMG runtime path wording, and the current protocol-1 read coverage more accurately.
52
+
- Expanded the English and Ukrainian READMEs and onboarding copy to explain what the Pending Device / `EyeBond Setup Pending` state means, what to expect from it, and which retry steps to use before opening a support issue.
Copy file name to clipboardExpand all lines: README.md
+26-4Lines changed: 26 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,8 +39,9 @@ The stock SmartESS monitoring usually keeps working in parallel: EyeBond Local d
39
39
40
40
| Commercial model / hardware class | Internal runtime path | Status | What it means |
41
41
|---|---|---|---|
42
-
|**Sandisolar SD-HYM-4862HWP**|`modbus_smg` default binding | Supported | Full monitoring plus tested controls on the verified default SMG layout. In the current runtime UI this device still appears generically as `SMG 6200`, because the local Modbus surface exposes rated power but not a stronger raw commercial identifier. |
43
-
|**Anenji ANJ-11KW-48V-WIFI-P**|`modbus_smg` model-specific variant | Supported | Built-in model-specific monitoring is active, including PV1/PV2 telemetry, inverter date/time, and native PV day/total counters. The full write surface has now been verified on real hardware, so tested controls can participate in normal `auto` exposure when detection confidence is high. |
42
+
|**Sandisolar SD-HYM-4862HWP**| verified default `modbus_smg` runtime path | Supported | Full monitoring plus tested controls on the verified default SMG layout. In the current runtime UI this device still appears generically as `SMG 6200`, because the local Modbus surface exposes rated power but not a stronger raw commercial identifier. |
43
+
|**Anenji ANJ-11KW-48V-WIFI-P**| model-specific `modbus_smg` variant | Supported | Built-in model-specific monitoring is active, including PV1/PV2 telemetry, inverter date/time, and native PV day/total counters. The full write surface has now been verified on real hardware, so tested controls can participate in normal `auto` exposure when detection confidence is high. |
44
+
|**Anenji 4200 (Protocol 1)**| model-specific `modbus_smg` variant `anenji_4200_protocol_1`| Partial support | Built-in monitoring follows the document-backed classic SMG protocol-1 layout, including `power_flow_status`, documented identity/config diagnostics, and the shared protocol-1 control surface. Detection remains medium-confidence and built-in writes stay untested, so controls are exposed only in `full` mode until real-hardware validation exists. |
44
45
|**PowMr 4.2kW** (raw model `VMII-NXPW5KW`) |`pi30` runtime driver with SmartESS `0925` compatibility metadata | Supported | Full monitoring plus tested controls on the verified PI30-family path for this hardware. |
45
46
|**Unknown but clearly SMG-family inverter**|`modbus_smg``family_fallback`| Read-only fallback | Used when the inverter clearly looks SMG-family but the exact model is not yet verified. Monitoring stays available, support/archive output is explicitly marked as read-only/unverified, and built-in writes remain disabled. |
46
47
|**PI18-family hardware**|`pi18` experimental replay path | Experimental | Replay-tested only. Useful for research and fixture work, but there is not yet a verified public hardware model that should be presented as production-ready support. |
@@ -51,7 +52,7 @@ Three different naming layers exist in the project, and they should not be read
51
52
-**Internal runtime path**: the local protocol engine and binding used by the integration, such as `modbus_smg`, `pi30`, or `pi18`.
52
53
-**Metadata owner / compatibility profile**: the declarative profile or SmartESS asset used to describe controls and readback, such as SmartESS `0925` compatibility metadata.
53
54
54
-
The runtime engine may stay generic even when the commercial model is known. For example, the verified Sandisolar unit still runs through the generic SMG default path because the local protocol evidence supports that path, but does not expose a trustworthy commercial-name identifier on its own.
55
+
The runtime engine may stay generic even when the commercial model is known. For example, the verified Sandisolar unit still runs through the verified default`modbus_smg` runtime path because the local protocol evidence supports that path, but does not expose a trustworthy commercial-name identifier on its own.
55
56
56
57
Don't see your inverter? It might still work — open an issue with a [Support Archive](#getting-help) and we can evaluate compatibility and, when the protocol matches, extend support.
57
58
@@ -93,7 +94,7 @@ The setup wizard takes care of most of the work for you.
93
94
94
95
-**Ready** — confidently detected, safe to add.
95
96
-**Review** — found but with low confidence.
96
-
-**Collector only** — collector responded but the inverter is not yet identified.
97
+
-**Collector only** — collector responded but the inverter is not yet identified. You can still save it as a read-only Pending Device and continue from diagnostics later.
@@ -107,6 +108,26 @@ If quick auto-detection doesn't find anything, try **Run deep scan** from the re
107
108
108
109
> **Tip:** Keep Home Assistant and the collector on the **same subnet** if you want auto-discovery, because broadcast discovery usually doesn't cross routers.
109
110
111
+
### Pending Device / EyeBond Setup Pending
112
+
113
+
If the wizard can save a usable network path to the collector but cannot fully confirm the inverter yet, it can still create a **read-only Pending Device**. In Home Assistant this appears as **EyeBond Setup Pending**.
114
+
115
+
This is a saved intermediate state, not automatically a failure.
116
+
117
+
What it means:
118
+
119
+
- The integration has saved the listener, discovery, and collector settings you chose.
120
+
- The collector may already be known, but the reverse TCP callback, the local inverter match, or both are still incomplete.
121
+
- Diagnostics and support actions are available immediately, even if the normal sensors are still unavailable.
122
+
- The entry can resolve later on its own after the collector reconnects or after you retry the scan or manual probe.
123
+
124
+
What to do next:
125
+
126
+
1. Wait a short moment, then refresh the device page. If the collector was just reconfigured, rebooting it can help.
127
+
2. On a normal LAN, keep Home Assistant and the collector on the same subnet, then retry quick scan, deep scan, or manual probe.
128
+
3. For manual or remote/NAT setups, re-check the collector IP, advertised callback IP and port, and that TCP `8899` / UDP `58899` are not blocked.
129
+
4. If the device stays pending, open **Configure → Diagnostics and experimental metadata** and create a **Support Archive** before editing local drafts.
130
+
110
131
### Remote / NAT Manual Setup
111
132
112
133
Most users should leave these advanced fields alone. They are for cases where the collector is remote and must connect back through VPN routing or port forwarding.
@@ -180,6 +201,7 @@ The Support Archive contains an anonymized snapshot of your inverter's state, re
180
201
| Problem | Try this |
181
202
|---|---|
182
203
| Auto-scan finds nothing | Use **Change scan interface** to pick a different network interface first. If the quick scan still comes back empty, try **Run deep scan** from the results screen. If you eventually switch to **Manual setup**, find the Wi-Fi module or collector's local IP address first, usually from your router. |
204
+
| 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. |
183
205
| 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. |
184
206
| Sensors stay unavailable | Check that the collector is on the same subnet as Home Assistant, and that nothing is blocking TCP `8899` / UDP `58899`. |
185
207
| 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. |
0 commit comments