pyg90alarm 2.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. pyg90alarm/__init__.py +84 -0
  2. pyg90alarm/alarm.py +1274 -0
  3. pyg90alarm/callback.py +146 -0
  4. pyg90alarm/cloud/__init__.py +31 -0
  5. pyg90alarm/cloud/const.py +56 -0
  6. pyg90alarm/cloud/messages.py +593 -0
  7. pyg90alarm/cloud/notifications.py +410 -0
  8. pyg90alarm/cloud/protocol.py +518 -0
  9. pyg90alarm/const.py +273 -0
  10. pyg90alarm/definitions/__init__.py +3 -0
  11. pyg90alarm/definitions/base.py +247 -0
  12. pyg90alarm/definitions/devices.py +366 -0
  13. pyg90alarm/definitions/sensors.py +843 -0
  14. pyg90alarm/entities/__init__.py +3 -0
  15. pyg90alarm/entities/base_entity.py +93 -0
  16. pyg90alarm/entities/base_list.py +268 -0
  17. pyg90alarm/entities/device.py +97 -0
  18. pyg90alarm/entities/device_list.py +156 -0
  19. pyg90alarm/entities/sensor.py +891 -0
  20. pyg90alarm/entities/sensor_list.py +183 -0
  21. pyg90alarm/exceptions.py +63 -0
  22. pyg90alarm/local/__init__.py +0 -0
  23. pyg90alarm/local/base_cmd.py +293 -0
  24. pyg90alarm/local/config.py +157 -0
  25. pyg90alarm/local/discovery.py +103 -0
  26. pyg90alarm/local/history.py +272 -0
  27. pyg90alarm/local/host_info.py +89 -0
  28. pyg90alarm/local/host_status.py +52 -0
  29. pyg90alarm/local/notifications.py +117 -0
  30. pyg90alarm/local/paginated_cmd.py +132 -0
  31. pyg90alarm/local/paginated_result.py +135 -0
  32. pyg90alarm/local/targeted_discovery.py +162 -0
  33. pyg90alarm/local/user_data_crc.py +46 -0
  34. pyg90alarm/notifications/__init__.py +0 -0
  35. pyg90alarm/notifications/base.py +481 -0
  36. pyg90alarm/notifications/protocol.py +127 -0
  37. pyg90alarm/py.typed +0 -0
  38. pyg90alarm-2.3.0.dist-info/METADATA +277 -0
  39. pyg90alarm-2.3.0.dist-info/RECORD +42 -0
  40. pyg90alarm-2.3.0.dist-info/WHEEL +5 -0
  41. pyg90alarm-2.3.0.dist-info/licenses/LICENSE +21 -0
  42. pyg90alarm-2.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,843 @@
1
+ # Copyright (c) 2022 Ilia Sotnikov
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ """
22
+ Sensor definitions for G90 alarm panel.
23
+ """
24
+ from __future__ import annotations
25
+ import logging
26
+ from .base import (
27
+ G90PeripheralDefinition,
28
+ G90PeripheralDefinitionsBase,
29
+ G90PeripheralTypes,
30
+ G90PeripheralProtocols,
31
+ G90PeripheralRwModes,
32
+ G90PeripheralMatchModes,
33
+ unique_definitions
34
+ )
35
+
36
+ _LOGGER = logging.getLogger(__name__)
37
+
38
+
39
+ @unique_definitions
40
+ class G90SensorDefinitions(G90PeripheralDefinitionsBase):
41
+ """
42
+ Sensor definitions for G90 devices, required when modifying them since
43
+ writing a sensor to the device requires values not present on read.
44
+ """
45
+ SENSOR_DEFINITIONS = [
46
+ G90PeripheralDefinition(
47
+ type=G90PeripheralTypes.CORD_SENSOR,
48
+ subtype=1,
49
+ rx=0,
50
+ tx=0,
51
+ private_data='00',
52
+ rw_mode=G90PeripheralRwModes.READ,
53
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
54
+ name="Door Sensor: Wired",
55
+ protocol=G90PeripheralProtocols.CORD,
56
+ timeout=0,
57
+ baudrate=1480,
58
+ node_count=1
59
+ ),
60
+ G90PeripheralDefinition(
61
+ type=G90PeripheralTypes.CORD_SENSOR,
62
+ subtype=2,
63
+ rx=0,
64
+ tx=0,
65
+ private_data='00',
66
+ rw_mode=G90PeripheralRwModes.READ,
67
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
68
+ name="Glass Break Sensor: Wired",
69
+ protocol=G90PeripheralProtocols.CORD,
70
+ timeout=0,
71
+ baudrate=1480,
72
+ node_count=1
73
+ ),
74
+ G90PeripheralDefinition(
75
+ type=G90PeripheralTypes.CORD_SENSOR,
76
+ subtype=3,
77
+ rx=0,
78
+ tx=0,
79
+ private_data='00',
80
+ rw_mode=G90PeripheralRwModes.READ,
81
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
82
+ name="Gas Sensor: Wired",
83
+ protocol=G90PeripheralProtocols.CORD,
84
+ timeout=0,
85
+ baudrate=1480,
86
+ node_count=1
87
+ ),
88
+ G90PeripheralDefinition(
89
+ type=G90PeripheralTypes.CORD_SENSOR,
90
+ subtype=4,
91
+ rx=0,
92
+ tx=0,
93
+ private_data='00',
94
+ rw_mode=G90PeripheralRwModes.READ,
95
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
96
+ name="Smoke Sensor: Wired",
97
+ protocol=G90PeripheralProtocols.CORD,
98
+ timeout=0,
99
+ baudrate=1480,
100
+ node_count=1
101
+ ),
102
+ G90PeripheralDefinition(
103
+ type=G90PeripheralTypes.CORD_SENSOR,
104
+ subtype=5,
105
+ rx=0,
106
+ tx=0,
107
+ private_data='00',
108
+ rw_mode=G90PeripheralRwModes.READ,
109
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
110
+ name="SOS Button: Wired",
111
+ protocol=G90PeripheralProtocols.CORD,
112
+ timeout=0,
113
+ baudrate=1480,
114
+ node_count=1
115
+ ),
116
+ G90PeripheralDefinition(
117
+ type=G90PeripheralTypes.CORD_SENSOR,
118
+ subtype=6,
119
+ rx=0,
120
+ tx=0,
121
+ private_data='00',
122
+ rw_mode=G90PeripheralRwModes.READ,
123
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
124
+ name="Vibration Sensor: Wired",
125
+ protocol=G90PeripheralProtocols.CORD,
126
+ timeout=0,
127
+ baudrate=1480,
128
+ node_count=1
129
+ ),
130
+ G90PeripheralDefinition(
131
+ type=G90PeripheralTypes.CORD_SENSOR,
132
+ subtype=7,
133
+ rx=0,
134
+ tx=0,
135
+ private_data='00',
136
+ rw_mode=G90PeripheralRwModes.READ,
137
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
138
+ name="Water Leak Sensor: Wired",
139
+ protocol=G90PeripheralProtocols.CORD,
140
+ timeout=0,
141
+ baudrate=1480,
142
+ node_count=1
143
+ ),
144
+ G90PeripheralDefinition(
145
+ type=G90PeripheralTypes.CORD_SENSOR,
146
+ subtype=9,
147
+ rx=0,
148
+ tx=0,
149
+ private_data='00',
150
+ rw_mode=G90PeripheralRwModes.READ,
151
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
152
+ name="Beam Sensor: Wired",
153
+ protocol=G90PeripheralProtocols.CORD,
154
+ timeout=0,
155
+ baudrate=1480,
156
+ node_count=1
157
+ ),
158
+ G90PeripheralDefinition(
159
+ type=G90PeripheralTypes.CORD_SENSOR,
160
+ subtype=8,
161
+ rx=0,
162
+ tx=0,
163
+ private_data='00',
164
+ rw_mode=G90PeripheralRwModes.READ,
165
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
166
+ name="PIR Motion Sensor: Wired",
167
+ protocol=G90PeripheralProtocols.CORD,
168
+ timeout=0,
169
+ baudrate=1480,
170
+ node_count=1
171
+ ),
172
+ G90PeripheralDefinition(
173
+ type=G90PeripheralTypes.CORD_SENSOR,
174
+ subtype=11,
175
+ rx=0,
176
+ tx=0,
177
+ private_data='00',
178
+ rw_mode=G90PeripheralRwModes.READ,
179
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
180
+ name="RFID: Wired",
181
+ protocol=G90PeripheralProtocols.CORD,
182
+ timeout=0,
183
+ baudrate=1480,
184
+ node_count=1
185
+ ),
186
+ G90PeripheralDefinition(
187
+ type=G90PeripheralTypes.CORD_SENSOR,
188
+ subtype=12,
189
+ rx=0,
190
+ tx=0,
191
+ private_data='00',
192
+ rw_mode=G90PeripheralRwModes.READ,
193
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
194
+ name="Door Bell: Wired",
195
+ protocol=G90PeripheralProtocols.CORD,
196
+ timeout=0,
197
+ baudrate=1480,
198
+ node_count=1
199
+ ),
200
+ G90PeripheralDefinition(
201
+ type=G90PeripheralTypes.IR_2_4G,
202
+ subtype=0,
203
+ rx=0,
204
+ tx=0,
205
+ private_data='00',
206
+ rw_mode=G90PeripheralRwModes.WRITE,
207
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
208
+ name="Infrared Transcoder",
209
+ protocol=G90PeripheralProtocols.RF_PRIVATE,
210
+ timeout=0,
211
+ baudrate=800,
212
+ node_count=1
213
+ ),
214
+
215
+ G90PeripheralDefinition(
216
+ type=G90PeripheralTypes.TOUCH_SWITCH_2_4G,
217
+ subtype=1,
218
+ rx=0,
219
+ tx=0,
220
+ private_data='00',
221
+ rw_mode=G90PeripheralRwModes.WRITE,
222
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
223
+ name="Switch: 2.4G Type 1",
224
+ protocol=G90PeripheralProtocols.RF_1527,
225
+ timeout=0,
226
+ baudrate=960,
227
+ node_count=1
228
+ ),
229
+ G90PeripheralDefinition(
230
+ type=G90PeripheralTypes.TOUCH_SWITCH_2_4G,
231
+ subtype=2,
232
+ rx=0,
233
+ tx=0,
234
+ private_data='00',
235
+ rw_mode=G90PeripheralRwModes.WRITE,
236
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
237
+ name="Switch: 2.4G Type 2",
238
+ protocol=G90PeripheralProtocols.RF_1527,
239
+ timeout=0,
240
+ baudrate=960,
241
+ node_count=2
242
+ ),
243
+ G90PeripheralDefinition(
244
+ type=G90PeripheralTypes.TOUCH_SWITCH_2_4G,
245
+ subtype=3,
246
+ rx=0,
247
+ tx=0,
248
+ private_data='00',
249
+ rw_mode=G90PeripheralRwModes.WRITE,
250
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
251
+ name="Switch: 2.4G Type 3",
252
+ protocol=G90PeripheralProtocols.RF_1527,
253
+ timeout=0,
254
+ baudrate=960,
255
+ node_count=3
256
+ ),
257
+ G90PeripheralDefinition(
258
+ type=G90PeripheralTypes.TOUCH_SWITCH_2_4G,
259
+ subtype=4,
260
+ rx=0,
261
+ tx=0,
262
+ private_data='00',
263
+ rw_mode=G90PeripheralRwModes.WRITE,
264
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
265
+ name="Switch: 2.4G Type 4",
266
+ protocol=G90PeripheralProtocols.RF_1527,
267
+ timeout=0,
268
+ baudrate=960,
269
+ node_count=4
270
+ ),
271
+ G90PeripheralDefinition(
272
+ type=G90PeripheralTypes.DOOR,
273
+ subtype=0,
274
+ rx=5,
275
+ tx=0,
276
+ private_data='F100f5017d02f803f90400',
277
+ rw_mode=G90PeripheralRwModes.READ,
278
+ match_mode=G90PeripheralMatchModes.ONLY16BITS,
279
+ name="Door Sensor: WDS07",
280
+ protocol=G90PeripheralProtocols.RF_2262,
281
+ timeout=0,
282
+ baudrate=0,
283
+ node_count=1
284
+ ),
285
+ G90PeripheralDefinition(
286
+ type=G90PeripheralTypes.DOOR,
287
+ subtype=1,
288
+ rx=2,
289
+ tx=0,
290
+ private_data='0001020400',
291
+ rw_mode=G90PeripheralRwModes.READ,
292
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
293
+ name="Door Sensor: Non-smart",
294
+ protocol=G90PeripheralProtocols.RF_1527,
295
+ timeout=0,
296
+ baudrate=0,
297
+ node_count=1
298
+ ),
299
+ G90PeripheralDefinition(
300
+ type=G90PeripheralTypes.DOOR,
301
+ subtype=3,
302
+ rx=0,
303
+ tx=0,
304
+ private_data='00',
305
+ rw_mode=G90PeripheralRwModes.READ,
306
+ match_mode=G90PeripheralMatchModes.ALL,
307
+ name="Door Sensor: WRDS01",
308
+ protocol=G90PeripheralProtocols.RF_1527,
309
+ timeout=0,
310
+ baudrate=0,
311
+ node_count=1
312
+ ),
313
+ G90PeripheralDefinition(
314
+ type=G90PeripheralTypes.DOOR,
315
+ subtype=2,
316
+ rx=5,
317
+ tx=0,
318
+ private_data='F100f5017d02f803f904',
319
+ rw_mode=G90PeripheralRwModes.READ,
320
+ match_mode=G90PeripheralMatchModes.ONLY16BITS,
321
+ name="Door Sensor: Smart",
322
+ protocol=G90PeripheralProtocols.RF_2262,
323
+ timeout=0,
324
+ baudrate=0,
325
+ node_count=1
326
+ ),
327
+ G90PeripheralDefinition(
328
+ type=G90PeripheralTypes.GLASS,
329
+ subtype=0,
330
+ rx=0,
331
+ tx=0,
332
+ private_data='00',
333
+ rw_mode=G90PeripheralRwModes.READ,
334
+ match_mode=G90PeripheralMatchModes.ALL,
335
+ name="Glass Break Sensor: BLPS",
336
+ protocol=G90PeripheralProtocols.RF_1527,
337
+ timeout=0,
338
+ baudrate=0,
339
+ node_count=1
340
+ ),
341
+ G90PeripheralDefinition(
342
+ type=G90PeripheralTypes.GAS,
343
+ subtype=0,
344
+ rx=0,
345
+ tx=0,
346
+ private_data='00',
347
+ rw_mode=G90PeripheralRwModes.READ,
348
+ match_mode=G90PeripheralMatchModes.ALL,
349
+ name="Gas Sensor: WGD01",
350
+ protocol=G90PeripheralProtocols.RF_1527,
351
+ timeout=0,
352
+ baudrate=0,
353
+ node_count=1
354
+ ),
355
+ G90PeripheralDefinition(
356
+ type=G90PeripheralTypes.SMOKE,
357
+ subtype=0,
358
+ rx=0,
359
+ tx=0,
360
+ private_data='00',
361
+ rw_mode=G90PeripheralRwModes.READ,
362
+ match_mode=G90PeripheralMatchModes.ALL,
363
+ name="Smoke Sensor: WSD02",
364
+ protocol=G90PeripheralProtocols.RF_1527,
365
+ timeout=0,
366
+ baudrate=0,
367
+ node_count=1
368
+ ),
369
+ G90PeripheralDefinition(
370
+ type=G90PeripheralTypes.SMOKE,
371
+ subtype=1,
372
+ rx=0,
373
+ tx=0,
374
+ private_data='00',
375
+ rw_mode=G90PeripheralRwModes.READ,
376
+ match_mode=G90PeripheralMatchModes.ALL,
377
+ name="Smoke Sensor: WSD04",
378
+ protocol=G90PeripheralProtocols.RF_1527,
379
+ timeout=0,
380
+ baudrate=0,
381
+ node_count=1
382
+ ),
383
+ G90PeripheralDefinition(
384
+ type=G90PeripheralTypes.SOS,
385
+ subtype=1,
386
+ rx=0,
387
+ tx=0,
388
+ private_data='00',
389
+ rw_mode=G90PeripheralRwModes.READ,
390
+ match_mode=G90PeripheralMatchModes.ALL,
391
+ name="SOS Button: WEB01",
392
+ protocol=G90PeripheralProtocols.RF_1527,
393
+ timeout=0,
394
+ baudrate=0,
395
+ node_count=1
396
+ ),
397
+ G90PeripheralDefinition(
398
+ type=G90PeripheralTypes.SOS,
399
+ subtype=0,
400
+ rx=0,
401
+ tx=0,
402
+ private_data='00',
403
+ rw_mode=G90PeripheralRwModes.READ,
404
+ match_mode=G90PeripheralMatchModes.ALL,
405
+ name="SOS Button: WEB03",
406
+ protocol=G90PeripheralProtocols.RF_1527,
407
+ timeout=0,
408
+ baudrate=0,
409
+ node_count=1
410
+ ),
411
+ G90PeripheralDefinition(
412
+ type=G90PeripheralTypes.VIB,
413
+ subtype=0,
414
+ rx=0,
415
+ tx=0,
416
+ private_data='00',
417
+ rw_mode=G90PeripheralRwModes.READ,
418
+ match_mode=G90PeripheralMatchModes.ALL,
419
+ name="Vibration Sensor: WSS01",
420
+ protocol=G90PeripheralProtocols.RF_1527,
421
+ timeout=0,
422
+ baudrate=0,
423
+ node_count=1
424
+ ),
425
+ G90PeripheralDefinition(
426
+ type=G90PeripheralTypes.WATER,
427
+ subtype=1,
428
+ rx=0,
429
+ tx=0,
430
+ private_data='',
431
+ rw_mode=G90PeripheralRwModes.READ,
432
+ match_mode=G90PeripheralMatchModes.ALL,
433
+ name="Water Leak Sensor: LSTC02",
434
+ protocol=G90PeripheralProtocols.RF_1527,
435
+ timeout=0,
436
+ baudrate=0,
437
+ node_count=1
438
+ ),
439
+ G90PeripheralDefinition(
440
+ type=G90PeripheralTypes.WATER,
441
+ subtype=0,
442
+ rx=0,
443
+ tx=0,
444
+ private_data='00',
445
+ rw_mode=G90PeripheralRwModes.READ,
446
+ match_mode=G90PeripheralMatchModes.ALL,
447
+ name="Water Leak Sensor: LSTC01",
448
+ protocol=G90PeripheralProtocols.RF_1527,
449
+ timeout=0,
450
+ baudrate=0,
451
+ node_count=1
452
+ ),
453
+ G90PeripheralDefinition(
454
+ type=G90PeripheralTypes.INFRARED,
455
+ subtype=3,
456
+ rx=3,
457
+ tx=0,
458
+ private_data='06000301020200',
459
+ rw_mode=G90PeripheralRwModes.READ,
460
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
461
+ name="PIR Motion Sensor: WMS08",
462
+ protocol=G90PeripheralProtocols.RF_2262,
463
+ timeout=0,
464
+ baudrate=0,
465
+ node_count=1
466
+ ),
467
+ G90PeripheralDefinition(
468
+ type=G90PeripheralTypes.INFRARED,
469
+ subtype=12,
470
+ rx=3,
471
+ tx=0,
472
+ private_data='060003010202000314',
473
+ rw_mode=G90PeripheralRwModes.READ,
474
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
475
+ name="PIR Motion Sensor: WMS08B",
476
+ protocol=G90PeripheralProtocols.RF_2262,
477
+ timeout=0,
478
+ baudrate=0,
479
+ node_count=1
480
+ ),
481
+ G90PeripheralDefinition(
482
+ type=G90PeripheralTypes.INFRARED,
483
+ subtype=0,
484
+ rx=0,
485
+ tx=0,
486
+ private_data='00',
487
+ rw_mode=G90PeripheralRwModes.READ,
488
+ match_mode=G90PeripheralMatchModes.ALL,
489
+ name="PIR Motion Sensor: ODPIR",
490
+ protocol=G90PeripheralProtocols.RF_1527,
491
+ timeout=0,
492
+ baudrate=0,
493
+ node_count=1
494
+ ),
495
+ G90PeripheralDefinition(
496
+ type=G90PeripheralTypes.INFRARED,
497
+ subtype=5,
498
+ rx=0,
499
+ tx=0,
500
+ private_data='00',
501
+ rw_mode=G90PeripheralRwModes.READ,
502
+ match_mode=G90PeripheralMatchModes.ALL,
503
+ name="PIR Motion Sensor: N650",
504
+ protocol=G90PeripheralProtocols.RF_1527,
505
+ timeout=0,
506
+ baudrate=0,
507
+ node_count=1
508
+ ),
509
+ G90PeripheralDefinition(
510
+ type=G90PeripheralTypes.INFRARED,
511
+ subtype=6,
512
+ rx=0,
513
+ tx=0,
514
+ private_data='00',
515
+ rw_mode=G90PeripheralRwModes.READ,
516
+ match_mode=G90PeripheralMatchModes.ALL,
517
+ name="PIR Motion Sensor: WPD02",
518
+ protocol=G90PeripheralProtocols.RF_1527,
519
+ timeout=0,
520
+ baudrate=0,
521
+ node_count=1
522
+ ),
523
+ G90PeripheralDefinition(
524
+ type=G90PeripheralTypes.INFRARED,
525
+ subtype=8,
526
+ rx=0,
527
+ tx=0,
528
+ private_data='00',
529
+ rw_mode=G90PeripheralRwModes.READ,
530
+ match_mode=G90PeripheralMatchModes.ALL,
531
+ name="PIR Motion Sensor: WCMS02",
532
+ protocol=G90PeripheralProtocols.RF_1527,
533
+ timeout=0,
534
+ baudrate=0,
535
+ node_count=1
536
+ ),
537
+ G90PeripheralDefinition(
538
+ type=G90PeripheralTypes.INFRARED,
539
+ subtype=9,
540
+ rx=0,
541
+ tx=0,
542
+ private_data='00',
543
+ rw_mode=G90PeripheralRwModes.READ,
544
+ match_mode=G90PeripheralMatchModes.ALL,
545
+ name="PIR Motion Sensor: CWMS01",
546
+ protocol=G90PeripheralProtocols.RF_1527,
547
+ timeout=0,
548
+ baudrate=0,
549
+ node_count=1
550
+ ),
551
+ G90PeripheralDefinition(
552
+ type=G90PeripheralTypes.INFRARED,
553
+ subtype=11,
554
+ rx=0,
555
+ tx=0,
556
+ private_data='00',
557
+ rw_mode=G90PeripheralRwModes.READ,
558
+ match_mode=G90PeripheralMatchModes.ALL,
559
+ name="PIR Motion Sensor: WMS04",
560
+ protocol=G90PeripheralProtocols.RF_1527,
561
+ timeout=0,
562
+ baudrate=0,
563
+ node_count=1
564
+ ),
565
+ G90PeripheralDefinition(
566
+ type=G90PeripheralTypes.INFRARED,
567
+ subtype=2,
568
+ rx=3,
569
+ tx=0,
570
+ private_data='04000801020200',
571
+ rw_mode=G90PeripheralRwModes.READ,
572
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
573
+ name="PIR Motion Sensor: WMS07",
574
+ protocol=G90PeripheralProtocols.RF_2262,
575
+ timeout=0,
576
+ baudrate=0,
577
+ node_count=1
578
+ ),
579
+ G90PeripheralDefinition(
580
+ type=G90PeripheralTypes.INFRARED,
581
+ subtype=4,
582
+ rx=0,
583
+ tx=0,
584
+ private_data='00',
585
+ rw_mode=G90PeripheralRwModes.READ,
586
+ match_mode=G90PeripheralMatchModes.ALL,
587
+ name="PIR Motion Sensor: ODPIR03",
588
+ protocol=G90PeripheralProtocols.RF_1527,
589
+ timeout=0,
590
+ baudrate=0,
591
+ node_count=1
592
+ ),
593
+ G90PeripheralDefinition(
594
+ type=G90PeripheralTypes.INFRARED,
595
+ subtype=7,
596
+ rx=0,
597
+ tx=0,
598
+ private_data='00',
599
+ rw_mode=G90PeripheralRwModes.READ,
600
+ match_mode=G90PeripheralMatchModes.ALL,
601
+ name="PIR Motion Sensor: WPD01",
602
+ protocol=G90PeripheralProtocols.RF_1527,
603
+ timeout=0,
604
+ baudrate=0,
605
+ node_count=1
606
+ ),
607
+ G90PeripheralDefinition(
608
+ type=G90PeripheralTypes.INFRARED,
609
+ subtype=1,
610
+ rx=0,
611
+ tx=0,
612
+ private_data='00',
613
+ rw_mode=G90PeripheralRwModes.READ,
614
+ match_mode=G90PeripheralMatchModes.ALL,
615
+ name="PIR Motion Sensor: Ceiling",
616
+ protocol=G90PeripheralProtocols.RF_1527,
617
+ timeout=0,
618
+ baudrate=0,
619
+ node_count=1
620
+ ),
621
+ G90PeripheralDefinition(
622
+ type=G90PeripheralTypes.IN_BEAM,
623
+ subtype=0,
624
+ rx=0,
625
+ tx=0,
626
+ private_data='00',
627
+ rw_mode=G90PeripheralRwModes.READ,
628
+ match_mode=G90PeripheralMatchModes.ALL,
629
+ name="Beam Sensor: ABT",
630
+ protocol=G90PeripheralProtocols.RF_1527,
631
+ timeout=0,
632
+ baudrate=0,
633
+ node_count=1
634
+ ),
635
+ G90PeripheralDefinition(
636
+ type=G90PeripheralTypes.IN_BEAM,
637
+ subtype=1,
638
+ rx=0,
639
+ tx=0,
640
+ private_data='00',
641
+ rw_mode=G90PeripheralRwModes.READ,
642
+ match_mode=G90PeripheralMatchModes.ALL,
643
+ name="Beam Sensor: ABE",
644
+ protocol=G90PeripheralProtocols.RF_1527,
645
+ timeout=0,
646
+ baudrate=0,
647
+ node_count=1
648
+ ),
649
+ G90PeripheralDefinition(
650
+ type=G90PeripheralTypes.IN_BEAM,
651
+ subtype=2,
652
+ rx=0,
653
+ tx=0,
654
+ private_data='00',
655
+ rw_mode=G90PeripheralRwModes.READ,
656
+ match_mode=G90PeripheralMatchModes.ALL,
657
+ name="Beam Sensor: ABH",
658
+ protocol=G90PeripheralProtocols.RF_1527,
659
+ timeout=0,
660
+ baudrate=0,
661
+ node_count=1
662
+ ),
663
+ G90PeripheralDefinition(
664
+ type=G90PeripheralTypes.REMOTE,
665
+ subtype=1,
666
+ rx=4,
667
+ tx=0,
668
+ private_data='0d000b010e02070300',
669
+ rw_mode=G90PeripheralRwModes.READ,
670
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
671
+ name="Remote: RMC08",
672
+ protocol=G90PeripheralProtocols.RF_1527,
673
+ timeout=0,
674
+ baudrate=0,
675
+ node_count=1
676
+ ),
677
+ G90PeripheralDefinition(
678
+ type=G90PeripheralTypes.REMOTE,
679
+ subtype=0,
680
+ rx=4,
681
+ tx=0,
682
+ private_data='cf00fc01f3023f0300',
683
+ rw_mode=G90PeripheralRwModes.READ,
684
+ match_mode=G90PeripheralMatchModes.ONLY16BITS,
685
+ name="Remote: RMC07",
686
+ protocol=G90PeripheralProtocols.RF_2262,
687
+ timeout=0,
688
+ baudrate=0,
689
+ node_count=1
690
+ ),
691
+ G90PeripheralDefinition(
692
+ type=G90PeripheralTypes.REMOTE,
693
+ subtype=4,
694
+ rx=4,
695
+ tx=0,
696
+ private_data='cf00fc01f3023f0300',
697
+ rw_mode=G90PeripheralRwModes.READ,
698
+ match_mode=G90PeripheralMatchModes.ONLY16BITS,
699
+ name="Remote: RMC02",
700
+ protocol=G90PeripheralProtocols.RF_2262,
701
+ timeout=0,
702
+ baudrate=0,
703
+ node_count=1
704
+ ),
705
+ G90PeripheralDefinition(
706
+ type=G90PeripheralTypes.REMOTE,
707
+ subtype=2,
708
+ rx=3,
709
+ tx=0,
710
+ private_data='07000602050300',
711
+ rw_mode=G90PeripheralRwModes.READ,
712
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
713
+ name="Remote: 3 Button",
714
+ protocol=G90PeripheralProtocols.RF_1527,
715
+ timeout=0,
716
+ baudrate=0,
717
+ node_count=1
718
+ ),
719
+ G90PeripheralDefinition(
720
+ type=G90PeripheralTypes.RFID,
721
+ subtype=1,
722
+ rx=11,
723
+ tx=0,
724
+ private_data='0e0007010d020b03010402050c060a0709080809060a00',
725
+ rw_mode=G90PeripheralRwModes.READ,
726
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
727
+ name="RFID: K07",
728
+ protocol=G90PeripheralProtocols.RF_1527,
729
+ timeout=0,
730
+ baudrate=0,
731
+ node_count=1
732
+ ),
733
+ G90PeripheralDefinition(
734
+ type=G90PeripheralTypes.DOORBELL,
735
+ subtype=1,
736
+ rx=0,
737
+ tx=0,
738
+ private_data='00',
739
+ rw_mode=G90PeripheralRwModes.READ,
740
+ match_mode=G90PeripheralMatchModes.ALL,
741
+ name="Door Bell: WDB",
742
+ protocol=G90PeripheralProtocols.RF_1527,
743
+ timeout=0,
744
+ baudrate=0,
745
+ node_count=1
746
+ ),
747
+ G90PeripheralDefinition(
748
+ type=G90PeripheralTypes.BUTTONID,
749
+ subtype=1,
750
+ rx=4,
751
+ tx=0,
752
+ private_data='07000e010d020b0300',
753
+ rw_mode=G90PeripheralRwModes.READ,
754
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
755
+ name="Fingerprint: Sensor",
756
+ protocol=G90PeripheralProtocols.RF_1527,
757
+ timeout=0,
758
+ baudrate=0,
759
+ node_count=1
760
+ ),
761
+ G90PeripheralDefinition(
762
+ type=G90PeripheralTypes.WATCH,
763
+ subtype=0,
764
+ rx=0,
765
+ tx=0,
766
+ private_data='00',
767
+ rw_mode=G90PeripheralRwModes.READ,
768
+ match_mode=G90PeripheralMatchModes.ONLY16BITS,
769
+ name="SOS Button: Watch",
770
+ protocol=G90PeripheralProtocols.RF_2262,
771
+ timeout=0,
772
+ baudrate=0,
773
+ node_count=1
774
+ ),
775
+ G90PeripheralDefinition(
776
+ type=G90PeripheralTypes.FINGER_LOCK,
777
+ subtype=1,
778
+ rx=0,
779
+ tx=2,
780
+ private_data='00',
781
+ rw_mode=G90PeripheralRwModes.READ,
782
+ match_mode=G90PeripheralMatchModes.ONLY16BITS,
783
+ name="Fingerprint: Lock",
784
+ protocol=G90PeripheralProtocols.RF_1527,
785
+ timeout=0,
786
+ baudrate=1480,
787
+ node_count=1
788
+ ),
789
+ G90PeripheralDefinition(
790
+ type=G90PeripheralTypes.SUBHOST,
791
+ subtype=0,
792
+ rx=0,
793
+ tx=0,
794
+ private_data='00',
795
+ rw_mode=G90PeripheralRwModes.READ,
796
+ match_mode=G90PeripheralMatchModes.ALL,
797
+ name="Sub Host: SS08S",
798
+ protocol=G90PeripheralProtocols.RF_1527,
799
+ timeout=0,
800
+ baudrate=1480,
801
+ node_count=1
802
+ ),
803
+ G90PeripheralDefinition(
804
+ type=G90PeripheralTypes.GAS_VALVE,
805
+ subtype=0,
806
+ rx=2,
807
+ tx=1,
808
+ private_data='09000801ff0e0e',
809
+ rw_mode=G90PeripheralRwModes.READ,
810
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
811
+ name="Gas Valve Sensor: WGD02",
812
+ protocol=G90PeripheralProtocols.RF_1527,
813
+ timeout=0,
814
+ baudrate=1600,
815
+ node_count=1
816
+ ),
817
+ G90PeripheralDefinition(
818
+ type=G90PeripheralTypes.REMOTE_2_4G,
819
+ subtype=4,
820
+ rx=4,
821
+ tx=0,
822
+ private_data='00',
823
+ rw_mode=G90PeripheralRwModes.READ,
824
+ match_mode=G90PeripheralMatchModes.ONLY20BITS,
825
+ name="Remote: RMC2.4G",
826
+ protocol=G90PeripheralProtocols.RF_1527,
827
+ timeout=0,
828
+ baudrate=0,
829
+ node_count=1
830
+ ),
831
+ ]
832
+
833
+ @classmethod
834
+ def definitions(cls) -> list[G90PeripheralDefinition]:
835
+ """
836
+ Gets all sensor definitions.
837
+
838
+ :return: List of sensor definitions.
839
+ """
840
+ _LOGGER.debug(
841
+ "Number of sensor definitions: %d", len(cls.SENSOR_DEFINITIONS)
842
+ )
843
+ return cls.SENSOR_DEFINITIONS