1 #pragma once
2 
3 // Unitcode ('Unit' in 'Devices' overview)
4 typedef enum {
5     ACT_ONOFF_PLUG = 1,                 //  1, TODO: also used for channel 0?
6     ACT_ONOFF_WIRED_WALL,               //  2, TODO: what is this? single or dual channel wired wall switch?
7     GATEWAY_SOUND_ALARM_RINGTONE,       //  3, Xiaomi Gateway Alarm Ringtone
8     GATEWAY_SOUND_ALARM_CLOCK,          //  4, Xiaomi Gateway Alarm Clock
9     GATEWAY_SOUND_DOORBELL,             //  5, Xiaomi Gateway Doorbell
10     GATEWAY_SOUND_MP3,                  //  6, Xiaomi Gateway MP3
11     GATEWAY_SOUND_VOLUME_CONTROL,       //  7, Xiaomi Gateway Volume
12     SELECTOR_WIRED_WALL_SINGLE,         //  8, Xiaomi Wired Single Wall Switch
13     SELECTOR_WIRED_WALL_DUAL_CHANNEL_0, //  9, Xiaomi Wired Dual Wall Switch Channel 0
14     SELECTOR_WIRED_WALL_DUAL_CHANNEL_1  // 10, Xiaomi Wired Dual Wall Switch Channel 1
15 } XiaomiUnitCode;
16 
17 /****************************************************************************
18  ********************************* SWITCHES *********************************
19  ****************************************************************************/
20 
21 // Unknown Xiaomi device
22 #define NAME_UNKNOWN_XIAOMI "Unknown Xiaomi device"
23 
24 // Xiaomi Wireless Switch
25 #define MODEL_SELECTOR_WIRELESS_SINGLE_1 "switch"
26 #define MODEL_SELECTOR_WIRELESS_SINGLE_2 "remote.b1acn01"
27 #define NAME_SELECTOR_WIRELESS_SINGLE "Xiaomi Wireless Switch"
28 
29 // Xiaomi Square Wireless Switch
30 #define MODEL_SELECTOR_WIRELESS_SINGLE_SQUARE "sensor_switch.aq2"
31 #define NAME_SELECTOR_WIRELESS_SINGLE_SQUARE "Xiaomi Square Wireless Switch"
32 
33 // Xiaomi Wireless Single Wall Switch | WXKG03LM
34 #define MODEL_SELECTOR_WIRELESS_WALL_SINGLE_1 "86sw1"
35 #define MODEL_SELECTOR_WIRELESS_WALL_SINGLE_2 "remote.b186acn01"
36 #define NAME_SELECTOR_WIRELESS_WALL_SINGLE "Xiaomi Wireless Single Wall Switch"
37 
38 // Xiaomi Wireless Dual Wall Switch | WXKG02LM
39 #define MODEL_SELECTOR_WIRELESS_WALL_DUAL_1 "86sw2"
40 #define MODEL_SELECTOR_WIRELESS_WALL_DUAL_2 "remote.b286acn01"
41 #define NAME_SELECTOR_WIRELESS_WALL_DUAL "Xiaomi Wireless Dual Wall Switch"
42 
43 // Xiaomi Wired Single Wall Switch
44 #define MODEL_SELECTOR_WIRED_WALL_SINGLE_1 "ctrl_neutral1"
45 #define MODEL_SELECTOR_WIRED_WALL_SINGLE_2 "ctrl_ln1"
46 #define MODEL_SELECTOR_WIRED_WALL_SINGLE_3 "ctrl_ln1.aq1"
47 #define NAME_SELECTOR_WIRED_WALL_SINGLE "Xiaomi Wired Single Wall Switch"
48 
49 // Xiaomi Wired Dual Wall Switch | QBKG12LM
50 #define MODEL_SELECTOR_WIRED_WALL_DUAL_1 "ctrl_neutral2"
51 #define MODEL_SELECTOR_WIRED_WALL_DUAL_2 "ctrl_ln2"
52 #define MODEL_SELECTOR_WIRED_WALL_DUAL_3 "ctrl_ln2.aq1"
53 #define NAME_SELECTOR_WIRED_WALL_DUAL "Xiaomi Wired Dual Wall Switch"
54 #define NAME_SELECTOR_WIRED_WALL_DUAL_CHANNEL_0 "Xiaomi Wired Dual Wall Switch Channel 0"
55 #define NAME_SELECTOR_WIRED_WALL_DUAL_CHANNEL_1 "Xiaomi Wired Dual Wall Switch Channel 1"
56 
57 // Xiaomi Smart Push Button
58 #define MODEL_SELECTOR_WIRELESS_SINGLE_SMART_PUSH "sensor_switch.aq3"
59 #define NAME_SELECTOR_WIRELESS_SINGLE_SMART_PUSH "Xiaomi Smart Push Button"
60 
61 // Xiaomi Cube
62 #define MODEL_SELECTOR_CUBE_V1 "cube"
63 #define NAME_SELECTOR_CUBE_V1 "Xiaomi Cube"
64 #define MODEL_SELECTOR_CUBE_AQARA "sensor_cube.aqgl01"
65 #define NAME_SELECTOR_CUBE_AQARA "Aqara Cube"
66 
67 /****************************************************************************
68  ********************************* SENSORS **********************************
69  ****************************************************************************/
70 
71 // Motion Sensor Xiaomi
72 #define MODEL_SENSOR_MOTION_XIAOMI "motion"
73 #define NAME_SENSOR_MOTION_XIAOMI "Xiaomi Motion Sensor"
74 
75 // Motion Sensor Aqara | RTCGQ11LM
76 #define MODEL_SENSOR_MOTION_AQARA "sensor_motion.aq2"
77 #define NAME_SENSOR_MOTION_AQARA "Aqara Motion Sensor"
78 
79 // Xiaomi Door and Window Sensor | MCCGQ11LM
80 #define MODEL_SENSOR_DOOR "magnet"
81 #define MODEL_SENSOR_DOOR_AQARA "sensor_magnet.aq2"
82 #define NAME_SENSOR_DOOR "Xiaomi Door Sensor"
83 
84 // Xiaomi Temperature/Humidity | WSDCGQ01LM
85 #define MODEL_SENSOR_TEMP_HUM_V1 "sensor_ht"
86 #define NAME_SENSOR_TEMP_HUM_V1 "Xiaomi Temperature/Humidity"
87 
88 // Xiaomi Aqara Weather | WSDCGQ11LM
89 #define MODEL_SENSOR_TEMP_HUM_AQARA "weather.v1"
90 #define NAME_SENSOR_TEMP_HUM_AQARA "Xiaomi Aqara Weather"
91 
92 // Aqara Vibration Sensor | DJT11LM
93 #define MODEL_SENSOR_VIBRATION "vibration"
94 #define NAME_SENSOR_VIBRATION "Aqara Vibration Sensor"
95 
96 // Smoke Detector (sensor_smoke.v1)
97 #define MODEL_SENSOR_SMOKE "smoke"
98 #define NAME_SENSOR_SMOKE "Xiaomi Smoke Detector"
99 
100 // Xiaomi Gas Detector
101 #define MODEL_SENSOR_GAS "natgas"
102 #define NAME_SENSOR_GAS "Xiaomi Gas Detector"
103 
104 // Xiaomi Water Leak Detector | SJCGQ11LM
105 #define MODEL_SENSOR_WATER "sensor_wleak.aq1"
106 #define NAME_SENSOR_WATER "Xiaomi Water Leak Detector"
107 
108 /****************************************************************************
109  ********************************* ACTUATORS ********************************
110  ****************************************************************************/
111 
112 // Xiaomi Smart Plug (plug.v1) | ZNCZ02LM
113 #define MODEL_ACT_ONOFF_PLUG "plug"
114 #define NAME_ACT_ONOFF_PLUG "Xiaomi Smart Plug"
115 
116 // Xiaomi Smart Wall Plug
117 #define MODEL_ACT_ONOFF_PLUG_WALL_1 "86plug"
118 #define MODEL_ACT_ONOFF_PLUG_WALL_2 "ctrl_86plug.aq1"
119 #define NAME_ACT_ONOFF_PLUG_WALL "Xiaomi Smart Wall Plug"
120 
121 // Xiaomi Curtain
122 #define MODEL_ACT_BLINDS_CURTAIN "curtain"
123 #define NAME_ACT_BLINDS_CURTAIN "Xiaomi Curtain"
124 
125 // [NEW] Aqara LED Light Bulb (Tunable White) // TODO: not implemented yet
126 #define MODEL_ACT_LIGHT "light.aqcb02"
127 #define NAME_ACT_LIGHT "Light bulb"
128 
129 // [NEW] Aqara Aqara Wireless Relay Controller (2 Channels) | LLKZMK11LM // TODO: not implemented yet
130 #define MODEL_ACT_RELAIS "relay.c2acn01"
131 #define NAME_ACT_RELAIS "Aqara Wireless Relay Controller"
132 
133 
134 /****************************************************************************
135  ********************************* GATEWAY **********************************
136  ****************************************************************************/
137 
138  // Xiaomi Gateway
139 #define MODEL_GATEWAY_1 "gateway"
140 #define MODEL_GATEWAY_2 "gateway.v3" // Mi Control Hub Gateway
141 #define MODEL_GATEWAY_3 "acpartner.v3"
142 #define NAME_GATEWAY "Xiaomi RGB Gateway"
143 #define NAME_GATEWAY_LUX "Xiaomi Gateway Lux"
144 #define NAME_GATEWAY_SOUND_MP3 "Xiaomi Gateway MP3"
145 #define NAME_GATEWAY_SOUND_DOORBELL "Xiaomi Gateway Doorbell"
146 #define NAME_GATEWAY_SOUND_ALARM_CLOCK "Xiaomi Gateway Alarm Clock"
147 #define NAME_GATEWAY_SOUND_ALARM_RINGTONE "Xiaomi Gateway Alarm Ringtone"
148 #define NAME_GATEWAY_SOUND_VOLUME_CONTROL "Xiaomi Gateway Volume"
149 
150 
151 /****************************************************************************
152  ********************************* STATES ***********************************
153  ****************************************************************************/
154 
155 #define NAME_CHANNEL_0 "channel_0"
156 #define NAME_CHANNEL_1 "channel_1"
157 
158 #define STATE_ON "on"
159 #define STATE_OFF "off"
160 
161 #define STATE_OPEN "open"
162 #define STATE_CLOSE "close"
163 
164 #define STATE_WATER_LEAK_YES "leak"
165 #define STATE_WATER_LEAK_NO "no_leak"
166 
167 #define STATE_MOTION_YES "motion"
168 #define STATE_MOTION_NO "no_motion"
169 
170 #define COMMAND_REPORT "report"
171 #define COMMAND_READ_ACK "read_ack"
172 #define COMMAND_HEARTBEAT "heartbeat"
173