8000 Add WallSwitch device type and autogenerate supported devices docs (#… · python-kasa/python-kasa@fcad0d2 · GitHub
[go: up one dir, main page]

Skip to content

Commit fcad0d2

Browse files
authored
Add WallSwitch device type and autogenerate supported devices docs (#758)
1 parent 0306e05 commit fcad0d2

21 files changed

+714
-211
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ jobs:
2626
run: |
2727
python -m pip install --upgrade pip poetry
2828
poetry install
29+
- name: "Check supported device md files are up to date"
30+
run: |
31+
poetry run pre-commit run generate-supported --all-files
2932
- name: "Linting and code formating (ruff)"
3033
run: |
3134
poetry run pre-commit run ruff --all-files
@@ -47,9 +50,6 @@ jobs:
4750
- name: "Run check-ast"
4851
run: |
4952
poetry run pre-commit run check-ast --all-files
50-
- name: "Check README for supported models"
51-
run: |
52-
poetry run python -m devtools.check_readme_vs_fixtures
5353
5454
5555
tests:

.pre-commit-config.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,14 @@ repos:
2727
hooks:
2828
- id: doc8
2929
additional_dependencies: [tomli]
30+
31+
- repo: local
32+
hooks:
33+
- id: generate-supported
34+
name: Generate supported devices
35+
description: This hook generates the supported device sections of README.md and SUPPORTED.md
36+
entry: devtools/generate_supported.py
37+
language: system # Required or pre-commit creates a new venv
38+
verbose: true # Show output on success
39+
types: [json]
40+
pass_filenames: false # passing filenames causes the hook to run in batches against all-files

README.md

Lines changed: 20 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -220,120 +220,32 @@ Note, that this works currently only on kasa-branded devices which use port 9999
220220

221221
## Supported devices
222222

223-
In principle, most kasa-branded devices that are locally controllable using the official Kasa mobile app work with this library.
224-
225-
The following lists the devices that have been manually verified to work.
226-
**If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).**
227-
228-
### Plugs
229-
230-
* HS100
231-
* HS103
232-
* HS105
233-
* HS107
234-
* HS110
235-
* KP100
236-
* KP105
237-
* KP115
238-
* KP125
239-
* KP125M [See note below](#newer-kasa-branded-devices)
240-
* KP401
241-
* EP10
242-
* EP25 [See note below](#newer-kasa-branded-devices)
243-
244-
### Power Strips
245-
246-
* EP40
247-
* HS300
248-
* KP303
249-
* KP200 (in wall)
250-
* KP400
251-
* KP405 (dimmer)
252-
253-
### Wall switches
254-
255-
* ES20M
256-
* HS200
257-
* HS210
258-
* HS220
259-
* KS200M (partial support, no motion, no daylight detection)
260-
* KS220M (partial support, no motion, no daylight detection)
261-
* KS230
223+
The following devices have been tested and confirmed as working. If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).
262224

263-
### Bulbs
264-
265-
* LB100
266-
* LB110
267-
* LB120
268-
* LB130
269-
* LB230
270-
* KL50
271-
* KL60
272-
* KL110
273-
* KL120
274-
* KL125
275-
* KL130
276-
* KL135
277-
278-
### Light strips
279-
280-
* KL400L5
281-
* KL420L5
282-
* KL430
283-
284-
### Tapo branded devices
285-
286-
The library has recently added a limited supported for devices that carry Tapo branding.
287-
288-
At the moment, the following devices have been confirmed to work:
289-
290-
#### Plugs
291-
292-
* Tapo P110
293-
* Tapo P125M
294-
* Tapo P135 (dimming not yet supported)
295-
* Tapo TP15
296-
297-
#### Bulbs
298-
299-
* Tapo L510B
300-
* Tapo L510E
301-
* Tapo L530E
302-
303-
#### Light strips
304-
305-
* Tapo L900-5
306-
* Tapo L900-10
307-
* Tapo L920-5
308-
* Tapo L930-5
309-
310-
#### Wall switches
311-
312-
* Tapo S500D
313-
* Tapo S505
314-
315-
#### Power strips
316-
317-
* Tapo P300
318-
* Tapo TP25
319-
320-
#### Hubs
321-
322-
* Tapo H100
225+
<!--Do not edit text inside the SUPPORTED section below -->
226+
<!--SUPPORTED_START-->
227+
### Supported Kasa devices
323228

324-
### Newer Kasa branded devices
229+
- **Plugs**: EP10, EP25<sup>\*</sup>, HS100<sup>\*\*</sup>, HS103, HS105, HS110, KP100, KP105, KP115, KP125, KP125M<sup>\*</sup>, KP401
230+
- **Power Strips**: EP40, HS107, HS300, KP200, KP303, KP400
231+
- **Wall Switches**: ES20M, HS200, HS210, HS220, KP405, KS200M, KS205<sup>\*</sup>, KS220M, KS225<sup>\*</sup>, KS230
232+
- **Bulbs**: KL110, KL120, KL125, KL130, KL135, KL50, KL60, LB100, LB110, LB120, LB130
233+
- **Light Strips**: KL400L5, KL420L5, KL430
325234

326-
Some newer hardware versions of Kasa branded devices are now using the same protocol as
327-
Tapo branded devices. Support for these devices is currently limited as per TAPO branded
328-
devices:
235+
### Supported Tapo<sup>\*</sup> devices
329236

330-
* Kasa EP25 (plug) hw_version 2.6
331-
* Kasa KP125M (plug)
332-
* Kasa KS205 (Wifi/Matter Wall Switch)
333-
* Kasa KS225 (Wifi/Matter Wall Dimmer Switch)
237+
- **Plugs**: P100, P110, P125M, P135, TP15
238+
- **Power Strips**: P300, TP25
239+
- **Wall Switches**: S500D, S505
240+
- **Bulbs**: L510B, L510E, L530E
241+
- **Light Strips**: L900-10, L900-5, L920-5, L930-5
242+
- **Hubs**: H100
334243

244+
<!--SUPPORTED_END-->
245+
<sup>*</sup>&nbsp; Model requires authentication<br>
246+
<sup>**</sup> Newer versions require authentication
335247

336-
**If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).**
248+
See [supported devices in our documentation](SUPPORTED.md) for more detailed information about tested hardware and software versions.
337249

338250
## Resources
339251

SUPPORTED.md

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
# Supported devices
2+
3+
The following devices have been tested and confirmed as working. If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).
4+
5+
<!--Do not edit text inside the SUPPORTED section below -->
6+
<!--SUPPORTED_START-->
7+
## Kasa devices
8+
9+
Some newer Kasa devices require authentication. These are marked with <sup>*</sup> in the list below.
10+
11+
### Plugs
12+
13+
- **EP10**
14+
- Hardware: 1.0 (US) / Firmware: 1.0.2
15+
- **EP25**
16+
- Hardware: 2.6 (US) / Firmware: 1.0.1<sup>\*</sup>
17+
- Hardware: 2.6 (US) / Firmware: 1.0.2<sup>\*</sup>
18+
- **HS100**
19+
- Hardware: 1.0 (UK) / Firmware: 1.2.6
20+
- Hardware: 4.1 (UK) / Firmware: 1.1.0<sup>\*</sup>
21+
- Hardware: 1.0 (US) / Firmware: 1.2.5
22+
- Hardware: 2.0 (US) / Firmware: 1.5.6
23+
- **HS103**
24+
- Hardware: 1.0 (US) / Firmware: 1.5.7
25+
- Hardware: 2.1 (US) / Firmware: 1.1.2
26+
- Hardware: 2.1 (US) / Firmware: 1.1.4
27+
- **HS105**
28+
- Hardware: 1.0 (US) / Firmware: 1.2.9
29+
- Hardware: 1.0 (US) / Firmware: 1.5.6
30+
- **HS110**
31+
- Hardware: 1.0 (EU) / Firmware: 1.2.5
32+
- Hardware: 2.0 (EU) / Firmware: 1.5.2
33+
- Hardware: 4.0 (EU) / Firmware: 1.0.4
34+
- Hardware: 1.0 (US) / Firmware: 1.0.8
35+
- **KP100**
36+
- Hardware: 3.0 (US) / Firmware: 1.0.1
37+
- **KP105**
38+
- Hardware: 1.0 (UK) / Firmware: 1.0.5
39+
- Hardware: 1.0 (UK) / Firmware: 1.0.7
40+
- **KP115**
41+
- Hardware: 1.0 (EU) / Firmware: 1.0.16
42+
- Hardware: 1.0 (US) / Firmware: 1.0.17
43+
- Hardware: 1.0 (US) / Firmware: 1.0.21
44+
- **KP125**
45+
- Hardware: 1.0 (US) / Firmware: 1.0.6
46+
- **KP125M**
47+
- Hardware: 1.0 (US) / Firmware: 1.1.3<sup>\*</sup>
48+
- **KP401**
49+
- Hardware: 1.0 (US) / Firmware: 1.0.0
50+
51+
### Power Strips
52+
53+
- **EP40**
54+
- Hardware: 1.0 (US) / Firmware: 1.0.2
55+
- **HS107**
56+
- Hardware: 1.0 (US) / Firmware: 1.0.8
57+
- **HS300**
58+
- Hardware: 1.0 (US) / Firmware: 1.0.10
59+
- Hardware: 2.0 (US) / Firmware: 1.0.12
60+
- Hardware: 2.0 (US) / Firmware: 1.0.3
61+
- **KP200**
62+
- Hardware: 3.0 (US) / Firmware: 1.0.3
63+
- **KP303**
64+
- Hardware: 1.0 (UK) / Firmware: 1.0.3
65+
- Hardware: 2.0 (US) / Firmware: 1.0.3
66+
- **KP400**
67+
- Hardware: 1.0 (US) / Firmware: 1.0.10
68+
- Hardware: 2.0 (US) / Firmware: 1.0.6
69+
70+
### Wall Switches
71+
72+
- **ES20M**
73+
- Hardware: 1.0 (US) / Firmware: 1.0.8
74+
- **HS200**
75+
- Hardware: 1.0 (US) / Firmware: 1.1.0
76+
- Hardware: 2.0 (US) / Firmware: 1.5.7
77+
- Hardware: 5.0 (US) / Firmware: 1.0.2
78+
- **HS210**
79+
- Hardware: 1.0 (US) / Firmware: 1.5.8
80+
- **HS220**
81+
- Hardware: 1.0 (US) / Firmware: 1.5.7
82+
- Hardware: 1.0 (US) / Firmware: 1.5.7
83+
- Hardware: 2.0 (US) / Firmware: 1.0.3
84+
- **KP405**
85+
- Hardware: 1.0 (US) / Firmware: 1.0.5
86+
- **KS200M**
87+
- Hardware: 1.0 (US) / Firmware: 1.0.8
88+
- **KS205**
89+
- Hardware: 1.0 (US) / Firmware: 1.0.2<sup>\*</sup>
90+
- **KS220M**
91+
- Hardware: 1.0 (US) / Firmware: 1.0.4
92+
- **KS225**
93+
- Hardware: 1.0 (US) / Firmware: 1.0.2<sup>\*</sup>
94+
- **KS230**
95+
- Hardware: 1.0 (US) / Firmware: 1.0.14
96+
97+
### Bulbs
98+
99+
- **KL110**
100+
- Hardware: 1.0 (US) / Firmware: 1.8.11
101+
- **KL120**
102+
- Hardware: 1.0 (US) / Firmware: 1.8.6
103+
- **KL125**
104+
- Hardware: 1.20 (US) / Firmware: 1.0.5
105+
- Hardware: 2.0 (US) / Firmware: 1.0.7
106+
- Hardware: 4.0 (US) / Firmware: 1.0.5
107+
- **KL130**
108+
- Hardware: 1.0 (EU) / Firmware: 1.8.8
109+
- Hardware: 1.0 (US) / Firmware: 1.8.11
110+
- **KL135**
111+
- Hardware: 1.0 (US) / Firmware: 1.0.6
112+
- **KL50**
113+
- Hardware: 1.0 (US) / Firmware: 1.1.13
114+
- **KL60**
115+
- Hardware: 1.0 (UN) / Firmware: 1.1.4
116+
- Hardware: 1.0 (US) / Firmware: 1.1.13
117+
- **LB100**
118+
- Hardware: 1.0 (US) / Firmware: 1.4.3
119+
- **LB110**
120+
- Hardware: 1.0 (US) / Firmware: 1.8.11
121+
- **LB120**
122+
- Hardware: 1.0 (US) / Firmware: 1.1.0
123+
- **LB130**
124+
- Hardware: 1.0 (US) / Firmware: 1.6.0
125+
126+
### Light Strips
127+
128+
- **KL400L5**
129+
- Hardware: 1.0 (US) / Firmware: 1.0.5
130+
- Hardware: 1.0 (US) / Firmware: 1.0.8
131+
- **KL420L5**
132+
- Hardware: 1.0 (US) / Firmware: 1.0.2
133+
- **KL430**
134+
- Hardware: 2.0 (UN) / Firmware: 1.0.8
135+
- Hardware: 1.0 (US) / Firmware: 1.0.10
136+
- Hardware: 2.0 (US) / Firmware: 1.0.11
137+
- Hardware: 2.0 (US) / Firmware: 1.0.8
138+
- Hardware: 2.0 (US) / Firmware: 1.0.9
139+
140+
141+
## Tapo devices
142+
143+
All Tapo devices require authentication.
144+
145+
### Plugs
146+
147+
- **P100**
148+
- Hardware: 1.0.0 / Firmware: 1.1.3
149+
- Hardware: 1.0.0 / Firmware: 1.3.7
150+
- **P110**
151+
- Hardware: 1.0 (EU) / Firmware: 1.0.7
152+
- Hardware: 1.0 (EU) / Firmware: 1.2.3
153+
- Hardware: 1.0 (UK) / Firmware: 1.3.0
154+
- **P125M**
155+
- Hardware: 1.0 (US) / Firmware: 1.1.0
156+
- **P135**
157+
- Hardware: 1.0 (US) / Firmware: 1.0.5
158+
- **TP15**
159+
- Hardware: 1.0 (US) / Firmware: 1.0.3
160+
161+
### Power Strips
162+
163+
- **P300**
164+
- Hardware: 1.0 (EU) / Firmware: 1.0.13
165+
- Hardware: 1.0 (EU) / Firmware: 1.0.7
166+
- **TP25**
167+
- Hardware: 1.0 (US) / Firmware: 1.0.2
168+
169+
### Wall Switches
170+
171+
- **S500D**
172+
- Hardware: 1.0 (US) / Firmware: 1.0.5
173+
- **S505**
174+
- Hardware: 1.0 (US) / Firmware: 1.0.2
175+
176+
### Bulbs
177+
178+
- **L510B**
179+
- Hardware: 3.0 (EU) / Firmware: 1.0.5
180+
- **L510E**
181+
- Hardware: 3.0 (US) / Firmware: 1.0.5
182+
- Hardware: 3.0 (US) / Firmware: 1.1.2
183+
- **L530E**
184+
- Hardware: 3.0 (EU) / Firmware: 1.0.6
185+
- Hardware: 3.0 (EU) / Firmware: 1.1.0
186+
- Hardware: 3.0 (EU) / Firmware: 1.1.6
187+
- Hardware: 2.0 (US) / Firmware: 1.1.0
188+
189+
### Light Strips
190+
191+
- **L900-10**
192+
- Hardware: 1.0 (EU) / Firmware: 1.0.17
193+
- Hardware: 1.0 (US) / Firmware: 1.0.11
194+
- **L900-5**
195+
- Hardware: 1.0 (EU) / Firmware: 1.0.17
196+
- Hardware: 1.0 (EU) / Firmware: 1.1.0
197+
- **L920-5**
198+
- Hardware: 1.0 (US) / Firmware: 1.1.0
199+
- Hardware: 1.0 (US) / Firmware: 1.1.3
200+
- **L930-5**
201+
- Hardware: 1.0 (US) / Firmware: 1.1.2
202+
203+
### Hubs
204+
205+
- **H100**
206+
- Hardware: 1.0 (EU) / Firmware: 1.2.3
207+
- Hardware: 1.0 (EU) / Firmware: 1.5.5
208+
209+
210+
<!--SUPPORTED_END-->

0 commit comments

Comments
 (0)
0