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
fix: an unknown profile key silently became a MIN 7-10kW
get_profile() falls back to min_7000_10000_tl_x for any key it does not
recognise. That keeps setup alive, but it is a single-phase profile reading the
3000 range, so on any other model the integration loads cleanly and reports
almost nothing - with no log line and no repair to trace it to.
#360 hit it: a user hand-edited a profile into the component directory, updating
replaced those files, and their entry still named the profile that had gone. The
visible symptom was 'phase voltage and frequency show nothing', which points
nowhere near the cause.
Adds a warning in get_profile(), profile_exists() for callers that can surface
it, and an unknown_profile repair issue naming the missing key and telling the
user to re-select their model. The stale-entity cleanup is skipped in that state:
the fallback's sensor set is not the device's, and treating it as authoritative
would delete every entity the real profile created.
Also fixes the placeholder test that should have caught the new repair being
wrong. It compared strings.json against a hard-coded dict and searched only
coordinator.py, so it verified nothing about a repair raised elsewhere. It now
reads the actual translation_placeholders from every module that raises one,
parsed with ast because the values are f-strings whose braces truncate any regex.
Co-Authored-By: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: custom_components/growatt_modbus/strings.json
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -99,6 +99,10 @@
99
99
"title": "Growatt: settings are being reverted",
100
100
"description": "Local changes to **{controls}** were reverted shortly after being set, so the inverter is not keeping them.\n\nThe usual causes, in order of likelihood:\n\n- **Growatt's cloud is pushing settings back.** A ShineWiFi or ShineLink dongle that is only uploading telemetry does not appear to be enough on its own — one user runs one alongside this integration with local writes persisting overnight. What overwrites local changes is the cloud sending settings *down*: remote control enabled in the ShinePhone app, or a schedule configured there. Turn those off before disconnecting anything.\n- **A prerequisite setting is not enabled.** On MOD inverters, *Allow Grid Charge* must be Enabled before time-of-use schedules will persist.\n- **The register is not writable on your firmware.** Some models accept the write and ignore it. The log has the register number if you want to report it.\n\nThis notice will not reappear until Home Assistant restarts."
101
101
},
102
+
"unknown_profile": {
103
+
"title": "Growatt: inverter model no longer recognised",
104
+
"description": "This entry is configured for the profile **{profile}**, which no longer exists in the integration.\n\nIt has fallen back to a MIN 7-10kW profile so Home Assistant can still start, but that profile reads different registers from your inverter. Most sensors will be missing or stuck at zero until this is corrected.\n\n**Fix it:** go to Settings > Devices & Services > Growatt Modbus > Configure, and select your model.\n\nThe usual cause is a profile added or edited by hand in the integration's folder, which an update then replaced. If you need a model the integration does not cover, please open an issue rather than editing the files - a profile added properly survives updates."
"description": "The gateway at **{gateway}** answered **{percent}%** of requests with a frame that did not match the request — typically a complete response to an *earlier* request, replayed.\n\n**Your data is not affected.** These responses are detected and discarded rather than decoded, which is what this check is for. But the reads are lost, so sensors update less often than they should.\n\nThis is a gateway problem, not an inverter problem. Things that have helped others:\n\n- Set **Max Register Block Size** to 25 in the integration options.\n- Check the gateway is in **Modbus TCP to RTU** mode, not transparent passthrough.\n- If it has a TCP timeout setting, make sure it is enabled rather than disabled, so dead sessions are cleaned up.\n\nSee the linked guide for gateways known to work and the settings they use."
Copy file name to clipboardExpand all lines: custom_components/growatt_modbus/translations/en.json
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -99,6 +99,10 @@
99
99
"title": "Growatt: settings are being reverted",
100
100
"description": "Local changes to **{controls}** were reverted shortly after being set, so the inverter is not keeping them.\n\nThe usual causes, in order of likelihood:\n\n- **Growatt's cloud is pushing settings back.** A ShineWiFi or ShineLink dongle that is only uploading telemetry does not appear to be enough on its own — one user runs one alongside this integration with local writes persisting overnight. What overwrites local changes is the cloud sending settings *down*: remote control enabled in the ShinePhone app, or a schedule configured there. Turn those off before disconnecting anything.\n- **A prerequisite setting is not enabled.** On MOD inverters, *Allow Grid Charge* must be Enabled before time-of-use schedules will persist.\n- **The register is not writable on your firmware.** Some models accept the write and ignore it. The log has the register number if you want to report it.\n\nThis notice will not reappear until Home Assistant restarts."
101
101
},
102
+
"unknown_profile": {
103
+
"title": "Growatt: inverter model no longer recognised",
104
+
"description": "This entry is configured for the profile **{profile}**, which no longer exists in the integration.\n\nIt has fallen back to a MIN 7-10kW profile so Home Assistant can still start, but that profile reads different registers from your inverter. Most sensors will be missing or stuck at zero until this is corrected.\n\n**Fix it:** go to Settings > Devices & Services > Growatt Modbus > Configure, and select your model.\n\nThe usual cause is a profile added or edited by hand in the integration's folder, which an update then replaced. If you need a model the integration does not cover, please open an issue rather than editing the files - a profile added properly survives updates."
"description": "The gateway at **{gateway}** answered **{percent}%** of requests with a frame that did not match the request — typically a complete response to an *earlier* request, replayed.\n\n**Your data is not affected.** These responses are detected and discarded rather than decoded, which is what this check is for. But the reads are lost, so sensors update less often than they should.\n\nThis is a gateway problem, not an inverter problem. Things that have helped others:\n\n- Set **Max Register Block Size** to 25 in the integration options.\n- Check the gateway is in **Modbus TCP to RTU** mode, not transparent passthrough.\n- If it has a TCP timeout setting, make sure it is enabled rather than disabled, so dead sessions are cleaned up.\n\nSee the linked guide for gateways known to work and the settings they use."
0 commit comments