Skip to main content

pyvenstar

A small, stateless Python client for the Venstar ColorTouch T8900 Local (LAN) REST API. Built for managing a fleet of thermostats across multiple sites (e.g. from a central scheduler reaching devices over a site-to-site VPN), not as a general Venstar SDK.

Reference: developer.venstar.com (Local API v5+).

Why stateless?

Each VenstarClient call round-trips to the device rather than caching setpoints/mode on the instance. That costs a little extra HTTP overhead (negligible on a LAN/VPN, these devices are polled/commanded on the order of minutes, not milliseconds) but means a process managing dozens of thermostats can freely construct/discard clients per operation without worrying about stale cached state from a previous call.

Usage

from pyvenstar import VenstarClient, ThermostatMode, FanMode

with VenstarClient("10.0.1.42", timeout=5.0) as client:
    info = client.get_info()
    print(info.name, info.mode, info.space_temp)

    client.set_setpoints(heat_temp=70, cool_temp=76)
    client.set_mode(ThermostatMode.AUTO)
    client.set_fan(FanMode.AUTO)

    for sensor in client.get_sensors():
        print(sensor.name, sensor.temp, sensor.humidity)

Setpoint writes are validated locally (against the device's reported min/max range and, in AUTO mode, its setpointdelta) before any network call is made — bad values from a scheduler never reach the hardware. Validation failures raise VenstarValidationError; device/API problems raise VenstarAPIError; unreachable devices raise VenstarConnectionError. All three derive from VenstarError.

Security — read this before deploying

The T8900 Local API is unauthenticated, plaintext HTTP by default. This library optionally supports a PIN (pin=) or HTTP Digest auth (user=/password=) if configured on the device, but neither is encrypted in transit. Treat network isolation as the primary control, not this library:

  • Put thermostats on an isolated VLAN/SSID per site with no general LAN/WiFi access.
  • Firewall rules so only the control host's VPN-routed IP can reach port 80 on these devices — nothing else in or out.
  • Use DHCP reservations so device IPs stay fixed (this library takes a host/IP directly; it does not implement Venstar's SSDP discovery).
  • Enable the device PIN or Digest auth as defense-in-depth, not a substitute for network isolation.

Development

python -m venv .venv
.\.venv\Scripts\python -m pip install -e ".[tests]"
.\.venv\Scripts\python -m pytest -q
.\.venv\Scripts\python -m ruff check src tests
.\.venv\Scripts\python -m mypy src

Metadata

Release files for pyvenstar 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyvenstar 0.1.1
File Size Uploaded Provenance Actions
pyvenstar-0.1.1.tar.gz 12.5 kB With provenance Details for pyvenstar-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyvenstar 0.1.1
File Interpreter ABI Platform Actions
pyvenstar-0.1.1-py3-none-any.whl Python 3 none any Details for pyvenstar-0.1.1-py3-none-any.whl

Total release size: 22.7 kB

Release files / pyvenstar-0.1.1.tar.gz

Download URL pyvenstar-0.1.1.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1032d2766d69e6043a5c2f6923521979a84605e5d296ebf1e80e17e0ba393240
BLAKE2b-256 checksum
How to use checksums
6cf424fc52a1df0df873331b434a26aed814b50467e387396e9e4c9e2c7fd151
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Release files / pyvenstar-0.1.1-py3-none-any.whl

Download URL pyvenstar-0.1.1-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b30664beb5d45a272a27bc1ac7418baea8f36e4fe90a1998e78c35b497c3dc4
BLAKE2b-256 checksum
How to use checksums
14df0c22d1ca86e5421cd04393f09c19fc49c3273e49244adf47a5aa7d4f99f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Security for pyvenstar 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pyvenstar-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page