Skip to content

Commit d7e5e6d

Browse files
committed
use enums
1 parent b6644c1 commit d7e5e6d

File tree

3 files changed

+36
-34
lines changed

3 files changed

+36
-34
lines changed

zha/application/model.py

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66
from zigpy.types.named import EUI64, NWK
77

8+
from zha.const import EventTypes
89
from zha.model import BaseEvent, BaseModel
10+
from zha.websocket.const import ControllerEvents, DeviceEvents
911
from zha.zigbee.model import DeviceInfo, ExtendedDeviceInfo, GroupInfo
1012

1113

@@ -41,26 +43,26 @@ class DeviceJoinedDeviceInfo(BaseModel):
4143
class ConnectionLostEvent(BaseEvent):
4244
"""Event to signal that the connection to the radio has been lost."""
4345

44-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
45-
event: Literal["connection_lost"] = "connection_lost"
46+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
47+
event: Literal[ControllerEvents.CONNECTION_LOST] = ControllerEvents.CONNECTION_LOST
4648
exception: Exception | None = None
4749

4850

4951
class DeviceJoinedEvent(BaseEvent):
5052
"""Event to signal that a device has joined the network."""
5153

5254
device_info: DeviceJoinedDeviceInfo
53-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
54-
event: Literal["device_joined"] = "device_joined"
55+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
56+
event: Literal[ControllerEvents.DEVICE_JOINED] = ControllerEvents.DEVICE_JOINED
5557

5658

5759
class DeviceLeftEvent(BaseEvent):
5860
"""Event to signal that a device has left the network."""
5961

6062
ieee: EUI64
6163
nwk: NWK
62-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
63-
event: Literal["device_left"] = "device_left"
64+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
65+
event: Literal[ControllerEvents.DEVICE_LEFT] = ControllerEvents.DEVICE_LEFT
6466

6567

6668
class RawDeviceInitializedDeviceInfo(DeviceJoinedDeviceInfo):
@@ -75,70 +77,78 @@ class RawDeviceInitializedEvent(BaseEvent):
7577
"""Event to signal that a device has been initialized without quirks loaded."""
7678

7779
device_info: RawDeviceInitializedDeviceInfo
78-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
79-
event: Literal["raw_device_initialized"] = "raw_device_initialized"
80+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
81+
event: Literal[ControllerEvents.RAW_DEVICE_INITIALIZED] = (
82+
ControllerEvents.RAW_DEVICE_INITIALIZED
83+
)
8084

8185

8286
class DeviceFullyInitializedEvent(BaseEvent):
8387
"""Event to signal that a device has been fully initialized."""
8488

8589
device_info: ExtendedDeviceInfoWithPairingStatus
8690
new_join: bool = False
87-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
88-
event: Literal["device_fully_initialized"] = "device_fully_initialized"
91+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
92+
event: Literal[ControllerEvents.DEVICE_FULLY_INITIALIZED] = (
93+
ControllerEvents.DEVICE_FULLY_INITIALIZED
94+
)
8995

9096

9197
class GroupRemovedEvent(BaseEvent):
9298
"""Group removed event."""
9399

94-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
95-
event: Literal["group_removed"] = "group_removed"
100+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
101+
event: Literal[ControllerEvents.GROUP_REMOVED] = ControllerEvents.GROUP_REMOVED
96102
group_info: GroupInfo
97103

98104

99105
class GroupAddedEvent(BaseEvent):
100106
"""Group added event."""
101107

102-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
103-
event: Literal["group_added"] = "group_added"
108+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
109+
event: Literal[ControllerEvents.GROUP_ADDED] = ControllerEvents.GROUP_ADDED
104110
group_info: GroupInfo
105111

106112

107113
class GroupMemberAddedEvent(BaseEvent):
108114
"""Group member added event."""
109115

110-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
111-
event: Literal["group_member_added"] = "group_member_added"
116+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
117+
event: Literal[ControllerEvents.GROUP_MEMBER_ADDED] = (
118+
ControllerEvents.GROUP_MEMBER_ADDED
119+
)
112120
group_info: GroupInfo
113121

114122

115123
class GroupMemberRemovedEvent(BaseEvent):
116124
"""Group member removed event."""
117125

118-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
119-
event: Literal["group_member_removed"] = "group_member_removed"
126+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
127+
event: Literal[ControllerEvents.GROUP_MEMBER_REMOVED] = (
128+
ControllerEvents.GROUP_MEMBER_REMOVED
129+
)
120130
group_info: GroupInfo
121131

122132

123133
class DeviceRemovedEvent(BaseEvent):
124134
"""Event to signal that a device has been removed."""
125135

126136
device_info: ExtendedDeviceInfo
127-
event_type: Literal["zha_gateway_message"] = "zha_gateway_message"
128-
event: Literal["device_removed"] = "device_removed"
137+
event_type: Literal[EventTypes.CONTROLLER_EVENT] = EventTypes.CONTROLLER_EVENT
138+
event: Literal[ControllerEvents.DEVICE_REMOVED] = ControllerEvents.DEVICE_REMOVED
129139

130140

131141
class DeviceOfflineEvent(BaseEvent):
132142
"""Device offline event."""
133143

134-
event: Literal["device_offline"] = "device_offline"
135-
event_type: Literal["device_event"] = "device_event"
144+
event: Literal[DeviceEvents.DEVICE_OFFLINE] = DeviceEvents.DEVICE_OFFLINE
145+
event_type: Literal[EventTypes.DEVICE_EVENT] = EventTypes.DEVICE_EVENT
136146
device_info: ExtendedDeviceInfo
137147

138148

139149
class DeviceOnlineEvent(BaseEvent):
140150
"""Device online event."""
141151

142-
event: Literal["device_online"] = "device_online"
143-
event_type: Literal["device_event"] = "device_event"
152+
event: Literal[DeviceEvents.DEVICE_ONLINE] = DeviceEvents.DEVICE_ONLINE
153+
event_type: Literal[EventTypes.DEVICE_EVENT] = EventTypes.DEVICE_EVENT
144154
device_info: ExtendedDeviceInfo

zha/websocket/const.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -104,15 +104,6 @@ class MessageTypes(StrEnum):
104104
RESULT = "result"
105105

106106

107-
class EventTypes(StrEnum):
108-
"""WS event types."""
109-
110-
CONTROLLER_EVENT = "zha_gateway_message"
111-
PLATFORM_ENTITY_EVENT = "platform_entity_event"
112-
RAW_ZCL_EVENT = "raw_zcl_event"
113-
DEVICE_EVENT = "device_event"
114-
115-
116107
class ControllerEvents(StrEnum):
117108
"""WS controller events."""
118109

@@ -126,6 +117,7 @@ class ControllerEvents(StrEnum):
126117
GROUP_MEMBER_REMOVED = "group_member_removed"
127118
GROUP_ADDED = "group_added"
128119
GROUP_REMOVED = "group_removed"
120+
CONNECTION_LOST = "connection_lost"
129121

130122

131123
class PlatformEntityEvents(StrEnum):

zha/websocket/server/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from pydantic import BaseModel, ValidationError
1111
from websockets.server import WebSocketServerProtocol
1212

13+
from zha.const import EventTypes
1314
from zha.model import BaseEvent
1415
from zha.websocket.const import (
1516
COMMAND,
@@ -22,7 +23,6 @@
2223
ZIGBEE_ERROR,
2324
ZIGBEE_ERROR_CODE,
2425
APICommands,
25-
EventTypes,
2626
MessageTypes,
2727
)
2828
from zha.websocket.server.api import decorators, register_api_command

0 commit comments

Comments
 (0)