-
-
Notifications
You must be signed in to change notification settings - Fork 238
Description
What would you like to happen?
Please expose a public setter to toggle the KE100 thermostat "schedule/preset" mode
(e.g. auto/schedule ↔ manual) via the KH100 hub. This would allow Home Assistant
integrations to synchronize preset changes with the official Kasa/Tapo app.
Desired public API on the thermostat module (any of):
set_schedule_enabled(bool)set_schedule_mode("auto" | "manual")set_preset_mode("auto" | "manual")set_mode("auto" | "manual")
Current behavior
- Reading KE100 data (current temperature, target temperature, heating state) works.
- There is no public setter exposed for schedule/preset/mode on KE100 via KH100.
- Capability probing shows all relevant setters missing (False) on both the thermostat
and device modules.
Why this matters
Without a real setter, users cannot keep Home Assistant and the Kasa/Tapo app in sync.
If the app’s schedule is active, it will override HA behavior. A public setter would
enable proper device-level control and allow HA to switch between "auto/schedule" and
"manual" modes.
Environment
- Library:
python-kasa(version: latest) - Hub: KH100
- Thermostats: KE100
- Platform: Home Assistant custom component using
python-kasa
Capability logs (from live devices)
KE100 803595FC3CEE5BA3B65BDAC9B119AXXXXXXXXX capabilities:
{'thermo.set_schedule_enabled': False, 'device.set_schedule_enabled': False,
'thermo.set_schedule_mode': False, 'device.set_schedule_mode': False,
'thermo.set_preset_mode': False, 'device.set_preset_mode': False,
'thermo.set_mode': False, 'device.set_mode': False,
'thermo.set_on': False, 'device.set_on': False}
Minimal reproducible example
- Discover KH100, iterate
hub.children, obtain thermostat module. - Try to detect setters on the thermostat/device module:
any(getattr(thermo, name, None) for name in [ "set_schedule_enabled", "set_schedule_mode", "set_preset_mode", "set_mode" ])
Expected result
A public setter to toggle KE100 schedule/preset (auto/manual) exists and works,
so HA can call it and the Kasa/Tapo app reflects the change.
Actual result
No such setter exists; all capabilities are missing.
Additional context / proposal
If the KE100 supports this only via cloud endpoints, consider adding a
cloud-backed path with proper auth/ratelimiting (even if behind a feature flag).
If the KE100 supports it locally through KH100, please expose the method(s)
on the thermostat module.
Thanks a lot!