add tilt functions

This commit is contained in:
patman15
2025-01-07 09:50:41 +01:00
parent d73bb1d1c4
commit 49bb1e79c9
2 changed files with 31 additions and 8 deletions

View File

@@ -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,
],
)

View File

@@ -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)