Skip to content

Commit 8b1d85d

Browse files
0xAHAclaude
andcommitted
docs: power_to_user does track grid import; correct the clamp note (#373)
The note against box_grid_power said a grid-bounded limit was not buildable from this inverter's own registers on this model. That was too strong, and the reporter corrected it against his own evidence rather than let it stand because it quoted him. Across 637 samples during EV charging, power_to_user (3041/3042) was non-zero in 632 of 632, median -4 W against a P1 meter, 98% within 200 W. For sustained import it tracks the grid closely, and sustained import is the failure mode a clamp exists to prevent. The limitation is real but narrower: power_to_user also read 0.0 through eight transient events, including a confirmed 2.2 kW load running ten seconds while the inverter's own discharge register moved by 2.2 kW to meet it. Trustworthy for sustained flow, blind to transients on roughly that timescale - which is the normal profile of a kettle, espresso machine or boiler, so a design using it should expect to miss those and say so rather than discover it later. box_grid_power stays mapped and stays noted as dead on this model. That half is firmer than when written: 4430 consecutive zero samples now, and the conclusion no longer rests on the transient spikes at all. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 5f6cb1b commit 8b1d85d

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

  • custom_components/growatt_modbus/profiles

custom_components/growatt_modbus/profiles/mod.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,8 @@
213213
3286: {'name': 'box_temperature', 'scale': 1, 'unit': '°C', 'signed': True, 'desc': 'NTC temperature, Int8, -40 to 100°C'},
214214
3287: {'name': 'box_grid_voltage', 'scale': 0.1, 'unit': 'V', 'desc': 'Grid voltage'},
215215
# box_grid_power has been observed constant at zero on a MOD 10KTL3-XH (DN1.0):
216-
# 2509 samples over two nights, never non-zero, including 11 samples where the
217-
# house meter showed real grid flow of up to 2064 W. In those same 11, power_to_user
218-
# read 0 in all of them and power_to_grid in 10 of 11 (#373).
216+
# 4430 consecutive samples over two nights, never once non-zero, including samples
217+
# where the house meter showed real grid flow of up to 2064 W (#373).
219218
#
220219
# NOT removed on that evidence. The box's other sensors work on the same unit
221220
# (temperature, grid voltage, work mode, bypass status all report), so this is not
@@ -224,10 +223,25 @@
224223
# settle it is box_work_mode (3282) during a sample with known grid flow; nobody
225224
# has captured that pairing yet.
226225
#
227-
# Practical consequence, and the reason it is recorded here: a grid-bounded limit
228-
# ("never command anything that causes import") is not buildable from this
229-
# inverter's own registers on this model. A PV-bounded one is — PV power at 1/2,
230-
# 5/6, 9/10 is validated, as is battery power at 3178-3181.
226+
# USE power_to_user (3041/3042) FOR GRID IMPORT ON THIS MODEL, not this register.
227+
#
228+
# An earlier version of this note claimed a grid-bounded limit ("never command
229+
# anything that causes import") was not buildable from this inverter's own
230+
# registers. That was too strong, and the reporter said so rather than let it
231+
# stand: across 637 samples during EV charging, power_to_user was non-zero in
232+
# 632 of 632, with a median difference of -4 W against a P1 meter and 98% of
233+
# samples within 200 W. For sustained import it tracks the grid closely.
234+
#
235+
# The limitation is real but narrower than stated. power_to_user also read 0.0
236+
# through eight transient events, including a confirmed 2.2 kW load running for
237+
# ten seconds while the inverter's own discharge register moved by 2.2 kW to meet
238+
# it. So it is trustworthy for sustained flow and blind to transients on roughly
239+
# that timescale — which is the normal profile of a kettle, an espresso machine or
240+
# a boiler, so any design using it should expect to miss those.
241+
#
242+
# For a clamp that exists to stop a *command* causing continuous import, that gap
243+
# is acceptable and should be stated rather than discovered. PV power (1/2, 5/6,
244+
# 9/10) and battery power (3178-3181) are also validated on this model.
231245
3289: {'name': 'box_grid_power_high', 'scale': 1, 'unit': '', 'pair': 3290, 'signed': True, 'desc': 'Grid power HIGH (Int32, positive=import). Reads 0 on at least one DN1.0 unit — see note above'},
232246
3290: {'name': 'box_grid_power_low', 'scale': 1, 'unit': '', 'pair': 3289, 'combined_scale': 0.1, 'combined_unit': 'W', 'signed': True, 'desc': 'Grid power LOW'},
233247
3297: {'name': 'box_load_power_high', 'scale': 1, 'unit': '', 'pair': 3298, 'desc': 'Load power HIGH (Uint32)'},

0 commit comments

Comments
 (0)