diff --git a/README.md b/README.md
index 13ceebe5..f59f3677 100644
--- a/README.md
+++ b/README.md
@@ -182,15 +182,15 @@ The following devices have been tested and confirmed as working. If your device
### Supported Kasa devices
-- **Plugs**: EP10, EP25\*, HS100\*\*, HS103, HS105, HS110, KP100, KP105, KP115, KP125, KP125M\*, KP401
-- **Power Strips**: EP40, EP40M\*, HS107, HS300, KP200, KP303, KP400
-- **Wall Switches**: ES20M, HS200\*\*, HS210, HS220\*\*, KP405, KS200M, KS205\*, KS220, KS220M, KS225\*, KS230, KS240\*
+- **Plugs**: EP10, EP25[^1], HS100[^2], HS103, HS105, HS110, KP100, KP105, KP115, KP125, KP125M[^1], KP401
+- **Power Strips**: EP40, EP40M[^1], HS107, HS300, KP200, KP303, KP400
+- **Wall Switches**: ES20M, HS200[^2], HS210, HS220[^2], KP405, KS200M, KS205[^1], KS220, KS220M, KS225[^1], KS230, KS240[^1]
- **Bulbs**: KL110, KL120, KL125, KL130, KL135, KL50, KL60, LB110
- **Light Strips**: KL400L5, KL420L5, KL430
-- **Hubs**: KH100\*
-- **Hub-Connected Devices\*\*\***: KE100\*
+- **Hubs**: KH100[^1]
+- **Hub-Connected Devices[^3]**: KE100[^1]
-### Supported Tapo\* devices
+### Supported Tapo[^1] devices
- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP15
- **Power Strips**: P300, P304M, TP25
@@ -199,12 +199,12 @@ The following devices have been tested and confirmed as working. If your device
- **Light Strips**: L900-10, L900-5, L920-5, L930-5
- **Cameras**: C210, TC65
- **Hubs**: H100, H200
-- **Hub-Connected Devices\*\*\***: S200B, S200D, T100, T110, T300, T310, T315
+- **Hub-Connected Devices[^3]**: S200B, S200D, T100, T110, T300, T310, T315
-\* Model requires authentication
-\*\* Newer versions require authentication
-\*\*\* Devices may work across TAPO/KASA branded hubs
+[^1]: Model requires authentication
+[^2]: Newer versions require authentication
+[^3]: Devices may work across TAPO/KASA branded hubs
See [supported devices in our documentation](SUPPORTED.md) for more detailed information about tested hardware and software versions.
diff --git a/SUPPORTED.md b/SUPPORTED.md
index ec0c1d5e..034372b0 100644
--- a/SUPPORTED.md
+++ b/SUPPORTED.md
@@ -10,18 +10,18 @@ The following devices have been tested and confirmed as working. If your device
## Kasa devices
-Some newer Kasa devices require authentication. These are marked with * in the list below.
Hub-Connected Devices may work across TAPO/KASA branded hubs even if they don't work across the native apps.
+Some newer Kasa devices require authentication. These are marked with [^1] in the list below.
Hub-Connected Devices may work across TAPO/KASA branded hubs even if they don't work across the native apps.
### Plugs
- **EP10**
- Hardware: 1.0 (US) / Firmware: 1.0.2
- **EP25**
- - Hardware: 2.6 (US) / Firmware: 1.0.1\*
- - Hardware: 2.6 (US) / Firmware: 1.0.2\*
+ - Hardware: 2.6 (US) / Firmware: 1.0.1[^1]
+ - Hardware: 2.6 (US) / Firmware: 1.0.2[^1]
- **HS100**
- Hardware: 1.0 (UK) / Firmware: 1.2.6
- - Hardware: 4.1 (UK) / Firmware: 1.1.0\*
+ - Hardware: 4.1 (UK) / Firmware: 1.1.0[^1]
- Hardware: 1.0 (US) / Firmware: 1.2.5
- Hardware: 2.0 (US) / Firmware: 1.5.6
- **HS103**
@@ -46,8 +46,8 @@ Some newer Kasa devices require authentication. These are marked with *\*
- - Hardware: 1.0 (US) / Firmware: 1.2.3\*
+ - Hardware: 1.0 (US) / Firmware: 1.1.3[^1]
+ - Hardware: 1.0 (US) / Firmware: 1.2.3[^1]
- **KP401**
- Hardware: 1.0 (US) / Firmware: 1.0.0
@@ -56,7 +56,7 @@ Some newer Kasa devices require authentication. These are marked with *\*
+ - Hardware: 1.0 (US) / Firmware: 1.1.0[^1]
- **HS107**
- Hardware: 1.0 (US) / Firmware: 1.0.8
- **HS300**
@@ -86,14 +86,14 @@ Some newer Kasa devices require authentication. These are marked with *\*
+ - Hardware: 5.26 (US) / Firmware: 1.0.3[^1]
- **HS210**
- Hardware: 1.0 (US) / Firmware: 1.5.8
- Hardware: 2.0 (US) / Firmware: 1.1.5
- **HS220**
- Hardware: 1.0 (US) / Firmware: 1.5.7
- Hardware: 2.0 (US) / Firmware: 1.0.3
- - Hardware: 3.26 (US) / Firmware: 1.0.1\*
+ - Hardware: 3.26 (US) / Firmware: 1.0.1[^1]
- **KP405**
- Hardware: 1.0 (US) / Firmware: 1.0.5
- Hardware: 1.0 (US) / Firmware: 1.0.6
@@ -103,21 +103,21 @@ Some newer Kasa devices require authentication. These are marked with *\*
- - Hardware: 1.0 (US) / Firmware: 1.1.0\*
+ - Hardware: 1.0 (US) / Firmware: 1.0.2[^1]
+ - Hardware: 1.0 (US) / Firmware: 1.1.0[^1]
- **KS220**
- Hardware: 1.0 (US) / Firmware: 1.0.13
- **KS220M**
- Hardware: 1.0 (US) / Firmware: 1.0.4
- **KS225**
- - Hardware: 1.0 (US) / Firmware: 1.0.2\*
- - Hardware: 1.0 (US) / Firmware: 1.1.0\*
+ - Hardware: 1.0 (US) / Firmware: 1.0.2[^1]
+ - Hardware: 1.0 (US) / Firmware: 1.1.0[^1]
- **KS230**
- Hardware: 1.0 (US) / Firmware: 1.0.14
- **KS240**
- - Hardware: 1.0 (US) / Firmware: 1.0.4\*
- - Hardware: 1.0 (US) / Firmware: 1.0.5\*
- - Hardware: 1.0 (US) / Firmware: 1.0.7\*
+ - Hardware: 1.0 (US) / Firmware: 1.0.4[^1]
+ - Hardware: 1.0 (US) / Firmware: 1.0.5[^1]
+ - Hardware: 1.0 (US) / Firmware: 1.0.7[^1]
### Bulbs
@@ -161,16 +161,16 @@ Some newer Kasa devices require authentication. These are marked with *\*
- - Hardware: 1.0 (EU) / Firmware: 1.5.12\*
- - Hardware: 1.0 (UK) / Firmware: 1.5.6\*
+ - Hardware: 1.0 (EU) / Firmware: 1.2.3[^1]
+ - Hardware: 1.0 (EU) / Firmware: 1.5.12[^1]
+ - Hardware: 1.0 (UK) / Firmware: 1.5.6[^1]
### Hub-Connected Devices
- **KE100**
- - Hardware: 1.0 (EU) / Firmware: 2.4.0\*
- - Hardware: 1.0 (EU) / Firmware: 2.8.0\*
- - Hardware: 1.0 (UK) / Firmware: 2.8.0\*
+ - Hardware: 1.0 (EU) / Firmware: 2.4.0[^1]
+ - Hardware: 1.0 (EU) / Firmware: 2.8.0[^1]
+ - Hardware: 1.0 (UK) / Firmware: 2.8.0[^1]
## Tapo devices
@@ -293,3 +293,4 @@ All Tapo devices require authentication.
Hub-Connected Devices may work acros
+[^1]: Model requires authentication
diff --git a/devtools/generate_supported.py b/devtools/generate_supported.py
index 90e16e07..532c7e6a 100755
--- a/devtools/generate_supported.py
+++ b/devtools/generate_supported.py
@@ -142,7 +142,7 @@ def _supported_text(
for brand, types in supported.items():
preamble_text = (
"Some newer Kasa devices require authentication. "
- + "These are marked with * in the list below."
+ + "These are marked with [^1] in the list below."
if brand == "kasa"
else "All Tapo devices require authentication."
)
@@ -151,7 +151,7 @@ def _supported_text(
+ "hubs even if they don't work across the native apps."
)
brand_text = brand.capitalize()
- brand_auth = r"\*" if brand == "tapo" else ""
+ brand_auth = r"[^1]" if brand == "tapo" else ""
types_text = ""
for supported_type, models in sorted(
# Sort by device type order in the enum
@@ -166,9 +166,7 @@ def _supported_text(
for version in sorted(versions):
region_text = f" ({version.region})" if version.region else ""
auth_count += 1 if version.auth else 0
- vauth_flag = (
- r"\*" if version.auth and brand == "kasa" else ""
- )
+ vauth_flag = r"[^1]" if version.auth and brand == "kasa" else ""
if version_template:
versions_text += versst.substitute(
hw=version.hw,
@@ -177,11 +175,7 @@ def _supported_text(
auth_flag=vauth_flag,
)
if brand == "kasa" and auth_count > 0:
- auth_flag = (
- r"\*"
- if auth_count == len(versions)
- else r"\*\*"
- )
+ auth_flag = r"[^1]" if auth_count == len(versions) else r"[^2]"
else:
auth_flag = ""
if model_template:
@@ -191,11 +185,7 @@ def _supported_text(
else:
models_list.append(f"{model}{auth_flag}")
models_text = models_text if models_text else ", ".join(models_list)
- type_asterix = (
- r"\*\*\*"
- if supported_type == "Hub-Connected Devices"
- else ""
- )
+ type_asterix = r"[^3]" if supported_type == "Hub-Connected Devices" else ""
types_text += typest.substitute(
type_=supported_type, type_asterix=type_asterix, models=models_text
)