Repository navigation
Commit 10c4f39
Merge upstream springfall2008/batpred v8.48.1 into the fork
Brings in 65 upstream commits on top of the Pi's local work. 43 non-test
source files merged with no conflict at all; the six that did are resolved
so both sides survive rather than one overwriting the other:
- axle.py: upstream's springfall2008#4520 fix (an export event boosts the import rate too,
since charging during the window carries the same opportunity cost) kept,
wrapped in this fork's guard that only applies minutes the rate data still
covers, so a session that has scrolled out is not re-applied every run.
- inverter.py: upstream's two-source readback (Control.Discharge_Target_SOC_1
first, raw.invertor as fallback) and its "unreadable register is left alone"
guard, plus this fork's rest_write_acknowledged() fallback for hardware where
the register is absent from GivTCP's read map entirely and no readback can
ever confirm a write that did land. The two cases are distinct and both are
now handled.
- predbat.py: fork version string and watchdog constants kept.
- annual.py: upstream's baseline_tariff threading applied to BOTH the gas and
the heat pump leg - the two legs' no_pvbat scenarios are differenced against
each other, so pricing one on the baseline tariff and the other on the main
tariff would bias the heating answer.
- web_annual.py: upstream wins on the Octopus load-source prefill. Its
reasoning applies directly here: the import meter already has PV and battery
self-consumption subtracted, so modelling a system on top double-counts.
The predheat heating prefill, which upstream has no equivalent of, is kept.
- prediction_kernel: ABI/parity bumped to 103/104, past this fork's 102/103 and
upstream's 3/5, because both sides changed the context struct and the hot
loop. Any binary built before this merge is now rejected at load time and
falls back to the Python engine rather than being silently trusted.
annual_heat.py is added because the Pi's annual.py and web_annual.py import it
and it existed only on feat/annual-heat-pump - without it the tree does not
import at all.
Verified: merged kernel compiles under -Wall -Werror and PASSES parity across
450 configurations (nominal/pv10/pv90); unit_test.py --quick is 224 passed,
with the one pre-existing db_manager corruption failure that reproduces
identically on main without this merge.
prediction_kernel_lib_aarch64.so is rebuilt from the merged source (needs
GLIBC 2.32, container has 2.43). The other five architectures need zig, so
they stay stale until CI's kernel-binaries job rebuilds them - note that
workflow is on: pull_request, so it does not run on a push to main.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>107 files changed
Lines changed: 43015 additions & 26167 deletions
File tree
- .cspell
- apps/predbat
- tests
- coverage/cases
- docs
- superpowers
- plans
- specs
- templates
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| 80 | + | |
79 | 81 | | |
80 | 82 | | |
81 | 83 | | |
| |||
103 | 105 | | |
104 | 106 | | |
105 | 107 | | |
| 108 | + | |
| 109 | + | |
106 | 110 | | |
107 | 111 | | |
108 | 112 | | |
| |||
140 | 144 | | |
141 | 145 | | |
142 | 146 | | |
| 147 | + | |
143 | 148 | | |
144 | 149 | | |
145 | 150 | | |
| |||
186 | 191 | | |
187 | 192 | | |
188 | 193 | | |
| 194 | + | |
189 | 195 | | |
190 | 196 | | |
191 | 197 | | |
| |||
233 | 239 | | |
234 | 240 | | |
235 | 241 | | |
| 242 | + | |
236 | 243 | | |
237 | 244 | | |
238 | 245 | | |
| |||
292 | 299 | | |
293 | 300 | | |
294 | 301 | | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
295 | 307 | | |
296 | 308 | | |
297 | 309 | | |
298 | 310 | | |
299 | 311 | | |
| 312 | + | |
300 | 313 | | |
301 | 314 | | |
302 | 315 | | |
| |||
329 | 342 | | |
330 | 343 | | |
331 | 344 | | |
| 345 | + | |
332 | 346 | | |
333 | 347 | | |
334 | 348 | | |
| |||
361 | 375 | | |
362 | 376 | | |
363 | 377 | | |
| 378 | + | |
364 | 379 | | |
365 | 380 | | |
366 | 381 | | |
| |||
369 | 384 | | |
370 | 385 | | |
371 | 386 | | |
| 387 | + | |
372 | 388 | | |
373 | 389 | | |
374 | 390 | | |
| |||
386 | 402 | | |
387 | 403 | | |
388 | 404 | | |
| 405 | + | |
| 406 | + | |
389 | 407 | | |
390 | 408 | | |
391 | 409 | | |
| |||
413 | 431 | | |
414 | 432 | | |
415 | 433 | | |
| 434 | + | |
416 | 435 | | |
417 | 436 | | |
418 | 437 | | |
| |||
433 | 452 | | |
434 | 453 | | |
435 | 454 | | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
436 | 459 | | |
437 | 460 | | |
438 | 461 | | |
| |||
489 | 512 | | |
490 | 513 | | |
491 | 514 | | |
| 515 | + | |
492 | 516 | | |
493 | 517 | | |
494 | 518 | | |
| |||
499 | 523 | | |
500 | 524 | | |
501 | 525 | | |
| 526 | + | |
| 527 | + | |
502 | 528 | | |
503 | 529 | | |
504 | 530 | | |
| 531 | + | |
505 | 532 | | |
506 | 533 | | |
507 | 534 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| |||
Large diffs are not rendered by default.
0 commit comments