From 932b70515a1e20a16de40398968fd3decbfea877 Mon Sep 17 00:00:00 2001 From: mjbohr Date: Thu, 22 May 2025 12:06:55 -0400 Subject: [PATCH 1/8] Add files via upload --- .../fixtures/iot/KL400L10(US)_1.0_1.0.10.json | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 tests/fixtures/iot/KL400L10(US)_1.0_1.0.10.json diff --git a/tests/fixtures/iot/KL400L10(US)_1.0_1.0.10.json b/tests/fixtures/iot/KL400L10(US)_1.0_1.0.10.json new file mode 100644 index 000000000..db4496552 --- /dev/null +++ b/tests/fixtures/iot/KL400L10(US)_1.0_1.0.10.json @@ -0,0 +1,144 @@ +{ + "smartlife.iot.common.cloud": { + "get_info": { + "binded": 1, + "cld_connection": 1, + "err_code": 0, + "fwDlPage": "", + "fwNotifyType": -1, + "illegalType": 0, + "server": "n-devs.tplinkcloud.com", + "stopConnect": 0, + "tcspInfo": "", + "tcspStatus": 1, + "username": "user@example.com" + }, + "get_intl_fw_list": { + "err_code": 0, + "fw_list": [] + } + }, + "smartlife.iot.common.emeter": { + "get_realtime": { + "err_code": 0, + "power_mw": 1800, + "total_wh": 443 + } + }, + "smartlife.iot.common.schedule": { + "get_next_action": { + "err_code": 0, + "type": -1 + }, + "get_rules": { + "enable": 0, + "err_code": 0, + "rule_list": [], + "version": 2 + } + }, + "smartlife.iot.lightStrip": { + "get_default_behavior": { + "err_code": 0, + "hard_on": { + "mode": "last_status" + }, + "soft_on": { + "mode": "last_status" + } + }, + "get_light_details": { + "color_rendering_index": 90, + "err_code": 0, + "incandescent_equivalent": 60, + "lamp_beam_angle": 220, + "max_lumens": 800, + "max_voltage": 120, + "min_voltage": 100, + "wattage": 10 + }, + "get_light_state": { + "err_code": 0, + "groups": [ + [ + 0, + 0, + 251, + 0, + 10, + 0 + ] + ], + "length": 1, + "mode": "normal", + "on_off": 1, + "transition": 500 + } + }, + "system": { + "get_sysinfo": { + "LEF": 0, + "active_mode": "none", + "alias": "#MASKED_NAME#", + "ctrl_protocols": { + "name": "Linkie", + "version": "1.0" + }, + "description": "Kasa Smart Light Strip, Multicolor", + "dev_state": "normal", + "deviceId": "0000000000000000000000000000000000000000", + "disco_ver": "1.0", + "err_code": 0, + "hwId": "00000000000000000000000000000000", + "hw_ver": "1.0", + "is_color": 1, + "is_dimmable": 1, + "is_factory": false, + "is_variable_color_temp": 0, + "latitude_i": 0, + "length": 1, + "light_state": { + "brightness": 10, + "color_temp": 0, + "hue": 251, + "mode": "normal", + "on_off": 1, + "saturation": 0 + }, + "lighting_effect_state": { + "brightness": 10, + "custom": 0, + "enable": 0, + "id": "ojqpUUxdGHoIugGPknrUcRoyJiItsjuE", + "name": "Lightning" + }, + "longitude_i": 0, + "mic_mac": "D8:44:89:00:00:00", + "mic_type": "IOT.SMARTBULB", + "model": "KL400L10(US)", + "obd_src": "tplink", + "oemId": "00000000000000000000000000000000", + "preferred_state": [ + { + "brightness": 100, + "color_temp": 0, + "hue": 1, + "index": 0, + "mode": 1, + "saturation": 100 + }, + { + "brightness": 15, + "color_temp": 0, + "hue": 251, + "index": 1, + "mode": 1, + "saturation": 0 + } + ], + "rssi": -38, + "status": "new", + "sw_ver": "1.0.10 Build 220929 Rel.170054" + } + } +} From ff31c4e03b43e2014506ac79182da07d2772b72e Mon Sep 17 00:00:00 2001 From: mjbohr Date: Thu, 22 May 2025 12:07:34 -0400 Subject: [PATCH 2/8] Add files via upload --- README.md | 4 ++-- SUPPORTED.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 897370104..44a0d4d62 100644 --- a/README.md +++ b/README.md @@ -190,13 +190,13 @@ The following devices have been tested and confirmed as working. If your device - **Power Strips**: EP40, EP40M[^1], HS107, HS300, KP200, KP303, KP400 - **Wall Switches**: ES20M, HS200[^2], HS210, HS220[^2], KP405, KS200, KS200M, KS205[^1], KS220, KS220M, KS225[^1], KS230, KS240[^1] - **Bulbs**: KL110, KL120, KL125, KL130, KL135, KL50, KL60, LB100, LB110 -- **Light Strips**: KL400L5, KL420L5, KL430 +- **Light Strips**: KL400L10, KL400L5, KL420L5, KL430 - **Hubs**: KH100[^1] - **Hub-Connected Devices[^3]**: KE100[^1] ### Supported Tapo[^1] devices -- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP10, TP15 +- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP15 - **Power Strips**: P210M, P300, P304M, P306, TP25 - **Wall Switches**: S210, S220, S500D, S505, S505D - **Bulbs**: L510B, L510E, L530B, L530E, L630 diff --git a/SUPPORTED.md b/SUPPORTED.md index 2cb00bcb8..f4f264b32 100644 --- a/SUPPORTED.md +++ b/SUPPORTED.md @@ -156,6 +156,8 @@ Some newer Kasa devices require authentication. These are marked with [^1] in th ### Light Strips +- **KL400L10** + - Hardware: 1.0 (US) / Firmware: 1.0.10 - **KL400L5** - Hardware: 1.0 (US) / Firmware: 1.0.5 - Hardware: 1.0 (US) / Firmware: 1.0.8 @@ -209,8 +211,6 @@ All Tapo devices require authentication.
Hub-Connected Devices may work acros - **P135** - Hardware: 1.0 (US) / Firmware: 1.0.5 - Hardware: 1.0 (US) / Firmware: 1.2.0 -- **TP10** - - Hardware: 1.0 (IT) / Firmware: 1.2.5 - **TP15** - Hardware: 1.0 (US) / Firmware: 1.0.3 From 9d92cd89c315b8b847bd750fe67fd73f87058339 Mon Sep 17 00:00:00 2001 From: mjbohr Date: Thu, 22 May 2025 12:34:22 -0400 Subject: [PATCH 3/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44a0d4d62..c947a03f1 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,7 @@ The following devices have been tested and confirmed as working. If your device ### Supported Tapo[^1] devices -- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP15 +- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP10, TP15 - **Power Strips**: P210M, P300, P304M, P306, TP25 - **Wall Switches**: S210, S220, S500D, S505, S505D - **Bulbs**: L510B, L510E, L530B, L530E, L630 From b0befb7ba7c65eae73b60d7cd56ce94fea5a53e9 Mon Sep 17 00:00:00 2001 From: UnraidUbuntu Date: Thu, 22 May 2025 12:42:39 -0400 Subject: [PATCH 4/8] modified: README.md modified: SUPPORTED.md --- README.md | 2 +- SUPPORTED.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 44a0d4d62..c947a03f1 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,7 @@ The following devices have been tested and confirmed as working. If your device ### Supported Tapo[^1] devices -- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP15 +- **Plugs**: P100, P110, P110M, P115, P125M, P135, TP10, TP15 - **Power Strips**: P210M, P300, P304M, P306, TP25 - **Wall Switches**: S210, S220, S500D, S505, S505D - **Bulbs**: L510B, L510E, L530B, L530E, L630 diff --git a/SUPPORTED.md b/SUPPORTED.md index f4f264b32..72970d019 100644 --- a/SUPPORTED.md +++ b/SUPPORTED.md @@ -211,6 +211,8 @@ All Tapo devices require authentication.
Hub-Connected Devices may work acros - **P135** - Hardware: 1.0 (US) / Firmware: 1.0.5 - Hardware: 1.0 (US) / Firmware: 1.2.0 +- **TP10** + - Hardware: 1.0 (IT) / Firmware: 1.2.5 - **TP15** - Hardware: 1.0 (US) / Firmware: 1.0.3 From cc01f965237ed47595edb4cfb79955ad8609b815 Mon Sep 17 00:00:00 2001 From: UnraidUbuntu Date: Thu, 22 May 2025 12:49:12 -0400 Subject: [PATCH 5/8] modified: device_fixtures.py --- tests/device_fixtures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/device_fixtures.py b/tests/device_fixtures.py index 297b497b8..3159350db 100644 --- a/tests/device_fixtures.py +++ b/tests/device_fixtures.py @@ -38,7 +38,7 @@ ) # Kasa (IOT-prefixed) bulbs -BULBS_IOT_LIGHT_STRIP = {"KL400L5", "KL430", "KL420L5"} +BULBS_IOT_LIGHT_STRIP = {"KL400L5", "KL400L10", "KL430", "KL420L5"} BULBS_IOT_VARIABLE_TEMP = { "LB120", "LB130", From e1293e7770f0f66c041a7aadd6ef7055818a21c2 Mon Sep 17 00:00:00 2001 From: mjbohr Date: Thu, 22 May 2025 14:32:57 -0400 Subject: [PATCH 6/8] Update test_iotbulb.py remove trailing comma --- tests/iot/test_iotbulb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/iot/test_iotbulb.py b/tests/iot/test_iotbulb.py index 5b759c588..089573135 100644 --- a/tests/iot/test_iotbulb.py +++ b/tests/iot/test_iotbulb.py @@ -284,7 +284,7 @@ async def test_modify_preset_payloads(dev: IotBulb, preset, payload, mocker): "hue": All(int, Range(min=0, max=360)), "mode": str, "saturation": All(int, Range(min=0, max=100)), - "groups": Optional(list[int]), + "groups": Optional(list[int]) } ), "err_code": int, From 95fdfe036f8d972f1e107748125e58c00d8bac2f Mon Sep 17 00:00:00 2001 From: mjbohr Date: Thu, 22 May 2025 14:34:38 -0400 Subject: [PATCH 7/8] Revert "Update test_iotbulb.py" This reverts commit e1293e7770f0f66c041a7aadd6ef7055818a21c2. --- tests/iot/test_iotbulb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/iot/test_iotbulb.py b/tests/iot/test_iotbulb.py index 089573135..5b759c588 100644 --- a/tests/iot/test_iotbulb.py +++ b/tests/iot/test_iotbulb.py @@ -284,7 +284,7 @@ async def test_modify_preset_payloads(dev: IotBulb, preset, payload, mocker): "hue": All(int, Range(min=0, max=360)), "mode": str, "saturation": All(int, Range(min=0, max=100)), - "groups": Optional(list[int]) + "groups": Optional(list[int]), } ), "err_code": int, From 7ae685181eb493d06c710ac9c27931c7a5271265 Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Sun, 1 Jun 2025 20:20:45 +0200 Subject: [PATCH 8/8] Allow groups on get_light_state responses --- tests/iot/test_iotbulb.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/iot/test_iotbulb.py b/tests/iot/test_iotbulb.py index 5b759c588..4d40dff67 100644 --- a/tests/iot/test_iotbulb.py +++ b/tests/iot/test_iotbulb.py @@ -277,6 +277,7 @@ async def test_modify_preset_payloads(dev: IotBulb, preset, payload, mocker): "saturation": All(int, Range(min=0, max=100)), "length": Optional(int), "transition": Optional(int), + "groups": Optional(list[int]), "dft_on_state": Optional( { "brightness": All(int, Range(min=0, max=100)),