drivers/tests/test_refused_write_settles.py only probes drivers whose manifest declares PROTOCOL == "modbus". It holds every Modbus control driver to the write-refusal-counting rule in docs/WRITING-A-DRIVER.md ("The same rule for writes"): count refusals, stop after N, report the default as held rather than failed.
nibe_local (PROTOCOL = "http", writes via host.http_patch) is the first HTTP-protocol driver to gain a write path — see #46 — and it falls through this check entirely, silently. In the current code, driver_default_mode has no bounded refusal counter: if the pump keeps refusing the clear write (e.g. left read-only on the pump side via installer menu 7.5.15), it retries every 60s indefinitely instead of counting to N and reporting the state as held, the way sungrow 1.5.7 does.
This gap applies to any future HTTP-protocol control driver, not just nibe_local — the check's protocol filter is the root cause, not the individual driver.
Ask: widen test_refused_write_settles.py (and refused-write-baseline.json bookkeeping) to also probe HTTP-protocol drivers that declare a write path, the same way it already does for Modbus. Surfaced during automated review of #46; filing separately since it's a pre-existing coverage gap in the test suite rather than something that PR's diff introduced.
drivers/tests/test_refused_write_settles.pyonly probes drivers whose manifest declaresPROTOCOL == "modbus". It holds every Modbus control driver to the write-refusal-counting rule indocs/WRITING-A-DRIVER.md("The same rule for writes"): count refusals, stop after N, report the default as held rather than failed.nibe_local(PROTOCOL = "http", writes viahost.http_patch) is the first HTTP-protocol driver to gain a write path — see #46 — and it falls through this check entirely, silently. In the current code,driver_default_modehas no bounded refusal counter: if the pump keeps refusing the clear write (e.g. left read-only on the pump side via installer menu 7.5.15), it retries every 60s indefinitely instead of counting to N and reporting the state as held, the waysungrow1.5.7 does.This gap applies to any future HTTP-protocol control driver, not just
nibe_local— the check's protocol filter is the root cause, not the individual driver.Ask: widen
test_refused_write_settles.py(andrefused-write-baseline.jsonbookkeeping) to also probe HTTP-protocol drivers that declare a write path, the same way it already does for Modbus. Surfaced during automated review of #46; filing separately since it's a pre-existing coverage gap in the test suite rather than something that PR's diff introduced.