rivian-python-client 2.2.0b2__tar.gz → 2.2.0b3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/PKG-INFO +1 -1
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/__version__.py +1 -1
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/comfort.py +35 -47
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/dynamics.py +17 -27
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/energy.py +6 -11
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/energy_edge_compute.py +6 -8
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/holiday_celebration.py +1 -3
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/navigation.py +12 -32
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/ota.py +4 -7
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/charging.proto +1 -1
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/charging_pb2.py +10 -10
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/comfort.proto +11 -11
- rivian_python_client-2.2.0b3/src/rivian/parallax/proto/comfort_pb2.py +78 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/departure.proto +1 -1
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/departure_pb2.py +11 -11
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/dynamics.proto +11 -11
- rivian_python_client-2.2.0b3/src/rivian/parallax/proto/dynamics_pb2.py +72 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/energy.proto +5 -5
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/energy_edge_compute.proto +11 -11
- rivian_python_client-2.2.0b3/src/rivian/parallax/proto/energy_edge_compute_pb2.py +49 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/energy_pb2.py +11 -11
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/holiday_celebration.proto +1 -1
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/holiday_celebration_pb2.py +12 -12
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/navigation.proto +10 -10
- rivian_python_client-2.2.0b3/src/rivian/parallax/proto/navigation_pb2.py +78 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/ota.proto +2 -2
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/ota_pb2.py +25 -25
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/security.proto +1 -1
- rivian_python_client-2.2.0b3/src/rivian/parallax/proto/security_pb2.py +66 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/vehicle.proto +13 -13
- rivian_python_client-2.2.0b3/src/rivian/parallax/proto/vehicle_pb2.py +62 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/security.py +2 -2
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/vehicle.py +27 -32
- rivian_python_client-2.2.0b2/src/rivian/parallax/proto/comfort_pb2.py +0 -78
- rivian_python_client-2.2.0b2/src/rivian/parallax/proto/dynamics_pb2.py +0 -72
- rivian_python_client-2.2.0b2/src/rivian/parallax/proto/energy_edge_compute_pb2.py +0 -49
- rivian_python_client-2.2.0b2/src/rivian/parallax/proto/navigation_pb2.py +0 -78
- rivian_python_client-2.2.0b2/src/rivian/parallax/proto/security_pb2.py +0 -66
- rivian_python_client-2.2.0b2/src/rivian/parallax/proto/vehicle_pb2.py +0 -62
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/.gitignore +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/README.md +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/pyproject.toml +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/__init__.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/ble.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/const.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/exceptions.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/__init__.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/body.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/charging.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/core.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/departure.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/device_table.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/gearguard_streaming.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/geofence.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/parallax.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/__init__.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/body.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/body_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/body_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/charging_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/comfort_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/departure_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/device_table.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/device_table_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/device_table_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/dynamics_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/energy_edge_compute_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/energy_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/gearguard_streaming.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/gearguard_streaming_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/gearguard_streaming_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/geofence.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/geofence_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/geofence_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/holiday_celebration_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/navigation_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/ota_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/parallax.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/parallax_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/parallax_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/secure_file_transfer.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/secure_file_transfer_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/secure_file_transfer_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/security_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/user_passcodes.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/user_passcodes_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/user_passcodes_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/vehicle_access.proto +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/vehicle_access_pb2.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/vehicle_access_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/proto/vehicle_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/secure_file_transfer.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/user_passcodes.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/vehicle_access.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/py.typed +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/rivian.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/schemas/charging.graphql +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/schemas/gateway.graphql +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/schemas/orders.graphql +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/utils.py +0 -0
- {rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/ws_monitor.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rivian-python-client
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.0b3
|
|
4
4
|
Summary: Rivian API Client (Unofficial)
|
|
5
5
|
Author-email: Brian Retterer <bretterer@gmail.com>, "J.R. Gutierrez" <jrgutier@gmail.com>, Nathan Spencer <natekspencer@gmail.com>, Trevor Mack <drummer8001@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
{rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/comfort.py
RENAMED
|
@@ -17,9 +17,7 @@ def decode_hvac_settings_status(m: comfort_pb2.HvacSettingsStatus) -> dict[str,
|
|
|
17
17
|
Fields:
|
|
18
18
|
hvacTargetTemperature: float (°C; 63.5 = "HI", set while defrosting)
|
|
19
19
|
"""
|
|
20
|
-
|
|
21
|
-
return {}
|
|
22
|
-
return {"hvacTargetTemperature": round(v, 1)}
|
|
20
|
+
return {"hvacTargetTemperature": round(m.target_temperature, 1)}
|
|
23
21
|
|
|
24
22
|
|
|
25
23
|
@RVMDecoder.register("comfort.user_modes.state", comfort_pb2.UserModesState)
|
|
@@ -132,12 +130,10 @@ def decode_cabin_temperatures(m: comfort_pb2.CabinTemperatures) -> dict[str, Any
|
|
|
132
130
|
cabinClimateDriverTemperature: float (°C) — set point, same as
|
|
133
131
|
`hvacTargetTemperature`
|
|
134
132
|
"""
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
result["cabinClimateDriverTemperature"] = round(v, 1)
|
|
140
|
-
return result
|
|
133
|
+
return {
|
|
134
|
+
"cabinClimateInteriorTemperature": round(m.interior_temperature, 1),
|
|
135
|
+
"cabinClimateDriverTemperature": round(m.driver_set_point, 1),
|
|
136
|
+
}
|
|
141
137
|
|
|
142
138
|
|
|
143
139
|
@RVMDecoder.register(
|
|
@@ -146,24 +142,20 @@ def decode_cabin_temperatures(m: comfort_pb2.CabinTemperatures) -> dict[str, Any
|
|
|
146
142
|
def decode_cabin_ventilation(m: comfort_pb2.CabinVentilationSetting) -> dict[str, Any]:
|
|
147
143
|
"""comfort.cabin.cabin_ventilation_setting — passive ventilation settings.
|
|
148
144
|
|
|
149
|
-
Fields
|
|
145
|
+
Fields:
|
|
150
146
|
cabinVentilationEnabled: bool
|
|
151
|
-
cabinVentilationMode: str ("AUTO" | "MANUAL" | "OFF")
|
|
147
|
+
cabinVentilationMode: str | None ("AUTO" | "MANUAL" | "OFF")
|
|
152
148
|
cabinVentilationWindowsPosition: int (percent open)
|
|
153
149
|
cabinVentilationSunroofPosition: int (percent open)
|
|
154
150
|
cabinVentilationDuration: int (minutes)
|
|
155
151
|
"""
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
):
|
|
164
|
-
if (v := _present(m, field)) is not None:
|
|
165
|
-
result[key] = v
|
|
166
|
-
return result
|
|
152
|
+
return {
|
|
153
|
+
"cabinVentilationEnabled": m.enabled,
|
|
154
|
+
"cabinVentilationMode": m.mode or None,
|
|
155
|
+
"cabinVentilationWindowsPosition": m.windows_position,
|
|
156
|
+
"cabinVentilationSunroofPosition": m.sunroof_position,
|
|
157
|
+
"cabinVentilationDuration": m.duration,
|
|
158
|
+
}
|
|
167
159
|
|
|
168
160
|
|
|
169
161
|
@RVMDecoder.register(
|
|
@@ -185,29 +177,26 @@ def decode_climate_hold_status(m: comfort_pb2.ClimateHoldStatus) -> dict[str, An
|
|
|
185
177
|
Fields:
|
|
186
178
|
climateHoldStatus: str ("off" | "on" | "unavailable" | "fault" | "unspecified")
|
|
187
179
|
climateHoldAvailability: str
|
|
188
|
-
climateHoldUnavailabilityReason: str
|
|
189
|
-
climateHoldEndTime: int (epoch seconds
|
|
180
|
+
climateHoldUnavailabilityReason: str | None — None when unspecified
|
|
181
|
+
climateHoldEndTime: int | None (epoch seconds; None unless a hold runs)
|
|
190
182
|
"""
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
)
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
if m.end_time.seconds:
|
|
209
|
-
result["climateHoldEndTime"] = m.end_time.seconds
|
|
210
|
-
return result
|
|
183
|
+
reason = _enum(
|
|
184
|
+
_CLIMATE_HOLD_UNAVAILABILITY_REASON_MAP,
|
|
185
|
+
m.unavailability_reason,
|
|
186
|
+
what="climate hold unavailability reason",
|
|
187
|
+
)
|
|
188
|
+
return {
|
|
189
|
+
"climateHoldStatus": _enum(
|
|
190
|
+
_CLIMATE_HOLD_STATUS_MAP, m.status, what="climate hold status"
|
|
191
|
+
),
|
|
192
|
+
"climateHoldAvailability": _enum(
|
|
193
|
+
_CLIMATE_HOLD_AVAILABILITY_MAP,
|
|
194
|
+
m.availability,
|
|
195
|
+
what="climate hold availability",
|
|
196
|
+
),
|
|
197
|
+
"climateHoldUnavailabilityReason": None if reason == "unspecified" else reason,
|
|
198
|
+
"climateHoldEndTime": m.end_time.seconds or None,
|
|
199
|
+
}
|
|
211
200
|
|
|
212
201
|
|
|
213
202
|
@RVMDecoder.register(
|
|
@@ -259,13 +248,12 @@ def decode_seat_conditioning(m: comfort_pb2.SeatConditioningStatus) -> dict[str,
|
|
|
259
248
|
plus <surface>Heat/Vent for any other surface sent (middle seats,
|
|
260
249
|
rearGlass, frontGlass, sideviewMirrors, wiperArea)
|
|
261
250
|
|
|
262
|
-
|
|
251
|
+
A surface sent without a state is off.
|
|
263
252
|
"""
|
|
264
253
|
result: dict[str, Any] = {}
|
|
265
254
|
for surface in m.surface:
|
|
266
255
|
surface_id, hvac_type = surface.id, surface.type
|
|
267
|
-
|
|
268
|
-
continue
|
|
256
|
+
state_val = _present(surface, "state")
|
|
269
257
|
if surface_id in _CABIN_SURFACE_MAP and hvac_type in _CONDITIONING_TYPE_MAP:
|
|
270
258
|
key = f"{_CABIN_SURFACE_MAP[surface_id]}{_CONDITIONING_TYPE_MAP[hvac_type]}"
|
|
271
259
|
result[key] = _CONDITIONING_LEVEL_MAP.get(state_val, state_val)
|
{rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/dynamics.py
RENAMED
|
@@ -71,8 +71,8 @@ def decode_drive_mode(m: dynamics_pb2.DriveMode) -> dict[str, Any]:
|
|
|
71
71
|
"""
|
|
72
72
|
return {
|
|
73
73
|
"driveMode": _enum(_DRIVE_MODE_MAP, _present(m, "mode"), what="drive mode"),
|
|
74
|
-
"limitedAccelCold":
|
|
75
|
-
"limitedRegenCold":
|
|
74
|
+
"limitedAccelCold": m.limited_accel_cold,
|
|
75
|
+
"limitedRegenCold": m.limited_regen_cold,
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
|
|
@@ -83,7 +83,7 @@ def decode_gear(m: dynamics_pb2.Gear) -> dict[str, Any]:
|
|
|
83
83
|
Fields:
|
|
84
84
|
gearStatus: str
|
|
85
85
|
"""
|
|
86
|
-
return {"gearStatus": _enum(_GEAR_MAP,
|
|
86
|
+
return {"gearStatus": _enum(_GEAR_MAP, m.gear, what="gear")}
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
@RVMDecoder.register("dynamics.vehicle.gnss", dynamics_pb2.Gnss)
|
|
@@ -97,29 +97,19 @@ def decode_gnss(m: dynamics_pb2.Gnss) -> dict[str, Any]:
|
|
|
97
97
|
gnssAltitude: float (meters)
|
|
98
98
|
gnssBearing: float (degrees)
|
|
99
99
|
"""
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"longitude": round(lon, 6),
|
|
114
|
-
}
|
|
115
|
-
if fix_time is not None:
|
|
116
|
-
location["timeStamp"] = fix_time
|
|
117
|
-
result["gnssLocation"] = location
|
|
118
|
-
if alt is not None:
|
|
119
|
-
result["gnssAltitude"] = round(alt, 1)
|
|
120
|
-
if bearing is not None:
|
|
121
|
-
result["gnssBearing"] = round(bearing, 1)
|
|
122
|
-
return result
|
|
100
|
+
if not m.ByteSize():
|
|
101
|
+
return {}
|
|
102
|
+
fix_time = from_epoch(m.time)
|
|
103
|
+
return {
|
|
104
|
+
"gnssTimeStamp": fix_time,
|
|
105
|
+
"gnssLocation": {
|
|
106
|
+
"latitude": round(m.latitude, 6),
|
|
107
|
+
"longitude": round(m.longitude, 6),
|
|
108
|
+
"timeStamp": fix_time,
|
|
109
|
+
},
|
|
110
|
+
"gnssAltitude": round(m.altitude, 1),
|
|
111
|
+
"gnssBearing": round(m.bearing, 1),
|
|
112
|
+
}
|
|
123
113
|
|
|
124
114
|
|
|
125
115
|
@RVMDecoder.register("dynamics.vehicle.location", dynamics_pb2.KnownLocation)
|
|
@@ -158,7 +148,7 @@ def decode_range(m: dynamics_pb2.Range) -> dict[str, Any]:
|
|
|
158
148
|
coldRangeNotification: str
|
|
159
149
|
"""
|
|
160
150
|
return {
|
|
161
|
-
"distanceToEmpty":
|
|
151
|
+
"distanceToEmpty": m.distance_to_empty,
|
|
162
152
|
"rangeThreshold": _enum(
|
|
163
153
|
_RANGE_THRESHOLD_MAP, _present(m, "threshold"), what="range threshold"
|
|
164
154
|
),
|
|
@@ -50,26 +50,21 @@ def decode_battery_state(m: energy_pb2.BatteryState) -> dict[str, Any]:
|
|
|
50
50
|
batteryLevel: float (percent)
|
|
51
51
|
batteryCapacity: float (kWh)
|
|
52
52
|
range: float (km, if present)
|
|
53
|
-
batteryTempMin, batteryTempMid, batteryTempMax: float (°C
|
|
53
|
+
batteryTempMin, batteryTempMid, batteryTempMax: float (°C)
|
|
54
54
|
_bmsStateRaw: int — 4 idle, 5 discharging, 6 charging, others unnamed
|
|
55
55
|
"""
|
|
56
56
|
result: dict[str, Any] = {}
|
|
57
57
|
if m.HasField("charge_state"):
|
|
58
58
|
charge_state = m.charge_state
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (v := _present(charge_state, "pack_energy")) is not None:
|
|
62
|
-
result["batteryCapacity"] = round(v, 2)
|
|
59
|
+
result["batteryLevel"] = round(charge_state.soc, 2)
|
|
60
|
+
result["batteryCapacity"] = round(charge_state.pack_energy, 2)
|
|
63
61
|
if (v := _present(charge_state, "range")) is not None:
|
|
64
62
|
result["range"] = round(v, 1)
|
|
65
63
|
if m.HasField("temperatures"):
|
|
66
64
|
temps = m.temperatures
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
result["batteryTempMid"] = round(v, 1)
|
|
71
|
-
if (v := _present(temps, "max")) is not None:
|
|
72
|
-
result["batteryTempMax"] = round(v, 1)
|
|
65
|
+
result["batteryTempMin"] = round(temps.min, 1)
|
|
66
|
+
result["batteryTempMid"] = round(temps.mid, 1)
|
|
67
|
+
result["batteryTempMax"] = round(temps.max, 1)
|
|
73
68
|
if (v := _present(m, "bms_state_raw")) is not None:
|
|
74
69
|
result["_bmsStateRaw"] = v
|
|
75
70
|
return result
|
|
@@ -70,14 +70,12 @@ def decode_parked_energy_distributions(
|
|
|
70
70
|
if not m.HasField(field):
|
|
71
71
|
continue
|
|
72
72
|
distribution = getattr(m, field)
|
|
73
|
-
window: dict[str, float] = {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if window:
|
|
80
|
-
result[key] = window
|
|
73
|
+
window: dict[str, float] = {
|
|
74
|
+
measure_key: round(getattr(distribution, measure), 4)
|
|
75
|
+
for measure, measure_key in _ENERGY_DISTRIBUTION_MAP.items()
|
|
76
|
+
}
|
|
77
|
+
window["duration"] = distribution.duration
|
|
78
|
+
result[key] = window
|
|
81
79
|
return result
|
|
82
80
|
|
|
83
81
|
|
|
@@ -45,9 +45,7 @@ def decode_car_costume_state(
|
|
|
45
45
|
Fields:
|
|
46
46
|
costumeId: int (0 = none; other ids unmapped)
|
|
47
47
|
"""
|
|
48
|
-
|
|
49
|
-
return {}
|
|
50
|
-
return {"costumeId": v}
|
|
48
|
+
return {"costumeId": m.costume_id}
|
|
51
49
|
|
|
52
50
|
|
|
53
51
|
# Wrapped HalloweenCelebrationSettings field -> result key.
|
{rivian_python_client-2.2.0b2 → rivian_python_client-2.2.0b3}/src/rivian/parallax/navigation.py
RENAMED
|
@@ -60,8 +60,7 @@ def _decode_origin(origin: TripInfo.Origin) -> dict[str, Any]:
|
|
|
60
60
|
result = _decode_geocoordinate(
|
|
61
61
|
_present(origin, "location"), "originLatitude", "originLongitude"
|
|
62
62
|
)
|
|
63
|
-
|
|
64
|
-
result["originHeading"] = v
|
|
63
|
+
result["originHeading"] = origin.heading
|
|
65
64
|
if (origin_epoch := _present(origin, "time")) is not None:
|
|
66
65
|
result["originTime"] = from_epoch(origin_epoch)
|
|
67
66
|
return result
|
|
@@ -93,11 +92,11 @@ def _decode_place(place: TripInfo.Place) -> dict[str, Any]:
|
|
|
93
92
|
("place_type", "placeType"),
|
|
94
93
|
("name", "name"),
|
|
95
94
|
("place_id", "placeId"),
|
|
96
|
-
("soc", "stateOfCharge"),
|
|
97
|
-
("range", "rangeRemaining"),
|
|
98
95
|
),
|
|
99
96
|
)
|
|
100
97
|
)
|
|
98
|
+
entry["stateOfCharge"] = place.soc
|
|
99
|
+
entry["rangeRemaining"] = place.range
|
|
101
100
|
if (arrival := _decode_timestamp(_present(place, "arrival"))) is not None:
|
|
102
101
|
entry["arrivalTime"] = arrival
|
|
103
102
|
return entry
|
|
@@ -170,17 +169,12 @@ def _decode_categorized_ranges(leg: TripInfo.Leg) -> list[dict[str, Any]]:
|
|
|
170
169
|
|
|
171
170
|
def _decode_leg(leg: TripInfo.Leg) -> dict[str, Any]:
|
|
172
171
|
"""Decode one route leg."""
|
|
173
|
-
entry =
|
|
174
|
-
|
|
175
|
-
(
|
|
176
|
-
("distance", "distance"),
|
|
177
|
-
("duration", "duration"),
|
|
178
|
-
("road_label", "roadLabel"),
|
|
179
|
-
("polyline", "polyline"),
|
|
180
|
-
),
|
|
172
|
+
entry: dict[str, Any] = {"distance": leg.distance, "duration": leg.duration}
|
|
173
|
+
entry.update(
|
|
174
|
+
_copy_present(leg, (("road_label", "roadLabel"), ("polyline", "polyline")))
|
|
181
175
|
)
|
|
182
|
-
if leg.HasField("energy")
|
|
183
|
-
entry["energyUsed"] =
|
|
176
|
+
if leg.HasField("energy"):
|
|
177
|
+
entry["energyUsed"] = leg.energy.kwh
|
|
184
178
|
# flagged/unflagged_ranges_packed duplicate the index ranges.
|
|
185
179
|
if index_ranges := _decode_index_ranges(leg):
|
|
186
180
|
entry["indexRangeSegments"] = index_ranges
|
|
@@ -307,29 +301,15 @@ def decode_trip_progress(m: navigation_pb2.TripProgress) -> dict[str, Any]:
|
|
|
307
301
|
result["nextWaypointArrivalTime"] = eta
|
|
308
302
|
if (eta := _decode_timestamp(_present(m, "final_destination"))) is not None:
|
|
309
303
|
result["finalDestinationArrivalTime"] = eta
|
|
310
|
-
result.
|
|
311
|
-
|
|
312
|
-
m,
|
|
313
|
-
(
|
|
314
|
-
("distance_remaining", "distanceRemaining"),
|
|
315
|
-
("duration_remaining", "durationRemaining"),
|
|
316
|
-
),
|
|
317
|
-
)
|
|
318
|
-
)
|
|
304
|
+
result["distanceRemaining"] = m.distance_remaining
|
|
305
|
+
result["durationRemaining"] = m.duration_remaining
|
|
319
306
|
if m.HasField("location_fix"):
|
|
320
307
|
fix = m.location_fix
|
|
321
308
|
result.update(
|
|
322
309
|
_decode_geocoordinate(_present(fix, "location"), "latitude", "longitude")
|
|
323
310
|
)
|
|
324
|
-
result.
|
|
325
|
-
|
|
326
|
-
fix,
|
|
327
|
-
(
|
|
328
|
-
("speed", "speed"),
|
|
329
|
-
("heading", "heading"),
|
|
330
|
-
),
|
|
331
|
-
)
|
|
332
|
-
)
|
|
311
|
+
result["speed"] = fix.speed
|
|
312
|
+
result["heading"] = fix.heading
|
|
333
313
|
if (fix_epoch := _present(fix, "time")) is not None:
|
|
334
314
|
result["locationTime"] = from_epoch(fix_epoch)
|
|
335
315
|
return result
|
|
@@ -110,13 +110,10 @@ def decode_deployment_state(m: ota_pb2.DeploymentState) -> dict[str, Any]:
|
|
|
110
110
|
and (v := _present(progress.install_progress, "field_2")) is not None
|
|
111
111
|
):
|
|
112
112
|
result["otaInstallProgress"] = v
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
):
|
|
118
|
-
if (v := _present(progress, field)) is not None:
|
|
119
|
-
result[key] = v
|
|
113
|
+
result["otaTimeRemaining"] = progress.time_remaining
|
|
114
|
+
result["otaUpdateCycleCount"] = progress.update_cycle_count
|
|
115
|
+
if (v := _present(progress, "field_9")) is not None:
|
|
116
|
+
result["_otaProgressField9"] = v
|
|
120
117
|
return result
|
|
121
118
|
|
|
122
119
|
|
|
@@ -24,21 +24,21 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$rivian/parallax/proto/charging.proto\x12\x18rivian.parallax.charging\"\xe8\x04\n\x12ScheduleTimeWindow\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x43\n\x06window\x18\x02 \x01(\x0b\x32\x33.rivian.parallax.charging.ScheduleTimeWindow.Window\x1a\xbe\x02\n\x06Window\x12\x12\n\nstart_time\x18\x01 \x01(\x05\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x05\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x11\n\x04\x61mps\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12L\n\x08location\x18\x05 \x01(\x0b\x32:.rivian.parallax.charging.ScheduleTimeWindow.GeoCoordinate\x12I\n\tstart_day\x18\x06 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeek\x12G\n\x07\x65nd_day\x18\x07 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeekB\x07\n\x05_amps\x1a\x34\n\rGeoCoordinate\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\x84\x01\n\tDayOfWeek\x12\x1b\n\x17\x44\x41Y_OF_WEEK_UNSPECIFIED\x10\x00\x12\n\n\x06SUNDAY\x10\x01\x12\n\n\x06MONDAY\x10\x02\x12\x0b\n\x07TUESDAY\x10\x03\x12\r\n\tWEDNESDAY\x10\x04\x12\x0c\n\x08THURSDAY\x10\x05\x12\n\n\x06\x46RIDAY\x10\x06\x12\x0c\n\x08SATURDAY\x10\x07\"5\n\x13SessionNotification\x12\x13\n\x06\x66ield1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field1\"a\n\x14SessionRemoteCommand\x12=\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\'.rivian.parallax.charging.RemoteCommandH\x00\x88\x01\x01\x42\n\n\x08_command\"1\n\tSocSlider\x12\x16\n\tsoc_limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_soc_limit\",\n\nTripTarget\x12\x13\n\x06\x66ield2\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field2\"\x17\n\x15SmartChargingSettings\"\x13\n\x11SmartChargingInfo\"\x1a\n\x18WeightedChargingForecast\"\xda\x01\n\rSessionStatus\x12H\n\x10\x63onnection_state\x18\x01 \x01(\x0e\x32).rivian.parallax.charging.ConnectionStateH\x00\x88\x01\x01\x12\x44\n\x0e\x63harging_state\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargingStateH\x01\x88\x01\x01\x12\x11\n\tis_active\x18\x03 \x01(\x08\x42\x13\n\x11_connection_stateB\x11\n\x0f_charging_state\"2\n\x0eTimeEstimation\x12 \n\x18\x65stimated_time_remaining\x18\x02 \x01(\x05\"\xe0\x01\n\x0b\x45nergyState\x12\x14\n\x07\x66ield_1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x44\n\x0e\x63harger_status\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargerStatusH\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x10\n\x08\x66ield_10\x18\n \x01(\t\x12\x15\n\x08\x66ield_11\x18\x0b \x01(\x05H\x03\x88\x01\x01\x42\n\n\x08_field_1B\x11\n\x0f_charger_statusB\n\n\x08_field_3B\x0b\n\t_field_11\"
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$rivian/parallax/proto/charging.proto\x12\x18rivian.parallax.charging\"\xe8\x04\n\x12ScheduleTimeWindow\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x43\n\x06window\x18\x02 \x01(\x0b\x32\x33.rivian.parallax.charging.ScheduleTimeWindow.Window\x1a\xbe\x02\n\x06Window\x12\x12\n\nstart_time\x18\x01 \x01(\x05\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x05\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x12\x11\n\x04\x61mps\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12L\n\x08location\x18\x05 \x01(\x0b\x32:.rivian.parallax.charging.ScheduleTimeWindow.GeoCoordinate\x12I\n\tstart_day\x18\x06 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeek\x12G\n\x07\x65nd_day\x18\x07 \x01(\x0e\x32\x36.rivian.parallax.charging.ScheduleTimeWindow.DayOfWeekB\x07\n\x05_amps\x1a\x34\n\rGeoCoordinate\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\x84\x01\n\tDayOfWeek\x12\x1b\n\x17\x44\x41Y_OF_WEEK_UNSPECIFIED\x10\x00\x12\n\n\x06SUNDAY\x10\x01\x12\n\n\x06MONDAY\x10\x02\x12\x0b\n\x07TUESDAY\x10\x03\x12\r\n\tWEDNESDAY\x10\x04\x12\x0c\n\x08THURSDAY\x10\x05\x12\n\n\x06\x46RIDAY\x10\x06\x12\x0c\n\x08SATURDAY\x10\x07\"5\n\x13SessionNotification\x12\x13\n\x06\x66ield1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field1\"a\n\x14SessionRemoteCommand\x12=\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\'.rivian.parallax.charging.RemoteCommandH\x00\x88\x01\x01\x42\n\n\x08_command\"1\n\tSocSlider\x12\x16\n\tsoc_limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_soc_limit\",\n\nTripTarget\x12\x13\n\x06\x66ield2\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_field2\"\x17\n\x15SmartChargingSettings\"\x13\n\x11SmartChargingInfo\"\x1a\n\x18WeightedChargingForecast\"\xda\x01\n\rSessionStatus\x12H\n\x10\x63onnection_state\x18\x01 \x01(\x0e\x32).rivian.parallax.charging.ConnectionStateH\x00\x88\x01\x01\x12\x44\n\x0e\x63harging_state\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargingStateH\x01\x88\x01\x01\x12\x11\n\tis_active\x18\x03 \x01(\x08\x42\x13\n\x11_connection_stateB\x11\n\x0f_charging_state\"2\n\x0eTimeEstimation\x12 \n\x18\x65stimated_time_remaining\x18\x02 \x01(\x05\"\xe0\x01\n\x0b\x45nergyState\x12\x14\n\x07\x66ield_1\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x44\n\x0e\x63harger_status\x18\x02 \x01(\x0e\x32\'.rivian.parallax.charging.ChargerStatusH\x01\x88\x01\x01\x12\x14\n\x07\x66ield_3\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x10\n\x08\x66ield_10\x18\n \x01(\t\x12\x15\n\x08\x66ield_11\x18\x0b \x01(\x05H\x03\x88\x01\x01\x42\n\n\x08_field_1B\x11\n\x0f_charger_statusB\n\n\x08_field_3B\x0b\n\t_field_11\"\x1d\n\x0cSessionPower\x12\r\n\x05power\x18\x01 \x01(\x02*b\n\rRemoteCommand\x12\x1e\n\x1aREMOTE_COMMAND_UNSPECIFIED\x10\x00\x12\x18\n\x14REMOTE_COMMAND_START\x10\x01\x12\x17\n\x13REMOTE_COMMAND_STOP\x10\x02*v\n\x0f\x43onnectionState\x12 \n\x1c\x43ONNECTION_STATE_UNSPECIFIED\x10\x00\x12!\n\x1d\x43ONNECTION_STATE_DISCONNECTED\x10\x01\x12\x1e\n\x1a\x43ONNECTION_STATE_CONNECTED\x10\x02*\xfc\x05\n\rChargingState\x12\x1e\n\x1a\x43HARGING_STATE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x43HARGING_READY\x10\x01\x12\x17\n\x13\x43HARGING_CONNECTING\x10\x02\x12\x13\n\x0f\x43HARGING_ACTIVE\x10\x03\x12\x15\n\x11\x43HARGING_COMPLETE\x10\x04\x12\x16\n\x12\x43HARGING_SCHEDULED\x10\x05\x12\x1a\n\x16\x43HARGING_VEHICLE_ERROR\x10\x06\x12\x1a\n\x16\x43HARGING_STATION_ERROR\x10\x07\x12\x19\n\x15\x43HARGING_USER_STOPPED\x10\x08\x12\x1c\n\x18\x43HARGING_STATION_STOPPED\x10\t\x12\x1a\n\x16\x43HARGING_PAYMENT_ERROR\x10\n\x12\x17\n\x13\x43HARGING_CERT_ERROR\x10\x0b\x12\x16\n\x12\x43HARGING_TLS_ERROR\x10\x0c\x12(\n$CHARGING_ERROR_AC_ADAPTER_USED_ON_DC\x10\r\x12(\n$CHARGING_ERROR_DC_ADAPTER_USED_ON_AC\x10\x0e\x12\'\n#CHARGING_ERROR_INCOMPATIBLE_CHARGER\x10\x0f\x12\x1c\n\x18\x43HARGING_SD_COMPENSATION\x10\x10\x12\x16\n\x12WAITING_ON_CHARGER\x10\x11\x12%\n!CHARGER_NOT_READY_OR_INCOMPATIBLE\x10\x12\x12\x1c\n\x18\x43HARGING_VEHICLE_STOPPED\x10\x13\x12+\n\'CHARGING_PAYMENT_ERROR_START_RIVIAN_APP\x10\x14\x12&\n\"CHARGING_TLS_ERROR_UNKNOWN_CHARGER\x10\x15\x12&\n\"CHARGING_TLS_ERROR_UNEXPECTED_FAIL\x10\x16\x12\'\n#CHARGING_TLS_ERROR_START_RIVIAN_APP\x10\x17*\xa0\x01\n\rChargerStatus\x12\x1e\n\x1a\x43HARGER_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1c\x43HARGER_STATUS_NOT_CONNECTED\x10\x01\x12&\n\"CHARGER_STATUS_CONNECTED_NO_CHARGE\x10\x02\x12%\n!CHARGER_STATUS_CONNECTED_CHARGING\x10\x03\x62\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
31
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rivian.parallax.proto.charging_pb2', _globals)
|
|
32
32
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
33
|
DESCRIPTOR._loaded_options = None
|
|
34
|
-
_globals['_REMOTECOMMAND']._serialized_start=
|
|
35
|
-
_globals['_REMOTECOMMAND']._serialized_end=
|
|
36
|
-
_globals['_CONNECTIONSTATE']._serialized_start=
|
|
37
|
-
_globals['_CONNECTIONSTATE']._serialized_end=
|
|
38
|
-
_globals['_CHARGINGSTATE']._serialized_start=
|
|
39
|
-
_globals['_CHARGINGSTATE']._serialized_end=
|
|
40
|
-
_globals['_CHARGERSTATUS']._serialized_start=
|
|
41
|
-
_globals['_CHARGERSTATUS']._serialized_end=
|
|
34
|
+
_globals['_REMOTECOMMAND']._serialized_start=1541
|
|
35
|
+
_globals['_REMOTECOMMAND']._serialized_end=1639
|
|
36
|
+
_globals['_CONNECTIONSTATE']._serialized_start=1641
|
|
37
|
+
_globals['_CONNECTIONSTATE']._serialized_end=1759
|
|
38
|
+
_globals['_CHARGINGSTATE']._serialized_start=1762
|
|
39
|
+
_globals['_CHARGINGSTATE']._serialized_end=2526
|
|
40
|
+
_globals['_CHARGERSTATUS']._serialized_start=2529
|
|
41
|
+
_globals['_CHARGERSTATUS']._serialized_end=2689
|
|
42
42
|
_globals['_SCHEDULETIMEWINDOW']._serialized_start=67
|
|
43
43
|
_globals['_SCHEDULETIMEWINDOW']._serialized_end=683
|
|
44
44
|
_globals['_SCHEDULETIMEWINDOW_WINDOW']._serialized_start=176
|
|
@@ -68,5 +68,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
68
68
|
_globals['_ENERGYSTATE']._serialized_start=1284
|
|
69
69
|
_globals['_ENERGYSTATE']._serialized_end=1508
|
|
70
70
|
_globals['_SESSIONPOWER']._serialized_start=1510
|
|
71
|
-
_globals['_SESSIONPOWER']._serialized_end=
|
|
71
|
+
_globals['_SESSIONPOWER']._serialized_end=1539
|
|
72
72
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -7,7 +7,7 @@ package rivian.parallax.comfort;
|
|
|
7
7
|
// comfort.cabin.hvac_settings_status
|
|
8
8
|
// Requested set point; 63.5 ("HI") while defrost runs.
|
|
9
9
|
message HvacSettingsStatus {
|
|
10
|
-
|
|
10
|
+
float target_temperature = 1; // °C
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
// comfort.user_modes.state -- unmapped.
|
|
@@ -34,17 +34,17 @@ enum PreconditioningStatus {
|
|
|
34
34
|
|
|
35
35
|
// comfort.cabin.cabin_temperatures
|
|
36
36
|
message CabinTemperatures {
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
float interior_temperature = 3; // °C
|
|
38
|
+
float driver_set_point = 4; // °C; same as HvacSettingsStatus's target
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// comfort.cabin.cabin_ventilation_setting
|
|
42
42
|
message CabinVentilationSetting {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
bool enabled = 1;
|
|
44
|
+
string mode = 2; // "AUTO" | "MANUAL" | "OFF"
|
|
45
|
+
int32 windows_position = 3; // percent open
|
|
46
|
+
int32 sunroof_position = 4; // percent open
|
|
47
|
+
int32 duration = 5; // minutes
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
// comfort.cabin.climate_hold_setting
|
|
@@ -54,9 +54,9 @@ message ClimateHoldSetting {
|
|
|
54
54
|
|
|
55
55
|
// comfort.cabin.climate_hold_status
|
|
56
56
|
message ClimateHoldStatus {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
ClimateHoldStatusValue status = 1;
|
|
58
|
+
ClimateHoldAvailability availability = 2;
|
|
59
|
+
ClimateHoldUnavailabilityReason unavailability_reason = 3;
|
|
60
60
|
EndTime end_time = 4; // empty when no hold is running
|
|
61
61
|
|
|
62
62
|
message EndTime {
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: rivian/parallax/proto/comfort.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'rivian/parallax/proto/comfort.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#rivian/parallax/proto/comfort.proto\x12\x17rivian.parallax.comfort\"0\n\x12HvacSettingsStatus\x12\x1a\n\x12target_temperature\x18\x01 \x01(\x02\"P\n\x0eUserModesState\x12\x13\n\x06\x66ield4\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06\x66ield7\x18\x07 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_field4B\t\n\x07_field7\"m\n\x1a\x43\x61\x62inPreconditioningStatus\x12>\n\x06status\x18\x01 \x01(\x0e\x32..rivian.parallax.comfort.PreconditioningStatus\x12\x0f\n\x07\x66ield_2\x18\x02 \x01(\x05\"K\n\x11\x43\x61\x62inTemperatures\x12\x1c\n\x14interior_temperature\x18\x03 \x01(\x02\x12\x18\n\x10\x64river_set_point\x18\x04 \x01(\x02\"~\n\x17\x43\x61\x62inVentilationSetting\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0c\n\x04mode\x18\x02 \x01(\t\x12\x18\n\x10windows_position\x18\x03 \x01(\x05\x12\x18\n\x10sunroof_position\x18\x04 \x01(\x05\x12\x10\n\x08\x64uration\x18\x05 \x01(\x05\"&\n\x12\x43limateHoldSetting\x12\x10\n\x08\x64uration\x18\x01 \x01(\x05\"\xd7\x02\n\x11\x43limateHoldStatus\x12?\n\x06status\x18\x01 \x01(\x0e\x32/.rivian.parallax.comfort.ClimateHoldStatusValue\x12\x46\n\x0c\x61vailability\x18\x02 \x01(\x0e\x32\x30.rivian.parallax.comfort.ClimateHoldAvailability\x12W\n\x15unavailability_reason\x18\x03 \x01(\x0e\x32\x38.rivian.parallax.comfort.ClimateHoldUnavailabilityReason\x12\x44\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x32.rivian.parallax.comfort.ClimateHoldStatus.EndTime\x1a\x1a\n\x07\x45ndTime\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\"L\n\x12\x44\x65\x66rostDefogStatus\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32&.rivian.parallax.comfort.DefrostStatus\"\x95\x01\n\rPetModeStatus\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.rivian.parallax.comfort.PetModeState\x12M\n\x12temperature_status\x18\x02 \x01(\x0e\x32\x31.rivian.parallax.comfort.PetModeTemperatureStatus\"\xa4\x02\n\x16SeatConditioningStatus\x12H\n\x07surface\x18\x01 \x03(\x0b\x32\x37.rivian.parallax.comfort.SeatConditioningStatus.Surface\x1a\xbf\x01\n\x07Surface\x12\x31\n\x02id\x18\x01 \x01(\x0e\x32%.rivian.parallax.comfort.CabinSurface\x12\x37\n\x04type\x18\x02 \x01(\x0e\x32).rivian.parallax.comfort.ConditioningType\x12>\n\x05state\x18\x03 \x01(\x0e\x32*.rivian.parallax.comfort.ConditioningLevelH\x00\x88\x01\x01\x42\x08\n\x06_state*\xad\x01\n\x15PreconditioningStatus\x12\x17\n\x13PRECONDITIONING_OFF\x10\x00\x12\x1e\n\x1aPRECONDITIONING_INITIATE_1\x10\x01\x12\x1e\n\x1aPRECONDITIONING_INITIATE_2\x10\x02\x12\x1a\n\x16PRECONDITIONING_ACTIVE\x10\x04\x12\x1f\n\x1bPRECONDITIONING_PET_COMFORT\x10\x08*\xba\x01\n\x16\x43limateHoldStatusValue\x12#\n\x1f\x43LIMATE_HOLD_STATUS_UNSPECIFIED\x10\x00\x12#\n\x1f\x43LIMATE_HOLD_STATUS_UNAVAILABLE\x10\x01\x12\x1b\n\x17\x43LIMATE_HOLD_STATUS_OFF\x10\x02\x12\x1a\n\x16\x43LIMATE_HOLD_STATUS_ON\x10\x03\x12\x1d\n\x19\x43LIMATE_HOLD_STATUS_FAULT\x10\x04*\x9d\x01\n\x17\x43limateHoldAvailability\x12)\n%CLIMATE_HOLD_AVAILABILITY_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43LIMATE_HOLD_AVAILABLE\x10\x01\x12\x1d\n\x19\x43LIMATE_HOLD_CONTROLLABLE\x10\x02\x12\x1c\n\x18\x43LIMATE_HOLD_UNAVAILABLE\x10\x03*\xa0\x01\n\x1f\x43limateHoldUnavailabilityReason\x12+\n\'CLIMATE_HOLD_UNAVAILABILITY_UNSPECIFIED\x10\x00\x12\'\n#CLIMATE_HOLD_UNAVAILABILITY_UNKNOWN\x10\x01\x12\'\n#CLIMATE_HOLD_UNAVAILABILITY_LOW_SOC\x10\x02*T\n\rDefrostStatus\x12\x1e\n\x1a\x44\x45\x46ROST_STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x44\x45\x46ROST_ACTIVE\x10\x02\x12\x0f\n\x0b\x44\x45\x46ROST_OFF\x10\x04*]\n\x0cPetModeState\x12\x10\n\x0cPET_MODE_OFF\x10\x00\x12\x0f\n\x0bPET_MODE_ON\x10\x01\x12\x15\n\x11PET_MODE_DISABLED\x10\x02\x12\x13\n\x0fPET_MODE_FAULTY\x10\x03*\x9a\x01\n\x18PetModeTemperatureStatus\x12 \n\x1cPET_MODE_TEMPERATURE_DEFAULT\x10\x00\x12\x1d\n\x19PET_MODE_TEMPERATURE_COLD\x10\x01\x12\x1c\n\x18PET_MODE_TEMPERATURE_HOT\x10\x02\x12\x1f\n\x1bPET_MODE_TEMPERATURE_FAULTY\x10\x03*\xce\x02\n\x0c\x43\x61\x62inSurface\x12\x1d\n\x19\x43\x41\x42IN_SURFACE_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTEERING_WHEEL\x10\x01\x12\x0e\n\nREAR_GLASS\x10\x02\x12\x0f\n\x0b\x46RONT_GLASS\x10\x03\x12\x14\n\x10SIDEVIEW_MIRRORS\x10\x04\x12\x13\n\x0fSEAT_ROW_1_LEFT\x10\x05\x12\x15\n\x11SEAT_ROW_1_MIDDLE\x10\x06\x12\x14\n\x10SEAT_ROW_1_RIGHT\x10\x07\x12\x13\n\x0fSEAT_ROW_2_LEFT\x10\x08\x12\x15\n\x11SEAT_ROW_2_MIDDLE\x10\t\x12\x14\n\x10SEAT_ROW_2_RIGHT\x10\n\x12\x13\n\x0fSEAT_ROW_3_LEFT\x10\x0b\x12\x15\n\x11SEAT_ROW_3_MIDDLE\x10\x0c\x12\x14\n\x10SEAT_ROW_3_RIGHT\x10\r\x12\x0e\n\nWIPER_AREA\x10\x0e*c\n\x10\x43onditioningType\x12!\n\x1d\x43ONDITIONING_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x43ONDITIONING_HEAT\x10\x01\x12\x15\n\x11\x43ONDITIONING_VENT\x10\x02*\x85\x01\n\x11\x43onditioningLevel\x12\"\n\x1e\x43ONDITIONING_LEVEL_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43ONDITIONING_LEVEL_1\x10\x01\x12\x18\n\x14\x43ONDITIONING_LEVEL_2\x10\x02\x12\x18\n\x14\x43ONDITIONING_LEVEL_3\x10\x03\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rivian.parallax.proto.comfort_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_PRECONDITIONINGSTATUS']._serialized_start=1424
|
|
35
|
+
_globals['_PRECONDITIONINGSTATUS']._serialized_end=1597
|
|
36
|
+
_globals['_CLIMATEHOLDSTATUSVALUE']._serialized_start=1600
|
|
37
|
+
_globals['_CLIMATEHOLDSTATUSVALUE']._serialized_end=1786
|
|
38
|
+
_globals['_CLIMATEHOLDAVAILABILITY']._serialized_start=1789
|
|
39
|
+
_globals['_CLIMATEHOLDAVAILABILITY']._serialized_end=1946
|
|
40
|
+
_globals['_CLIMATEHOLDUNAVAILABILITYREASON']._serialized_start=1949
|
|
41
|
+
_globals['_CLIMATEHOLDUNAVAILABILITYREASON']._serialized_end=2109
|
|
42
|
+
_globals['_DEFROSTSTATUS']._serialized_start=2111
|
|
43
|
+
_globals['_DEFROSTSTATUS']._serialized_end=2195
|
|
44
|
+
_globals['_PETMODESTATE']._serialized_start=2197
|
|
45
|
+
_globals['_PETMODESTATE']._serialized_end=2290
|
|
46
|
+
_globals['_PETMODETEMPERATURESTATUS']._serialized_start=2293
|
|
47
|
+
_globals['_PETMODETEMPERATURESTATUS']._serialized_end=2447
|
|
48
|
+
_globals['_CABINSURFACE']._serialized_start=2450
|
|
49
|
+
_globals['_CABINSURFACE']._serialized_end=2784
|
|
50
|
+
_globals['_CONDITIONINGTYPE']._serialized_start=2786
|
|
51
|
+
_globals['_CONDITIONINGTYPE']._serialized_end=2885
|
|
52
|
+
_globals['_CONDITIONINGLEVEL']._serialized_start=2888
|
|
53
|
+
_globals['_CONDITIONINGLEVEL']._serialized_end=3021
|
|
54
|
+
_globals['_HVACSETTINGSSTATUS']._serialized_start=64
|
|
55
|
+
_globals['_HVACSETTINGSSTATUS']._serialized_end=112
|
|
56
|
+
_globals['_USERMODESSTATE']._serialized_start=114
|
|
57
|
+
_globals['_USERMODESSTATE']._serialized_end=194
|
|
58
|
+
_globals['_CABINPRECONDITIONINGSTATUS']._serialized_start=196
|
|
59
|
+
_globals['_CABINPRECONDITIONINGSTATUS']._serialized_end=305
|
|
60
|
+
_globals['_CABINTEMPERATURES']._serialized_start=307
|
|
61
|
+
_globals['_CABINTEMPERATURES']._serialized_end=382
|
|
62
|
+
_globals['_CABINVENTILATIONSETTING']._serialized_start=384
|
|
63
|
+
_globals['_CABINVENTILATIONSETTING']._serialized_end=510
|
|
64
|
+
_globals['_CLIMATEHOLDSETTING']._serialized_start=512
|
|
65
|
+
_globals['_CLIMATEHOLDSETTING']._serialized_end=550
|
|
66
|
+
_globals['_CLIMATEHOLDSTATUS']._serialized_start=553
|
|
67
|
+
_globals['_CLIMATEHOLDSTATUS']._serialized_end=896
|
|
68
|
+
_globals['_CLIMATEHOLDSTATUS_ENDTIME']._serialized_start=870
|
|
69
|
+
_globals['_CLIMATEHOLDSTATUS_ENDTIME']._serialized_end=896
|
|
70
|
+
_globals['_DEFROSTDEFOGSTATUS']._serialized_start=898
|
|
71
|
+
_globals['_DEFROSTDEFOGSTATUS']._serialized_end=974
|
|
72
|
+
_globals['_PETMODESTATUS']._serialized_start=977
|
|
73
|
+
_globals['_PETMODESTATUS']._serialized_end=1126
|
|
74
|
+
_globals['_SEATCONDITIONINGSTATUS']._serialized_start=1129
|
|
75
|
+
_globals['_SEATCONDITIONINGSTATUS']._serialized_end=1421
|
|
76
|
+
_globals['_SEATCONDITIONINGSTATUS_SURFACE']._serialized_start=1230
|
|
77
|
+
_globals['_SEATCONDITIONINGSTATUS_SURFACE']._serialized_end=1421
|
|
78
|
+
# @@protoc_insertion_point(module_scope)
|