terrestream-local
Asynchronous local client for the Terrestream℠ Indoor Air Quality sensor, separate from its Home Assistant integration. Apache-2.0 licensed; Python 3.13 or newer. Version 0.1.0 targets firmware 4.1.0. Retail firmware qualification and the Home Assistant integration release remain pending; firmware 4.0.72 does not implement this protocol.
The library accepts a caller-owned aiohttp.ClientSession. Physical-code SRP2
pairing establishes a device token and certificate fingerprint; subsequent local
TLS connections authenticate the pinned device. It makes no vendor-cloud calls.
The sensor and client must be reachable on the local network. No MQTT broker or
Terrestream web account is required. See PROTOCOL.md for the wire
contract, freshness, exclusive controller lease, retry, and trust behavior.
After obtaining Credentials through the physical pairing flow, use:
import aiohttp
from terrestream_local import Client, Credentials
async def read_device(host: str, credentials: Credentials):
async with aiohttp.ClientSession() as session:
client = Client(session, host, credentials)
await client.identity()
try:
snapshot = await client.refresh()
return snapshot
finally:
await client.command("release")
Keep pairing credentials private. Do not run another controlling client alongside
an active Home Assistant instance. The tools/pair_check.py development helper
prompts privately and saves an owner-only credentials file. Do not put that file
in source control, a bug report, or a shared archive.
Source and issues: terrestream/terrestream.
Versioned distributions are built in public CI from client-v<version> tags
and published using PyPI Trusted Publishing. Vendored Espressif protocol code
retains its upstream license and provenance under _espressif/.
License and marks
Apache License 2.0. See LICENSE, NOTICE, licensing and marks, and third-party notices. Terrestream is a service mark of Aerodyne Inc. Home Assistant is a trademark of the Open Home Foundation. Compatibility does not imply certification or endorsement.
Metadata
Release files for terrestream-local 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| terrestream_local-0.1.1.tar.gz | 34.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| terrestream_local-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.0 kB
Release files / terrestream_local-0.1.1.tar.gz
| Download URL | terrestream_local-0.1.1.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6af1098bf527b96ef393fe26f074e792ef2cdb37c8da2b9d808462c258fcc675
|
|
BLAKE2b-256 checksum How to use checksums |
b8b861957cf8deb89b5915a158e0477ffc58166d60257bc71d2fd73aff056a71
|
| 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 Sep 26, 2026.
Transparency logRelease files / terrestream_local-0.1.1-py3-none-any.whl
| Download URL | terrestream_local-0.1.1-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d11bfa3218bb09126dca58376bdd40ef0189bc51daf67c98bde3da21d5ae849
|
|
BLAKE2b-256 checksum How to use checksums |
00c107495baddd333665fefba46a59e24810ff6ef67cc211410411fd99da64a7
|
| 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 Sep 26, 2026.
Transparency log