aioesphomeapi/aioesphomeapi/model_conversions.py

145 lines
4.0 KiB
Python

from __future__ import annotations
from typing import Any
from .api_pb2 import ( # type: ignore
AlarmControlPanelStateResponse,
BinarySensorStateResponse,
ClimateStateResponse,
CoverStateResponse,
DateStateResponse,
DateTimeStateResponse,
EventResponse,
FanStateResponse,
LightStateResponse,
ListEntitiesAlarmControlPanelResponse,
ListEntitiesBinarySensorResponse,
ListEntitiesButtonResponse,
ListEntitiesCameraResponse,
ListEntitiesClimateResponse,
ListEntitiesCoverResponse,
ListEntitiesDateResponse,
ListEntitiesDateTimeResponse,
ListEntitiesEventResponse,
ListEntitiesFanResponse,
ListEntitiesLightResponse,
ListEntitiesLockResponse,
ListEntitiesMediaPlayerResponse,
ListEntitiesNumberResponse,
ListEntitiesSelectResponse,
ListEntitiesSensorResponse,
ListEntitiesServicesResponse,
ListEntitiesSirenResponse,
ListEntitiesSwitchResponse,
ListEntitiesTextResponse,
ListEntitiesTextSensorResponse,
ListEntitiesTimeResponse,
ListEntitiesValveResponse,
LockStateResponse,
MediaPlayerStateResponse,
NumberStateResponse,
SelectStateResponse,
SensorStateResponse,
SirenStateResponse,
SwitchStateResponse,
TextSensorStateResponse,
TextStateResponse,
TimeStateResponse,
ValveStateResponse,
)
from .model import (
AlarmControlPanelEntityState,
AlarmControlPanelInfo,
BinarySensorInfo,
BinarySensorState,
ButtonInfo,
CameraInfo,
ClimateInfo,
ClimateState,
CoverInfo,
CoverState,
DateInfo,
DateState,
DateTimeInfo,
DateTimeState,
EntityInfo,
EntityState,
Event,
EventInfo,
FanInfo,
FanState,
LightInfo,
LightState,
LockEntityState,
LockInfo,
MediaPlayerEntityState,
MediaPlayerInfo,
NumberInfo,
NumberState,
SelectInfo,
SelectState,
SensorInfo,
SensorState,
SirenInfo,
SirenState,
SwitchInfo,
SwitchState,
TextInfo,
TextSensorInfo,
TextSensorState,
TextState,
TimeInfo,
TimeState,
ValveInfo,
ValveState,
)
SUBSCRIBE_STATES_RESPONSE_TYPES: dict[Any, type[EntityState]] = {
AlarmControlPanelStateResponse: AlarmControlPanelEntityState,
BinarySensorStateResponse: BinarySensorState,
ClimateStateResponse: ClimateState,
CoverStateResponse: CoverState,
DateStateResponse: DateState,
DateTimeStateResponse: DateTimeState,
EventResponse: Event,
FanStateResponse: FanState,
LightStateResponse: LightState,
LockStateResponse: LockEntityState,
MediaPlayerStateResponse: MediaPlayerEntityState,
NumberStateResponse: NumberState,
SelectStateResponse: SelectState,
SensorStateResponse: SensorState,
SirenStateResponse: SirenState,
SwitchStateResponse: SwitchState,
TextSensorStateResponse: TextSensorState,
TextStateResponse: TextState,
TimeStateResponse: TimeState,
ValveStateResponse: ValveState,
}
LIST_ENTITIES_SERVICES_RESPONSE_TYPES: dict[Any, type[EntityInfo] | None] = {
ListEntitiesAlarmControlPanelResponse: AlarmControlPanelInfo,
ListEntitiesBinarySensorResponse: BinarySensorInfo,
ListEntitiesButtonResponse: ButtonInfo,
ListEntitiesCameraResponse: CameraInfo,
ListEntitiesClimateResponse: ClimateInfo,
ListEntitiesCoverResponse: CoverInfo,
ListEntitiesDateResponse: DateInfo,
ListEntitiesDateTimeResponse: DateTimeInfo,
ListEntitiesEventResponse: EventInfo,
ListEntitiesFanResponse: FanInfo,
ListEntitiesLightResponse: LightInfo,
ListEntitiesLockResponse: LockInfo,
ListEntitiesMediaPlayerResponse: MediaPlayerInfo,
ListEntitiesNumberResponse: NumberInfo,
ListEntitiesSelectResponse: SelectInfo,
ListEntitiesSensorResponse: SensorInfo,
ListEntitiesServicesResponse: None,
ListEntitiesSirenResponse: SirenInfo,
ListEntitiesSwitchResponse: SwitchInfo,
ListEntitiesTextResponse: TextInfo,
ListEntitiesTextSensorResponse: TextSensorInfo,
ListEntitiesTimeResponse: TimeInfo,
ListEntitiesValveResponse: ValveInfo,
}