-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathgateway.py
More file actions
120 lines (107 loc) · 3.14 KB
/
gateway.py
File metadata and controls
120 lines (107 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
"""Enums for gateway types and related helpers."""
from enum import IntEnum, StrEnum, unique
from pyoverkiz.enums.base import UnknownEnumMixin
@unique
class GatewayType(UnknownEnumMixin, IntEnum):
"""Enumeration of known gateway types returned by Overkiz."""
UNKNOWN = -1
VIRTUAL_KIZBOX = 0
KIZBOX_V1 = 2
TAHOMA = 15
VERISURE_ALARM_SYSTEM = 20
KIZBOX_MINI = 21
HI_KUMO_ADAPTER = 22 # Hi Kumo Adapter SPX-WFG01 (constant added manually)
KIZBOX_V2 = 24
MYFOX_ALARM_SYSTEM = 25
KIZBOX_MINI_VMBUS = 27
KIZBOX_MINI_IO = 28
TAHOMA_V2 = 29
KIZBOX_V2_3H = 30
KIZBOX_V2_2H = 31
COZYTOUCH = 32
CONNEXOON = 34
JSW_CAMERA = 35
TAHOMA_V2_RTS = 41
KIZBOX_MINI_MODBUS = 42
KIZBOX_MINI_OVP = 43
HI_BOX = 44 # Hi Kumo AHP-SMB01 Hi Box (constant added manually)
HATTARA_RAIL_DIN = 47
WIZZ_BOX = 52
CONNEXOON_RTS = 53
OPENDOORS_LOCK_SYSTEM = 54
CONNEXOON_RTS_JAPAN = 56
ENERGEASY_CONNECT = 57
HOME_PROTECT_SYSTEM = 58
CONNEXOON_RTS_AUSTRALIA = 62
THERMOSTAT_SOMFY_SYSTEM = 63
SMARTLY_MINI_DAUGHTERBOARD_ZWAVE = 65
SMARTLY_MINIBOX_RAILDIN = 66
TAHOMA_BEE = 67
TAHOMA_RAIL_DIN = 72
NEXITY_RAIL_DIN = 74
TAHOMA_BEECON = 75
ELIOT = 77
COZYTOUCH_SAUTER = 83
WISER = 88
NETATMO = 92
TAHOMA_SWITCH = 98
SOMFY_CONNECTIVITY_KIT = 99
COZYTOUCH_V2 = 105
TAHOMA_RAIL_DIN_S = 108
NEXITY_RAIL_DIN_S = 109
HEXACONNECT = 117
DAIKIN_ONECTA = 118
TAHOMA_SWITCH_US = 121
TAHOMA_SWITCH_OC = 122
TAHOMA_SWITCH_AU = 123
TAHOMA_SWITCH_CH = 126
TAHOMA_SWITCH_SC = 128
@property
def beautify_name(self) -> str:
"""Return a human friendly name for the gateway type."""
return (
self.name.replace("_", " ")
.title()
.replace("Tahoma", "TaHoma")
.replace("Rts", "RTS")
)
@unique
class GatewaySubType(UnknownEnumMixin, IntEnum):
"""Sub-type enumeration for gateways to identify specific models/variants."""
UNKNOWN = -1
TAHOMA_BASIC = 1
TAHOMA_BASIC_PLUS = 2
TAHOMA_PREMIUM = 3
SOMFY_BOX = 4
HITACHI_BOX = 5
MONDIAL_BOX = 6
MAROC_TELECOM_BOX = 7
TAHOMA_SERENITY = 8
TAHOMA_VERISURE = 9
TAHOMA_SERENITY_PREMIUM = 10
TAHOMA_MONSIEUR_STORE = 11
TAHOMA_MAISON_AVENIR_ET_TRADITION = 12
TAHOMA_SHORT_CHANNEL = 13
TAHOMA_PRO = 14
TAHOMA_SECURITY_SHORT_CHANNEL = 15
TAHOMA_SECURITY_PRO = 16
TAHOMA_BOX_C_IO = 17
@property
def beautify_name(self) -> str:
"""Return a human friendly name for the gateway sub-type."""
return (
self.name.replace("_", " ")
.title()
.replace("Tahoma", "TaHoma")
.replace("Rts", "RTS")
)
@unique
class UpdateBoxStatus(StrEnum):
"""Status of the gateway update box indicating its updateability."""
NOT_UPDATABLE = "NOT_UPDATABLE"
READY_TO_UPDATE = "READY_TO_UPDATE"
READY_TO_BE_UPDATED_BY_SERVER = "READY_TO_BE_UPDATED_BY_SERVER"
READY_TO_UPDATE_LOCALLY = "READY_TO_UPDATE_LOCALLY"
UP_TO_DATE = "UP_TO_DATE"
UNKNOWN = "UNKNOWN"
UPDATING = "UPDATING"