Skip to main content

hcalory-control

An unofficial little tool to control BLE-capable Hcalory heaters. This has only been tested on the Hcalory W1 model.

CLI Usage

❯ hcalory-control --help
usage: hcalory-control [-h] --address ADDRESS {start_heat,stop_heat,up,down,gear,thermostat,pump_data}

positional arguments:
  {start_heat,stop_heat,up,down,gear,thermostat,pump_data}

options:
  -h, --help            show this help message and exit
  --address ADDRESS     Bluetooth MAC address of heater

To get the current state of the heater, use pump_data:

❯ hcalory-control --address ec:b1:c3:00:4d:61 pump_data
{
    "ambient_temperature": 87,
    "body_temperature": 226,
    "heater_mode": "thermostat",
    "heater_setting": 74,
    "heater_state": "running",
    "voltage": 13
}

Temperature/"gear" mode changes are done by incrementing/decrementing, not by setting the absolute value you want:

❯ hcalory-control --address ec:b1:c3:00:4d:61 up
Before command:
{
    "ambient_temperature": 86,
    "body_temperature": 219,
    "heater_mode": "thermostat",
    "heater_setting": 74,
    "heater_state": "running",
    "voltage": 13
}
After command:
{
    "ambient_temperature": 86,
    "body_temperature": 219,
    "heater_mode": "thermostat",
    "heater_setting": 75,
    "heater_state": "running",
    "voltage": 13
}

Usage as a library

The main and run_command functions should serve as a decent example. Getting the current running state out of these heaters is weird. In order to get your notification on the read characteristic to give you anything, you have to ask the heater to send something by writing to the write characteristic. The official app does this once a second, which seems wildly inefficient to me. I've no idea why they didn't just make the heater push data out on its own when things changed.

Metadata

Release files for hcalory-control 0.1.6

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

Source distribution (sdist)

Source distribution for hcalory-control 0.1.6
File Size Uploaded Provenance Actions
hcalory_control-0.1.6.tar.gz 28.3 kB Without provenance Details for hcalory_control-0.1.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for hcalory-control 0.1.6
File Interpreter ABI Platform Actions
hcalory_control-0.1.6-py3-none-any.whl Python 3 none any Details for hcalory_control-0.1.6-py3-none-any.whl

Total release size: 36.9 kB

Release files / hcalory_control-0.1.6.tar.gz

Download URL hcalory_control-0.1.6.tar.gz
Size 28.3 kB
Tags Source
SHA-256 checksum
How to use checksums
30f17f0fdf31f97a78a2c7a664742cb028407b761f4ce36da2da90f75fdcb345
BLAKE2b-256 checksum
How to use checksums
7a4816d223bc2865b18a23ff561458e095facc1fad8d8404eb6ecbd51755e606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.26

Release files / hcalory_control-0.1.6-py3-none-any.whl

Download URL hcalory_control-0.1.6-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
71bf39cd7e69af4c5cf183241591a09e1b78dc3bc7dba8f496bb3ae941cb3ae5
BLAKE2b-256 checksum
How to use checksums
2e144dabac3e78399c872c860b412bf50cca1b63875ec820b2cbf18881a4a080
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.26

Security for hcalory-control 0.1.6

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