forked from AlexxIT/XiaomiGateway3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
print_models.py
40 lines (31 loc) · 919 Bytes
/
print_models.py
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
from custom_components.xiaomi_gateway3.core.bluetooth import DEVICES as BT
from custom_components.xiaomi_gateway3.core.zigbee import DEVICES as ZB
def print_list(items: list):
uniq = {}
for v in items:
uniq.setdefault(f"{v[0]} {v[1]}", []).append(v[2])
for k, v in sorted(uniq.items(), key=lambda kv: kv[0]):
models = ','.join(sorted(set(v)))
print(f"- {k} ({models})")
print("Zigbee")
print_list([
v for device in ZB
for k, v in device.items()
if len(v) == 3 and k not in ('lumi_spec', 'miot_spec')
])
print("BLE")
print_list([
v for k, v in BT[0].items()
if len(v) == 3
])
print("Mesh Bulbs")
print_list([
v for k, v in BT[1].items()
if len(v) == 3 and k != 'miot_spec' and v[0] != 'Unknown'
])
print("Mesh Switches")
print_list([
v for d in BT[2:]
for k, v in d.items()
if len(v) == 3 and k != 'miot_spec' and v[0] != 'Unknown'
])