Skip to content

Releases: jrgutier/rivian-python-client

Pre-release 2.1.0-beta.7

06 Dec 05:48

Choose a tag to compare

Pre-release

Pre-release Build

Version: 2.1.0-beta.7
Branch: dev
Commit: 6ab5d70

⚠️ This is an automated pre-release build. Use at your own risk.

Installation

pip install rivian-python-client==2.1.0-beta.7

Or install directly from git:

pip install git+https://github.com/jrgutier/rivian-python-client.git@v2.1.0-beta.7

Full Changelog: v2.1.0-beta.6...v2.1.0-beta.7

Pre-release 2.1.0-beta.6

06 Dec 01:52

Choose a tag to compare

Pre-release

Pre-release Build

Version: 2.1.0-beta.6
Branch: dev
Commit: 4d5bbac

⚠️ This is an automated pre-release build. Use at your own risk.

Installation

pip install rivian-python-client==2.1.0-beta.6

Or install directly from git:

pip install git+https://github.com/jrgutier/rivian-python-client.git@v2.1.0-beta.6

Full Changelog: v2.1.0-beta.5...v2.1.0-beta.6

Pre-release 2.1.0-beta.5

06 Dec 01:21

Choose a tag to compare

Pre-release

Pre-release Build

Version: 2.1.0-beta.5
Branch: dev
Commit: 88b8c32

⚠️ This is an automated pre-release build. Use at your own risk.

Installation

pip install rivian-python-client==2.1.0-beta.5

Or install directly from git:

pip install git+https://github.com/jrgutier/rivian-python-client.git@v2.1.0-beta.5

Full Changelog: v2.1.0-beta.4...v2.1.0-beta.5

v2.1.0-beta.4

05 Dec 22:53

Choose a tag to compare

v2.1.0-beta.4 Pre-release
Pre-release

Remove dependency upper bounds for Home Assistant compatibility

v2.1.0-beta.3

22 Nov 01:29

Choose a tag to compare

Changes

  • Remove dependency upper bounds for Home Assistant compatibility
    • Fixes propcache, aiohttp, attrs, cryptography conflicts with HA 2025.x
    • Relaxes all core dependency constraints to allow HA's versions
    • Updates gql constraint to <4.0.0 to match HA

Dependency Updates

Now compatible with Home Assistant 2025.x package versions:

  • aiohttp 3.13.2
  • attrs 25.4.0
  • propcache 0.4.1
  • yarl 1.22.0
  • cryptography 46.0.2
  • And other HA core dependencies

πŸ€– Generated with Claude Code

v2.1.0-beta.2

22 Nov 01:00

Choose a tag to compare

Changes

  • Remove yarl upper bound constraint for Home Assistant compatibility
    • Fixes dependency conflict with Home Assistant's yarl 1.22.0
    • Changes yarl constraint from >=1.6.0,<=1.20.1 to >=1.6.0

Installation

pip install "rivian-python-client[ble] @ git+https://github.com/jrgutier/rivian-python-client.git@v2.1.0-beta.2"

πŸ€– Generated with Claude Code

v2.1.0-beta.1

30 Oct 05:46

Choose a tag to compare

v2.1.0-beta.1 Pre-release
Pre-release

v2.1.0-beta.1 - Beta Release

Changes in this beta

  • ✨ Migrate to gql library for GraphQL operations
  • ✨ Add 20 new GraphQL operations for enhanced functionality
  • πŸ“š Organize documentation into /docs directory structure
  • πŸ”§ Revert request headers to origin/main compatibility
  • πŸ”’ Eliminate Bearer token authentication (session-based auth only)

Testing

This is a beta release for testing the gql library integration. Please test thoroughly before using in production.

Installation:

pip install git+https://github.com/jrgutier/rivian-python-client.git@v2.1.0-beta.1

From source:

git checkout integrate-gql-client
poetry install

Feedback

Please report any issues at https://github.com/jrgutier/rivian-python-client/issues


πŸ€– Generated with Claude Code

v1.4.2-beta1: Authorization Fix + GraphQL Migration

26 Oct 02:35

Choose a tag to compare

v1.4.2-beta1 - GraphQL Migration & Authorization Fix

This is a beta release for testing. Please report any issues.

Major Changes

GraphQL Client Migration

  • Migrated from manual REST-style GraphQL to gql library v3.5.3 with DSL support
  • Added static GraphQL schema definition to avoid introspection overhead
  • 6 methods converted to type-safe DSL approach (authentication, phone enrollment, vehicle commands)
  • 15+ methods still use legacy __graphql_query() for backward compatibility with ClientResponse returns

Authorization Fix (CRITICAL)

  • Removed Authorization: Bearer tokens entirely to match official Android app behavior
  • Android app (com.rivian.android.consumer) uses only session tokens (U-Sess), never Bearer tokens
  • This prevents UNAUTHENTICATED errors after 2 hours when access tokens expire
  • Session tokens remain valid indefinitely, providing stable authentication

Removed Non-Working Functionality

  • Removed refresh_access_token() method (refreshUserSession mutation doesn't exist in Rivian's API)
  • Simplified token refresh to only handle CSRF tokens
  • Removed retry logic from GraphQL execution (not needed without Bearer tokens)

Breaking Changes

  • Removed refresh_access_token() method - no longer needed and never worked
  • Changed internal _execute_with_retry() to _execute_async() - internal API only
  • Removed 4 related tests for non-existent refresh functionality

Fixes

  • Fixed websockets dependency conflict with Home Assistant integrations
    • Removed websockets extra from gql dependency
    • Added explicit websockets>=13.0,<16.0 dependency
    • Now compatible with HA 2025.10.4 and other integrations
  • Simplified error handling in _handle_gql_error() - removed unnecessary retry logic

Testing

  • All 27 tests passing (removed 4 tests for non-existent refresh functionality)
  • Tested with Home Assistant integration
  • Compatible with HA 2025.10.4 dependency constraints

Installation

# For Home Assistant (Container/Docker)
docker exec homeassistant pip install --upgrade git+https://github.com/jrgutier/rivian-python-client.git@v1.4.2-beta1

# For HA OS (via SSH)
ha addons ssh --host homeassistant
apk add git
pip install --upgrade git+https://github.com/jrgutier/rivian-python-client.git@v1.4.2-beta1

# For standard Python projects
pip install git+https://github.com/jrgutier/rivian-python-client.git@v1.4.2-beta1

Files Changed (11 files, 3018 insertions, 757 deletions)

Core Implementation:

  • src/rivian/rivian.py - GraphQL client migration, removed Bearer tokens, removed refresh_access_token()
  • src/rivian/schema.py - Static GraphQL schema for DSL (removed refreshUserSession)
  • src/rivian/const.py - Added CLIMATE_HOLD_ON/OFF commands

Tests:

  • tests/rivian_test.py - Updated for gql client, removed 4 non-working tests
  • tests/responses.py - Updated mock responses, removed REFRESH_TOKEN_RESPONSE

Dependencies:

  • pyproject.toml - Added gql with aiohttp extra, fixed websockets dependency
  • poetry.lock - Updated to websockets 15.0.1

Documentation:

  • CLAUDE.md - Comprehensive development guide
  • README.md - Updated examples and installation
  • CHANGELOG.md - Full changelog

What to Test

  1. Authentication flow - Login with username/password, OTP validation
  2. Vehicle commands - Climate hold, door locks, charging
  3. GraphQL queries - Vehicle state, user info, charging sessions
  4. Token persistence - Long-running sessions (no more 2-hour logouts)
  5. Home Assistant integration - Install and verify no dependency conflicts

Known Limitations

  • Access token refresh is not supported (Rivian's API doesn't provide this)
  • However, the client no longer sends Bearer tokens, so access token expiration doesn't cause failures
  • Session tokens (U-Sess) remain valid indefinitely

πŸ€– Generated with Claude Code