Skip to content

Add Parallax equivalents of vehicle commands - #245

Open
walthowd wants to merge 1 commit into
bretterer:mainfrom
walthowd:feat/parallax-vehicle-commands
Open

walthowd wants to merge 1 commit into
bretterer:mainfrom
walthowd:feat/parallax-vehicle-commands

Conversation

@walthowd

@walthowd walthowd commented Nov 14, 2026 •

Copy link
Copy Markdown

Gen 2 R1s and the R2 refuse sendVehicleCommand for anything they take over Parallax. This maps vehicle commands to their Parallax equivalents, gated on the same supported features the Rivian app checks.

  • parallax.vehicle_command_feature: the feature that gates a command (PVS_BD_CMD, PVS_SEC_CMD, PVS_COMF_CMD, PVS_ENRG_CMD; liftgate also needs LIFTGATE_CMD), or None if there's no equivalent (wake, honk, flash, side bins)
  • parallax.encode_vehicle_command: the RVM and payload for send_parallax_command, from the same params as send_vehicle_command

Tested

2026 R1S (Gen 2), 2026.36.01: locks, windows, frunk, liftgate, seat heat/vent (all rows), steering wheel heat, preconditioning and temp (incl. HI/LO), defrost, charge limit, start/stop charging, charge port, panic, Gear Guard video. Payloads match the Rivian app's.

Not tested: R1T, R2

Overlap with #235

I compared the two on my R1S and the payloads match byte for byte, except LO. #235 has been quiet since, so I'm opening mine. Happy to go with whichever you'd rather merge.

New R1s and the R2 refuse `sendVehicleCommand` for commands they take over
Parallax. Like the Rivian app, a command goes over Parallax when the vehicle
reports its category's supported feature (`PVS_BD_CMD`, `PVS_SEC_CMD`,
`PVS_COMF_CMD` or `PVS_ENRG_CMD`) as AVAILABLE. The liftgate needs
`LIFTGATE_CMD`, so vehicles without it, such as an R1T with a tailgate, keep
the old command.

- `parallax.vehicle_command_feature` returns that feature for a command, or
  None for commands without an equivalent (wake, honk, flash, side bins).
- `parallax.encode_vehicle_command` returns the RVM and payload to send with
  `send_parallax_command`, from the same `params` as `send_vehicle_command`.
  Locking uses the existing `encode_lock`/`encode_unlock`.

Verified against a 2026 R1S (Gen 2) running 2026.36.01, which reports all
four features and `LIFTGATE_CMD`: locks, windows, frunk, liftgate, front
seat heat and vent, rear and third row seat heat, steering wheel heat,
preconditioning and its temperature (including HI and LO), defrost, charge
limit, start and stop charging, charge port, panic and Gear Guard video.
The payloads match the Rivian app's. Not tested: the R1T and R2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FxWHBTrHU6eTPotwMWgtJF
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