pyhearth is a Python client for Hearth's home API. It posts thermostate and/or room
sensor readings to a Hearth home with the home's API key, and returns the thermostat setting Hearth answers with.
It's what ha-hearth, Hearth's Home Assistant integration, uses to talk to Hearth.
Installation
pyhearth is available on PyPI and can be installed using pip:
pip install pyhearth
Basic Usage
In the Hearth app, create the home's API key in Settings, then Manage home, then Sensors, then "Other sensors (Hearth API)". Then post readings:
import asyncio
import aiohttp
from pyhearth.client import HearthClient
async def main():
async with aiohttp.ClientSession() as session:
client = HearthClient(session, "<your API key>", source="my-hub", source_name="My hub")
result = await client.post_readings([
{"id": "office", "name": "Office", "temperature": 20.8, "humidity": 41}
])
print(result.not_added)
asyncio.run(main())
A sensor's readings are kept once it's added to a room in the Hearth app; until then, it's listed in not_added. The
fields each endpoint takes are in Hearth's API docs.
Errors are raised as subclasses of HearthError (in pyhearth.exception): HearthAuthError when Hearth doesn't take
the key, HearthRateLimitedError when it asks for fewer posts (meta["retry_after"] says how many seconds to wait),
HearthRejectedError when it can't read a post, and HearthConnectionError when it can't be reached.
Contributing
If you would like to get involved, be sure to review the Contribution Guide.
Want to contribute financially? If you've found pyhearth useful, sponsorship
would also be greatly appreciated!
Metadata
Release files for pyhearth 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyhearth-1.1.0.tar.gz | 9.1 kB | Without provenance | Details for pyhearth-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyhearth-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for pyhearth-1.1.0-py3-none-any.whl |
Total release size: 16.3 kB
Release files / pyhearth-1.1.0.tar.gz
| Download URL | pyhearth-1.1.0.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d677fb35407c9b8359671c4eee00c9e981747f8ab31680d8a810ba638b8b9df
|
|
BLAKE2b-256 checksum How to use checksums |
bd0a597355fdcd10e3c1d0069ed9ba9600a38cb65083511b7bc4699a7a7d7512
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / pyhearth-1.1.0-py3-none-any.whl
| Download URL | pyhearth-1.1.0-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
edd544a2c692a3d146afb27559e7a944c3a3e765c6ed159b02ca98635c3f2f3f
|
|
BLAKE2b-256 checksum How to use checksums |
63b666a2727e20d4e164fa33ed04ac1651cffa55272ba80120be106653cd0d25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for pyhearth 1.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.