diff --git a/aioesphomeapi/client.py b/aioesphomeapi/client.py index 4ca1e29..26210ef 100644 --- a/aioesphomeapi/client.py +++ b/aioesphomeapi/client.py @@ -1164,17 +1164,13 @@ class APIClient: position: float | None = None, stop: bool = False, ) -> None: - connection = self._get_connection() req = ValveCommandRequest(key=key) - apiv = self.api_version - if TYPE_CHECKING: - assert apiv is not None if position is not None: req.has_position = True req.position = position if stop: req.stop = stop - connection.send_message(req) + self._get_connection().send_message(req) def media_player_command( self, diff --git a/aioesphomeapi/core.py b/aioesphomeapi/core.py index e50360b..ab33c69 100644 --- a/aioesphomeapi/core.py +++ b/aioesphomeapi/core.py @@ -372,6 +372,6 @@ MESSAGE_TYPE_TO_PROTO = { 105: TimeCommandRequest, 106: VoiceAssistantAudio, 109: ListEntitiesValveResponse, - 110: ValveCommandRequest, - 111: ValveStateResponse, + 110: ValveStateResponse, + 111: ValveCommandRequest, } diff --git a/aioesphomeapi/model.py b/aioesphomeapi/model.py index 0baf291..87de4a3 100644 --- a/aioesphomeapi/model.py +++ b/aioesphomeapi/model.py @@ -756,10 +756,10 @@ class LockEntityState(EntityState): # ==================== VALVE ==================== @_frozen_dataclass_decorator class ValveInfo(EntityInfo): + device_class: str = "" assumed_state: bool = False supports_stop: bool = False supports_position: bool = False - device_class: str = "" class ValveOperation(APIIntEnum): @@ -777,9 +777,6 @@ class ValveState(EntityState): default=ValveOperation.IDLE, converter=ValveOperation.convert ) - def is_closed(self) -> bool: - return self.position == 0.0 - # ==================== MEDIA PLAYER ==================== class MediaPlayerState(APIIntEnum):