rivian-python-client 2.2.0b11__tar.gz → 2.2.0b12__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.0b11 → rivian_python_client-2.2.0b12}/PKG-INFO +1 -1
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/__version__.py +1 -1
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/body.py +3 -3
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/comfort.py +12 -12
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/departure.py +21 -21
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/device_table.py +24 -6
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/dynamics.py +14 -8
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/holiday_celebration.py +13 -2
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/navigation.py +4 -4
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/ota.py +17 -18
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/body.proto +10 -9
- rivian_python_client-2.2.0b12/src/rivian/parallax/proto/body_pb2.py +84 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/charging.proto +2 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/comfort.proto +1 -1
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/device_table.proto +43 -8
- rivian_python_client-2.2.0b12/src/rivian/parallax/proto/device_table_pb2.py +60 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/device_table_pb2.pyi +54 -4
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/dynamics.proto +1 -1
- rivian_python_client-2.2.0b12/src/rivian/parallax/proto/dynamics_pb2.py +74 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/dynamics_pb2.pyi +4 -4
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/holiday_celebration.proto +13 -4
- rivian_python_client-2.2.0b12/src/rivian/parallax/proto/holiday_celebration_pb2.py +56 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/holiday_celebration_pb2.pyi +13 -2
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/navigation.proto +2 -2
- rivian_python_client-2.2.0b12/src/rivian/parallax/proto/navigation_pb2.py +76 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/navigation_pb2.pyi +4 -4
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/ota.proto +4 -4
- rivian_python_client-2.2.0b12/src/rivian/parallax/proto/ota_pb2.py +78 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/ota_pb2.pyi +6 -6
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/vehicle.proto +2 -2
- rivian_python_client-2.2.0b11/src/rivian/parallax/proto/body_pb2.py +0 -84
- rivian_python_client-2.2.0b11/src/rivian/parallax/proto/device_table_pb2.py +0 -52
- rivian_python_client-2.2.0b11/src/rivian/parallax/proto/dynamics_pb2.py +0 -74
- rivian_python_client-2.2.0b11/src/rivian/parallax/proto/holiday_celebration_pb2.py +0 -54
- rivian_python_client-2.2.0b11/src/rivian/parallax/proto/navigation_pb2.py +0 -76
- rivian_python_client-2.2.0b11/src/rivian/parallax/proto/ota_pb2.py +0 -78
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/.gitignore +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/README.md +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/pyproject.toml +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/__init__.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/ble.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/const.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/exceptions.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/__init__.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/charging.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/core.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/energy.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/energy_edge_compute.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/gearguard_streaming.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/geofence.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/parallax.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/__init__.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/body_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/charging_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/charging_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/comfort_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/comfort_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/departure.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/departure_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/departure_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/energy.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/energy_edge_compute.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/energy_edge_compute_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/energy_edge_compute_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/energy_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/energy_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/gearguard_streaming.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/gearguard_streaming_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/gearguard_streaming_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/geofence.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/geofence_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/geofence_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/parallax.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/parallax_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/parallax_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/secure_file_transfer.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/secure_file_transfer_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/secure_file_transfer_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/security.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/security_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/security_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/user_passcodes.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/user_passcodes_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/user_passcodes_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/vehicle_access.proto +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/vehicle_access_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/vehicle_access_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/vehicle_pb2.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/vehicle_pb2.pyi +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/secure_file_transfer.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/security.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/user_passcodes.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/vehicle.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/vehicle_access.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/py.typed +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/rivian.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/schemas/charging.graphql +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/schemas/gateway.graphql +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/schemas/orders.graphql +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/utils.py +0 -0
- {rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/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.0b12
|
|
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
|
|
@@ -126,8 +126,8 @@ _WINDOW_MAP: Final[dict[int, str]] = {
|
|
|
126
126
|
|
|
127
127
|
# GraphQL's windowXCalibrated values.
|
|
128
128
|
_CALIBRATION_MAP: Final[dict[int, str]] = {
|
|
129
|
-
body_pb2.CALIBRATION_STATUS_CALIBRATED: "
|
|
130
|
-
body_pb2.CALIBRATION_STATUS_NOT_CALIBRATED: "
|
|
129
|
+
body_pb2.CALIBRATION_STATUS_CALIBRATED: "calibrated",
|
|
130
|
+
body_pb2.CALIBRATION_STATUS_NOT_CALIBRATED: "not_calibrated",
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
_TRAILER_PRESENCE_MAP: Final[dict[int, str]] = {
|
|
@@ -204,7 +204,7 @@ def decode_windows(m: body_pb2.WindowsState) -> dict[str, Any]:
|
|
|
204
204
|
Fields:
|
|
205
205
|
windowFrontLeftCalibrated, windowFrontRightCalibrated,
|
|
206
206
|
windowRearLeftCalibrated, windowRearRightCalibrated,
|
|
207
|
-
windowRearCalibrated: str ("
|
|
207
|
+
windowRearCalibrated: str ("calibrated" | "not_calibrated")
|
|
208
208
|
"""
|
|
209
209
|
return {
|
|
210
210
|
_WINDOW_MAP[w.instance]: _enum(
|
{rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/comfort.py
RENAMED
|
@@ -63,10 +63,10 @@ _CLIMATE_HOLD_UNAVAILABILITY_REASON_MAP: Final[dict[int, str]] = {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
_DEFROST_MAP: Final[dict[int, str]] = {
|
|
66
|
-
comfort_pb2.DEFROST_DEFOG: "
|
|
67
|
-
comfort_pb2.DEFROST_ACTIVE: "
|
|
68
|
-
comfort_pb2.DEFROST_DEFOG_DEFROST: "
|
|
69
|
-
comfort_pb2.DEFROST_OFF: "
|
|
66
|
+
comfort_pb2.DEFROST_DEFOG: "defog",
|
|
67
|
+
comfort_pb2.DEFROST_ACTIVE: "defrost",
|
|
68
|
+
comfort_pb2.DEFROST_DEFOG_DEFROST: "defog_defrost",
|
|
69
|
+
comfort_pb2.DEFROST_OFF: "off",
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
# GraphQL's cabinPreconditioningStatus / cabinPreconditioningType values.
|
|
@@ -132,10 +132,10 @@ _CABIN_SURFACE_MAP: Final[dict[int, str]] = {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
_CONDITIONING_LEVEL_MAP: Final[dict[int | None, str]] = {
|
|
135
|
-
None: "
|
|
136
|
-
comfort_pb2.CONDITIONING_LEVEL_1: "
|
|
137
|
-
comfort_pb2.CONDITIONING_LEVEL_2: "
|
|
138
|
-
comfort_pb2.CONDITIONING_LEVEL_3: "
|
|
135
|
+
None: "off",
|
|
136
|
+
comfort_pb2.CONDITIONING_LEVEL_1: "level_1",
|
|
137
|
+
comfort_pb2.CONDITIONING_LEVEL_2: "level_2",
|
|
138
|
+
comfort_pb2.CONDITIONING_LEVEL_3: "level_3",
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
_CONDITIONING_TYPE_MAP: Final[dict[int, str]] = {
|
|
@@ -248,8 +248,8 @@ def decode_defrost_status(m: comfort_pb2.DefrostDefogStatus) -> dict[str, Any]:
|
|
|
248
248
|
"""comfort.cabin.defrost_defog_status — windshield defrost state.
|
|
249
249
|
|
|
250
250
|
Fields:
|
|
251
|
-
defrostDefogStatus: str | None ("
|
|
252
|
-
| "
|
|
251
|
+
defrostDefogStatus: str | None ("defog" | "defrost" | "defog_defrost"
|
|
252
|
+
| "off")
|
|
253
253
|
"""
|
|
254
254
|
return {
|
|
255
255
|
"defrostDefogStatus": _enum(
|
|
@@ -293,8 +293,8 @@ def decode_seat_conditioning(m: comfort_pb2.SeatConditioningStatus) -> dict[str,
|
|
|
293
293
|
seatFrontLeftHeat, seatFrontLeftVent, seatFrontRightHeat,
|
|
294
294
|
seatFrontRightVent, seatRearLeftHeat, seatRearRightHeat,
|
|
295
295
|
seatThirdRowLeftHeat, seatThirdRowRightHeat: str
|
|
296
|
-
("
|
|
297
|
-
steeringWheelHeat: str ("
|
|
296
|
+
("off" | "level_1" | "level_2" | "level_3")
|
|
297
|
+
steeringWheelHeat: str ("off" | "level_1")
|
|
298
298
|
plus <surface>Heat/Vent for any other surface sent (middle seats,
|
|
299
299
|
rearGlass, frontGlass, sideviewMirrors, wiperArea)
|
|
300
300
|
|
{rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/departure.py
RENAMED
|
@@ -12,28 +12,28 @@ _Schedules = departure_pb2.DepartureSchedules
|
|
|
12
12
|
|
|
13
13
|
# Days field -> gateway WeekDay value.
|
|
14
14
|
_WEEKDAYS = (
|
|
15
|
-
("monday", "
|
|
16
|
-
("tuesday", "
|
|
17
|
-
("wednesday", "
|
|
18
|
-
("thursday", "
|
|
19
|
-
("friday", "
|
|
20
|
-
("saturday", "
|
|
21
|
-
("sunday", "
|
|
15
|
+
("monday", "monday"),
|
|
16
|
+
("tuesday", "tuesday"),
|
|
17
|
+
("wednesday", "wednesday"),
|
|
18
|
+
("thursday", "thursday"),
|
|
19
|
+
("friday", "friday"),
|
|
20
|
+
("saturday", "saturday"),
|
|
21
|
+
("sunday", "sunday"),
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
_DEFOG_DEFROST = {
|
|
25
|
-
departure_pb2.DEFOG_DEFROST_OFF: "
|
|
26
|
-
departure_pb2.DEFOG_DEFROST_DEFOG: "
|
|
27
|
-
departure_pb2.DEFOG_DEFROST_DEFROST: "
|
|
25
|
+
departure_pb2.DEFOG_DEFROST_OFF: "off",
|
|
26
|
+
departure_pb2.DEFOG_DEFROST_DEFOG: "defog",
|
|
27
|
+
departure_pb2.DEFOG_DEFROST_DEFROST: "defrost",
|
|
28
28
|
}
|
|
29
29
|
_SURFACE_LEVEL = {
|
|
30
|
-
departure_pb2.SURFACE_OFF: "
|
|
31
|
-
departure_pb2.SURFACE_HEAT_1: "
|
|
32
|
-
departure_pb2.SURFACE_HEAT_2: "
|
|
33
|
-
departure_pb2.SURFACE_HEAT_3: "
|
|
34
|
-
departure_pb2.SURFACE_VENT_1: "
|
|
35
|
-
departure_pb2.SURFACE_VENT_2: "
|
|
36
|
-
departure_pb2.SURFACE_VENT_3: "
|
|
30
|
+
departure_pb2.SURFACE_OFF: "off",
|
|
31
|
+
departure_pb2.SURFACE_HEAT_1: "heat_1",
|
|
32
|
+
departure_pb2.SURFACE_HEAT_2: "heat_2",
|
|
33
|
+
departure_pb2.SURFACE_HEAT_3: "heat_3",
|
|
34
|
+
departure_pb2.SURFACE_VENT_1: "vent_1",
|
|
35
|
+
departure_pb2.SURFACE_VENT_2: "vent_2",
|
|
36
|
+
departure_pb2.SURFACE_VENT_3: "vent_3",
|
|
37
37
|
}
|
|
38
38
|
_SURFACES = (
|
|
39
39
|
("front_left_seat", "frontLeftSeat"),
|
|
@@ -86,14 +86,14 @@ def decode_departure_schedules(m: departure_pb2.DepartureSchedules) -> dict[str,
|
|
|
86
86
|
Fields:
|
|
87
87
|
departureSchedules: list[dict] — the gateway's DepartureSchedule shape:
|
|
88
88
|
id: str, name: str, isEnabled: bool
|
|
89
|
-
occurrence: {"days": list[str] ("
|
|
89
|
+
occurrence: {"days": list[str] ("monday" ... "sunday"; order
|
|
90
90
|
inferred), "startsAtMin": int (minutes after local midnight)}
|
|
91
91
|
departureSettings: {"shouldOverrideChargeSchedule": bool,
|
|
92
92
|
"comfortSettings": {"cabinTempCelsius": float,
|
|
93
|
-
"frontDefogDefrost": "
|
|
93
|
+
"frontDefogDefrost": "off" | "defog" | "defrost",
|
|
94
94
|
"surfaceHeatVentLevels": {frontLeftSeat, frontRightSeat,
|
|
95
|
-
rearLeftSeat, rearRightSeat, steeringWheel: "
|
|
96
|
-
"
|
|
95
|
+
rearLeftSeat, rearRightSeat, steeringWheel: "off" |
|
|
96
|
+
"heat_1" ... "vent_3"}}}
|
|
97
97
|
departureSchedulesUpdatedAt: datetime
|
|
98
98
|
"""
|
|
99
99
|
result: dict[str, Any] = {
|
{rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/device_table.py
RENAMED
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import uuid
|
|
6
6
|
from typing import Any, Final
|
|
7
7
|
|
|
8
|
+
from ..utils import from_epoch
|
|
8
9
|
from .core import RVMDecoder, _enum, _present
|
|
9
10
|
from .proto import device_table_pb2
|
|
10
11
|
|
|
@@ -59,9 +60,14 @@ def decode_vas_keyper_devices(m: device_table_pb2.VasKeyperDevices) -> dict[str,
|
|
|
59
60
|
infoC: int — 1 while active, 2147483647 while inactive, else the
|
|
60
61
|
pairing attempt number
|
|
61
62
|
infoA, infoB: int — unknown
|
|
63
|
+
keyPermissions: int — raw
|
|
64
|
+
keyCreatedAt, keyExpiresAt: datetime — when sent and non-zero
|
|
65
|
+
keyMaterial: str — which key material is set ("owner" | "friend" |
|
|
66
|
+
"card" | "fob" | "phone" | "fob2")
|
|
62
67
|
deviceId: str — hex; for a key card, the GraphQL `devices[].id`
|
|
68
|
+
nfcDeviceId: str — hex; fob2's NFC id (deviceId is its BLE id)
|
|
63
69
|
phoneId: str — the phone's UUID; phone keys
|
|
64
|
-
credentialHex: str — hex;
|
|
70
|
+
credentialHex: str — hex; the wrapped shared secret
|
|
65
71
|
deviceOem: str ("unknown" | "rivian" | "apple" | "google" |
|
|
66
72
|
"samsung" | "vw") — the device maker
|
|
67
73
|
"""
|
|
@@ -100,17 +106,29 @@ def decode_vas_keyper_devices(m: device_table_pb2.VasKeyperDevices) -> dict[str,
|
|
|
100
106
|
result[key] = v
|
|
101
107
|
if (v := _present(credentials.info, "status")) is not None:
|
|
102
108
|
result["keyStatus"] = _enum(_KEY_STATUS_MAP, v, what="key status")
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
if (v := _present(credentials.info, "permissions")) is not None:
|
|
110
|
+
result["keyPermissions"] = v
|
|
111
|
+
for field, key in (
|
|
112
|
+
("created_at", "keyCreatedAt"),
|
|
113
|
+
("expires_at", "keyExpiresAt"),
|
|
114
|
+
):
|
|
115
|
+
if v := _present(credentials.info, field):
|
|
116
|
+
result[key] = from_epoch(v)
|
|
117
|
+
if (field := credentials.WhichOneof("material")) is not None:
|
|
118
|
+
result["keyMaterial"] = field
|
|
106
119
|
material = getattr(credentials, field)
|
|
107
|
-
|
|
120
|
+
id_field, cred_field = (
|
|
121
|
+
("ble_id", "ble_credential") if field == "fob2" else ("id", "credential")
|
|
122
|
+
)
|
|
123
|
+
if (ident := _present(material, id_field)) is not None:
|
|
108
124
|
if field == "phone" and len(ident) == 16:
|
|
109
125
|
result["phoneId"] = str(uuid.UUID(bytes=ident))
|
|
110
126
|
else:
|
|
111
127
|
result["deviceId"] = ident.hex()
|
|
112
|
-
if (cred := _present(material,
|
|
128
|
+
if (cred := _present(material, cred_field)) is not None:
|
|
113
129
|
result["credentialHex"] = cred.hex()
|
|
130
|
+
if field == "fob2" and (ident := _present(material, "nfc_id")) is not None:
|
|
131
|
+
result["nfcDeviceId"] = ident.hex()
|
|
114
132
|
if (v := _present(credentials, "key_type")) is not None:
|
|
115
133
|
result["keyType"] = _enum(_KEY_TYPE_MAP, v, what="key type")
|
|
116
134
|
if (v := _present(credentials, "device_oem")) is not None:
|
{rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/dynamics.py
RENAMED
|
@@ -53,9 +53,8 @@ _TEMPERATURE_IMPACT_MAP: Final[dict[int, str]] = {
|
|
|
53
53
|
dynamics_pb2.TEMPERATURE_COLD_IMPACT: "cold_impact",
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
# "OK" is the GraphQL value for normal.
|
|
57
56
|
_TIRE_PRESSURE_STATUS_MAP: Final[dict[int, str]] = {
|
|
58
|
-
dynamics_pb2.TIRE_PRESSURE_STATUS_NORMAL: "
|
|
57
|
+
dynamics_pb2.TIRE_PRESSURE_STATUS_NORMAL: "ok",
|
|
59
58
|
dynamics_pb2.TIRE_PRESSURE_STATUS_WARNING_HARD: "warning_hard",
|
|
60
59
|
dynamics_pb2.TIRE_PRESSURE_STATUS_WARNING_SOFT: "warning_soft",
|
|
61
60
|
dynamics_pb2.TIRE_PRESSURE_STATUS_WARNING_PUNCTURE: "warning_puncture",
|
|
@@ -195,15 +194,21 @@ def decode_range(m: dynamics_pb2.Range) -> dict[str, Any]:
|
|
|
195
194
|
}
|
|
196
195
|
|
|
197
196
|
|
|
197
|
+
# The app's enum class for tire validity was stripped; only 0 and 1 are known.
|
|
198
|
+
_TIRE_VALID: Final = 0
|
|
199
|
+
_TIRE_VALIDITY_MAP: Final[dict[int, str]] = {_TIRE_VALID: "valid", 1: "invalid"}
|
|
200
|
+
|
|
201
|
+
|
|
198
202
|
@RVMDecoder.register("dynamics.tires.state", dynamics_pb2.TiresState)
|
|
199
203
|
def decode_tires(m: dynamics_pb2.TiresState) -> dict[str, Any]:
|
|
200
204
|
"""dynamics.tires.state — per-tire pressure, status and validity.
|
|
201
205
|
|
|
202
206
|
Fields:
|
|
203
207
|
tirePressureFrontLeft, tirePressureFrontRight, etc.: float (bar)
|
|
204
|
-
tirePressureStatusFrontLeft, etc.: str ("
|
|
208
|
+
tirePressureStatusFrontLeft, etc.: str ("ok" | "warning_hard" |
|
|
205
209
|
"warning_soft" | "warning_puncture")
|
|
206
|
-
tirePressureStatusValidFrontLeft, etc.: str ("valid" | "invalid")
|
|
210
|
+
tirePressureStatusValidFrontLeft, etc.: str ("valid" | "invalid"),
|
|
211
|
+
or the raw int for an unmapped validity
|
|
207
212
|
"""
|
|
208
213
|
result: dict[str, Any] = {}
|
|
209
214
|
for s in m.tire:
|
|
@@ -212,10 +217,11 @@ def decode_tires(m: dynamics_pb2.TiresState) -> dict[str, Any]:
|
|
|
212
217
|
continue
|
|
213
218
|
suffix = _TIRE_POSITION_MAP[s.pos]
|
|
214
219
|
|
|
215
|
-
# Pressure and status are stale
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
220
|
+
# Pressure and status are stale unless valid.
|
|
221
|
+
result[f"tirePressureStatusValid{suffix}"] = _enum(
|
|
222
|
+
_TIRE_VALIDITY_MAP, s.validity, what="tire validity"
|
|
223
|
+
)
|
|
224
|
+
if s.validity != _TIRE_VALID:
|
|
219
225
|
continue
|
|
220
226
|
|
|
221
227
|
if (pressure := _present(s, "pressure")) is not None:
|
|
@@ -20,6 +20,12 @@ def decode_holiday_celebration_enabled(
|
|
|
20
20
|
return {}
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
_COSTUME_THEME_MAP: Final[dict[int, str]] = {
|
|
24
|
+
holiday_celebration_pb2.CAR_COSTUME_THEME_NONE: "none",
|
|
25
|
+
holiday_celebration_pb2.CAR_COSTUME_THEME_GHOSTBUSTERS: "ghostbusters",
|
|
26
|
+
holiday_celebration_pb2.CAR_COSTUME_THEME_GHOSTBUSTERS_DISPLAY: "ghostbusters_display",
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
_COSTUME_EFFECT_TRIGGER_MAP: Final[dict[int, str]] = {
|
|
24
30
|
holiday_celebration_pb2.COSTUME_EFFECT_TRIGGER_MANUAL: "manual",
|
|
25
31
|
holiday_celebration_pb2.COSTUME_EFFECT_TRIGGER_MOTION: "motion",
|
|
@@ -81,14 +87,19 @@ def decode_car_costume_state(
|
|
|
81
87
|
|
|
82
88
|
Fields:
|
|
83
89
|
carCostumeAvailability: int
|
|
84
|
-
costumeTheme:
|
|
90
|
+
costumeTheme: str | None ("none" | "ghostbusters" |
|
|
91
|
+
"ghostbusters_display"; inferred), None when unset
|
|
85
92
|
costumeMotionTriggerDetected: bool
|
|
86
93
|
activeCostumeEffect: int
|
|
87
94
|
costumeStartTime: datetime, only when sent
|
|
88
95
|
"""
|
|
89
96
|
result: dict[str, Any] = {
|
|
90
97
|
"carCostumeAvailability": m.car_costume_availability,
|
|
91
|
-
"costumeTheme":
|
|
98
|
+
"costumeTheme": (
|
|
99
|
+
_enum(_COSTUME_THEME_MAP, m.costume_theme, what="costume theme")
|
|
100
|
+
if m.costume_theme
|
|
101
|
+
else None
|
|
102
|
+
),
|
|
92
103
|
"costumeMotionTriggerDetected": m.motion_trigger_detected,
|
|
93
104
|
"activeCostumeEffect": m.active_costume_effect,
|
|
94
105
|
}
|
{rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/navigation.py
RENAMED
|
@@ -85,7 +85,7 @@ def _decode_origin(origin: navigation_pb2.GpsFix) -> dict[str, Any]:
|
|
|
85
85
|
result = _decode_geocoordinate(
|
|
86
86
|
_present(origin, "location"), "originLatitude", "originLongitude"
|
|
87
87
|
)
|
|
88
|
-
result["
|
|
88
|
+
result["originBearing"] = origin.bearing
|
|
89
89
|
if (origin_epoch := _present(origin, "time")) is not None:
|
|
90
90
|
result["originTime"] = from_epoch(origin_epoch)
|
|
91
91
|
return result
|
|
@@ -282,7 +282,7 @@ def decode_trip_info(m: navigation_pb2.TripInfo) -> dict[str, Any]:
|
|
|
282
282
|
tripId: str — changes on every route computation, so it can't
|
|
283
283
|
correlate messages
|
|
284
284
|
originLatitude, originLongitude: float
|
|
285
|
-
|
|
285
|
+
originBearing: float (degrees)
|
|
286
286
|
originTime: datetime
|
|
287
287
|
originStateOfCharge: float (percent)
|
|
288
288
|
distance, duration: float — driving totals (meters, seconds),
|
|
@@ -354,7 +354,7 @@ def decode_trip_progress(m: navigation_pb2.TripProgress) -> dict[str, Any]:
|
|
|
354
354
|
(meters, seconds)
|
|
355
355
|
latitude, longitude: float
|
|
356
356
|
speed: float (m/s)
|
|
357
|
-
|
|
357
|
+
bearing: float (degrees)
|
|
358
358
|
locationTime: datetime — time of the position fix
|
|
359
359
|
"""
|
|
360
360
|
result: dict[str, Any] = {}
|
|
@@ -371,7 +371,7 @@ def decode_trip_progress(m: navigation_pb2.TripProgress) -> dict[str, Any]:
|
|
|
371
371
|
_decode_geocoordinate(_present(fix, "location"), "latitude", "longitude")
|
|
372
372
|
)
|
|
373
373
|
result["speed"] = fix.speed
|
|
374
|
-
result["
|
|
374
|
+
result["bearing"] = fix.bearing
|
|
375
375
|
if (fix_epoch := _present(fix, "time")) is not None:
|
|
376
376
|
result["locationTime"] = from_epoch(fix_epoch)
|
|
377
377
|
return result
|
|
@@ -27,24 +27,23 @@ _OTA_STATUS_MAP: Final[dict[int, str]] = {
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
_Deployment = ota_pb2.DeploymentState
|
|
30
|
-
# The app's GraphQL-style strings.
|
|
31
30
|
_CURRENT_STATUS_MAP: Final[dict[int, str]] = {
|
|
32
|
-
_Deployment.CURRENT_STATUS_INSTALL_SUCCESS: "
|
|
33
|
-
_Deployment.CURRENT_STATUS_INSTALL_FAILED: "
|
|
34
|
-
_Deployment.CURRENT_STATUS_INSTALL_UNABLE_TO_START: "
|
|
31
|
+
_Deployment.CURRENT_STATUS_INSTALL_SUCCESS: "install_success",
|
|
32
|
+
_Deployment.CURRENT_STATUS_INSTALL_FAILED: "install_failed",
|
|
33
|
+
_Deployment.CURRENT_STATUS_INSTALL_UNABLE_TO_START: "install_unable_to_start",
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
_DEPLOYMENT_INTENT_MAP: Final[dict[int, str]] = {
|
|
38
|
-
_Deployment.DEPLOYMENT_INTENT_PERFORMANCE_UPGRADE: "
|
|
39
|
-
_Deployment.DEPLOYMENT_INTENT_BUG_FIX: "
|
|
40
|
-
_Deployment.DEPLOYMENT_INTENT_SECURITY_UPDATE: "
|
|
41
|
-
_Deployment.DEPLOYMENT_INTENT_FEATURE_ADDITION: "
|
|
37
|
+
_Deployment.DEPLOYMENT_INTENT_PERFORMANCE_UPGRADE: "performance_upgrade",
|
|
38
|
+
_Deployment.DEPLOYMENT_INTENT_BUG_FIX: "bug_fix",
|
|
39
|
+
_Deployment.DEPLOYMENT_INTENT_SECURITY_UPDATE: "security_update",
|
|
40
|
+
_Deployment.DEPLOYMENT_INTENT_FEATURE_ADDITION: "feature_addition",
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
_SOFTWARE_CATEGORY_MAP: Final[dict[int, str]] = {
|
|
45
|
-
_Deployment.SOFTWARE_CATEGORY_FIRMWARE: "
|
|
46
|
-
_Deployment.SOFTWARE_CATEGORY_HD_MAPS: "
|
|
47
|
-
_Deployment.SOFTWARE_CATEGORY_VEHICLE_CONFIG: "
|
|
44
|
+
_Deployment.SOFTWARE_CATEGORY_FIRMWARE: "firmware",
|
|
45
|
+
_Deployment.SOFTWARE_CATEGORY_HD_MAPS: "hd_maps",
|
|
46
|
+
_Deployment.SOFTWARE_CATEGORY_VEHICLE_CONFIG: "vehicle_config",
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
|
|
@@ -56,8 +55,8 @@ def _decode_version(
|
|
|
56
55
|
for field, key in (
|
|
57
56
|
("version_string", "Version"),
|
|
58
57
|
("version_year", "VersionYear"),
|
|
59
|
-
("
|
|
60
|
-
("
|
|
58
|
+
("version_week", "VersionWeek"),
|
|
59
|
+
("git_hash", "VersionGitHash"),
|
|
61
60
|
):
|
|
62
61
|
if (v := _present(version, field)) is not None:
|
|
63
62
|
result[f"{prefix}{key}"] = v
|
|
@@ -80,7 +79,7 @@ def decode_deployment_state(m: ota_pb2.DeploymentState) -> dict[str, Any]:
|
|
|
80
79
|
otaCurrentVersionYear, otaCurrentVersionWeek,
|
|
81
80
|
otaCurrentVersionNumber: int
|
|
82
81
|
otaCurrentVersionGitHash: str
|
|
83
|
-
otaSoftwareCategory: str ("
|
|
82
|
+
otaSoftwareCategory: str ("firmware" | "hd_maps" | "vehicle_config")
|
|
84
83
|
otaUpdateInProgress: bool
|
|
85
84
|
otaDeploymentId: str — UUID, only while an update is in flight
|
|
86
85
|
otaAvailableVersion, otaAvailableVersionYear,
|
|
@@ -94,13 +93,13 @@ def decode_deployment_state(m: ota_pb2.DeploymentState) -> dict[str, Any]:
|
|
|
94
93
|
otaDownloadProgress, otaInstallProgress: int (0-100)
|
|
95
94
|
otaTimeRemaining: int (seconds; counts down during
|
|
96
95
|
"install_countdown", a static default otherwise)
|
|
97
|
-
otaCurrentStatus: str | None ("
|
|
98
|
-
"
|
|
96
|
+
otaCurrentStatus: str | None ("install_success" | "install_failed" |
|
|
97
|
+
"install_unable_to_start") — the last install's result
|
|
99
98
|
otaInstallReady: str ("ota_available" | "ota_not_available")
|
|
100
99
|
otaInstallDuration: int (minutes)
|
|
101
100
|
otaInstallTimeOfDay: int (minutes after local midnight), when set
|
|
102
|
-
otaDeploymentIntent: str | None ("
|
|
103
|
-
"
|
|
101
|
+
otaDeploymentIntent: str | None ("performance_upgrade" | "bug_fix" |
|
|
102
|
+
"security_update" | "feature_addition")
|
|
104
103
|
otaSkipAllowed: bool, otaSkipCount: int
|
|
105
104
|
otaPendingReasons: list[str] — what's blocking an install, e.g.
|
|
106
105
|
"not_parked", "unplugged", "lv_batt"
|
{rivian_python_client-2.2.0b11 → rivian_python_client-2.2.0b12}/src/rivian/parallax/proto/body.proto
RENAMED
|
@@ -12,16 +12,17 @@ message ClosuresState {
|
|
|
12
12
|
int32 open_position_percent = 3;
|
|
13
13
|
// Unset on doors and windows; briefly GENERAL while re-reporting.
|
|
14
14
|
ClosureFault fault = 4;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
// One field per closure type. Briefly SNA / not-available while the
|
|
15
|
+
// One member per closure type. Briefly SNA / not-available while the
|
|
18
16
|
// vehicle re-reports after an app command.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
oneof next_action {
|
|
18
|
+
WindowsNextAction windows_next_action = 5; // on GROUP_WINDOWS
|
|
19
|
+
FrunkNextAction frunk_next_action = 6;
|
|
20
|
+
LiftgateNextAction liftgate_next_action = 7;
|
|
21
|
+
SideBinNextAction side_bin_next_action = 8;
|
|
22
|
+
TailgateNextAction tailgate_next_action = 9;
|
|
23
|
+
ChargePortDoorNextAction charge_port_door_next_action = 10;
|
|
24
|
+
int32 tonneau_next_action = 11; // the app's enum (class stripped)
|
|
25
|
+
}
|
|
25
26
|
}
|
|
26
27
|
repeated Closure closure = 1;
|
|
27
28
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
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/body.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.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
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'rivian/parallax/proto/body.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/body.proto\x12\x14rivian.parallax.body\"\x89\x06\n\rClosuresState\x12<\n\x07\x63losure\x18\x01 \x03(\x0b\x32+.rivian.parallax.body.ClosuresState.Closure\x1a\xb9\x05\n\x07\x43losure\x12+\n\x02id\x18\x01 \x01(\x0e\x32\x1f.rivian.parallax.body.ClosureId\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32\".rivian.parallax.body.ClosureStateH\x01\x88\x01\x01\x12\x1d\n\x15open_position_percent\x18\x03 \x01(\x05\x12\x31\n\x05\x66\x61ult\x18\x04 \x01(\x0e\x32\".rivian.parallax.body.ClosureFault\x12\x46\n\x13windows_next_action\x18\x05 \x01(\x0e\x32\'.rivian.parallax.body.WindowsNextActionH\x00\x12\x42\n\x11\x66runk_next_action\x18\x06 \x01(\x0e\x32%.rivian.parallax.body.FrunkNextActionH\x00\x12H\n\x14liftgate_next_action\x18\x07 \x01(\x0e\x32(.rivian.parallax.body.LiftgateNextActionH\x00\x12G\n\x14side_bin_next_action\x18\x08 \x01(\x0e\x32\'.rivian.parallax.body.SideBinNextActionH\x00\x12H\n\x14tailgate_next_action\x18\t \x01(\x0e\x32(.rivian.parallax.body.TailgateNextActionH\x00\x12V\n\x1c\x63harge_port_door_next_action\x18\n \x01(\x0e\x32..rivian.parallax.body.ChargePortDoorNextActionH\x00\x12\x1d\n\x13tonneau_next_action\x18\x0b \x01(\x05H\x00\x42\r\n\x0bnext_actionB\x08\n\x06_state\"\xe3\x01\n\nLocksState\x12\x33\n\x04lock\x18\x01 \x03(\x0b\x32%.rivian.parallax.body.LocksState.Lock\x1a\x9f\x01\n\x04Lock\x12(\n\x02id\x18\x01 \x01(\x0e\x32\x1c.rivian.parallax.body.LockId\x12\x33\n\x05state\x18\x02 \x01(\x0e\x32\x1f.rivian.parallax.body.LockStateH\x00\x88\x01\x01\x12.\n\x05\x66\x61ult\x18\x03 \x01(\x0e\x32\x1f.rivian.parallax.body.LockFaultB\x08\n\x06_state\"\xd1\x01\n\x0cWindowsState\x12\x39\n\x06window\x18\x01 \x03(\x0b\x32).rivian.parallax.body.WindowsState.Window\x1a\x85\x01\n\x06Window\x12\x36\n\x08instance\x18\x01 \x01(\x0e\x32$.rivian.parallax.body.WindowInstance\x12\x43\n\x12\x63\x61libration_status\x18\x02 \x01(\x0e\x32\'.rivian.parallax.body.CalibrationStatus\"\x9b\x01\n\x0cTrailerState\x12<\n\x08presence\x18\x01 \x01(\x0e\x32%.rivian.parallax.body.TrailerPresenceH\x00\x88\x01\x01\x12@\n\x11rear_hitch_status\x18\x02 \x01(\x0e\x32%.rivian.parallax.body.RearHitchStatusB\x0b\n\t_presence\"G\n\x0fWiperFluidLevel\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32%.rivian.parallax.body.WiperFluidState*\xe8\x02\n\tClosureId\x12\x1a\n\x16\x43LOSURE_ID_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x44OOR_FRONT_LEFT\x10\x01\x12\x14\n\x10\x44OOR_FRONT_RIGHT\x10\x02\x12\x12\n\x0e\x44OOR_REAR_LEFT\x10\x03\x12\x13\n\x0f\x44OOR_REAR_RIGHT\x10\x04\x12\t\n\x05\x46RUNK\x10\x05\x12\x0c\n\x08TAILGATE\x10\x06\x12\x0c\n\x08LIFTGATE\x10\x07\x12\x11\n\rSIDE_BIN_LEFT\x10\x08\x12\x12\n\x0eSIDE_BIN_RIGHT\x10\t\x12\x0f\n\x0b\x43HARGE_PORT\x10\n\x12\x0b\n\x07TONNEAU\x10\x0b\x12\x15\n\x11WINDOW_FRONT_LEFT\x10\x0c\x12\x16\n\x12WINDOW_FRONT_RIGHT\x10\r\x12\x14\n\x10WINDOW_REAR_LEFT\x10\x0e\x12\x15\n\x11WINDOW_REAR_RIGHT\x10\x0f\x12\x0f\n\x0bWINDOW_REAR\x10\x10\x12\x12\n\rGROUP_WINDOWS\x10\x90N*\xad\x01\n\x0c\x43losureState\x12\x1d\n\x19\x43LOSURE_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43LOSURE_STATE_OPEN\x10\x01\x12\x18\n\x14\x43LOSURE_STATE_CLOSED\x10\x02\x12\x16\n\x12\x43LOSURE_STATE_AJAR\x10\x03\x12\x19\n\x15\x43LOSURE_STATE_OPENING\x10\x04\x12\x19\n\x15\x43LOSURE_STATE_CLOSING\x10\x05*\xf3\x02\n\x06LockId\x12\x17\n\x13LOCK_ID_UNSPECIFIED\x10\x00\x12\x18\n\x14LOCK_DOOR_FRONT_LEFT\x10\x01\x12\x19\n\x15LOCK_DOOR_FRONT_RIGHT\x10\x02\x12\x17\n\x13LOCK_DOOR_REAR_LEFT\x10\x03\x12\x18\n\x14LOCK_DOOR_REAR_RIGHT\x10\x04\x12\x0e\n\nLOCK_FRUNK\x10\x05\x12\x11\n\rLOCK_TAILGATE\x10\x06\x12\x11\n\rLOCK_LIFTGATE\x10\x07\x12\x16\n\x12LOCK_SIDE_BIN_LEFT\x10\x08\x12\x17\n\x13LOCK_SIDE_BIN_RIGHT\x10\t\x12\x14\n\x10LOCK_CHARGE_PORT\x10\n\x12\x17\n\x13LOCK_TRUNK_SECURITY\x10\x0b\x12\x17\n\x13LOCK_CENTER_CONSOLE\x10\x0c\x12\x12\n\x0eLOCK_GLOVE_BOX\x10\r\x12\x13\n\x0fLOCK_GEAR_GUARD\x10\x0e\x12\x10\n\x0cLOCK_TONNEAU\x10\x0f*z\n\tLockState\x12\x1a\n\x16LOCK_STATE_UNSPECIFIED\x10\x00\x12\x15\n\x11LOCK_STATE_LOCKED\x10\x01\x12\x17\n\x13LOCK_STATE_UNLOCKED\x10\x02\x12!\n\x1dLOCK_STATE_PARTIALLY_UNLOCKED\x10\x03*?\n\tLockFault\x12\x1a\n\x16LOCK_FAULT_UNSPECIFIED\x10\x00\x12\x16\n\x12LOCK_FAULT_FAULTED\x10\x01*\xcb\x01\n\x0eWindowInstance\x12\x1f\n\x1bWINDOW_INSTANCE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aWINDOW_INSTANCE_FRONT_LEFT\x10\x01\x12\x1f\n\x1bWINDOW_INSTANCE_FRONT_RIGHT\x10\x02\x12\x1d\n\x19WINDOW_INSTANCE_REAR_LEFT\x10\x03\x12\x1e\n\x1aWINDOW_INSTANCE_REAR_RIGHT\x10\x04\x12\x18\n\x14WINDOW_INSTANCE_REAR\x10\x05*\x81\x01\n\x11\x43\x61librationStatus\x12\"\n\x1e\x43\x41LIBRATION_STATUS_UNSPECIFIED\x10\x00\x12!\n\x1d\x43\x41LIBRATION_STATUS_CALIBRATED\x10\x01\x12%\n!CALIBRATION_STATUS_NOT_CALIBRATED\x10\x02*\xd8\x01\n\x0fRearHitchStatus\x12!\n\x1dREAR_HITCH_STATUS_UNSPECIFIED\x10\x00\x12!\n\x1dREAR_HITCH_STATUS_NOT_PRESENT\x10\x01\x12\x1f\n\x1bREAR_HITCH_STATUS_ACCESSORY\x10\x02\x12\x1e\n\x1aREAR_HITCH_STATUS_TRAILER1\x10\x03\x12\x1e\n\x1aREAR_HITCH_STATUS_TRAILER2\x10\x04\x12\x1e\n\x1aREAR_HITCH_STATUS_TRAILER3\x10\x05*\xaa\x01\n\x0c\x43losureFault\x12\x1d\n\x19\x43LOSURE_FAULT_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43LOSURE_FAULT_NO_FAULT\x10\x01\x12\x19\n\x15\x43LOSURE_FAULT_GENERAL\x10\x02\x12&\n\"CLOSURE_FAULT_NO_POWERED_OPERATION\x10\x03\x12\x1c\n\x18\x43LOSURE_FAULT_OBSTRUCTED\x10\x04*\x97\x01\n\x0fTrailerPresence\x12 \n\x1cTRAILER_PRESENCE_UNSPECIFIED\x10\x00\x12\x17\n\x13TRAILER_NOT_PRESENT\x10\x01\x12\x13\n\x0fTRAILER_PRESENT\x10\x02\x12\x1f\n\x1bTRAILER_PRESENT_WITH_BRAKES\x10\x03\x12\x13\n\x0fTRAILER_INVALID\x10\x04*\x9f\x04\n\x18\x43hargePortDoorNextAction\x12\x18\n\x14\x43HARGE_PORT_DOOR_SNA\x10\x00\x12!\n\x1d\x43HARGE_PORT_DOOR_OPEN_ALLOWED\x10\x01\x12\'\n#CHARGE_PORT_DOOR_OPEN_NOT_AVAILABLE\x10\x02\x12-\n)CHARGE_PORT_DOOR_OPEN_NOT_ALLOWED_FAULTED\x10\x03\x12\x1c\n\x18\x43HARGE_PORT_DOOR_OPENING\x10\x04\x12\"\n\x1e\x43HARGE_PORT_DOOR_CLOSE_ALLOWED\x10\x05\x12;\n7CHARGE_PORT_DOOR_OBSTRUCTED_WHILE_OPENING_CLOSE_ALLOWED\x10\x06\x12:\n6CHARGE_PORT_DOOR_OBSTRUCTED_WHILE_OPENING_OPEN_ALLOWED\x10\x07\x12;\n7CHARGE_PORT_DOOR_OBSTRUCTED_WHILE_CLOSING_CLOSE_ALLOWED\x10\x08\x12(\n$CHARGE_PORT_DOOR_CLOSE_NOT_AVAILABLE\x10\t\x12.\n*CHARGE_PORT_DOOR_CLOSE_NOT_ALLOWED_FAULTED\x10\n\x12\x1c\n\x18\x43HARGE_PORT_DOOR_CLOSING\x10\x0b*\xb0\x03\n\x0f\x46runkNextAction\x12\r\n\tFRUNK_SNA\x10\x00\x12\x16\n\x12\x46RUNK_OPEN_ALLOWED\x10\x01\x12\x17\n\x13\x46RUNK_CLOSE_ALLOWED\x10\x02\x12\x11\n\rFRUNK_OPENING\x10\x03\x12\x11\n\rFRUNK_CLOSING\x10\x04\x12\x1c\n\x18\x46RUNK_OPEN_NOT_AVAILABLE\x10\x05\x12\x1d\n\x19\x46RUNK_CLOSE_NOT_AVAILABLE\x10\x06\x12\"\n\x1e\x46RUNK_OPEN_NOT_ALLOWED_FAULTED\x10\x07\x12#\n\x1f\x46RUNK_CLOSE_NOT_ALLOWED_FAULTED\x10\x08\x12)\n%FRUNK_OPEN_ALLOWED_NO_POWER_OPERATION\x10\t\x12.\n*FRUNK_CLOSE_NOT_ALLOWED_NO_POWER_OPERATION\x10\n\x12*\n&FRUNK_OBSTRUCTED_OPENING_CLOSE_ALLOWED\x10\x0b\x12*\n&FRUNK_OBSTRUCTED_CLOSING_CLOSE_ALLOWED\x10\x0c*\xa7\x06\n\x12LiftgateNextAction\x12\x10\n\x0cLIFTGATE_SNA\x10\x00\x12\x19\n\x15LIFTGATE_OPEN_ALLOWED\x10\x01\x12\x1a\n\x16LIFTGATE_CLOSE_ALLOWED\x10\x02\x12\x14\n\x10LIFTGATE_OPENING\x10\x03\x12\x14\n\x10LIFTGATE_CLOSING\x10\x04\x12\x1f\n\x1bLIFTGATE_OPEN_NOT_AVAILABLE\x10\x05\x12 \n\x1cLIFTGATE_CLOSE_NOT_AVAILABLE\x10\x06\x12%\n!LIFTGATE_OPEN_NOT_ALLOWED_FAULTED\x10\x07\x12&\n\"LIFTGATE_CLOSE_NOT_ALLOWED_FAULTED\x10\x08\x12,\n(LIFTGATE_OPEN_ALLOWED_NO_POWER_OPERATION\x10\t\x12\x31\n-LIFTGATE_CLOSE_NOT_ALLOWED_NO_POWER_OPERATION\x10\n\x12-\n)LIFTGATE_OBSTRUCTED_OPENING_CLOSE_ALLOWED\x10\x0b\x12-\n)LIFTGATE_OBSTRUCTED_CLOSING_CLOSE_ALLOWED\x10\x0c\x12.\n*LIFTGATE_LOWER_GATE_OPEN_CLOSE_NOT_ALLOWED\x10\r\x12&\n\"LIFTGATE_OPENING_PAUSE_NOT_ALLOWED\x10\x0e\x12&\n\"LIFTGATE_CLOSING_PAUSE_NOT_ALLOWED\x10\x0f\x12+\n\'LIFTGATE_OPEN_ALLOWED_OBSTACLE_DETECTED\x10\x10\x12*\n&LIFTGATE_OPEN_ALLOWED_TRAILER_DETECTED\x10\x11\x12,\n(LIFTGATE_CLOSE_ALLOWED_OBSTACLE_DETECTED\x10\x12\x12+\n\'LIFTGATE_CLOSE_ALLOWED_TRAILER_DETECTED\x10\x13\x12\x17\n\x13LIFTGATE_PROCESSING\x10\x14*\xb2\x02\n\x11SideBinNextAction\x12\x10\n\x0cSIDE_BIN_SNA\x10\x00\x12\x19\n\x15SIDE_BIN_OPEN_ALLOWED\x10\x01\x12\x14\n\x10SIDE_BIN_OPENING\x10\x02\x12\x1f\n\x1bSIDE_BIN_OPEN_NOT_AVAILABLE\x10\x03\x12%\n!SIDE_BIN_OPEN_NOT_ALLOWED_FAULTED\x10\x04\x12\x32\n.SIDE_BIN_STUCK_AJAR_WHILE_OPENING_OPEN_ALLOWED\x10\x05\x12-\n)SIDE_BIN_OPEN_ALREADY_NO_ACTION_AVAILABLE\x10\x06\x12/\n+SIDE_BIN_OPEN_ALLOWED_CONFIRM_VEHICLE_ANGLE\x10\x07*\x8c\x03\n\x12TailgateNextAction\x12\x10\n\x0cTAILGATE_SNA\x10\x00\x12\x19\n\x15TAILGATE_OPEN_ALLOWED\x10\x01\x12\x14\n\x10TAILGATE_OPENING\x10\x02\x12\x1f\n\x1bTAILGATE_OPEN_NOT_AVAILABLE\x10\x03\x12%\n!TAILGATE_OPEN_NOT_ALLOWED_FAULTED\x10\x04\x12\x32\n.TAILGATE_STUCK_AJAR_WHILE_OPENING_OPEN_ALLOWED\x10\x05\x12-\n)TAILGATE_OPEN_ALREADY_NO_ACTION_AVAILABLE\x10\x06\x12/\n+TAILGATE_OPEN_ALLOWED_CONFIRM_VEHICLE_ANGLE\x10\x07\x12+\n\'TAILGATE_OPEN_ALLOWED_OBSTACLE_DETECTED\x10\x08\x12*\n&TAILGATE_OPEN_ALLOWED_TRAILER_DETECTED\x10\t*\xb0\x03\n\x11WindowsNextAction\x12\x0f\n\x0bWINDOWS_SNA\x10\x00\x12\x18\n\x14WINDOWS_OPEN_ALLOWED\x10\x01\x12\x19\n\x15WINDOWS_CLOSE_ALLOWED\x10\x02\x12\x13\n\x0fWINDOWS_OPENING\x10\x03\x12\x13\n\x0fWINDOWS_CLOSING\x10\x04\x12\x12\n\x0eWINDOWS_MOVING\x10\x05\x12\x1e\n\x1aWINDOWS_OPEN_NOT_AVAILABLE\x10\x06\x12\x1f\n\x1bWINDOWS_CLOSE_NOT_AVAILABLE\x10\x07\x12$\n WINDOWS_OPEN_NOT_ALLOWED_FAULTED\x10\x08\x12%\n!WINDOWS_CLOSE_NOT_ALLOWED_FAULTED\x10\t\x12\x32\n.WINDOWS_OBSTRUCTED_WHILE_CLOSING_CLOSE_ALLOWED\x10\n\x12*\n&WINDOWS_CLOSE_NOT_ALLOWED_UNCALIBRATED\x10\x0b\x12)\n%WINDOWS_OPEN_NOT_ALLOWED_UNCALIBRATED\x10\x0c*\x8a\x01\n\x0fWiperFluidState\x12!\n\x1dWIPER_FLUID_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x18WIPER_FLUID_STATE_NORMAL\x10\x01\x12\x19\n\x15WIPER_FLUID_STATE_LOW\x10\x02\x12\x1b\n\x17WIPER_FLUID_STATE_EMPTY\x10\x03\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rivian.parallax.proto.body_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_CLOSUREID']._serialized_start=1512
|
|
35
|
+
_globals['_CLOSUREID']._serialized_end=1872
|
|
36
|
+
_globals['_CLOSURESTATE']._serialized_start=1875
|
|
37
|
+
_globals['_CLOSURESTATE']._serialized_end=2048
|
|
38
|
+
_globals['_LOCKID']._serialized_start=2051
|
|
39
|
+
_globals['_LOCKID']._serialized_end=2422
|
|
40
|
+
_globals['_LOCKSTATE']._serialized_start=2424
|
|
41
|
+
_globals['_LOCKSTATE']._serialized_end=2546
|
|
42
|
+
_globals['_LOCKFAULT']._serialized_start=2548
|
|
43
|
+
_globals['_LOCKFAULT']._serialized_end=2611
|
|
44
|
+
_globals['_WINDOWINSTANCE']._serialized_start=2614
|
|
45
|
+
_globals['_WINDOWINSTANCE']._serialized_end=2817
|
|
46
|
+
_globals['_CALIBRATIONSTATUS']._serialized_start=2820
|
|
47
|
+
_globals['_CALIBRATIONSTATUS']._serialized_end=2949
|
|
48
|
+
_globals['_REARHITCHSTATUS']._serialized_start=2952
|
|
49
|
+
_globals['_REARHITCHSTATUS']._serialized_end=3168
|
|
50
|
+
_globals['_CLOSUREFAULT']._serialized_start=3171
|
|
51
|
+
_globals['_CLOSUREFAULT']._serialized_end=3341
|
|
52
|
+
_globals['_TRAILERPRESENCE']._serialized_start=3344
|
|
53
|
+
_globals['_TRAILERPRESENCE']._serialized_end=3495
|
|
54
|
+
_globals['_CHARGEPORTDOORNEXTACTION']._serialized_start=3498
|
|
55
|
+
_globals['_CHARGEPORTDOORNEXTACTION']._serialized_end=4041
|
|
56
|
+
_globals['_FRUNKNEXTACTION']._serialized_start=4044
|
|
57
|
+
_globals['_FRUNKNEXTACTION']._serialized_end=4476
|
|
58
|
+
_globals['_LIFTGATENEXTACTION']._serialized_start=4479
|
|
59
|
+
_globals['_LIFTGATENEXTACTION']._serialized_end=5286
|
|
60
|
+
_globals['_SIDEBINNEXTACTION']._serialized_start=5289
|
|
61
|
+
_globals['_SIDEBINNEXTACTION']._serialized_end=5595
|
|
62
|
+
_globals['_TAILGATENEXTACTION']._serialized_start=5598
|
|
63
|
+
_globals['_TAILGATENEXTACTION']._serialized_end=5994
|
|
64
|
+
_globals['_WINDOWSNEXTACTION']._serialized_start=5997
|
|
65
|
+
_globals['_WINDOWSNEXTACTION']._serialized_end=6429
|
|
66
|
+
_globals['_WIPERFLUIDSTATE']._serialized_start=6432
|
|
67
|
+
_globals['_WIPERFLUIDSTATE']._serialized_end=6570
|
|
68
|
+
_globals['_CLOSURESSTATE']._serialized_start=59
|
|
69
|
+
_globals['_CLOSURESSTATE']._serialized_end=836
|
|
70
|
+
_globals['_CLOSURESSTATE_CLOSURE']._serialized_start=139
|
|
71
|
+
_globals['_CLOSURESSTATE_CLOSURE']._serialized_end=836
|
|
72
|
+
_globals['_LOCKSSTATE']._serialized_start=839
|
|
73
|
+
_globals['_LOCKSSTATE']._serialized_end=1066
|
|
74
|
+
_globals['_LOCKSSTATE_LOCK']._serialized_start=907
|
|
75
|
+
_globals['_LOCKSSTATE_LOCK']._serialized_end=1066
|
|
76
|
+
_globals['_WINDOWSSTATE']._serialized_start=1069
|
|
77
|
+
_globals['_WINDOWSSTATE']._serialized_end=1278
|
|
78
|
+
_globals['_WINDOWSSTATE_WINDOW']._serialized_start=1145
|
|
79
|
+
_globals['_WINDOWSSTATE_WINDOW']._serialized_end=1278
|
|
80
|
+
_globals['_TRAILERSTATE']._serialized_start=1281
|
|
81
|
+
_globals['_TRAILERSTATE']._serialized_end=1436
|
|
82
|
+
_globals['_WIPERFLUIDLEVEL']._serialized_start=1438
|
|
83
|
+
_globals['_WIPERFLUIDLEVEL']._serialized_end=1509
|
|
84
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -21,6 +21,8 @@ message ScheduleTimeWindow {
|
|
|
21
21
|
DayOfWeek end_day = 7;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
// The app's proto has uint32 days; its ChargingSmartDayOfWeek.fromInt maps
|
|
25
|
+
// them as below (unlike SmartChargingDay, which starts on Monday).
|
|
24
26
|
enum DayOfWeek {
|
|
25
27
|
DAY_OF_WEEK_UNSPECIFIED = 0;
|
|
26
28
|
SUNDAY = 1;
|