python-smarttub
API to query and control hot tubs using the SmartTub system
What it is and what it does
python-smarttub is an async Python client for the SmartTub hot tub control system. It wraps the SmartTub API to let you authenticate, query account information, and retrieve or control individual spas—checking status, managing pumps, controlling lights, and more. The package uses aiohttp for async HTTP requests and includes both a programmatic API and a command-line interface for quick diagnostics.
The library is built on modern async/await patterns and requires Python 3.13 or later. It depends on aiohttp, inflection, pyjwt, and python-dateutil to handle HTTP sessions, API response parsing, JWT authentication, and date handling. It's suitable for home automation integrations, monitoring dashboards, or direct spa control from Python applications.
Use it for:
- Integrate hot tub status and control into a home automation system or dashboard
- Automate spa pump or light schedules based on time or external conditions
- Monitor multiple spas remotely and log their status over time
- Build a CLI tool to quickly check or adjust spa settings without a web interface
- Diagnose SmartTub connectivity or API issues using the verbose debug mode
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides an async API and CLI to query and control hot tubs connected to the SmartTub system, including status, pumps, and lights.
Yes, if you own a SmartTub-compatible hot tub and need programmatic control or monitoring. The low install friction and permissive license make it a straightforward addition. However, the aging maintenance status (last release 189 days ago) means you should verify that it still works with your current hardware and be prepared to troubleshoot or fork if the upstream project stalls.
Install
python-smarttub on PyPI
pip
pip install python-smarttubuv
uv add python-smarttubpoetry
poetry add python-smarttubInstalling python-smarttub
Before you install
Low install friction with a pure Python wheel. Maintenance status is aging—last release was 189 days ago—so expect slower response to issues or updates.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
pip install python-smarttub
import aiohttp
from smarttub import SmartTub
async with aiohttp.ClientSession() as session:
st = SmartTub(session)
await st.login(username, password)
account = await st.get_account()
spas = await account.get_spas()
for spa in spas:
print(spa.get_status())
Requires Python 3.13 or later; also requires valid SmartTub account credentials and an active SmartTub-compatible hot tub device.
Verify before relying
- Whether the SmartTub API endpoint remains stable and whether this client works with current SmartTub hardware versions
- Active community or maintainer support for bug fixes or feature requests
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — aiohttp, inflection, pyjwt, python-dateutil |
| Maintenance | aging — 189 days since the last release |
| First released | |
| Downloads | 75,400/month — #14,720 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python_smarttub-0.0.47-py3-none-any.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
iaqualinkAsynchronous Python library for monitoring and…
permissive · top 15,000 on PyPI
elgatoAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
python-bsblanAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
pystiebeleltronProvides a Python API to communicate with…
permissive · top 15,000 on PyPI
brainstemProvides Python bindings to control and…
unclear · top 15,000 on PyPI
epson-projectorAsynchronous Python library for controlling…
permissive · top 15,000 on PyPI
pyhiveapiA Python library for controlling Hive smart…
permissive · top 15,000 on PyPI
pysqueezeboxAsynchronous Python library to control Logitech…
permissive · top 15,000 on PyPI
aioairzone-cloudAsync Python library for controlling Airzone…
permissive · top 15,000 on PyPI
python-ecobee-apiA Python library for communicating with Ecobee3…
permissive · top 15,000 on PyPI