energy_device: field-level extraction of TEG/WC/PVI/Neurio/LocalAuth/EnergySiteNet/IntraSite/FileStore/GraphQL APIs - #22
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
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.WCAPI(Wall Connector - vitals, load-sharing, charge scheduling, OCPP, Powershare, ~106 messages) andTEGAPI(Powerwall/TEG - island mode, backup events, controllable-device-program scheduling, OCPP/CSMS config, ~86 messages) in the existingwall_connector.proto/teg_api.proto, and theirWCMessages/TEGMessagesoneof envelopes (previously stubbed empty / partially commented-out).common_api.proto's remaining empty stubs (tcpdump capture request/response,ComplianceInformation/RadioLegalInformation) and itsCommonMessagesoneof.energy_site_net.proto(site device add/remove/config messages) and itsEnergySiteNetMessagesoneof; adds the missingpvi/localauth/neuriometer/energysitenet/intrasite/filestore/graphqlslots totransport.proto'sMessageEnvelopeoneof (several were sketched as commented placeholders already).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).VIN,UUIDv4/UUIDv4Bytes) needed by several of the above are added todevice.protoalongside the existingDin/EcuIdwrappers, matching that file's existing pattern.NetworkInterface,SystemUpdate) and a handful of already-modelledRequest/Responsepairs 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.SMAPI/WMSAAPIhave no reachable field-level definitions at all in this pass (name-only, same as before); a handful ofCommonAPI/TEGAPI/WCAPImessages (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.CommonAPIGetSystemInfoResponse's real wire tags forsystem_update/device_typeare 5/6, not the currently-published 4/5 (with three more fields at 7-9) - fixing this requires renumbering an already-published tag, which tripsbuf breaking'sFIELD_SAME_NUMBER/rename checks and is explicitly forbidden by this repo's own bump-rules (.changeset/README.md). Left as-is.GridComplianceStatus.qualifiying_time_remaining_s(note the existing typo) is typedgoogle.protobuf.FloatValuebut the real wire type isgoogle.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.
buf lint,buf breaking(againstmain),scripts/upstream_coverage.py --mode pinned, andscripts/check_reply_coverage.pyare all green.