Add KL400L5 color temperature range (#1719)
Some checks failed
CI / Perform Lint Checks (3.14) (push) Has been cancelled
CodeQL Checks / Analyze (python) (push) Has been cancelled
CI / Python 3.11 on macos-latest (push) Has been cancelled
CI / Python 3.12 on macos-latest (push) Has been cancelled
CI / Python 3.13 on macos-latest (push) Has been cancelled
CI / Python 3.14 on macos-latest (push) Has been cancelled
CI / Python 3.11 on ubuntu-latest (push) Has been cancelled
CI / Python 3.12 on ubuntu-latest (push) Has been cancelled
CI / Python 3.13 on ubuntu-latest (push) Has been cancelled
CI / Python 3.14 on ubuntu-latest (push) Has been cancelled
CI / Python 3.11 on windows-latest (push) Has been cancelled
CI / Python 3.12 on windows-latest (push) Has been cancelled
CI / Python 3.13 on windows-latest (push) Has been cancelled
CI / Python 3.14 on windows-latest (push) Has been cancelled
Stale / stale (push) Has been cancelled

- add the KL400L5 color temperature range used by newer firmware
- add a KL400L5(US) 1.0.11 fixture that reports variable color
temperature support
- categorize that fixture as variable color temperature while keeping
older KL400L5 fixtures non-variable
- The Tapo app exposes 2500K-9000K for these KL400L5 strips, so this PR
uses that app-visible range.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Logan Rosen
2026-07-18 10:02:57 -04:00
committed by GitHub
parent aba457a729
commit a29d0610ba
4 changed files with 115 additions and 2 deletions

View File

@@ -55,6 +55,9 @@ BULBS_IOT_VARIABLE_TEMP = {
"KL135",
"KL430",
}
# KL400L5 firmware 1.0.5 and 1.0.8 fixtures report no variable color temperature
# support, so match the supporting 1.0.11 fixture rather than the entire model.
BULBS_IOT_VARIABLE_TEMP_FIXTURES = {"KL400L5(US)_1.0_1.0.11"}
BULBS_IOT_COLOR = {"LB130", "KL125", "KL130", "KL135", *BULBS_IOT_LIGHT_STRIP}
BULBS_IOT_DIMMABLE = {"KL50", "KL60", "LB100", "LB110", "KL110", "KL110B"}
BULBS_IOT = (
@@ -274,16 +277,23 @@ dimmable_iot = parametrize("dimmable", model_filter=DIMMABLE, protocol_filter={"
non_dimmable_iot = parametrize(
"non-dimmable", model_filter=BULBS - DIMMABLE, protocol_filter={"IOT"}
)
variable_temp = parametrize(
variable_temp_by_model = parametrize(
"variable color temp",
model_filter=BULBS_VARIABLE_TEMP,
protocol_filter={"SMART", "IOT"},
)
variable_temp_by_fixture = parametrize(
"variable color temp fixtures",
model_filter=BULBS_IOT_VARIABLE_TEMP_FIXTURES,
protocol_filter={"IOT"},
)
variable_temp = parametrize_combine([variable_temp_by_model, variable_temp_by_fixture])
non_variable_temp = parametrize(
"non-variable color temp",
model_filter=BULBS - BULBS_VARIABLE_TEMP,
protocol_filter={"SMART", "IOT"},
)
non_variable_temp = parametrize_subtract(non_variable_temp, variable_temp_by_fixture)
color_bulb = parametrize(
"color bulbs", model_filter=BULBS_COLOR, protocol_filter={"SMART", "IOT"}
)
@@ -296,11 +306,14 @@ non_color_bulb = parametrize(
color_bulb_iot = parametrize(
"color bulbs iot", model_filter=BULBS_IOT_COLOR, protocol_filter={"IOT"}
)
variable_temp_iot = parametrize(
variable_temp_iot_by_model = parametrize(
"variable color temp iot",
model_filter=BULBS_IOT_VARIABLE_TEMP,
protocol_filter={"IOT"},
)
variable_temp_iot = parametrize_combine(
[variable_temp_iot_by_model, variable_temp_by_fixture]
)
variable_temp_smart = parametrize(
"variable color temp smart",
model_filter=BULBS_SMART_VARIABLE_TEMP,