Skip to content

energy_device: field-level extraction of TEG/WC/PVI/Neurio/LocalAuth/EnergySiteNet/IntraSite/FileStore/GraphQL APIs - #22

Merged
Bre77 merged 1 commit into
mainfrom
fm/energy-device-v1-fulltext-extraction-future
Jul 28, 2026
Merged

energy_device: field-level extraction of TEG/WC/PVI/Neurio/LocalAuth/EnergySiteNet/IntraSite/FileStore/GraphQL APIs#22
Bre77 merged 1 commit into
mainfrom
fm/energy-device-v1-fulltext-extraction-future

Conversation

@Bre77

@Bre77 Bre77 commented Jul 28, 2026

Copy link
Copy Markdown
Member

Intent

  • Fills in field-level definitions for tesla.proto.energy_device.v1 (the local-Powerwall/Wall-Connector/PV-inverter gateway API), which this repo previously only captured as bare message/service names, based on our own observations and contributions from the community.
    • Completes the bodies for WCAPI (Wall Connector - vitals, load-sharing, charge scheduling, OCPP, Powershare, ~106 messages) and TEGAPI (Powerwall/TEG - island mode, backup events, controllable-device-program scheduling, OCPP/CSMS config, ~86 messages) in the existing wall_connector.proto/teg_api.proto, and their WCMessages/TEGMessages oneof envelopes (previously stubbed empty / partially commented-out).
    • Completes common_api.proto's remaining empty stubs (tcpdump capture request/response, ComplianceInformation/RadioLegalInformation) and its CommonMessages oneof.
    • Completes energy_site_net.proto (site device add/remove/config messages) and its EnergySiteNetMessages oneof; adds the missing pvi/localauth/neuriometer/energysitenet/intrasite/filestore/graphql slots to transport.proto's MessageEnvelope oneof (several were sketched as commented placeholders already).
    • New modules for services that had no file at all yet: pvi_api.proto (PV inverter), neurio_meter_api.proto (CT meters), local_auth_api.proto (local login), intra_site_api.proto (device pairing/mesh), filestore_api.proto (on-gateway file store), graphql_api.proto (the GraphQL-over-protobuf sub-channel).
    • Two small shared types (VIN, UUIDv4/UUIDv4Bytes) needed by several of the above are added to device.proto alongside the existing Din/EcuId wrappers, matching that file's existing pattern.
    • Two pre-existing messages (NetworkInterface, SystemUpdate) and a handful of already-modelled Request/Response pairs turned out to have additional trailing fields not yet captured (device_state/device_state_reason, is_sideloading, download_if_available, download_url, will_attempt_download); added those without touching any existing tag.
  • Excluded and documented rather than guessed: SMAPI/WMSAAPI have no reachable field-level definitions at all in this pass (name-only, same as before); a handful of CommonAPI/TEGAPI/WCAPI messages (site registration, site-uuid/suggestion, commercial registration) carry one field whose type lives in a separate, not-yet-published sibling package (energy_registration.v1) - left unmodeled with a short inline comment on the field instead of vendoring or guessing at that package.
  • Two confirmed-but-unfixed discrepancies, flagged rather than changed (open questions, not decided unilaterally):
    1. CommonAPIGetSystemInfoResponse's real wire tags for system_update/device_type are 5/6, not the currently-published 4/5 (with three more fields at 7-9) - fixing this requires renumbering an already-published tag, which trips buf breaking's FIELD_SAME_NUMBER/rename checks and is explicitly forbidden by this repo's own bump-rules (.changeset/README.md). Left as-is.
    2. GridComplianceStatus.qualifiying_time_remaining_s (note the existing typo) is typed google.protobuf.FloatValue but the real wire type is google.protobuf.UInt32Value - also breaking, also left as-is.
      Both would need a deliberate major-version/breaking-change call from a maintainer; not something to push through in a routine additive PR.
  • Regenerated both language packages; buf lint, buf breaking (against main), scripts/upstream_coverage.py --mode pinned, and scripts/check_reply_coverage.py are all green.
  • Adds a minor changeset (net-new messages/fields/oneof options = wire-compatible additions; the two breaking finds above are explicitly not included).

…EnergySiteNet/IntraSite/FileStore/GraphQL APIs

Fills in field-level definitions for the energy_device.v1 local-Powerwall
gateway API, based on our own observations and contributions from the
community.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Bre77
Bre77 merged commit 505c980 into main Jul 28, 2026
1 check 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