Skip to content

Commit e7fdf24

Browse files
committed
Add prefer_typed
1 parent 40fc255 commit e7fdf24

File tree

4 files changed

+63
-8
lines changed

4 files changed

+63
-8
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ The TeslemetryStream class requires:
1414
- One or both:
1515
- vin: your Tesla's Vehicle Identification Number
1616
- server: The Teslemetry server to connect to
17+
- na.teslemetry.com
18+
- eu.teslemetry.com
1719

1820
The full list of possible values are provided in `TeslemetryStream.Fields` and `TeslemetryStream.Alerts`
1921

@@ -41,4 +43,4 @@ async def main():
4143
print("Running")
4244
await asyncio.sleep(60)
4345
remove()
44-
```
46+
```

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="teslemetry_stream",
8-
version="0.4.2",
8+
version="0.4.3",
99
author="Brett Adams",
1010
author_email="[email protected]",
1111
description="Teslemetry Streaming API library for Python",
@@ -14,7 +14,7 @@
1414
url="https://github.com/Teslemetry/teslemetry_stream",
1515
packages=setuptools.find_packages(),
1616
classifiers=[
17-
"Development Status :: 3 - Alpha",
17+
"Development Status :: 4 - Beta",
1818
"Programming Language :: Python :: 3",
1919
"License :: OSI Approved :: Apache Software License",
2020
"Operating System :: OS Independent",

teslemetry_stream/__init__.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class TeslemetryStream:
4343

4444
fields: dict[TelemetryFields, dict[str, int]] | None = None
4545
alerts: list[TelemetryAlerts] | None = None
46+
preferTyped: bool
4647
_response: aiohttp.ClientResponse | None = None
4748
_listeners: dict[Callable, Callable]
4849
delay: int
@@ -99,25 +100,28 @@ async def get_config(self, vin: str | None = None) -> None:
99100
self.server = config["hostname"]
100101
self.fields = config["fields"]
101102
self.alerts = config["alert_types"]
103+
self.preferTyped = config["prefer_typed"]
102104
else:
103105
raise TeslemetryStreamVehicleNotConfigured()
104106
if not response.get("synced"):
105107
LOGGER.warning("Vehicle configuration not active")
106108

107-
async def change_hostname(self, hostname: str, vin: str | None = None) -> dict:
108-
"""Update Fleet Telemetry hostname"""
109+
async def prefer_typed(self, prefer_typed: bool = True, vin: str | None = None) -> dict:
110+
"""Set prefer typed."""
111+
assert (vin or self.vin)
109112
resp = await self._session.patch(
110113
f"https://api.teslemetry.com/api/config/{vin or self.vin}",
111114
headers=self._headers,
112-
json={"hostname": hostname},
115+
json={"prefer_typed": prefer_typed},
113116
raise_for_status=False,
114117
)
115118
if resp.ok:
116-
self.server = hostname
119+
self.preferTyped = prefer_typed
117120
return await resp.json()
118121

119122
async def update_fields(self, fields: dict, vin: str | None = None) -> dict:
120123
"""Update Fleet Telemetry configuration"""
124+
assert (vin or self.vin)
121125
resp = await self._session.patch(
122126
f"https://api.teslemetry.com/api/config/{vin or self.vin}",
123127
headers=self._headers,

teslemetry_stream/const.py

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,43 @@ class TelemetryFields(StrEnum):
1818
AUTO_SEAT_CLIMATE_RIGHT = "AutoSeatClimateRight"
1919
AUTOMATIC_BLIND_SPOT_CAMERA = "AutomaticBlindSpotCamera"
2020
AUTOMATIC_EMERGENCY_BRAKING_OFF = "AutomaticEmergencyBrakingOff"
21-
BMS_STATE = "BMSState"
2221
BATTERY_HEATER_ON = "BatteryHeaterOn"
2322
BATTERY_LEVEL = "BatteryLevel"
2423
BLIND_SPOT_COLLISION_WARNING_CHIME = "BlindSpotCollisionWarningChime"
2524
BMS_FULL_CHARGE_COMPLETE = "BmsFullchargecomplete"
25+
BMS_STATE = "BMSState"
2626
BRAKE_PEDAL = "BrakePedal"
2727
BRAKE_PEDAL_POS = "BrakePedalPos"
2828
BRICK_VOLTAGE_MAX = "BrickVoltageMax"
2929
BRICK_VOLTAGE_MIN = "BrickVoltageMin"
30+
CABIN_OVERHEAT_PROTECTION_MODE = "CabinOverheatProtectionMode"
31+
CABIN_OVERHEAT_PROTECTION_TEMPERATURE_LIMIT = "CabinOverheatProtectionTemperatureLimit"
3032
CAR_TYPE = "CarType"
33+
CENTER_DISPLAY = "CenterDisplay"
3134
CHARGE_AMPS = "ChargeAmps"
3235
CHARGE_CURRENT_REQUEST = "ChargeCurrentRequest"
3336
CHARGE_CURRENT_REQUEST_MAX = "ChargeCurrentRequestMax"
3437
CHARGE_ENABLE_REQUEST = "ChargeEnableRequest"
3538
CHARGE_LIMIT_SOC = "ChargeLimitSoc"
3639
CHARGE_PORT = "ChargePort"
3740
CHARGE_PORT_COLD_WEATHER_MODE = "ChargePortColdWeatherMode"
41+
CHARGE_PORT_DOOR_OPEN = "ChargePortDoorOpen"
3842
CHARGE_PORT_LATCH = "ChargePortLatch"
3943
CHARGE_STATE = "ChargeState"
4044
CHARGER_PHASES = "ChargerPhases"
45+
CHARGING_CABLE_TYPE = "ChargingCableType"
46+
CLIMATE_KEEPER_MODE = "ClimateKeeperMode"
4147
CRUISE_FOLLOW_DISTANCE = "CruiseFollowDistance"
4248
CRUISE_SET_SPEED = "CruiseSetSpeed"
4349
CRUISE_STATE = "CruiseState"
4450
CURRENT_LIMIT_MPH = "CurrentLimitMph"
4551
DC_CHARGING_ENERGY_IN = "DCChargingEnergyIn"
4652
DC_CHARGING_POWER = "DCChargingPower"
4753
DC_DC_ENABLE = "DCDCEnable"
54+
DEFROST_FOR_PRECONDITIONING = "DefrostForPreconditioning"
55+
DEFROST_MODE = "DefrostMode"
4856
DESTINATION_LOCATION = "DestinationLocation"
57+
DETAILED_CHARGE_STATE = "DetailedChargeState"
4958
DI_AXLE_SPEED_F = "DiAxleSpeedF"
5059
DI_AXLE_SPEED_R = "DiAxleSpeedR"
5160
DI_AXLE_SPEED_REL = "DiAxleSpeedREL"
@@ -80,15 +89,20 @@ class TelemetryFields(StrEnum):
8089
DRIVE_RAIL = "DriveRail"
8190
DRIVER_SEAT_BELT = "DriverSeatBelt"
8291
DRIVER_SEAT_OCCUPIED = "DriverSeatOccupied"
92+
EFFICIENCY_PACKAGE = "EfficiencyPackage"
8393
EMERGENCY_LANE_DEPARTURE_AVOIDANCE = "EmergencyLaneDepartureAvoidance"
8494
ENERGY_REMAINING = "EnergyRemaining"
8595
EST_BATTERY_RANGE = "EstBatteryRange"
96+
ESTIMATED_HOURS_TO_CHARGE_TERMINATION = "EstimatedHoursToChargeTermination"
97+
EUROPE_VEHICLE = "EuropeVehicle"
98+
EXPECTED_ENERGY_PERCENT_AT_TRIP_ARRIVAL = "ExpectedEnergyPercentAtTripArrival"
8699
EXPERIMENTAL_1 = "Experimental_1"
87100
EXPERIMENTAL_2 = "Experimental_2"
88101
EXPERIMENTAL_3 = "Experimental_3"
89102
EXPERIMENTAL_4 = "Experimental_4"
90103
EXTERIOR_COLOR = "ExteriorColor"
91104
FAST_CHARGER_PRESENT = "FastChargerPresent"
105+
FAST_CHARGER_TYPE = "FastChargerType"
92106
FD_WINDOW = "FdWindow"
93107
FORWARD_COLLISION_WARNING = "ForwardCollisionWarning"
94108
FP_WINDOW = "FpWindow"
@@ -97,6 +111,17 @@ class TelemetryFields(StrEnum):
97111
GPS_STATE = "GpsState"
98112
GUEST_MODE_ENABLED = "GuestModeEnabled"
99113
GUEST_MODE_MOBILE_ACCESS_STATE = "GuestModeMobileAccessState"
114+
HOMELINK_DEVICE_COUNT = "HomelinkDeviceCount"
115+
HOMELINK_NEARBY = "HomelinkNearby"
116+
HVAC_AC_ENABLED = "HvacACEnabled"
117+
HVAC_AUTO_MODE = "HvacAutoMode"
118+
HVAC_FAN_SPEED = "HvacFanSpeed"
119+
HVAC_FAN_STATUS = "HvacFanStatus"
120+
HVAC_LEFT_TEMPERATURE_REQUEST = "HvacLeftTemperatureRequest"
121+
HVAC_POWER = "HvacPower"
122+
HVAC_RIGHT_TEMPERATURE_REQUEST = "HvacRightTemperatureRequest"
123+
HVAC_STEERING_WHEEL_HEAT_AUTO = "HvacSteeringWheelHeatAuto"
124+
HVAC_STEERING_WHEEL_HEAT_LEVEL = "HvacSteeringWheelHeatLevel"
100125
HVIL = "Hvil"
101126
IDEAL_BATTERY_RANGE = "IdealBatteryRange"
102127
INSIDE_TEMP = "InsideTemp"
@@ -119,6 +144,7 @@ class TelemetryFields(StrEnum):
119144
NUM_MODULE_TEMP_MAX = "NumModuleTempMax"
120145
NUM_MODULE_TEMP_MIN = "NumModuleTempMin"
121146
ODOMETER = "Odometer"
147+
OFFROAD_LIGHTBAR_PRESENT = "OffroadLightbarPresent"
122148
ORIGIN_LOCATION = "OriginLocation"
123149
OUTSIDE_TEMP = "OutsideTemp"
124150
PACK_CURRENT = "PackCurrent"
@@ -127,12 +153,22 @@ class TelemetryFields(StrEnum):
127153
PASSENGER_SEAT_BELT = "PassengerSeatBelt"
128154
PEDAL_POSITION = "PedalPosition"
129155
PIN_TO_DRIVE_ENABLED = "PinToDriveEnabled"
156+
POWERSHARE_HOURS_LEFT = "PowershareHoursLeft"
157+
POWERSHARE_INSTANTANEOUS_POWER_KW = "PowershareInstantaneousPowerKW"
158+
POWERSHARE_STATUS = "PowershareStatus"
159+
POWERSHARE_STOP_REASON = "PowershareStopReason"
160+
POWERSHARE_TYPE = "PowershareType"
130161
PRECONDITIONING_ENABLED = "PreconditioningEnabled"
131162
RATED_RANGE = "RatedRange"
132163
RD_WINDOW = "RdWindow"
164+
REAR_DISPLAY_HVAC_ENABLED = "RearDisplayHvacEnabled"
165+
REAR_SEAT_HEATERS = "RearSeatHeaters"
166+
REMOTE_START_ENABLED = "RemoteStartEnabled"
167+
RIGHT_HAND_DRIVE = "RightHandDrive"
133168
ROOF_COLOR = "RoofColor"
134169
ROUTE_LAST_UPDATED = "RouteLastUpdated"
135170
ROUTE_LINE = "RouteLine"
171+
ROUTE_TRAFFIC_MINUTES_DELAY = "RouteTrafficMinutesDelay"
136172
RP_WINDOW = "RpWindow"
137173
SCHEDULED_CHARGING_MODE = "ScheduledChargingMode"
138174
SCHEDULED_CHARGING_PENDING = "ScheduledChargingPending"
@@ -146,10 +182,19 @@ class TelemetryFields(StrEnum):
146182
SENTRY_MODE = "SentryMode"
147183
SERVICE_MODE = "ServiceMode"
148184
SOC = "Soc"
185+
SOFTWARE_UPDATE_DOWNLOAD_PERCENT_COMPLETE = "SoftwareUpdateDownloadPercentComplete"
186+
SOFTWARE_UPDATE_EXPECTED_DURATION_MINUTES = "SoftwareUpdateExpectedDurationMinutes"
187+
SOFTWARE_UPDATE_INSTALLATION_PERCENT_COMPLETE = "SoftwareUpdateInstallationPercentComplete"
188+
SOFTWARE_UPDATE_SCHEDULED_START_TIME = "SoftwareUpdateScheduledStartTime"
189+
SOFTWARE_UPDATE_VERSION = "SoftwareUpdateVersion"
149190
SPEED_LIMIT_MODE = "SpeedLimitMode"
150191
SPEED_LIMIT_WARNING = "SpeedLimitWarning"
151192
SUPERCHARGER_SESSION_TRIP_PLANNER = "SuperchargerSessionTripPlanner"
152193
TIME_TO_FULL_CHARGE = "TimeToFullCharge"
194+
TONNEAU_OPEN_PERCENT = "TonneauOpenPercent"
195+
TONNEAU_POSITION = "TonneauPosition"
196+
TONNEAU_TENT_MODE = "TonneauTentMode"
197+
TPMS_HARD_WARNINGS = "TpmsHardWarnings"
153198
TPMS_LAST_SEEN_PRESSURE_TIME_FL = "TpmsLastSeenPressureTimeFl"
154199
TPMS_LAST_SEEN_PRESSURE_TIME_FR = "TpmsLastSeenPressureTimeFr"
155200
TPMS_LAST_SEEN_PRESSURE_TIME_RL = "TpmsLastSeenPressureTimeRl"
@@ -158,10 +203,14 @@ class TelemetryFields(StrEnum):
158203
TPMS_PRESSURE_FR = "TpmsPressureFr"
159204
TPMS_PRESSURE_RL = "TpmsPressureRl"
160205
TPMS_PRESSURE_RR = "TpmsPressureRr"
206+
TPMS_SOFT_WARNINGS = "TpmsSoftWarnings"
161207
TRIM = "Trim"
208+
VALET_MODE_ENABLED = "ValetModeEnabled"
162209
VEHICLE_NAME = "VehicleName"
163210
VEHICLE_SPEED = "VehicleSpeed"
164211
VERSION = "Version"
212+
WHEEL_TYPE = "WheelType"
213+
WIPER_HEAT_ENABLED = "WiperHeatEnabled"
165214

166215

167216
class TelemetryAlerts(StrEnum):

0 commit comments

Comments
 (0)