Presence Light
What should the door light say?
Come on in
No timer — stays until you change it
Take a break
Pauses whatever is running now. When the break ends, your previous status and its remaining time come right back.
Google Calendar
Connected. Nothing on your calendars right now, so the light stays green unless you override it.
All calendars shared into your Google account are included (holidays are ignored). Events with a Zoom or Teams link, or a title starting with "MEETING", turn the bulb red for the scheduled time; everything else goes blue. Any button above overrides the calendar until its timer ends.
Color preview
Today
Building the timeline…
Loading settings…
Connect your Kasa bulbs
TP-Link retired the old Kasa cloud login, so the lights are driven by a tiny helper that runs on a computer on the same Wi-Fi as your bulbs. It watches this dashboard and recolors the bulbs within a few seconds.
- Download the agent:
- Run
pip install python-kasa requests - Run
python kasa-agent.py --url /api/public/status
Start it automatically at login
- Put the .bat file in the same folder as
kasa-agent.py. - Right-click it → Edit, and replace
PUT_YOUR_KASA_PASSWORD_HEREwith your Kasa password, then save. - Double-click it once to confirm the bulb responds.
- Press
Win + R, typeshell:startup, press Enter. - Right-click the .bat → Copy, then right-click inside the Startup folder → Paste shortcut. It now runs every time you log in.
On a Mac instead? and follow the comments inside it.
Seeing nothing in the terminal? Run python kasa-agent.py --list to see which bulbs it finds, then target one directly with --host 192.168.1.42.
The script now targets your color bulb Busy Light (10.0.0.27) by default, so it skips discovery and the switches entirely. If its IP ever changes, pass --host NEW.IP.ADDRESS.
The dashboard URL is baked into the script, so you can also just double-click kasa-agent.py — the window now stays open and shows what it found. On Windows use py instead of python.
Any device or automation can read your status from /api/public/status.