Skip to content

fix(drivers): bundle Pixii PV sunset and recovery fixes - #1654

Merged
frahlg merged 2 commits into
masterfrom
fix/pixii-pv-bundled-033
Oct 16, 2026
Merged

frahlg merged 2 commits into
masterfrom
fix/pixii-pv-bundled-033

Conversation

@frahlg

@frahlg frahlg commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Problem and result

Fresh Pixii MQTT messages with a negative PV phase sum became positive PV power. Core rejected them, so solar could become stale and disappear after sunset. Bundle pixii_pv 0.3.3 from srcfl/device-drivers#181, which reports zero generation for a valid negative sum and leaves missing data missing.

Move the pin from afc9739dd19920246cadaa5135baa85485840528 to the merged commit 76ddd5846f18cb1a0d53d85508904d4e953421b2. Of the 40 bundled drivers, only two change:

A patch changeset includes both fixes in the next beta's release notes.

Scope and safety

Add a test through Core's Lua host and telemetry store for day, sunset, repeated night messages, mixed phase signs, missing or invalid power, idle polls, grid-only messages and morning recovery.

The existing Pixii recovery test required one Core reload after three failed polls. The updated driver recovers within its own VM, so the test now requires zero reloads. It also checks that failed polls leave the battery timestamp unchanged and recovery advances it. The separate host tests still cover reloading old drivers that retire every register.

Open #1537 and #1449 also touch the pin. This PR uses the current master driver list. When those PRs land, their pins must retain this commit or a later descendant. Their driver changes are outside this pin range.

No hardware run in this change. The tests use synthetic MQTT and Modbus data through the real Core host. Beta testing at the affected site still needs to confirm zero PV after sunset, production the next morning and recovery after an outage.

Verification

  • scripts/sync-bundled-drivers.sh — fetched all 40 drivers from the merged commit.
  • make driver-versions-across-pin — all 40 bundled driver versions verified.
  • CGO_ENABLED=0 go -C go test -tags=netgo,osusergo ./internal/drivers ./internal/telemetry -run 'Pixii|TestGiveUp|TestStoreRejectsInvalidReadings|TestBundledDriversMeetStartupContract' -count=1 — passed.
  • make verify — Go tests, migration and release checks, native worker checks, import boundaries, vet and build passed, including after the master update.
  • Final GitHub CI — Core, protocol, driver suites, full stack and the required aggregate check passed. Both Linux Core and backup builds also passed.

The paired driver PR passed all five GitHub checks and the full driver suite: 4931 passed, 923 skipped.

The first Core CI run failed in the unchanged TestASupportGrantEndsWhenItsTicketCloses, which assumes the last flushed audit row is the successful staff call. flushFolds iterates a Go map, so row order varies. The test failed 9 of 40 local repetitions; a temporary order-independent assertion passed all 40. Both the test and audit code match the base commit byte for byte. After updating the branch with current master, all checks passed on 2a415229f3c0f602db5941a52d86493d1f3bfdd7; no support code or test was changed in this PR. Initial CI failure.

Checklist

  • The change follows VISION.md and one selected scope.
  • I checked overlapping PRs and shared files/contracts.
  • Relevant checks cover the changed behaviour and failure paths.
  • No UI changed.
  • A Changeset is included.
  • Every commit has a DCO sign-off.

Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
@frahlg
frahlg marked this pull request as ready for review October 16, 2026 04:22
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T04:24:48.745268Z 4307b94 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…d-033

Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
@frahlg
frahlg merged commit 6b7c245 into master Oct 16, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant