From 49bb1e79c97d90bc5b440bf54f77f00d010d374b Mon Sep 17 00:00:00 2001 From: patman15 <14628713+patman15@users.noreply.github.com> Date: Tue, 7 Jan 2025 09:50:41 +0100 Subject: [PATCH] add tilt functions --- .../hunterdouglas_powerview_ble/api.py | 16 +++++++++---- .../hunterdouglas_powerview_ble/cover.py | 23 ++++++++++++++++--- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/custom_components/hunterdouglas_powerview_ble/api.py b/custom_components/hunterdouglas_powerview_ble/api.py index 2826e20..7386113 100644 --- a/custom_components/hunterdouglas_powerview_ble/api.py +++ b/custom_components/hunterdouglas_powerview_ble/api.py @@ -218,9 +218,15 @@ class PowerViewBLE: ( ShadeCmd.SET_POSITION, int.to_bytes(pos1, 2, byteorder="little") - + int.to_bytes(pos2 if pos2 is not None else 0x8000, 2, byteorder="little") - + int.to_bytes(pos3 if pos3 is not None else 0x8000, 2, byteorder="little") - + int.to_bytes(tilt if tilt is not None else 0x8000, 2, byteorder="little") + + int.to_bytes( + pos2 if pos2 is not None else 0x8000, 2, byteorder="little" + ) + + int.to_bytes( + pos3 if pos3 is not None else 0x8000, 2, byteorder="little" + ) + + int.to_bytes( + tilt if tilt is not None else 0x8000, 2, byteorder="little" + ) + int.to_bytes(velocity, 1), ), disconnect, @@ -303,7 +309,7 @@ class PowerViewBLE: .decode("UTF-8") ) except BleakError as ex: - LOGGER.debug("%s: querying failed: %s", ex) + LOGGER.debug("%s: querying failed: %s", self.name, ex) raise finally: await self.disconnect() @@ -346,7 +352,7 @@ class PowerViewBLE: disconnected_callback=self._on_disconnect, services=[ UUID_COV_SERVICE, - # self.UUID_DEV_SERVICE, + UUID_DEV_SERVICE, # self.UUID_BAT_SERVICE, ], ) diff --git a/custom_components/hunterdouglas_powerview_ble/cover.py b/custom_components/hunterdouglas_powerview_ble/cover.py index 90be957..00c99e9 100644 --- a/custom_components/hunterdouglas_powerview_ble/cover.py +++ b/custom_components/hunterdouglas_powerview_ble/cover.py @@ -185,11 +185,12 @@ class PowerViewCoverTilt(PowerViewCover): _attr_supported_features = ( CoverEntityFeature.OPEN | CoverEntityFeature.CLOSE - | CoverEntityFeature.SET_POSITION | CoverEntityFeature.STOP - # | CoverEntityFeature.CLOSE_TILT + | CoverEntityFeature.SET_POSITION + | CoverEntityFeature.OPEN_TILT + | CoverEntityFeature.CLOSE_TILT + | CoverEntityFeature.STOP_TILT | CoverEntityFeature.SET_TILT_POSITION - # | CoverEntityFeature.OPEN_TILT ) def __init__( @@ -231,3 +232,19 @@ class PowerViewCoverTilt(PowerViewCover): target_position, err, ) + + async def async_stop_cover_tilt(self, **kwargs: Any) -> None: + """Stop the cover.""" + await self.async_stop_cover(kwargs=kwargs) + + async def async_open_cover_tilt(self, **kwargs: Any) -> None: + """Open the cover tilt.""" + LOGGER.debug("open cover tilt") + _kwargs = {**kwargs, ATTR_TILT_POSITION: OPEN_POSITION} + await self.async_set_cover_tilt_position(**_kwargs) + + async def async_close_cover_tilt(self, **kwargs: Any) -> None: + """Close the cover tilt.""" + LOGGER.debug("close cover tilt") + _kwargs = {**kwargs, ATTR_TILT_POSITION: CLOSED_POSITION} + await self.async_set_cover_tilt_position(**_kwargs)