Skip to content

Commit 489d076

Browse files
committed
Add missing listen methods and fix typo
1 parent 58e0126 commit 489d076

File tree

3 files changed

+32
-63
lines changed

3 files changed

+32
-63
lines changed

README.md

Lines changed: 15 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -116,25 +116,25 @@ async def main():
116116

117117
## Public Methods in TeslemetryStream Class
118118

119-
### `__init__(self, session: aiohttp.ClientSession, access_token: str, server: str | None = None, vin: str | None = None, parse_timestamp: bool = False)`
119+
### `__init__(session: aiohttp.ClientSession, access_token: str, server: str | None = None, vin: str | None = None, parse_timestamp: bool = False)`
120120
Initialize the TeslemetryStream client.
121121

122-
### `get_vehicle(self, vin: str) -> TeslemetryStreamVehicle`
123-
Create a vehicle stream.
122+
### `get_vehicle(vin: str) -> TeslemetryStreamVehicle`
123+
Create a vehicle object to manage config and create listeners.
124124

125-
### `connected(self) -> bool`
125+
### `connected -> bool`
126126
Return if connected.
127127

128-
### `get_config(self, vin: str | None = None) -> None`
128+
### `get_config(vin: str | None = None) -> None`
129129
Get the current stream config.
130130

131131
### `find_server(self) -> None`
132132
Find the server using metadata.
133133

134-
### `update_fields(self, fields: dict, vin: str) -> dict`
134+
### `update_fields(fields: dict, vin: str) -> dict`
135135
Modify the Fleet Telemetry configuration.
136136

137-
### `replace_fields(self, fields: dict, vin: str) -> dict`
137+
### `replace_fields(fields: dict, vin: str) -> dict`
138138
Replace the Fleet Telemetry configuration.
139139

140140
### `config(self) -> dict`
@@ -146,82 +146,35 @@ Connect to the telemetry stream.
146146
### `close(self) -> None`
147147
Close connection.
148148

149-
### `async_add_listener(self, callback: Callable, filters: dict | None = None) -> Callable[[], None]`
149+
### `async_add_listener(callback: Callable, filters: dict | None = None) -> Callable[[], None]`
150150
Add listener for data updates.
151151

152152
### `listen(self)`
153153
Listen to the telemetry stream.
154154

155-
### `listen_Credits(self, callback: Callable[[dict[str, str | int]], None]) -> Callable[[], None]`
155+
### `listen_Credits(callback: Callable[[dict[str, str | int]], None]) -> Callable[[], None]`
156156
Add listener for credit events.
157157

158-
### `listen_Balance(self, callback: Callable[[int], None]) -> Callable[[], None]`
158+
### `listen_Balance(callback: Callable[[int], None]) -> Callable[[], None]`
159159
Add listener for credit balance.
160160

161161
## Public Methods in TeslemetryStreamVehicle Class
162162

163-
### `__init__(self, stream: TeslemetryStream, vin: str)`
163+
### `__init__(stream: TeslemetryStream, vin: str)`
164164
Initialize the TeslemetryStreamVehicle instance.
165165

166166
### `get_config(self) -> None`
167167
Get the current vehicle config.
168168

169-
### `update_fields(self, fields: dict) -> dict`
169+
### `update_fields(fields: dict) -> dict`
170170
Update Fleet Telemetry configuration for the vehicle.
171171

172-
### `replace_fields(self, fields: dict) -> dict`
172+
### `replace_fields(fields: dict) -> dict`
173173
Replace Fleet Telemetry configuration for the vehicle.
174174

175175
### `config(self) -> dict`
176176
Return current configuration for the vehicle.
177177

178178
### `listen_*` Methods
179-
The `TeslemetryStreamVehicle` class contains several `listen_*` methods for various telemetry signals. These methods allow you to listen to specific signals and handle their data in a type-safe manner. The available `listen_*` methods and their callback types are:
180-
181-
- `listen_BatteryLevel(callback: Callable[[int], None])`
182-
- `listen_VehicleSpeed(callback: Callable[[int], None])`
183-
- `listen_Location(callback: Callable[[dict], None])`
184-
- `listen_ChargeState(callback: Callable[[str], None])`
185-
- `listen_DoorState(callback: Callable[[dict], None])`
186-
- `listen_HvacPower(callback: Callable[[str], None])`
187-
- `listen_ClimateKeeperMode(callback: Callable[[str], None])`
188-
- `listen_CabinOverheatProtectionMode(callback: Callable[[str], None])`
189-
- `listen_DefrostMode(callback: Callable[[str], None])`
190-
- `listen_SeatHeaterLeft(callback: Callable[[int], None])`
191-
- `listen_SeatHeaterRight(callback: Callable[[int], None])`
192-
- `listen_SeatHeaterRearLeft(callback: Callable[[int], None])`
193-
- `listen_SeatHeaterRearRight(callback: Callable[[int], None])`
194-
- `listen_SeatHeaterRearCenter(callback: Callable[[int], None])`
195-
- `listen_SentryMode(callback: Callable[[bool], None])`
196-
- `listen_ScheduledChargingMode(callback: Callable[[str], None])`
197-
- `listen_ScheduledChargingPending(callback: Callable[[bool], None])`
198-
- `listen_ScheduledChargingStartTime(callback: Callable[[str], None])`
199-
- `listen_ScheduledDepartureTime(callback: Callable[[str], None])`
200-
- `listen_SoftwareUpdateVersion(callback: Callable[[str], None])`
201-
- `listen_SoftwareUpdateDownloadPercentComplete(callback: Callable[[int], None])`
202-
- `listen_SoftwareUpdateExpectedDurationMinutes(callback: Callable[[int], None])`
203-
- `listen_SoftwareUpdateInstallationPercentComplete(callback: Callable[[int], None])`
204-
- `listen_SoftwareUpdateScheduledStartTime(callback: Callable[[str], None])`
205-
- `listen_ChargingCableType(callback: Callable[[str], None])`
206-
- `listen_FastChargerType(callback: Callable[[str], None])`
207-
- `listen_ChargePort(callback: Callable[[str], None])`
208-
- `listen_ChargePortLatch(callback: Callable[[str], None])`
209-
- `listen_ChargePortDoorOpen(callback: Callable[[bool], None])`
210-
- `listen_ChargeEnableRequest(callback: Callable[[bool], None])`
211-
- `listen_ChargeCurrentRequest(callback: Callable[[int], None])`
212-
- `listen_ChargeCurrentRequestMax(callback: Callable[[int], None])`
213-
- `listen_ChargeAmps(callback: Callable[[int], None])`
214-
- `listen_ChargerPhases(callback: Callable[[int], None])`
215-
- `listen_ChargeLimitSoc(callback: Callable[[int], None])`
216-
- `listen_ChargeState(callback: Callable[[str], None])`
217-
- `listen_ChargingCableType(callback: Callable[[str], None])`
218-
- `listen_FastChargerType(callback: Callable[[str], None])`
219-
- `listen_ChargePort(callback: Callable[[str], None])`
220-
- `listen_ChargePortLatch(callback: Callable[[str], None])`
221-
- `listen_ChargePortDoorOpen(callback: Callable[[bool], None])`
222-
- `listen_ChargeEnableRequest(callback: Callable[[bool], None])`
223-
- `listen_ChargeCurrentRequest(callback: Callable[[int], None])`
224-
- `listen_ChargeCurrentRequestMax(callback: Callable[[int], None])`
225-
- `listen_ChargeAmps(callback: Callable[[int], None])`
226-
- `listen_ChargerPhases(callback: Callable[[int], None])`
227-
- `listen_ChargeLimitSoc(callback: Callable[[int], None])`
179+
The `TeslemetryStreamVehicle` class contains a `listen_*` methods for each telemetry signal.
180+
These methods allow you to listen to specific signals and handle their data in a type-safe manner.

teslemetry_stream/const.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ class Signal(StrEnum):
217217
SPEED_LIMIT_MODE = "SpeedLimitMode"
218218
SPEED_LIMIT_WARNING = "SpeedLimitWarning"
219219
SUNROOF_INSTALLED = "SunroofInstalled"
220-
SUPERCARGER_SESSION_TRIP_PLANNER = "SuperchargerSessionTripPlanner"
220+
SUPERCHARGER_SESSION_TRIP_PLANNER = "SuperchargerSessionTripPlanner"
221221
TIME_TO_FULL_CHARGE = "TimeToFullCharge"
222222
TONNEAU_OPEN_PERCENT = "TonneauOpenPercent"
223223
TONNEAU_POSITION = "TonneauPosition"

teslemetry_stream/vehicle.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,14 @@ def listen_ChargePortLatch(self, callback: Callable[[str | None], None]) -> Call
385385
{"vin":self.vin, "data": {Signal.CHARGE_PORT_LATCH: None}}
386386
)
387387

388+
def listen_ChargerVoltage(self, callback: Callable[[float | None], None]) -> Callable[[],None]:
389+
"""Listen for Charger Voltage."""
390+
self._enable_field(Signal.CHARGER_VOLTAGE)
391+
return self.stream.async_add_listener(
392+
make_float(Signal.CHARGER_VOLTAGE, callback),
393+
{"vin":self.vin, "data": {Signal.CHARGER_VOLTAGE: None}}
394+
)
395+
388396
def listen_ChargeState(self, callback: Callable[[str | None], None]) -> Callable[[],None]:
389397
"""Listen for Charge State."""
390398
self._enable_field(Signal.CHARGE_STATE)
@@ -1481,6 +1489,14 @@ def listen_RouteLastUpdated(self, callback: Callable[[int | None], None]) -> Cal
14811489
{"vin":self.vin, "data": {Signal.ROUTE_LAST_UPDATED: None}}
14821490
)
14831491

1492+
def listen_RouteLine(self, callback: Callable[[str | None], None]) -> Callable[[],None]:
1493+
"""Listen for Route Line."""
1494+
self._enable_field(Signal.ROUTE_LINE)
1495+
return self.stream.async_add_listener(
1496+
lambda x: callback(x['data'][Signal.ROUTE_LINE]),
1497+
{"vin":self.vin, "data": {Signal.ROUTE_LINE: None}}
1498+
)
1499+
14841500
def listen_RouteTrafficMinutesDelay(self, callback: Callable[[int | None], None]) -> Callable[[],None]:
14851501
"""Listen for Route Traffic Minutes Delay."""
14861502
self._enable_field(Signal.ROUTE_TRAFFIC_MINUTES_DELAY)

0 commit comments

Comments
 (0)