|
8 | 8 |
|
9 | 9 | Issues: #360, #362 |
10 | 10 |
|
11 | | -- **Fix: sensors removed in v1.5.3 went `unavailable` instead of disappearing.** |
12 | | - If v1.5.3 left you with a DC-DC Temperature entity showing *unavailable* rather than |
13 | | - removing it, this is the follow-up. Upgrade and it will go. |
14 | | - |
15 | | - Dropping a sensor from a profile stops it being created, but Home Assistant keeps what |
16 | | - earlier versions already registered — so it lingers as a dead entity. Arguably worse |
17 | | - than the 0.0 °C it replaced, because an unavailable sensor looks like something broken |
18 | | - rather than something that was never meant to exist. |
19 | | - |
20 | | - The cleanup that handles this existed, but was a list of specific sensor names, so each |
21 | | - new removal needed its own entry and this one never got one. It is now driven by the |
22 | | - profile itself: any sensor the profile does not list is removed, because nothing can |
23 | | - recreate it. Future removals clean up after themselves. |
24 | | - |
25 | | - This is the second time this cleanup has failed. In v1.4.0 it was gated on the inverter |
26 | | - being reachable, which never holds during setup, so it did not run at all. Both failure |
27 | | - modes are now covered by tests. |
| 11 | +- **Removed sensors now disappear instead of showing `unavailable`.** If v1.5.3 left you |
| 12 | + with a DC-DC Temperature entity stuck as unavailable, upgrading clears it. |
| 13 | +- Stale entities are now cleared based on the active profile, so sensors dropped in future |
| 14 | + releases tidy up after themselves. |
28 | 15 |
|
29 | 16 | --- |
30 | 17 |
|
31 | 18 | ## v1.5.3 |
32 | 19 |
|
33 | 20 | Issues: #360, #362 |
34 | 21 |
|
35 | | -**Coming from v1.5.1?** v1.5.2 was a pre-release, so you are getting its changes too — |
36 | | -the register scanner keeping your tuned settings when the integration is disabled, the |
37 | | -new SPA-TL3 profile, and the `Charge Stopped SOC` relabel. They are listed under v1.5.2 |
38 | | -below and are worth reading, particularly if you run an SPA or set charge limits. |
39 | | - |
40 | | -- **Fix: a "DC-DC Temperature" sensor reporting 0.0 °C on models that have no such |
41 | | - sensor.** Introduced by us in v1.4.0, and it is the same bug that release was fixing. |
42 | | - |
43 | | - v1.4.0 identified register 3176 on MOD/MID as the DC-DC stage rather than battery |
44 | | - temperature, and added `dcdc_temp` to the shared temperature sensor group — a group |
45 | | - almost every profile includes. Only MOD/MID, SPF and SPE define that register, so every |
46 | | - other model gained an entity that could never have a value and published freezing point |
47 | | - instead. |
48 | | - |
49 | | - A sensor is created because it is in a profile's set; the register only decides whether |
50 | | - it has a value. The note added at the time said the opposite. It now belongs to the |
51 | | - profiles that can populate it, and a test fails if a temperature sensor is ever declared |
52 | | - without a register behind it. |
53 | | - |
54 | | - **If you saw a DC-DC Temperature entity stuck at 0.0 °C, it will disappear on upgrade.** |
55 | | - MOD, MID, SPF and SPE keep theirs — those are real readings. |
56 | | - |
57 | | -- **SPH-TL3 and SPA-TL3 gain real IPM and Boost temperatures.** Both sensors were declared |
58 | | - but had no registers, so both reported 0.0 °C. A full scan of the #360 device answered |
59 | | - registers 94 and 95 with 20.0 °C and 33.3 °C alongside the inverter temperature at |
60 | | - 37.8 °C, so these are now mapped rather than removed. |
| 22 | +**Coming from v1.5.1?** v1.5.2 was a pre-release, so you get its changes too — see below. |
61 | 23 |
|
62 | | -- **SPA-TL3 regains Energy Today and Energy Total.** v1.5.2 excluded them, assuming they |
63 | | - counted solar generation an AC-coupled inverter does not have. The same scan shows |
64 | | - 2.0 kWh today and 2313.9 kWh total, with the SPA extended block agreeing at a second |
65 | | - address. They measure what the inverter puts out, and a discharging battery produces |
66 | | - output like anything else. |
| 24 | +- **DC-DC Temperature no longer appears on models that don't have the sensor.** It was |
| 25 | + reporting 0.0 °C on MIN, SPH, SPH-TL3, WIT and TL-XH. MOD, MID, SPF and SPE keep theirs — |
| 26 | + those are real readings. |
| 27 | +- **SPH-TL3 and SPA-TL3 gain IPM and Boost temperature** (registers 94/95). Both were |
| 28 | + present but unmapped, so both read 0.0 °C. |
| 29 | +- **SPA-TL3 regains Energy Today and Energy Total** — confirmed on hardware, not the solar |
| 30 | + generation figures they were mistaken for. |
67 | 31 |
|
68 | 32 | --- |
69 | 33 |
|
70 | 34 | ## v1.5.2 |
71 | 35 |
|
72 | 36 | Issues: #360, #362 |
73 | 37 |
|
74 | | -- **"Charge Stopped SOC (Battery First)" renamed to "Charge Stopped SOC".** |
75 | | - Register 3048 is documented as a Battery First setting, and the name said so — but it |
76 | | - governs charging under Load Priority too. Measured on a MID 25KTL3-XH with all nine TOU |
77 | | - periods disabled and every priority on Load Priority: charging stopped at exactly the |
78 | | - configured value with 10.8 kW of PV available and room in the battery, and resumed when |
79 | | - it was raised. |
80 | | - |
81 | | - This is the same correction register 3067 received in v1.4.1, and it fails more quietly |
82 | | - than that one did. A discharge floor firing unexpectedly looks like the battery refusing |
83 | | - to supply the house. A charge ceiling firing just sends surplus to the grid — everything |
84 | | - reads plausibly and nothing looks wrong unless you ask why SOC stopped climbing. |
85 | | - |
86 | | - Entity IDs are unchanged, so automations and dashboards keep working. |
87 | | - |
88 | | - Reported and measured by @as-wallpen. |
89 | | - |
90 | | -- **The "settings are being reverted" notice no longer blames the dongle by itself.** |
91 | | - It named a connected ShineWiFi or ShineLink dongle as the most likely cause. A user |
92 | | - running one alongside this integration, still uploading to Growatt's cloud, has local |
93 | | - writes persisting overnight — so the dongle alone is not sufficient. The notice now |
94 | | - points at the cloud pushing settings *down* (remote control or a schedule set in the |
95 | | - ShinePhone app), which is the part that actually overwrites local changes. |
96 | | - |
97 | | -- **SPA gains AC current, output power, inverter status, AC energy today/total, and |
98 | | - inverter/IPM/boost temperature.** From the SPA extended range (2000-2124). The model |
99 | | - matrix recorded AC current and power as unconfirmed; the temperatures were absent |
100 | | - entirely, so an SPA reported no temperature of any kind — which looks like hardware |
101 | | - that doesn't measure it rather than registers nobody asked for. |
102 | | - |
103 | | - **These come from the protocol and have not yet been read on a device.** If you own a |
104 | | - single-phase SPA, a scan of 2000-2124 would confirm or correct all of them in one pass. |
105 | | - |
106 | | - Verified values already in the profile were left alone: AC voltage and frequency keep |
107 | | - their measured 1000-range registers rather than adopting the documented 2000-range ones. |
108 | | - |
109 | | - Three-phase SPA-TL3 does not serve this range and is unaffected. |
110 | | - |
111 | | -- **A protocol coverage audit, and what it found.** These registers had been sitting in |
112 | | - our own extracted protocol reference the whole time, unmapped, because nothing fails |
113 | | - when a register is never requested — "we never asked for it" and "the hardware doesn't |
114 | | - report it" look identical from outside. |
115 | | - |
116 | | - `tools/protocol_coverage.py` now reports registers the protocol documents that no |
117 | | - profile maps, so that gap is findable rather than waiting for someone to notice. It |
118 | | - compares addresses, not meanings, and a range a model doesn't serve shows as a gap that |
119 | | - isn't a defect — it's a place to look, not a defect list. |
120 | | - |
121 | | - Also corrects the range summary, which called 2000-2124 "SPH extended". Every register |
122 | | - in it is SPA, and that mislabel pointed anyone checking at the wrong family. |
123 | | - |
124 | | -- **Fix: scanning a disabled integration fell back to default connection settings.** |
125 | | - The documented procedure asks you to disable the integration before scanning, so the |
126 | | - poller stops competing with the scanner for the adapter. Disabling unloads the entry — |
127 | | - and the scan service looked for its connection details on the loaded entry, so selecting |
128 | | - your inverter no longer worked and the only way to scan was to retype the host and port. |
129 | | - |
130 | | - That manual path started from defaults: slave ID 1, 250 ms pacing, 125-register blocks. |
131 | | - On a gateway tuned to smaller, slower reads, those requests fail — so every range reported |
132 | | - "no response" from hardware that had been polling perfectly a minute earlier. Following |
133 | | - the instructions was what triggered it, and v1.5.1's pacing fix could not help, because |
134 | | - the value it reads lives on the entry that disabling had just unloaded. |
135 | | - |
136 | | - The scan now reads the connection, slave ID, **Modbus delay** and **block size** from the |
137 | | - stored entry whether or not it is loaded. Select your inverter under **Config entry** |
138 | | - rather than typing the host by hand — that is what carries your tuned settings into the |
139 | | - scan. An explicitly chosen block size still overrides the inherited one. |
140 | | - |
141 | | - Reported by @Xybertecnic, whose scan came back empty on a disabled entry and full of data |
142 | | - the moment it was re-enabled. |
143 | | - |
144 | | -- **New profile: SPA-TL3 (AC Storage, 3-Phase) 4-10kW.** |
145 | | - Three-phase SPA inverters use the SPH-TL3 register layout, not the single-phase SPA one, |
146 | | - which reads a range this hardware does not serve — picking the only option with "SPA" in |
147 | | - its name left every entity unavailable. |
148 | | - |
149 | | - SPA is AC-coupled and has no solar inputs, so running it on the SPH-TL3 profile instead |
150 | | - produced a full set of PV entities permanently reading zero. The new profile shares the |
151 | | - verified SPH-TL3 register map with those sensors removed, and **DTC 3725 now selects it |
152 | | - automatically**. |
153 | | - |
154 | | - If your SPA-TL3 was auto-detected onto SPH-TL3, its PV sensors will disappear on upgrade. |
155 | | - They only ever reported zero. |
156 | | - |
157 | | - Both dropdown entries now state their phase count — **SPA (AC Storage, 1-Phase) 3-6kW** |
158 | | - and **SPA-TL3 (AC Storage, 3-Phase) 4-10kW** — so the choice no longer depends on knowing |
159 | | - which register range your model serves. |
| 38 | +- **Scanning a disabled integration now keeps your tuned settings.** Select your inverter |
| 39 | + under **Config entry** rather than typing the host and port, and the scan inherits your |
| 40 | + slave ID, Modbus delay and block size. Typing the connection by hand still starts from |
| 41 | + defaults, which a sensitive gateway may not tolerate. Reported by @Xybertecnic. |
| 42 | +- **New profile: SPA-TL3 (AC Storage, 3-Phase) 4-10kW**, selected automatically by |
| 43 | + DTC 3725. Both SPA options now state their phase count, so the choice no longer depends |
| 44 | + on knowing which register range your model serves. |
| 45 | + - If your SPA-TL3 was auto-detected onto SPH-TL3, its PV entities disappear on |
| 46 | + upgrade. They only ever reported zero. |
| 47 | +- **`Charge Stopped SOC (Battery First)` renamed to `Charge Stopped SOC`.** Register 3048 |
| 48 | + also governs charging under Load Priority, so the old name suggested it could be ignored |
| 49 | + outside Battery First. Entity IDs are unchanged. Measured and reported by @as-wallpen. |
| 50 | +- **SPA gains AC current, output power, inverter status, AC energy and temperatures** from |
| 51 | + the 2000-2124 range. These come from the protocol and have not yet been read on a device — |
| 52 | + a scan from a single-phase SPA would confirm them. AC voltage and frequency keep their |
| 53 | + existing measured registers. Three-phase SPA-TL3 is unaffected. |
| 54 | +- **The "settings are being reverted" notice** now points at Growatt's cloud pushing |
| 55 | + settings down — remote control or a schedule set in the ShinePhone app — rather than a |
| 56 | + connected dongle on its own. |
| 57 | +- **New: `tools/protocol_coverage.py`**, which reports registers the protocol documents |
| 58 | + that no profile maps. Also corrects the range summary, which listed 2000-2124 as SPH |
| 59 | + rather than SPA. |
160 | 60 |
|
161 | 61 | --- |
162 | 62 |
|
|
0 commit comments