Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .changeset/keep-on-ports-registration-and-name-corrections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
"@teslemetry/tesla-protocol": major
---

Add keep-on accessory ports, the legacy vehicle configuration block, VCSEC information-request replies and energy-device registration and Supercharger messages, and correct placeholder and mis-guessed field names in `command`.

**Breaking: field names in `command` change.** The tags and the wire bytes are the same. The field names, the generated-code names and the JSON names change:

| Message | Tag | JSON name before | JSON name after |
|---|---|---|---|
| `Signatures.AES_GCM_Detached_Signature_Data` | 1 | `epoch` | `nonce` |
| `Signatures.AES_GCM_Detached_Signature_Data` | 4 | `nonce` | `tag` |
| `Signatures.AES_GCM_Detached_Signature_Data` | 5 | `tag` | `prefix` |
| `Signatures.SessionInfo` | 7 | `field7` | `flags` |
| `CarServer.PrepareMobileUploadAction` | 3 | `field3` | `apply` |
| `CarServer.DogModeLiveActivityData` | 3 | `field3` | `vin` |
| `CarServer.DogModeLiveActivityData` | 4 | `field4` | `timestamp` |
| `CarServer.DogModeLiveActivityData.DogModeImageData` | 2 | `encryptedImage` | `image` |
| `CarServer.SetPhoneSettingPreferencesAction` | 2 | `field2` | `language` |
| `CarServer.SohState.SohResult` | 3 | `field3` | `soh` |
| `CarServer.VehicleDataSubscriptionResponse` | 3 | `unknown` | `error` |
| `CarServer.VitalsSubscriptionResponse` | 2 | `unknown` | `error` |
| `CarServer.PseudonymSyncResponse` | 1 | `unknown` | `pseudonym` |
| `CarServer.NavigationRouteResponse` | 1 | `unknown` | `route` |
| `CarServer.RequestTeslaAuthCommand` | 2 | `unknown` | `scope` |
| `CarServer.Profile` | 1 | `unknown1` | `uuid` |
| `CarServer.Profile` | 2 | `unknown2` | `name` |
| `CarServer.KeyInfo` | 1 | `unknown1` | `name` |
| `CarServer.KeyInfo` | 2 | `unknown2` | `model` |

`SohState.SohResult.soh` also moves from the oneof `optional_field_3` to `optional_soh`.

`AES_GCM_Detached_Signature_Data` is more than a rename: code that set `epoch` and `nonce` by name put the nonce bytes at tag 4 and the epoch bytes at tag 1. Tag 1 is the nonce, tag 4 is the tag and tag 5 is the prefix.

**Added (wire-compatible):**

- `command`: `KeepOnAccessoryPortRequest`, `KeepOnAccessoryPortsState` (`VehicleData` 39), `GetVehicleData.getKeepOnAccessoryPortsState` (34), `VehicleDataSubscription.keep_on_accessory_ports_state_max_update_rate_ms` (31), `VehicleDataFields.keep_on_accessory_ports_state` (33), and the commands `VehicleAction.setKeepOnCabin12vPortAction` (721262) and `setKeepOnCabin48vPortAction` (721263).
- `command`: `VehicleAction.dropNominalSuccessResponses` (185), `CurrentVehicleState.halloween_mode` (71) and `trick_or_treat_mode` (72), `RKEAction_E` `RKE_ACTION_LEFT_STORAGE_OPEN` (33) and `RKE_ACTION_RIGHT_STORAGE_OPEN` (34), and `Domain` `DOMAIN_ENERGY_DEVICE_AUTHORIZED_COMMAND` (11).
- `command`: named alternatives for `AutoparkStyle`, `AutoparkVersion`, `AutoparkState`, `SpoilerState`, `SohState.SohTestPhase` and `SohState.SohTestEndMode`, and the legacy `VehicleState` fields 34, 37, 46 and 47.
- `command`: the legacy `VehicleConfig` configuration fields (car type, trim, badging, wheels, colors, seats, charge port, drive units, efficiency package, steering wheel, `rhd`, `plg`, `vin`) with their Void-oneof types, more `InteriorTrimType` and `ExteriorTrimType` alternatives, and the `GuiSettings` distance, temperature, charge-rate and range-display units.
- `command`: the VCSEC replies to the personalization, capabilities, key-status and active-key information requests (`FromVCSECMessage` 5, 19, 21, 22), `VehicleStatus.keyLocationStatus`, and the key-permission lists on `WhitelistEntryInfo` and `PermissionChange`.
- `energy_device`: `registration_api.proto` (`RegistrationMessages`, `MessageEnvelope` 18) and `supercharger_api.proto` (`SuperchargerMessages`, `MessageEnvelope` 17); the register and site-lookup payloads on `CommonMessages` 40-45 and on the TEG and Wall Connector register calls; `Participant.proxied_device`; `CommonAPIGetSystemInfoResponse.installed_firmware_signature` (8) and `offline_firmware_signature` (9); and new `UpdateStatus`, `WCThirdPartyVehicleMode` and `WCEvseNotReadyReason` values.

Fields not yet confirmed on a live vehicle carry an `UNCONFIRMED` comment.
28 changes: 13 additions & 15 deletions buf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,17 @@ breaking:
# trips this rule every time, so it's excepted repo-wide rather than per-PR.
except:
- RESERVED_MESSAGE_NO_DELETE
# Temporary: this patch release mirrors fleet-telemetry PR 572's final
# content, which renames, removes and renumbers Field 272-278 and drops
# Value.cruise_state_value (56) as published by the PR's first version.
# These rules flag that. Delete this block in the first PR after this
# release is published.
# Temporary: this major release corrects placeholder and mis-guessed field
# names in command/ (same tags, new names). These rules flag that. Delete this
# block in the first PR after this release is published.
ignore_only:
ENUM_VALUE_NO_DELETE_UNLESS_NAME_RESERVED:
- proto/telemetry/vehicle_data.proto
ENUM_VALUE_NO_DELETE_UNLESS_NUMBER_RESERVED:
- proto/telemetry/vehicle_data.proto
ENUM_VALUE_SAME_NAME:
- proto/telemetry/vehicle_data.proto
FIELD_NO_DELETE_UNLESS_NAME_RESERVED:
- proto/telemetry/vehicle_data.proto
FIELD_NO_DELETE_UNLESS_NUMBER_RESERVED:
- proto/telemetry/vehicle_data.proto
FIELD_SAME_JSON_NAME:
- proto/command/car_server.proto
- proto/command/signatures.proto
- proto/command/vehicle.proto
FIELD_SAME_NAME:
- proto/command/car_server.proto
- proto/command/signatures.proto
- proto/command/vehicle.proto
FIELD_SAME_ONEOF:
- proto/command/vehicle.proto
6 changes: 3 additions & 3 deletions catalog/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ Generated by `scripts/build_catalog.py` from `proto/`. Do not edit by hand;
regenerate with `.venv/bin/python scripts/build_catalog.py` and commit the diff.
See `catalog/catalog.json` for the full descriptor-based inventory.

**Totals:** 39 source files, 7 groups, 905 messages, 254 enums, 3016 fields.
**Totals:** 41 source files, 7 groups, 1019 messages, 271 enums, 3588 fields.

| Group | Source files | Compiled top-level inputs | Messages | Enums | Fields |
|---|---:|---:|---:|---:|---:|
| `charging` | 1 | 1 | 6 | 0 | 31 |
| `command` | 10 | 10 | 344 | 106 | 1608 |
| `command` | 10 | 10 | 377 | 113 | 1974 |
| `dashcam` | 1 | 1 | 1 | 2 | 16 |
| `energy_command` | 1 | 1 | 0 | 1 | 0 |
| `energy_device` | 20 | 19 | 443 | 94 | 1035 |
| `energy_device` | 22 | 21 | 524 | 104 | 1241 |
| `telemetry` | 5 | 5 | 16 | 48 | 112 |
| `teslapower` | 1 | 1 | 95 | 3 | 214 |

Expand Down
Loading
Loading