Skip to content

Commit

Permalink
fix: fix initialization of heated seats (#189)
Browse files Browse the repository at this point in the history
* add heated seats switch

* fix linter errors

* add doc string

* fix linter error and add to components list

* fixing init error

* black formatting

* linter fixes
  • Loading branch information
Trupal00p committed May 1, 2021
1 parent e5f93d1 commit ddde348
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
14 changes: 8 additions & 6 deletions teslajsonpy/homeassistant/heated_seats.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def __init__(self, data, controller, seat_name):
"""
super().__init__(data, controller)
self.__manual_update_time = 0
self.__seat_heat_level = data['climate_state'][f'seat_heater_{seat_name}']
self.__seat_heat_level = None
self.__seat_name = seat_name

self.type = f"heated seat {seat_name}"
Expand All @@ -69,15 +69,17 @@ def refresh(self) -> None:
last_update = self._controller.get_last_update_time(self._id)
if last_update >= self.__manual_update_time:
data = self._controller.get_climate_params(self._id)
self.__seat_heat_level = data[f'seat_heater_{self.__seat_name}'] if data else None
self.__seat_heat_level = (
data[f"seat_heater_{self.__seat_name}"] if data else None
)

async def set_seat_heat_level(self, level):
"""Set heated seat level."""
data = await self._controller.command(
self._id, "remote_seat_heater_request", data={
'heater': seat_id_map[self.__seat_name],
'level': level
}, wake_if_asleep=True
self._id,
"remote_seat_heater_request",
data={"heater": seat_id_map[self.__seat_name], "level": level},
wake_if_asleep=True,
)
if data and data["response"]["result"]:
self.__seat_heat_level = level
Expand Down
2 changes: 1 addition & 1 deletion tests/unit_tests/homeassistant/test_heated_seat.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def test_get_seat_heat_level_on_init(monkeypatch):
_seat = HeatedSeatSwitch(_data, _controller, 'left')

assert not _seat is None
assert _seat.get_seat_heat_level() == 3 # 3 is mocked initial level for left seat from tesla_mock.py
assert not _seat.get_seat_heat_level()


@pytest.mark.asyncio
Expand Down

0 comments on commit ddde348

Please sign in to comment.