This website requires JavaScript.
182102eeaf
SAFETY-25: say what peak_soc_floor bounds, and measure what it does not
admin and Claude Opus 5
2026-09-01 03:46:43 +02:00
1e4bad8aa7
CI-02: grade the merge, and stop a cancelled run reading as a test failure
admin and Claude Opus 5
2026-09-01 03:42:54 +02:00
6ea79f1043
Merge pull request 'SAFETY-20: measure the freeze rail against the reachable ceiling, not max_w' (#28 ) from SAFETY-20 into release/1.0
admin
2026-09-01 02:57:58 +02:00
29fa39eda7
Merge origin/release/1.0 into SAFETY-20
glenn schrooyen
2026-09-01 02:43:08 +02:00
d64790b3e2
Merge pull request 'TEST-15: purge the bytecode cache before a mutation run, not after' (#27 ) from TEST-15 into release/1.0
admin
2026-09-01 02:22:15 +02:00
83911ed637
SAFETY-20: measure the freeze rail against the reachable ceiling, not max_w
admin and Claude Opus 5
2026-09-01 02:14:07 +02:00
7b4877d56d
TEST-15: purge the bytecode cache before a mutation run, not after
glenn schrooyen and Claude Opus 5
2026-09-01 02:07:09 +02:00
358fbb0172
Merge pull request 'TEST-17: grade the status page's peak row at a stated month, not at today's' (#26 ) from TEST-17 into release/1.0
admin
2026-09-01 01:32:44 +02:00
504e8daac3
TEST-17: grade the status page's peak row at a stated month, not at today's
glenn schrooyen and Claude Opus 5
2026-09-01 00:58:06 +02:00
f6ecd5ff03
DATA-01: thirty days of the real meter, and what AC 3 actually measures (#25 )
admin
2026-08-31 11:35:45 +02:00
04292c4a08
DATA-01: thirty days of the real meter, and what AC 3 actually measures
DATA-01
glenn schrooyen and Claude Opus 5
2026-08-31 11:04:50 +02:00
86c43eba24
DATA-02: twelve months of real Belgian day-ahead prices, closing OPT-04 AC4 (#24 )
admin
2026-08-31 11:12:49 +02:00
d57122ec74
DATA-02: a real Belgian price year, so AC4 stops being unmeetable
DATA-02
glenn schrooyen and Claude Opus 5
2026-08-31 11:01:42 +02:00
4601682815
SAFETY-24: an energy floor under the peak guard's forced discharge (#21 )
admin
2026-08-31 10:24:36 +02:00
9234016419
Merge release/1.0 (OPT-04) into SAFETY-24, and fix one grader the merge broke
SAFETY-24
glenn schrooyen and Claude Opus 5
2026-08-31 07:39:40 +02:00
b7272169b1
SAFETY-26: pin the negative-price boundary from below, not just from above (#23 )
admin
2026-08-31 07:37:46 +02:00
2b8b8cb97f
SAFETY-26: pin the negative-price refusal from below, not only from above
SAFETY-26
glenn schrooyen and Claude Opus 5
2026-08-31 02:07:56 +02:00
8e589fee3f
OPT-04: price arbitrage, at priority 3, shipped switched off (#22 )
admin
2026-08-31 01:53:31 +02:00
bdd7f18a54
OPT-04: charge cheap, discharge expensive - and only when it pays
OPT-04
glenn schrooyen and Claude Opus 5
2026-08-31 01:36:09 +02:00
a1376e44e4
Merge release/1.0 (FCST-03) into SAFETY-24 - CHANGELOG only
glenn schrooyen and Claude Opus 5
2026-08-31 00:43:58 +02:00
e709554857
SAFETY-24: an energy floor under the peak guard's forced discharge
glenn schrooyen and Claude Opus 5
2026-08-31 00:29:36 +02:00
a30bde1ab1
FCST-03: provisional prices - yesterday flagged as yesterday, and unable to move anything (#20 )
admin
2026-08-31 00:23:41 +02:00
71cd7849e4
Merge release/1.0 (SAFETY-07) into FCST-03, and close two degenerate stimuli
FCST-03
glenn schrooyen and Claude Opus 5
2026-08-31 00:15:32 +02:00
e7c95bfd8a
SAFETY-07: cap the loop before it sets the month's billed capacity peak (#18 )
admin
2026-08-30 23:56:20 +02:00
dd40c56ab4
FCST-03: yesterday's prices, flagged as yesterday's, and unable to move anything
glenn schrooyen and Claude Opus 5
2026-08-30 23:54:07 +02:00
c2ed509565
Merge release/1.0 (TARIFF-03) into SAFETY-07
SAFETY-07
glenn schrooyen and Claude Opus 5
2026-08-30 23:43:35 +02:00
2d570d84ce
SAFETY-07 review: defend the three wiring mutations that survived
glenn schrooyen and Claude Opus 5
2026-08-30 23:40:39 +02:00
cf5094c608
TARIFF-03: the static day/night profile as a first-class product and the 11.4 fallback (#19 )
admin
2026-08-30 23:24:53 +02:00
9f8b721a4d
Merge release/1.0 (TARIFF-02) into SAFETY-07
glenn schrooyen and Claude Opus 5
2026-08-30 23:13:29 +02:00
303525cfc5
TARIFF-03: static day/night and fully-fixed tariffs, first-class
TARIFF-03
glenn schrooyen and Claude Opus 5
2026-08-30 23:07:53 +02:00
616b62d3e9
SAFETY-07: cap the loop before it sets the month's billed capacity peak
glenn schrooyen and Claude Opus 5
2026-08-30 23:05:05 +02:00
91ea676af4
TARIFF-02: price provider plugins + the canonical all-in price format (#16 )
admin
2026-08-30 22:35:49 +02:00
862f0fa574
Merge release/1.0 (TARIFF-01) into TARIFF-02
TARIFF-02
admin and Claude Opus 5
2026-08-30 19:42:16 +02:00
e102cde841
TARIFF-02 review: close the three other doors to the markup, and stop overclaiming
admin and Claude Opus 5
2026-08-30 19:35:36 +02:00
0dbd485b5a
TARIFF-01: measure the month's billed capacity peak, and make it survive a restart (#17 )
admin
2026-08-30 19:33:57 +02:00
f4914a174a
TARIFF-01: measure the month's billed peak, and make it survive a restart
TARIFF-01
glenn schrooyen and Claude Opus 5
2026-08-30 19:13:58 +02:00
852fc7ced6
TARIFF-02: one canonical price format, and a seam that keeps supplier names out of the optimiser
admin and Claude Opus 5
2026-08-30 19:05:12 +02:00
9aadf469bc
TEST-06: pin the cycle() ordering, the NOT COVERED string and the shipped meter_freeze_s (#14 )
admin
2026-08-30 18:39:07 +02:00
4b521b2df0
ci: trigger a run on the rebased head
TEST-06
glenn schrooyen and Claude Opus 5
2026-08-30 18:11:21 +02:00
0942228d65
Merge release/1.0 (SAFETY-03) into TEST-06
glenn schrooyen and Claude Opus 5
2026-08-30 17:45:09 +02:00
6aabb832fc
SAFETY-03: alarm when a computed setpoint exceeds the rating, do not just clip it (#12 )
admin
2026-08-30 17:22:30 +02:00
d31a12b7c6
TEST-06: the id-selection note said 'the only assertion'; there are two
glenn schrooyen and Claude Opus 5
2026-08-30 17:10:42 +02:00
2983d7c3b0
Merge remote-tracking branch 'origin/release/1.0' into TEST-06
glenn schrooyen
2026-08-30 17:05:35 +02:00
611d3dbcdf
TEST-06 review follow-ups: two notification surfaces, the real ordering boundary, the schema bounds
glenn schrooyen and Claude Opus 5
2026-08-30 17:05:28 +02:00
46383c5ae5
Merge release/1.0 (CI-01) into SAFETY-03 so the required check can run
SAFETY-03
glenn schrooyen and Claude Opus 5
2026-08-30 16:03:32 +02:00
5e966ca59f
CI-01: this repository's first automated check (#13 )
admin
2026-08-30 16:00:42 +02:00
4e66583a52
SAFETY-03 review fixes: both clamp stages always run, and two checks that could not fail
glenn schrooyen and Claude Opus 5
2026-08-30 15:52:09 +02:00
c34b5a2922
TEST-06: close the three gaps that survived SAFETY-18's suite green
glenn schrooyen and Claude Opus 5
2026-08-30 15:50:08 +02:00
9c1a23328a
CI-01: this repository's first automated check
glenn schrooyen and Claude Opus 5
2026-08-30 15:46:30 +02:00
c040aac4b8
SAFETY-03: alarm when a computed setpoint exceeds the rating, do not just clip it
glenn schrooyen and Claude Opus 5
2026-08-30 15:22:22 +02:00
0cdaa3bd3e
SAFETY-18: alarm on a meter frozen at a wrong-but-fresh value (#11 )
admin
2026-08-30 03:20:38 +02:00
7cde5d862a
Merge release/1.0 into SAFETY-18 - CHANGELOG only
SAFETY-18
glenn schrooyen and Claude Opus 5
2026-08-30 03:20:14 +02:00
b0a17474a3
MAINT-04: refuse a maintenance charge the ceiling cannot deliver (#10 )
admin
2026-08-30 03:01:14 +02:00
ffb8ec6373
MAINT-04 review: pin the default divergence with a check, not a comment
MAINT-04
glenn schrooyen and Claude Opus 5
2026-08-30 02:51:40 +02:00
0ba3a200fe
SAFETY-18: verify on the real rig, and record what it showed
glenn schrooyen and Claude Opus 5
2026-08-30 02:49:55 +02:00
7aa1bd052e
SAFETY-18: a meter frozen at a wrong-but-fresh value now raises an alarm
glenn schrooyen and Claude Opus 5
2026-08-30 02:39:54 +02:00
878a6ce452
MAINT-04: refuse a maintenance charge the ceiling cannot deliver
glenn schrooyen and Claude Opus 5
2026-08-30 02:28:09 +02:00
bb64f8fdd7
SAFETY-02 follow-up: persist the latch, and make the gate assertion bite (#9 )
admin
2026-08-28 23:09:27 +02:00
e40eb0768d
SAFETY-02: the P_PEAK assertion was pinning the test's copy of the gate
safety-02-latch-persistence
glenn schrooyen and Claude Opus 5
2026-08-28 22:59:46 +02:00
cc4e88490b
SAFETY-02 review: a latch that a restart clears is not a latch
glenn schrooyen and Claude Opus 5
2026-08-28 22:33:15 +02:00
2513ba1f12
SAFETY-02: the sign-disagreement watchdog (#8 )
admin
2026-08-28 21:55:52 +02:00
9aed43990b
SAFETY-02: a loop can be fresh, tracking and inside its rating and still push the wrong way
safety-02-sign-watchdog
glenn schrooyen and Claude Opus 5
2026-08-28 21:51:35 +02:00
35856a73ae
SAFETY-12: a loop that only thinks when the number changes cannot fail safe (#7 )
admin
2026-08-28 21:18:20 +02:00
aae74d7571
SAFETY-12 review: name the safety claim that could not fire, and fix two figures
safety-12-loop-floor
glenn schrooyen and Claude Opus 5
2026-08-28 21:14:58 +02:00
8cc9438aec
SAFETY-12: record the six-minute observation, not just the unit check
glenn schrooyen and Claude Opus 5
2026-08-28 20:48:49 +02:00
96a808a057
HANDOVER: run every suite before deploying, and say why one is slow
glenn schrooyen and Claude Opus 5
2026-08-28 20:32:00 +02:00
88cd97cc7a
SAFETY-12: the loop thinks on a clock, not only when the number moves
glenn schrooyen and Claude Opus 5
2026-08-28 20:29:16 +02:00
e2e331ea54
CFG-01 AC2: refuse to start on a config the lower layer will silently override (#6 )
admin
2026-08-28 20:17:55 +02:00
547d796c5d
CFG-01 review: widen the rule, refuse the firmware-veto case, fix the stop footgun
CFG-01
glenn schrooyen and Claude Opus 5
2026-08-28 20:05:10 +02:00
fc9bd89dca
CFG-01: refuse to start on a configuration that cannot be honoured
glenn schrooyen and Claude Opus 5
2026-08-28 19:29:35 +02:00
0422127cab
HANDOVER said 0.2.0; the running add-on is 0.4.0
glenn schrooyen and Claude Opus 5
2026-08-27 23:55:37 +02:00
80ebb96e7d
Two comments asserted an entity id that has never existed
glenn schrooyen and Claude Opus 5
2026-08-27 23:48:40 +02:00
c70239cac2
0.4.0: the meter transports that fit this house
glenn schrooyen and Claude Opus 5
2026-08-26 01:31:54 +02:00
08f17f65dd
TEL-05: read the meter, not Home Assistant's opinion of the meter
glenn schrooyen and Claude Opus 5
2026-08-25 21:27:13 +02:00
4d41b0a79e
TEL-05 review follow-ups: show unchanged_s, name a timeout, keep the poll task alive
TEL-05
glenn schrooyen and Claude Opus 5
2026-08-25 21:17:36 +02:00
98109a9b91
TEL-05: read the meter, not Home Assistant's opinion of the meter
glenn schrooyen and Claude Opus 5
2026-08-25 20:51:23 +02:00
ad9c5772a4
TEL-04: a meter source for the meter this house actually has
glenn schrooyen and Claude Opus 5
2026-08-25 18:00:42 +02:00
1b343da8e3
DOCS: say plainly that ha_dsmr and mqtt_p1 have never seen real hardware
TEL-04
glenn schrooyen and Claude Opus 5
2026-08-25 17:35:11 +02:00
e663e10245
TEL-04 review: unshadow the helper, validate config at startup, and record what the rig proved about the age sensor
glenn schrooyen and Claude Opus 5
2026-08-25 17:34:37 +02:00
632be44f6c
TEL-04: make a missing build() guard fail legibly instead of aborting
glenn schrooyen and Claude Opus 5
2026-08-25 17:01:33 +02:00
8b51a51e20
TEL-04: a third meter_source for a single signed entity
glenn schrooyen and Claude Opus 5
2026-08-25 16:44:22 +02:00
c24bc0a011
Pin LF, because the deployment target is a Linux container
glenn schrooyen and Claude Opus 5
2026-08-25 16:01:44 +02:00
80402c978f
DEPLOY-01: 0.3.0, so the update is installable at all
glenn schrooyen and Claude Opus 5
2026-08-25 15:52:47 +02:00
6c980e87b0
DEPLOY-01: bump version to 0.3.0, changelog for SAFETY-04 and TEL-01
DEPLOY-01
glenn schrooyen and Claude Opus 5
2026-08-25 10:33:17 +02:00
505a847d85
TEL-01: P1 ingestion, with the derivation and the sample age the EMS owns
glenn schrooyen and Claude Opus 5
2026-08-24 23:17:34 +02:00
f498d5fa54
SAFETY-04: bound the integrator independently of the output
glenn schrooyen and Claude Opus 5
2026-08-24 23:17:18 +02:00
4bd659c499
TEL-01 review fixes: stop the age sensor tripping installs that have no meter
TEL-01
glenn schrooyen and Claude Opus 5
2026-08-24 22:16:15 +02:00
f47f1f0129
TEL-01: P1 ingestion, with the derivation and the age the EMS owns
glenn schrooyen and Claude Opus 5
2026-08-24 21:52:51 +02:00
680461c9bf
SAFETY-04: record the coverage audit as a comment, with its invariant
SAFETY-04
glenn schrooyen and Claude Opus 5
2026-08-24 23:07:58 +02:00
389d9ecd6d
SAFETY-04: stop the clamps standing in for the mechanisms under test
glenn schrooyen and Claude Opus 5
2026-08-24 22:59:29 +02:00
53d301b920
SAFETY-04: exactly zero is its own case in the freeze tie-break
glenn schrooyen and Claude Opus 5
2026-08-24 22:49:01 +02:00
7123aa00a4
SAFETY-04: revive the clamp reason, and compare reasons in the sweep
glenn schrooyen and Claude Opus 5
2026-08-24 22:29:10 +02:00
e46175559b
SAFETY-04 review fixes: the freeze deadlocked, the bound was too loose
glenn schrooyen and Claude Opus 5
2026-08-24 22:13:55 +02:00
37bac79ad8
SAFETY-04: clamp the integrator, not only the output
glenn schrooyen and Claude Opus 5
2026-08-24 21:44:05 +02:00
5184a2cfc2
Rest the meter just below zero, not at zero
v0.2.1
glenn schrooyen and Claude Opus 5
2026-08-24 04:20:07 +02:00
1b85eb41ad
Handover doc: state, known breakage, and what to do next
admin and Claude Opus 5
2026-08-23 02:51:34 +02:00
017b798fe6
Precedence arbiter: one rule instead of an if/else ladder
admin and Claude Opus 5
2026-08-23 02:45:32 +02:00
36cc837446
Point the manifests at the real repository URL
admin and Claude Opus 5
2026-08-23 02:33:22 +02:00
594f8f9fc9
Six silent failures found by installing this on a live system
admin and Claude Opus 5
2026-08-23 02:25:58 +02:00
1abca15520
Compatibility gate: check the serial tag, not the model name
admin and Claude Opus 5
2026-08-23 01:56:20 +02:00