SAFETY-128 round 2: find late readings from the batteries, not the meter alone
Review B1: the meter fit took repeating house loads (ovens, a heat pump)
for late readings on healthy 1-2 s sites, about 9 % of the recorded
house. B2: at a 5 s meter it never ran. M1: no hysteresis. M2: an
unbounded check.
lateness.Delay now fits how long each battery's reading takes to show
its own request, which the house does not move, from the 1 s reads
(read_inputs -> Answer.watch). The meter fit stays for speed at 1-3 s
meters, but counts only when an ask was slow to start and no battery
fit said on time. Late from 9.5 s after 2 fits, on time under 6.5 s,
dropped after 120 s without a fit. Fits are bounded (a few ms).
Readings on time: no verdict in any reviewer scenario (22 shapes at
1/2/5 s meters, 7 harm runs) nor in 2 days of the recorded house at
1, 2 and 5 s ticks; digests equal to 77fe31b. Late: found 36-68 s after
the start at 1-2 s, about 3 min at 5 s. The row gives the batteries'
delay, or no figure while only the meter has shown it.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bdqr7PiaHcBnzPituu2yTC
This commit is contained in:
co-authored by
Claude
parent
09e1fbb898
commit
d3f4f9f48b
@@ -645,16 +645,28 @@ def row_controller_stalled(age_s, veto_s) -> str:
|
||||
|
||||
|
||||
def row_readings_late(delay_s, zero=False) -> str:
|
||||
"""SAFETY-128: Home Assistant readings arrive late; past the hold, 0 W."""
|
||||
"""SAFETY-128: readings show the power request late; `delay_s` the
|
||||
batteries' fitted delay (their own answer included), or None when only
|
||||
the meter has shown it; past the hold, 0 W."""
|
||||
if delay_s is None:
|
||||
if zero:
|
||||
return Bi("Home Assistant readings show requests late, so every "
|
||||
"inverter is at 0 W.",
|
||||
"Metingen uit Home Assistant tonen vermogensvraag te "
|
||||
"laat, omvormers op 0 W.")
|
||||
return Bi("Home Assistant readings show requests late, so control "
|
||||
"holds the batteries.",
|
||||
"Metingen uit Home Assistant tonen vermogensvraag te laat, "
|
||||
"dus de batterijen wachten.")
|
||||
if zero:
|
||||
return Bi(f"Home Assistant readings arrive about {seconds(delay_s)} "
|
||||
return Bi(f"Home Assistant readings show requests {seconds(delay_s)} "
|
||||
f"late, so every inverter is at 0 W.",
|
||||
f"Metingen uit Home Assistant komen zo'n "
|
||||
f"Metingen uit Home Assistant tonen vermogensvraag "
|
||||
f"{seconden(delay_s)} te laat, omvormers op 0 W.")
|
||||
return Bi(f"Home Assistant readings arrive about {seconds(delay_s)} late, "
|
||||
f"so control holds the batteries.",
|
||||
f"Metingen uit Home Assistant komen zo'n {seconden(delay_s)} te "
|
||||
f"laat, dus de batterijen wachten.")
|
||||
return Bi(f"Home Assistant readings show requests about {seconds(delay_s)} "
|
||||
f"late, so control holds the batteries.",
|
||||
f"Metingen uit Home Assistant tonen vermogensvraag zo'n "
|
||||
f"{seconden(delay_s)} te laat, dus de batterijen wachten.")
|
||||
|
||||
|
||||
def row_meter_waiting(limit_s) -> str:
|
||||
@@ -1511,6 +1523,8 @@ def status_samples() -> list:
|
||||
("row_meter_waiting", AMBER, row_meter_waiting(30)),
|
||||
("row_readings_late", AMBER, row_readings_late(30)),
|
||||
("row_readings_late", AMBER, row_readings_late(30, True)),
|
||||
("row_readings_late", AMBER, row_readings_late(None)),
|
||||
("row_readings_late", AMBER, row_readings_late(None, True)),
|
||||
("row_meter", GREEN, row_meter(-350, 2, 3, 340)),
|
||||
("row_meter_frozen", RED, row_meter_frozen()),
|
||||
*(("row_freeze_off", AMBER, row_freeze_off(k)) for k in FREEZE_OFF),
|
||||
|
||||
Reference in New Issue
Block a user