2020 0x2716 : (sp2 , "NEO PRO" , "Ankuoo" ),
2121 0x2717 : (sp2 , "NEO" , "Ankuoo" ),
2222 0x2719 : (sp2 , "SP2-compatible" , "Honeywell" ),
23- 0x271a : (sp2 , "SP2-compatible" , "Honeywell" ),
23+ 0x271A : (sp2 , "SP2-compatible" , "Honeywell" ),
2424 0x2720 : (sp2 , "SP mini" , "Broadlink" ),
2525 0x2728 : (sp2 , "SP2-compatible" , "URANT" ),
2626 0x2733 : (sp2 , "SP3" , "Broadlink" ),
2727 0x2736 : (sp2 , "SP mini+" , "Broadlink" ),
28- 0x273e : (sp2 , "SP mini" , "Broadlink" ),
28+ 0x273E : (sp2 , "SP mini" , "Broadlink" ),
2929 0x7530 : (sp2 , "SP2" , "Broadlink (OEM)" ),
3030 0x7539 : (sp2 , "SP2-IL" , "Broadlink (OEM)" ),
31- 0x753e : (sp2 , "SP mini 3" , "Broadlink" ),
31+ 0x753E : (sp2 , "SP mini 3" , "Broadlink" ),
3232 0x7540 : (sp2 , "MP2" , "Broadlink" ),
33- 0X7544 : (sp2 , "SP2-CL" , "Broadlink" ),
33+ 0x7544 : (sp2 , "SP2-CL" , "Broadlink" ),
3434 0x7546 : (sp2 , "SP2-UK/BR/IN" , "Broadlink (OEM)" ),
3535 0x7547 : (sp2 , "SC1" , "Broadlink" ),
3636 0x7918 : (sp2 , "SP2" , "Broadlink (OEM)" ),
3737 0x7919 : (sp2 , "SP2-compatible" , "Honeywell" ),
38- 0x791a : (sp2 , "SP2-compatible" , "Honeywell" ),
39- 0x7d00 : (sp2 , "SP3-EU" , "Broadlink (OEM)" ),
40- 0x7d0d : (sp2 , "SP mini 3" , "Broadlink (OEM)" ),
38+ 0x791A : (sp2 , "SP2-compatible" , "Honeywell" ),
39+ 0x7D00 : (sp2 , "SP3-EU" , "Broadlink (OEM)" ),
40+ 0x7D0D : (sp2 , "SP mini 3" , "Broadlink (OEM)" ),
4141 0x9479 : (sp2 , "SP3S-US" , "Broadlink" ),
42- 0x947a : (sp2 , "SP3S-EU" , "Broadlink" ),
43- 0x756c : (sp4 , "SP4M" , "Broadlink" ),
42+ 0x947A : (sp2 , "SP3S-EU" , "Broadlink" ),
43+ 0x756C : (sp4 , "SP4M" , "Broadlink" ),
4444 0x7579 : (sp4 , "SP4L-EU" , "Broadlink" ),
4545 0x7583 : (sp4 , "SP mini 3" , "Broadlink" ),
46- 0x7d11 : (sp4 , "SP mini 3" , "Broadlink" ),
47- 0x648b : (sp4b , "SP4M-US" , "Broadlink" ),
46+ 0x7D11 : (sp4 , "SP mini 3" , "Broadlink" ),
47+ 0x648B : (sp4b , "SP4M-US" , "Broadlink" ),
4848 0x2712 : (rm , "RM pro/pro+" , "Broadlink" ),
49- 0x272a : (rm , "RM pro" , "Broadlink" ),
49+ 0x272A : (rm , "RM pro" , "Broadlink" ),
5050 0x2737 : (rm , "RM mini 3" , "Broadlink" ),
51- 0x273d : (rm , "RM pro" , "Broadlink" ),
52- 0x277c : (rm , "RM home" , "Broadlink" ),
51+ 0x273D : (rm , "RM pro" , "Broadlink" ),
52+ 0x277C : (rm , "RM home" , "Broadlink" ),
5353 0x2783 : (rm , "RM home" , "Broadlink" ),
5454 0x2787 : (rm , "RM pro" , "Broadlink" ),
55- 0x278b : (rm , "RM plus" , "Broadlink" ),
56- 0x278f : (rm , "RM mini" , "Broadlink" ),
55+ 0x278B : (rm , "RM plus" , "Broadlink" ),
56+ 0x278F : (rm , "RM mini" , "Broadlink" ),
5757 0x2797 : (rm , "RM pro+" , "Broadlink" ),
58- 0x279d : (rm , "RM pro+" , "Broadlink" ),
59- 0x27a1 : (rm , "RM plus" , "Broadlink" ),
60- 0x27a6 : (rm , "RM plus" , "Broadlink" ),
61- 0x27a9 : (rm , "RM pro+" , "Broadlink" ),
62- 0x27c2 : (rm , "RM mini 3" , "Broadlink" ),
63- 0x27c3 : (rm , "RM pro+" , "Broadlink" ),
64- 0x27c7 : (rm , "RM mini 3" , "Broadlink" ),
65- 0x27cc : (rm , "RM mini 3" , "Broadlink" ),
66- 0x27cd : (rm , "RM mini 3" , "Broadlink" ),
67- 0x27d0 : (rm , "RM mini 3" , "Broadlink" ),
68- 0x27d1 : (rm , "RM mini 3" , "Broadlink" ),
69- 0x27de : (rm , "RM mini 3" , "Broadlink" ),
70- 0x51da : (rm4 , "RM4 mini" , "Broadlink" ),
71- 0x5f36 : (rm4 , "RM mini 3" , "Broadlink" ),
58+ 0x279D : (rm , "RM pro+" , "Broadlink" ),
59+ 0x27A1 : (rm , "RM plus" , "Broadlink" ),
60+ 0x27A6 : (rm , "RM plus" , "Broadlink" ),
61+ 0x27A9 : (rm , "RM pro+" , "Broadlink" ),
62+ 0x27C2 : (rm , "RM mini 3" , "Broadlink" ),
63+ 0x27C3 : (rm , "RM pro+" , "Broadlink" ),
64+ 0x27C7 : (rm , "RM mini 3" , "Broadlink" ),
65+ 0x27CC : (rm , "RM mini 3" , "Broadlink" ),
66+ 0x27CD : (rm , "RM mini 3" , "Broadlink" ),
67+ 0x27D0 : (rm , "RM mini 3" , "Broadlink" ),
68+ 0x27D1 : (rm , "RM mini 3" , "Broadlink" ),
69+ 0x27DE : (rm , "RM mini 3" , "Broadlink" ),
70+ 0x51DA : (rm4 , "RM4 mini" , "Broadlink" ),
71+ 0x5F36 : (rm4 , "RM mini 3" , "Broadlink" ),
7272 0x6026 : (rm4 , "RM4 pro" , "Broadlink" ),
7373 0x6070 : (rm4 , "RM4C mini" , "Broadlink" ),
74- 0x610e : (rm4 , "RM4 mini" , "Broadlink" ),
75- 0x610f : (rm4 , "RM4C mini" , "Broadlink" ),
76- 0x61a2 : (rm4 , "RM4 pro" , "Broadlink" ),
77- 0x62bc : (rm4 , "RM4 mini" , "Broadlink" ),
78- 0x62be : (rm4 , "RM4C mini" , "Broadlink" ),
79- 0x648d : (rm4 , "RM4 mini" , "Broadlink" ),
80- 0x649b : (rm4 , "RM4 pro" , "Broadlink" ),
81- 0x653a : (rm4 , "RM4 mini" , "Broadlink" ),
74+ 0x610E : (rm4 , "RM4 mini" , "Broadlink" ),
75+ 0x610F : (rm4 , "RM4C mini" , "Broadlink" ),
76+ 0x61A2 : (rm4 , "RM4 pro" , "Broadlink" ),
77+ 0x62BC : (rm4 , "RM4 mini" , "Broadlink" ),
78+ 0x62BE : (rm4 , "RM4C mini" , "Broadlink" ),
79+ 0x648D : (rm4 , "RM4 mini" , "Broadlink" ),
80+ 0x649B : (rm4 , "RM4 pro" , "Broadlink" ),
81+ 0x653A : (rm4 , "RM4 mini" , "Broadlink" ),
8282 0x2714 : (a1 , "e-Sensor" , "Broadlink" ),
83- 0x4eb5 : (mp1 , "MP1-1K4S" , "Broadlink" ),
84- 0x4ef7 : (mp1 , "MP1-1K4S" , "Broadlink (OEM)" ),
85- 0x4f1b : (mp1 , "MP1-1K3S2U" , "Broadlink (OEM)" ),
86- 0x4f65 : (mp1 , "MP1-1K3S2U" , "Broadlink" ),
83+ 0x4EB5 : (mp1 , "MP1-1K4S" , "Broadlink" ),
84+ 0x4EF7 : (mp1 , "MP1-1K4S" , "Broadlink (OEM)" ),
85+ 0x4F1B : (mp1 , "MP1-1K3S2U" , "Broadlink (OEM)" ),
86+ 0x4F65 : (mp1 , "MP1-1K3S2U" , "Broadlink" ),
8787 0x5043 : (lb1 , "SB800TD" , "Broadlink (OEM)" ),
88- 0x504e : (lb1 , "LB1" , "Broadlink" ),
89- 0x60c7 : (lb1 , "LB1" , "Broadlink" ),
90- 0x60c8 : (lb1 , "LB1" , "Broadlink" ),
88+ 0x504E : (lb1 , "LB1" , "Broadlink" ),
89+ 0x60C7 : (lb1 , "LB1" , "Broadlink" ),
90+ 0x60C8 : (lb1 , "LB1" , "Broadlink" ),
9191 0x6112 : (lb1 , "LB1" , "Broadlink" ),
9292 0x2722 : (S1C , "S2KIT" , "Broadlink" ),
93- 0x4ead : (hysen , "HY02B05H" , "Hysen" ),
94- 0x4e4d : (dooya , "DT360E-45/20" , "Dooya" ),
95- 0x51e3 : (bg1 , "BG800/BG900" , "BG Electrical" ),
93+ 0x4EAD : (hysen , "HY02B05H" , "Hysen" ),
94+ 0x4E4D : (dooya , "DT360E-45/20" , "Dooya" ),
95+ 0x51E3 : (bg1 , "BG800/BG900" , "BG Electrical" ),
9696}
9797
9898
9999def gendevice (
100- dev_type : int ,
101- host : Tuple [str , int ],
102- mac : Union [bytes , str ],
103- name : str = None ,
104- is_locked : bool = None ,
100+ dev_type : int ,
101+ host : Tuple [str , int ],
102+ mac : Union [bytes , str ],
103+ name : str = None ,
104+ is_locked : bool = None ,
105105) -> device :
106106 """Generate a device."""
107107 try :
@@ -122,10 +122,10 @@ def gendevice(
122122
123123
124124def hello (
125- host : str ,
126- port : int = 80 ,
127- timeout : int = 10 ,
128- local_ip_address : str = None ,
125+ host : str ,
126+ port : int = 80 ,
127+ timeout : int = 10 ,
128+ local_ip_address : str = None ,
129129) -> device :
130130 """Direct device discovery.
131131
@@ -138,31 +138,27 @@ def hello(
138138
139139
140140def discover (
141- timeout : int = 10 ,
142- local_ip_address : str = None ,
143- discover_ip_address : str = ' 255.255.255.255' ,
144- discover_ip_port : int = 80 ,
141+ timeout : int = 10 ,
142+ local_ip_address : str = None ,
143+ discover_ip_address : str = " 255.255.255.255" ,
144+ discover_ip_port : int = 80 ,
145145) -> List [device ]:
146146 """Discover devices connected to the local network."""
147- responses = scan (
148- timeout , local_ip_address , discover_ip_address , discover_ip_port
149- )
147+ responses = scan (timeout , local_ip_address , discover_ip_address , discover_ip_port )
150148 return [gendevice (* resp ) for resp in responses ]
151149
152150
153151def xdiscover (
154- timeout : int = 10 ,
155- local_ip_address : str = None ,
156- discover_ip_address : str = ' 255.255.255.255' ,
157- discover_ip_port : int = 80 ,
152+ timeout : int = 10 ,
153+ local_ip_address : str = None ,
154+ discover_ip_address : str = " 255.255.255.255" ,
155+ discover_ip_port : int = 80 ,
158156) -> Generator [device , None , None ]:
159157 """Discover devices connected to the local network.
160158
161159 This function returns a generator that yields devices instantly.
162160 """
163- responses = scan (
164- timeout , local_ip_address , discover_ip_address , discover_ip_port
165- )
161+ responses = scan (timeout , local_ip_address , discover_ip_address , discover_ip_port )
166162 for resp in responses :
167163 yield gendevice (* resp )
168164
@@ -191,13 +187,12 @@ def setup(ssid: str, password: str, security_mode: int) -> None:
191187 payload [0x85 ] = pass_length # Character length of password
192188 payload [0x86 ] = security_mode # Type of encryption
193189
194- checksum = sum (payload , 0xbeaf ) & 0xffff
195- payload [0x20 ] = checksum & 0xff # Checksum 1 position
190+ checksum = sum (payload , 0xBEAF ) & 0xFFFF
191+ payload [0x20 ] = checksum & 0xFF # Checksum 1 position
196192 payload [0x21 ] = checksum >> 8 # Checksum 2 position
197193
198- sock = socket .socket (socket .AF_INET , # Internet
199- socket .SOCK_DGRAM ) # UDP
194+ sock = socket .socket (socket .AF_INET , socket .SOCK_DGRAM ) # Internet # UDP
200195 sock .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
201196 sock .setsockopt (socket .SOL_SOCKET , socket .SO_BROADCAST , 1 )
202- sock .sendto (payload , (' 255.255.255.255' , 80 ))
197+ sock .sendto (payload , (" 255.255.255.255" , 80 ))
203198 sock .close ()
0 commit comments