homebridge-kasa-python 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +398 -0
- package/config.schema.json +214 -0
- package/dist/accessoryInformation.d.ts +3 -0
- package/dist/accessoryInformation.js +24 -0
- package/dist/accessoryInformation.js.map +1 -0
- package/dist/config.d.ts +186 -0
- package/dist/config.js +154 -0
- package/dist/config.js.map +1 -0
- package/dist/devices/create.d.ts +10 -0
- package/dist/devices/create.js +20 -0
- package/dist/devices/create.js.map +1 -0
- package/dist/devices/deviceManager.d.ts +15 -0
- package/dist/devices/deviceManager.js +157 -0
- package/dist/devices/deviceManager.js.map +1 -0
- package/dist/devices/homekitPlug.d.ts +23 -0
- package/dist/devices/homekitPlug.js +101 -0
- package/dist/devices/homekitPlug.js.map +1 -0
- package/dist/devices/homekitPowerstrip.d.ts +23 -0
- package/dist/devices/homekitPowerstrip.js +103 -0
- package/dist/devices/homekitPowerstrip.js.map +1 -0
- package/dist/devices/index.d.ts +36 -0
- package/dist/devices/index.js +118 -0
- package/dist/devices/index.js.map +1 -0
- package/dist/devices/kasaDevices.d.ts +48 -0
- package/dist/devices/kasaDevices.js +2 -0
- package/dist/devices/kasaDevices.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/platform.d.ts +57 -0
- package/dist/platform.js +182 -0
- package/dist/platform.js.map +1 -0
- package/dist/python/discover.py +38 -0
- package/dist/python/getSysInfo.py +39 -0
- package/dist/python/pythonChecker.d.ts +31 -0
- package/dist/python/pythonChecker.js +195 -0
- package/dist/python/pythonChecker.js.map +1 -0
- package/dist/python/pythonHome.py +3 -0
- package/dist/python/turnOff.py +20 -0
- package/dist/python/turnOffChild.py +22 -0
- package/dist/python/turnOn.py +20 -0
- package/dist/python/turnOnChild.py +22 -0
- package/dist/settings.d.ts +2 -0
- package/dist/settings.js +3 -0
- package/dist/settings.js.map +1 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.js +172 -0
- package/dist/utils.js.map +1 -0
- package/package.json +79 -0
- package/requirements.txt +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Robert Louis Morren, Jr.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
<p align="center" style="text-align:center;">
|
|
2
|
+
|
|
3
|
+
<img src="https://github.com/homebridge/branding/raw/latest/logos/homebridge-wordmark-logo-vertical.png" width="150" style="display:block; margin:auto;">
|
|
4
|
+
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<span align="center">
|
|
8
|
+
|
|
9
|
+
# Homebridge Kasa Python Plug-In
|
|
10
|
+
|
|
11
|
+
</span>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://github.com/ZeliardM/homebridge-kasa-python/blob/latest/LICENSE"><img src="https://badgen.net/badge/license/MIT" alt="mit license"></a>
|
|
15
|
+
<a href="https://www.npmjs.com/package/homebridge-kasa-python"><img src="https://img.shields.io/npm/v/homebridge-kasa-python" alt="npm version"></a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/homebridge-kasa-python"><img src="https://badgen.net/npm/dt/homebridge-kasa-python" alt="npm downloads total"></a>
|
|
17
|
+
<a href="https://www.npmjs.com/package/homebridge-kasa-python"><img src="https://badgen.net/npm/dm/homebridge-kasa-python" alt="npm downloads monthly"></a>
|
|
18
|
+
<a href="https://www.paypal.me/ZeliardM/USD/"><img src="https://badgen.net/badge/donate/paypal/E69138" alt="donate"></a>
|
|
19
|
+
<a href="https://pypi.org/project/python-kasa/"><img src="https://img.shields.io/badge/Python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue" alt="PyPI pyversions"></a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
This is a [Homebridge](https://github.com/homebridge/homebridge) plug-in based on the Python-Kasa API Library to interact with TP-Link Kasa Devices.
|
|
23
|
+
|
|
24
|
+
This plug-in automatically discovers your TP-Link Kasa Devices on your network and configures them to be used in HomeKit.
|
|
25
|
+
|
|
26
|
+
Automatic Discovery is possible only for some devices, some newer devices require the Username and Password for your TP-Link Kasa Cloud Account.
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
- Automatically discover TP-Link Kasa Devices on your network.
|
|
31
|
+
- Change Device States for Plugs, Change Device State and Supports Dimming for Switches, Change Device State, and Supports Hue, Saturation, and Value (HSV), Color, and Temperature Adjustments for Bulbs that Support those options.
|
|
32
|
+
- Supported Devices are listed below, Devices with an asterisks ('*') next to the specific firmware will require the Username and Password for your TP-Link Kasa Cloud Account to connect and function.
|
|
33
|
+
<div align="center">
|
|
34
|
+
<table style="border-collapse: collapse; border: 1px solid black;">
|
|
35
|
+
<thead>
|
|
36
|
+
<tr>
|
|
37
|
+
<th align="center" style="border: 1px solid black; padding: 8px;">Category</th>
|
|
38
|
+
<th align="center" style="border: 1px solid black; padding: 8px;">Model</th>
|
|
39
|
+
<th align="center" style="border: 1px solid black; padding: 8px;">Hardware Version</th>
|
|
40
|
+
<th align="center" style="border: 1px solid black; padding: 8px;">Firmware Version</th>
|
|
41
|
+
</tr>
|
|
42
|
+
</thead>
|
|
43
|
+
<tbody>
|
|
44
|
+
<tr>
|
|
45
|
+
<td align="center" rowspan="23" style="border: 1px solid black; padding: 8px;">Plugs</td>
|
|
46
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">EP10</td>
|
|
47
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
48
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2</td>
|
|
49
|
+
</tr>
|
|
50
|
+
<tr>
|
|
51
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">EP25</td>
|
|
52
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">2.6 (US)</td>
|
|
53
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.1*</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr>
|
|
56
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2*</td>
|
|
57
|
+
</tr>
|
|
58
|
+
<tr>
|
|
59
|
+
<td align="center" rowspan="4" style="border: 1px solid black; padding: 8px;">HS100</td>
|
|
60
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (UK)</td>
|
|
61
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.2.6</td>
|
|
62
|
+
</tr>
|
|
63
|
+
<tr>
|
|
64
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">4.1 (UK)</td>
|
|
65
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.0*</td>
|
|
66
|
+
</tr>
|
|
67
|
+
<tr>
|
|
68
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
69
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.2.5</td>
|
|
70
|
+
</tr>
|
|
71
|
+
<tr>
|
|
72
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
73
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.6</td>
|
|
74
|
+
</tr>
|
|
75
|
+
<tr>
|
|
76
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">HS103</td>
|
|
77
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
78
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.7</td>
|
|
79
|
+
</tr>
|
|
80
|
+
<tr>
|
|
81
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">2.1 (US)</td>
|
|
82
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.2</td>
|
|
83
|
+
</tr>
|
|
84
|
+
<tr>
|
|
85
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.4</td>
|
|
86
|
+
</tr>
|
|
87
|
+
<tr>
|
|
88
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">HS105</td>
|
|
89
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
90
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.6</td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">HS110</td>
|
|
94
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (EU)</td>
|
|
95
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.2.5</td>
|
|
96
|
+
</tr>
|
|
97
|
+
<tr>
|
|
98
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">4.0 (EU)</td>
|
|
99
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.4</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
102
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
103
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.2.6</td>
|
|
104
|
+
</tr>
|
|
105
|
+
<tr>
|
|
106
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KP100</td>
|
|
107
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">3.0 (US)</td>
|
|
108
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.1</td>
|
|
109
|
+
</tr>
|
|
110
|
+
<tr>
|
|
111
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KP105</td>
|
|
112
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (UK)</td>
|
|
113
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.5</td>
|
|
114
|
+
</tr>
|
|
115
|
+
<tr>
|
|
116
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.7</td>
|
|
117
|
+
</tr>
|
|
118
|
+
<tr>
|
|
119
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">KP115</td>
|
|
120
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (EU)</td>
|
|
121
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.16</td>
|
|
122
|
+
</tr>
|
|
123
|
+
<tr>
|
|
124
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
125
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.17</td>
|
|
126
|
+
</tr>
|
|
127
|
+
<tr>
|
|
128
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.21</td>
|
|
129
|
+
</tr>
|
|
130
|
+
<tr>
|
|
131
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KP125</td>
|
|
132
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
133
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.6</td>
|
|
134
|
+
</tr>
|
|
135
|
+
<tr>
|
|
136
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KP125M</td>
|
|
137
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
138
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.3*</td>
|
|
139
|
+
</tr>
|
|
140
|
+
<tr>
|
|
141
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KP401</td>
|
|
142
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
143
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.0</td>
|
|
144
|
+
</tr>
|
|
145
|
+
<tr>
|
|
146
|
+
<td align="center" rowspan="13" style="border: 1px solid black; padding: 8px;">Power Strips</td>
|
|
147
|
+
<td align="center" rowspan="1" style="border: 1px solid black; padding: 8px;">EP40</td>
|
|
148
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
149
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2</td>
|
|
150
|
+
</tr>
|
|
151
|
+
<tr>
|
|
152
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">HS107</td>
|
|
153
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
154
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.8</td>
|
|
155
|
+
</tr>
|
|
156
|
+
<tr>
|
|
157
|
+
<td align="center" rowspan="4" style="border: 1px solid black; padding: 8px;">HS300</td>
|
|
158
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
159
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.10</td>
|
|
160
|
+
</tr>
|
|
161
|
+
<tr>
|
|
162
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.21</td>
|
|
163
|
+
</tr>
|
|
164
|
+
<tr>
|
|
165
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
166
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.3</td>
|
|
167
|
+
</tr>
|
|
168
|
+
<tr>
|
|
169
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.12</td>
|
|
170
|
+
</tr>
|
|
171
|
+
<tr>
|
|
172
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KP200</td>
|
|
173
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">3.0 (US)</td>
|
|
174
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.3</td>
|
|
175
|
+
</tr>
|
|
176
|
+
<tr>
|
|
177
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KP303</td>
|
|
178
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (UK)</td>
|
|
179
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.3</td>
|
|
180
|
+
</tr>
|
|
181
|
+
<tr>
|
|
182
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
183
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.3</td>
|
|
184
|
+
</tr>
|
|
185
|
+
<tr>
|
|
186
|
+
<td align="center" rowspan="4" style="border: 1px solid black; padding: 8px;">KP400</td>
|
|
187
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
188
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.10</td>
|
|
189
|
+
</tr>
|
|
190
|
+
<tr>
|
|
191
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
192
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.6</td>
|
|
193
|
+
</tr>
|
|
194
|
+
<tr>
|
|
195
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">3.0 (US)</td>
|
|
196
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.3</td>
|
|
197
|
+
</tr>
|
|
198
|
+
<tr>
|
|
199
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.4</td>
|
|
200
|
+
</tr>
|
|
201
|
+
<tr>
|
|
202
|
+
<td align="center" rowspan="19" style="border: 1px solid black; padding: 8px;">Wall Switches</td>
|
|
203
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">ES20M</td>
|
|
204
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
205
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.8</td>
|
|
206
|
+
</tr>
|
|
207
|
+
<tr>
|
|
208
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">HS200</td>
|
|
209
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
210
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.7</td>
|
|
211
|
+
</tr>
|
|
212
|
+
<tr>
|
|
213
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">5.0 (US)</td>
|
|
214
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2</td>
|
|
215
|
+
</tr>
|
|
216
|
+
<tr>
|
|
217
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">HS210</td>
|
|
218
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
219
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.8</td>
|
|
220
|
+
</tr>
|
|
221
|
+
<tr>
|
|
222
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">HS220</td>
|
|
223
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
224
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.7</td>
|
|
225
|
+
</tr>
|
|
226
|
+
<tr>
|
|
227
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
228
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.3</td>
|
|
229
|
+
</tr>
|
|
230
|
+
<tr>
|
|
231
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">3.26 (US)</td>
|
|
232
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.1*</td>
|
|
233
|
+
</tr>
|
|
234
|
+
<tr>
|
|
235
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KP405</td>
|
|
236
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
237
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.5</td>
|
|
238
|
+
</tr>
|
|
239
|
+
<tr>
|
|
240
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.6</td>
|
|
241
|
+
</tr>
|
|
242
|
+
<tr>
|
|
243
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KS200M</td>
|
|
244
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
245
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.8</td>
|
|
246
|
+
</tr>
|
|
247
|
+
<tr>
|
|
248
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.11</td>
|
|
249
|
+
</tr>
|
|
250
|
+
<tr>
|
|
251
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KS205</td>
|
|
252
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
253
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2*</td>
|
|
254
|
+
</tr>
|
|
255
|
+
<tr>
|
|
256
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.0*</td>
|
|
257
|
+
</tr>
|
|
258
|
+
<tr>
|
|
259
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KS220M</td>
|
|
260
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
261
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.4</td>
|
|
262
|
+
</tr>
|
|
263
|
+
<tr>
|
|
264
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KS225</td>
|
|
265
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
266
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2*</td>
|
|
267
|
+
</tr>
|
|
268
|
+
<tr>
|
|
269
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.0*</td>
|
|
270
|
+
</tr>
|
|
271
|
+
<tr>
|
|
272
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KS230</td>
|
|
273
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
274
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.14</td>
|
|
275
|
+
</tr>
|
|
276
|
+
<tr>
|
|
277
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KS240</td>
|
|
278
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
279
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.4*</td>
|
|
280
|
+
</tr>
|
|
281
|
+
<tr>
|
|
282
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.5*</td>
|
|
283
|
+
</tr>
|
|
284
|
+
<tr>
|
|
285
|
+
<td align="center" rowspan="13" style="border: 1px solid black; padding: 8px;">Bulbs</td>
|
|
286
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KL110</td>
|
|
287
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
288
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.8.11</td>
|
|
289
|
+
</tr>
|
|
290
|
+
<tr>
|
|
291
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KL120</td>
|
|
292
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
293
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.8.6</td>
|
|
294
|
+
</tr>
|
|
295
|
+
<tr>
|
|
296
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.8.11</td>
|
|
297
|
+
</tr>
|
|
298
|
+
<tr>
|
|
299
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">KL125</td>
|
|
300
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.20 (US)</td>
|
|
301
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.5</td>
|
|
302
|
+
</tr>
|
|
303
|
+
<tr>
|
|
304
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
305
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.7</td>
|
|
306
|
+
</tr>
|
|
307
|
+
<tr>
|
|
308
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">4.0 (US)</td>
|
|
309
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.5</td>
|
|
310
|
+
</tr>
|
|
311
|
+
<tr>
|
|
312
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KL130</td>
|
|
313
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (EU)</td>
|
|
314
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.8.8</td>
|
|
315
|
+
</tr>
|
|
316
|
+
<tr>
|
|
317
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
318
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.8.11</td>
|
|
319
|
+
</tr>
|
|
320
|
+
<tr>
|
|
321
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KL135</td>
|
|
322
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
323
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.6</td>
|
|
324
|
+
</tr>
|
|
325
|
+
<tr>
|
|
326
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KL50</td>
|
|
327
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
328
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.13</td>
|
|
329
|
+
</tr>
|
|
330
|
+
<tr>
|
|
331
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KL60</td>
|
|
332
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (UN)</td>
|
|
333
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.4</td>
|
|
334
|
+
</tr>
|
|
335
|
+
<tr>
|
|
336
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
337
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.1.13</td>
|
|
338
|
+
</tr>
|
|
339
|
+
<tr>
|
|
340
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">LB110</td>
|
|
341
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
342
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.8.11</td>
|
|
343
|
+
</tr>
|
|
344
|
+
<tr>
|
|
345
|
+
<td align="center" rowspan="8" style="border: 1px solid black; padding: 8px;">Light Strips</td>
|
|
346
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">KL400L5</td>
|
|
347
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
348
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.5</td>
|
|
349
|
+
</tr>
|
|
350
|
+
<tr>
|
|
351
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.8</td>
|
|
352
|
+
</tr>
|
|
353
|
+
<tr>
|
|
354
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KL420L5</td>
|
|
355
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
356
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.2</td>
|
|
357
|
+
</tr>
|
|
358
|
+
<tr>
|
|
359
|
+
<td align="center" rowspan="5" style="border: 1px solid black; padding: 8px;">KL430</td>
|
|
360
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.0 (UN)</td>
|
|
361
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.8</td>
|
|
362
|
+
</tr>
|
|
363
|
+
<tr>
|
|
364
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (US)</td>
|
|
365
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.10</td>
|
|
366
|
+
</tr>
|
|
367
|
+
<tr>
|
|
368
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">2.0 (US)</td>
|
|
369
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.8</td>
|
|
370
|
+
</tr>
|
|
371
|
+
<tr>
|
|
372
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.9</td>
|
|
373
|
+
</tr>
|
|
374
|
+
<tr>
|
|
375
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0.11</td>
|
|
376
|
+
</tr>
|
|
377
|
+
<tr>
|
|
378
|
+
<td align="center" rowspan="1" style="border: 1px solid black; padding: 8px;">Hubs</td>
|
|
379
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">KH100</td>
|
|
380
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (UK)</td>
|
|
381
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.5.6*</td>
|
|
382
|
+
</tr>
|
|
383
|
+
<tr>
|
|
384
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">Hub-Connected Devices</td>
|
|
385
|
+
<td align="center" rowspan="3" style="border: 1px solid black; padding: 8px;">KE100</td>
|
|
386
|
+
<td align="center" rowspan="2" style="border: 1px solid black; padding: 8px;">1.0 (EU)</td>
|
|
387
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.4.0*</td>
|
|
388
|
+
</tr>
|
|
389
|
+
<tr>
|
|
390
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.8.0*</td>
|
|
391
|
+
</tr>
|
|
392
|
+
<tr>
|
|
393
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">1.0 (UK)</td>
|
|
394
|
+
<td align="center" style="border: 1px solid black; padding: 8px;">2.8.0*</td>
|
|
395
|
+
</tr>
|
|
396
|
+
</tbody>
|
|
397
|
+
</table>
|
|
398
|
+
</div>
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pluginAlias": "KasaPython",
|
|
3
|
+
"pluginType": "platform",
|
|
4
|
+
"singular": true,
|
|
5
|
+
"headerDisplay": "Kasa Python Plugin.<p>Most users do not require configuration and can just click \"Save\" to get started. See [README](https://github.com/ZeliardM/homebridge-kasa-python/blob/master/README.md) for more information.</p>",
|
|
6
|
+
"footerDisplay": "",
|
|
7
|
+
"schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"name": {
|
|
11
|
+
"title": "Name",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"default": "KasaPython",
|
|
15
|
+
"minLength": 1
|
|
16
|
+
},
|
|
17
|
+
"username": {
|
|
18
|
+
"title": "Username",
|
|
19
|
+
"type": "string",
|
|
20
|
+
"required": false,
|
|
21
|
+
"description": "Username for the Kasa account. Required for cloud devices.",
|
|
22
|
+
"placeholder": "Username",
|
|
23
|
+
"minLength": 1
|
|
24
|
+
},
|
|
25
|
+
"password": {
|
|
26
|
+
"title": "Password",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"required": false,
|
|
29
|
+
"description": "Password for the Kasa account. Required for cloud devices.",
|
|
30
|
+
"placeholder": "Password",
|
|
31
|
+
"minLength": 1
|
|
32
|
+
},
|
|
33
|
+
"powerStrip": {
|
|
34
|
+
"title": "Create Multi-Outlet Devices as a Power Strip",
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"required": false,
|
|
37
|
+
"description": "Enable to create a single power strip accessory with multiple outlets, used for models HS107, KP200, HS300, KP303, KP400, and EP40. Default: false",
|
|
38
|
+
"default": false
|
|
39
|
+
},
|
|
40
|
+
"discoveryPort": {
|
|
41
|
+
"title": "Port",
|
|
42
|
+
"type": "number",
|
|
43
|
+
"required": false,
|
|
44
|
+
"description": "Port to bind UDP socket for discovery. If port is not specified or is 0, the operating system will attempt to bind to a random port. Default: 0",
|
|
45
|
+
"placeholder": "0"
|
|
46
|
+
},
|
|
47
|
+
"broadcastAddress": {
|
|
48
|
+
"title": "Broadcast Address",
|
|
49
|
+
"type": "string",
|
|
50
|
+
"required": false,
|
|
51
|
+
"description": "Broadcast Address. If discovery is not working tweak to match your subnet, eg: 192.168.1.255",
|
|
52
|
+
"placeholder": "255.255.255.255",
|
|
53
|
+
"format": "ipv4"
|
|
54
|
+
},
|
|
55
|
+
"pollingInterval": {
|
|
56
|
+
"title": "Polling Interval (seconds)",
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"required": false,
|
|
59
|
+
"description": "How often to check device status in the background (seconds)",
|
|
60
|
+
"placeholder": "10"
|
|
61
|
+
},
|
|
62
|
+
"includeMacAddresses": {
|
|
63
|
+
"title": "Include MAC Addresses",
|
|
64
|
+
"description": "Allow-list of MAC Addresses to include. If specified will ignore other devices. Supports glob-style patterns",
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": {
|
|
67
|
+
"title": "MAC Address",
|
|
68
|
+
"type": "string",
|
|
69
|
+
"required": true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"excludeMacAddresses": {
|
|
73
|
+
"title": "Exclude MAC Addresses",
|
|
74
|
+
"description": "Deny-list of MAC Addresses to exclude. Supports glob-style patterns",
|
|
75
|
+
"type": "array",
|
|
76
|
+
"items": {
|
|
77
|
+
"title": "MAC Address",
|
|
78
|
+
"type": "string",
|
|
79
|
+
"required": true
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"devices": {
|
|
83
|
+
"title": "Manual List of Devices",
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": {
|
|
86
|
+
"title": "Device",
|
|
87
|
+
"type": "object",
|
|
88
|
+
"properties": {
|
|
89
|
+
"host": {
|
|
90
|
+
"title": "Host",
|
|
91
|
+
"type": "string",
|
|
92
|
+
"required": true,
|
|
93
|
+
"placeholder": "192.168.1.1",
|
|
94
|
+
"format": "ipv4"
|
|
95
|
+
},
|
|
96
|
+
"port": {
|
|
97
|
+
"title": "Port",
|
|
98
|
+
"type": "string",
|
|
99
|
+
"required": false,
|
|
100
|
+
"placeholder": "9999"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"forceVenvRecreate": {
|
|
106
|
+
"title": "Force Venv Recreation",
|
|
107
|
+
"type": "boolean",
|
|
108
|
+
"required": true,
|
|
109
|
+
"description": "Set this to force to recreate the virtual python environment with the next restart of the plugin.",
|
|
110
|
+
"default": false
|
|
111
|
+
},
|
|
112
|
+
"pythonExecutable": {
|
|
113
|
+
"title": "Python Executable",
|
|
114
|
+
"type": "string",
|
|
115
|
+
"required": false,
|
|
116
|
+
"description": "Here you can specify a path that points to a python executable. The plugin uses the systems default python as default. Setting a specific python executable here may be required if your systems default python version is too current for the plugin.",
|
|
117
|
+
"placeholder": "/path/to/python3"
|
|
118
|
+
},
|
|
119
|
+
"timeout": {
|
|
120
|
+
"title": "Timeout (seconds)",
|
|
121
|
+
"type": "integer",
|
|
122
|
+
"required": false,
|
|
123
|
+
"description": "Communication Timeout (seconds)",
|
|
124
|
+
"placeholder": "15"
|
|
125
|
+
},
|
|
126
|
+
"waitTimeUpdate": {
|
|
127
|
+
"title": "Wait Time Update (milliseconds)",
|
|
128
|
+
"type": "integer",
|
|
129
|
+
"required": false,
|
|
130
|
+
"description": "The time to wait to combine similar commands for a device before sending a command to a device (milliseconds). Default: 100.",
|
|
131
|
+
"placeholder": "100"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"layout": [
|
|
136
|
+
"name",
|
|
137
|
+
"username",
|
|
138
|
+
"password",
|
|
139
|
+
{
|
|
140
|
+
"type": "help",
|
|
141
|
+
"helpvalue": "Username and Password will be required for specific devices only."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "fieldset",
|
|
145
|
+
"title": "HomeKit (Optional)",
|
|
146
|
+
"description": "Customize how devices are exposed in HomeKit",
|
|
147
|
+
"expandable": true,
|
|
148
|
+
"items": [
|
|
149
|
+
"powerStrip"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"type": "fieldset",
|
|
154
|
+
"title": "Device Discovery (Optional)",
|
|
155
|
+
"description": "Customize device discovery",
|
|
156
|
+
"expandable": true,
|
|
157
|
+
"items": [
|
|
158
|
+
"broadcastAddress",
|
|
159
|
+
"pollingInterval",
|
|
160
|
+
"discoveryPort",
|
|
161
|
+
{
|
|
162
|
+
"key": "includeMacAddresses",
|
|
163
|
+
"type": "array",
|
|
164
|
+
"buttonText": "Add MAC Address",
|
|
165
|
+
"items": {
|
|
166
|
+
"title": "Include MAC Address",
|
|
167
|
+
"type": "string",
|
|
168
|
+
"required": true
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"key": "excludeMacAddresses",
|
|
173
|
+
"type": "array",
|
|
174
|
+
"buttonText": "Add MAC Address",
|
|
175
|
+
"items": {
|
|
176
|
+
"title": "Exclude MAC Address",
|
|
177
|
+
"type": "string",
|
|
178
|
+
"required": true
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"type": "fieldset",
|
|
183
|
+
"title": "Manual Discovery",
|
|
184
|
+
"description": "If automatic discovery is not working, try this.",
|
|
185
|
+
"expandable": true,
|
|
186
|
+
"items": [
|
|
187
|
+
{
|
|
188
|
+
"key": "devices",
|
|
189
|
+
"type": "array",
|
|
190
|
+
"buttonText": "Add Device",
|
|
191
|
+
"items": ["devices[].host", "devices[].port"]
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "help",
|
|
195
|
+
"helpvalue": "Before resorting to manually specifying devices, try setting the broadcast address and check your router/switch/firewall configuration. You must assign static IP addresses to your devices to use this configuration."
|
|
196
|
+
}
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"type": "fieldset",
|
|
203
|
+
"title": "Advanced Settings (Optional)",
|
|
204
|
+
"description": "Don't change these, unless you understand what you're doing.",
|
|
205
|
+
"expandable": true,
|
|
206
|
+
"items": [
|
|
207
|
+
"pythonExecutable",
|
|
208
|
+
"forceVenvRecreate",
|
|
209
|
+
"timeout",
|
|
210
|
+
"waitTimeUpdate"
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
}
|