2021-06-30 17:00:22 +02:00
|
|
|
from .api_pb2 import ( # type: ignore
|
2021-06-18 17:57:02 +02:00
|
|
|
BinarySensorStateResponse,
|
2021-11-29 01:59:23 +01:00
|
|
|
ButtonCommandRequest,
|
2021-06-18 17:57:02 +02:00
|
|
|
CameraImageRequest,
|
|
|
|
CameraImageResponse,
|
|
|
|
ClimateCommandRequest,
|
|
|
|
ClimateStateResponse,
|
|
|
|
ConnectRequest,
|
|
|
|
ConnectResponse,
|
|
|
|
CoverCommandRequest,
|
|
|
|
CoverStateResponse,
|
|
|
|
DeviceInfoRequest,
|
|
|
|
DeviceInfoResponse,
|
|
|
|
DisconnectRequest,
|
|
|
|
DisconnectResponse,
|
|
|
|
ExecuteServiceRequest,
|
|
|
|
FanCommandRequest,
|
|
|
|
FanStateResponse,
|
|
|
|
GetTimeRequest,
|
|
|
|
GetTimeResponse,
|
|
|
|
HelloRequest,
|
|
|
|
HelloResponse,
|
|
|
|
HomeassistantServiceResponse,
|
|
|
|
HomeAssistantStateResponse,
|
|
|
|
LightCommandRequest,
|
|
|
|
LightStateResponse,
|
|
|
|
ListEntitiesBinarySensorResponse,
|
2021-11-29 01:59:23 +01:00
|
|
|
ListEntitiesButtonResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
ListEntitiesCameraResponse,
|
|
|
|
ListEntitiesClimateResponse,
|
|
|
|
ListEntitiesCoverResponse,
|
|
|
|
ListEntitiesDoneResponse,
|
|
|
|
ListEntitiesFanResponse,
|
|
|
|
ListEntitiesLightResponse,
|
2021-06-29 12:42:38 +02:00
|
|
|
ListEntitiesNumberResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
ListEntitiesRequest,
|
2021-07-26 20:51:12 +02:00
|
|
|
ListEntitiesSelectResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
ListEntitiesSensorResponse,
|
|
|
|
ListEntitiesServicesResponse,
|
2021-09-09 03:11:51 +02:00
|
|
|
ListEntitiesSirenResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
ListEntitiesSwitchResponse,
|
|
|
|
ListEntitiesTextSensorResponse,
|
2021-06-29 12:42:38 +02:00
|
|
|
NumberCommandRequest,
|
|
|
|
NumberStateResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
PingRequest,
|
|
|
|
PingResponse,
|
2021-07-26 20:51:12 +02:00
|
|
|
SelectCommandRequest,
|
|
|
|
SelectStateResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
SensorStateResponse,
|
2021-09-09 03:11:51 +02:00
|
|
|
SirenCommandRequest,
|
|
|
|
SirenStateResponse,
|
2021-06-18 17:57:02 +02:00
|
|
|
SubscribeHomeassistantServicesRequest,
|
|
|
|
SubscribeHomeAssistantStateResponse,
|
|
|
|
SubscribeHomeAssistantStatesRequest,
|
|
|
|
SubscribeLogsRequest,
|
|
|
|
SubscribeLogsResponse,
|
|
|
|
SubscribeStatesRequest,
|
|
|
|
SwitchCommandRequest,
|
|
|
|
SwitchStateResponse,
|
|
|
|
TextSensorStateResponse,
|
|
|
|
)
|
2019-04-07 19:03:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
class APIConnectionError(Exception):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2021-09-14 12:44:52 +02:00
|
|
|
class InvalidAuthAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ResolveAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ProtocolAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class RequiresEncryptionAPIError(ProtocolAPIError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class SocketAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2021-10-04 12:12:43 +02:00
|
|
|
class SocketClosedAPIError(SocketAPIError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2021-09-14 12:44:52 +02:00
|
|
|
class HandshakeAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class InvalidEncryptionKeyAPIError(HandshakeAPIError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2021-10-04 12:12:43 +02:00
|
|
|
class PingFailedAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class TimeoutAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ReadFailedAPIError(APIConnectionError):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2019-04-07 19:03:26 +02:00
|
|
|
MESSAGE_TYPE_TO_PROTO = {
|
2021-06-18 17:57:02 +02:00
|
|
|
1: HelloRequest,
|
|
|
|
2: HelloResponse,
|
|
|
|
3: ConnectRequest,
|
|
|
|
4: ConnectResponse,
|
|
|
|
5: DisconnectRequest,
|
|
|
|
6: DisconnectResponse,
|
|
|
|
7: PingRequest,
|
|
|
|
8: PingResponse,
|
|
|
|
9: DeviceInfoRequest,
|
|
|
|
10: DeviceInfoResponse,
|
|
|
|
11: ListEntitiesRequest,
|
|
|
|
12: ListEntitiesBinarySensorResponse,
|
|
|
|
13: ListEntitiesCoverResponse,
|
|
|
|
14: ListEntitiesFanResponse,
|
|
|
|
15: ListEntitiesLightResponse,
|
|
|
|
16: ListEntitiesSensorResponse,
|
|
|
|
17: ListEntitiesSwitchResponse,
|
|
|
|
18: ListEntitiesTextSensorResponse,
|
|
|
|
19: ListEntitiesDoneResponse,
|
|
|
|
20: SubscribeStatesRequest,
|
|
|
|
21: BinarySensorStateResponse,
|
|
|
|
22: CoverStateResponse,
|
|
|
|
23: FanStateResponse,
|
|
|
|
24: LightStateResponse,
|
|
|
|
25: SensorStateResponse,
|
|
|
|
26: SwitchStateResponse,
|
|
|
|
27: TextSensorStateResponse,
|
|
|
|
28: SubscribeLogsRequest,
|
|
|
|
29: SubscribeLogsResponse,
|
|
|
|
30: CoverCommandRequest,
|
|
|
|
31: FanCommandRequest,
|
|
|
|
32: LightCommandRequest,
|
|
|
|
33: SwitchCommandRequest,
|
|
|
|
34: SubscribeHomeassistantServicesRequest,
|
|
|
|
35: HomeassistantServiceResponse,
|
|
|
|
36: GetTimeRequest,
|
|
|
|
37: GetTimeResponse,
|
|
|
|
38: SubscribeHomeAssistantStatesRequest,
|
|
|
|
39: SubscribeHomeAssistantStateResponse,
|
|
|
|
40: HomeAssistantStateResponse,
|
|
|
|
41: ListEntitiesServicesResponse,
|
|
|
|
42: ExecuteServiceRequest,
|
|
|
|
43: ListEntitiesCameraResponse,
|
|
|
|
44: CameraImageResponse,
|
|
|
|
45: CameraImageRequest,
|
|
|
|
46: ListEntitiesClimateResponse,
|
|
|
|
47: ClimateStateResponse,
|
|
|
|
48: ClimateCommandRequest,
|
2021-06-29 12:42:38 +02:00
|
|
|
49: ListEntitiesNumberResponse,
|
|
|
|
50: NumberStateResponse,
|
|
|
|
51: NumberCommandRequest,
|
2021-07-26 20:51:12 +02:00
|
|
|
52: ListEntitiesSelectResponse,
|
|
|
|
53: SelectStateResponse,
|
|
|
|
54: SelectCommandRequest,
|
2021-09-09 03:11:51 +02:00
|
|
|
55: ListEntitiesSirenResponse,
|
|
|
|
56: SirenStateResponse,
|
|
|
|
57: SirenCommandRequest,
|
2021-11-29 01:59:23 +01:00
|
|
|
61: ListEntitiesButtonResponse,
|
|
|
|
62: ButtonCommandRequest,
|
2019-04-07 19:03:26 +02:00
|
|
|
}
|