pylutron-caseta
Provides an API to the Lutron Smartbridge
What it is and what it does
pylutron-caseta is an async Python client for the Lutron Caséta smart home bridge, enabling programmatic control of Lutron lighting and shading devices over a local network. It handles TLS authentication, device discovery, and state management through a simple API that returns devices as dictionaries and exposes methods like turn_on, turn_off, and set_level.
The package is designed for integration into larger home automation systems and provides both a high-level Smartbridge class for typical use and lower-level pairing and LEAP protocol access for advanced workflows. It depends on cryptography for TLS, orjson for efficient JSON parsing, and async-timeout for connection management, and requires Python 3.10 or later.
Use it for:
- Build a home automation dashboard that reads and controls Lutron lights and dimmers from a central Python application.
- Integrate Lutron Caséta devices into a broader smart home system alongside other IoT platforms via a unified API.
- Create automated lighting scenes triggered by external events (time, presence, weather) by calling bridge control methods.
- Develop a mobile or web app backend that communicates with Lutron devices through a Python service.
- Monitor and log device state changes over time for energy usage analysis or debugging.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python API for controlling Lutron Caséta smart home devices via their bridge, supporting async communication with TLS authentication and device state management.
Yes. The package is actively maintained, has no known vulnerabilities, uses a permissive license, and installs cleanly with minimal dependencies. It is well-suited for anyone building Python-based home automation or integrating Lutron Caséta devices into a larger system. The main constraint is the requirement to complete a one-time pairing process with the bridge before use.
Install
pylutron-caseta on PyPI
pip
pip install pylutron-casetauv
uv add pylutron-casetapoetry
poetry add pylutron-casetaInstalling pylutron-caseta
Before you install
Low install friction with a pure-Python wheel and three lightweight runtime dependencies (async-timeout, cryptography, orjson). Active maintenance with a recent release and ongoing commits.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for integration into larger applications.
Quickstart
import asyncio
from pylutron_caseta.smartbridge import Smartbridge
async def example():
bridge = Smartbridge.create_tls(
"192.168.1.100", "caseta.key", "caseta.crt", "caseta-bridge.crt"
)
await bridge.connect()
device = bridge.get_devices_by_domain("light")[0]
await bridge.turn_on(device["device_id"])
await bridge.close()
asyncio.run(example())
Requires Python 3.10 or later; TLS certificate files must be generated via pairing process (lap-pair tool or async_pair function) before connecting to the bridge.
Verify before relying
- Whether the package supports all Lutron Caséta device types or only a subset of the product line
- Performance characteristics when controlling many devices simultaneously or over high-latency networks
- Whether the cli extras (leap-scan, lap-pair, leap tools) are required for typical use or optional for advanced workflows
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — async-timeout, cryptography, orjson |
| Maintenance | actively maintained — 65 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 99,211/month — #13,034 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pylutron_caseta-0.29.0-py3-none-any.whl
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
aiohueAsynchronous Python library for controlling…
permissive · top 15,000 on PyPI
pyswitchbeeA Python library for controlling SwitchBee…
permissive · top 15,000 on PyPI
HATasmotaParses and constructs Tasmota MQTT messages,…
permissive · top 15,000 on PyPI
python-ecobee-apiA Python library for communicating with Ecobee3…
permissive · top 15,000 on PyPI
fjaraskupanControl Fjäråskupan kitchen fans over Bluetooth…
permissive · top 15,000 on PyPI
pysensiboProvides an asyncio-friendly Python API client…
permissive · top 15,000 on PyPI
aiowebostvAsync Python library for controlling LG…
permissive · top 15,000 on PyPI
switchbot-apiAn async Python library for controlling…
permissive · top 15,000 on PyPI
pywizlightA Python library and CLI tool for discovering…
permissive · top 15,000 on PyPI
aioqswAsync Python library for controlling QNAP QSW…
permissive · top 15,000 on PyPI