Skip to content

Attach enrolled engine battery control leases before startup - #5515

Draft
mgazza wants to merge 1 commit into
feat/control-write-drain-gatefrom
feat/engine-control-service-startup
Draft

mgazza wants to merge 1 commit into
feat/control-write-drain-gatefrom
feat/engine-control-service-startup

Conversation

@mgazza

@mgazza mgazza commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator

Explicitly enrolled engines now claim a server-issued battery-control epoch before constructing components. Refused or malformed attachment stops startup, lease expiry and drain closure permanently fence admission, and a dedicated worker reports exact local pending/uncertain transport evidence to the engine-battery-control service.

Supports the existing gated direct GivEnergy and Hub MQTT sinks. Component startup rejects uncovered battery transports and external Home Assistant service paths; ordinary installations stay unchanged. Same-object reinitialization preserves the sealed gate and tracked work.

Validation: 29 control/service cases, component registry tests, Gateway suite and 138 GivEnergy tests pass; pre-commit passes. GitNexus staged scope: six expected files, 70 mapped symbols, five restart/poll flows (MEDIUM). Tests exercise real startup, component selection, worker, shutdown and transport call sites with synthetic HTTP/provider boundaries.

Based on #5513, including merged #5514. Requires the separately reviewed SaaS service PR Predictive-Cloud-Ltd/predbat-saas#2144. Default off, no production enrollment or provider changes. This is source process evidence only: loaded configuration revision/exact inverter identity attestation, joined backend proof, physical Hub fencing, target readiness and provider commit/release remain required before activation. Provider selector, onboarding grid and automatic backup remain outstanding.

This branch has not been deployed

No deployments
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