Skip to main content

Version Python Versions Coverage Build GitHub License

pyhearth is a Python client for Hearth's home API. It posts room sensor readings, and optionally a thermostat, 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.0.0

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

Source distribution (sdist)

Source distribution for pyhearth 1.0.0
File Size Uploaded Provenance Actions
pyhearth-1.0.0.tar.gz 8.3 kB Without provenance Details for pyhearth-1.0.0.tar.gz

Built distribution (wheel)

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

Total release size: 15.0 kB

Release files / pyhearth-1.0.0.tar.gz

Download URL pyhearth-1.0.0.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5df48ee0d5f3654693727a82a257207c3ad615568f6cba97661454ffd65aab36
BLAKE2b-256 checksum
How to use checksums
deadca79beea3ab948f9662880372410278739926bde17d86af1178b0a6aaf2c
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.0.0-py3-none-any.whl

Download URL pyhearth-1.0.0-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da00af7e7e0748b135b6d57846165f78d9adef1ae1ff3f2b5d08e405ebd72ff2
BLAKE2b-256 checksum
How to use checksums
34767f1ed5d023f67b1049c6a70203e9bdd9f8259d9835afdc193921b971a351
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.0.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.

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