Skip to main content

Controlel

Adaptive intelligent heating control platform.

Vision

Controlel is a modular, explainable and adaptive heating regulation platform designed for Home Assistant integration.

The goal is to create a reliable heating controller capable of optimizing comfort, efficiency and condensation performance while maintaining safety and transparency.

Main principles

  • Safety first
  • Explainable decisions
  • Modular architecture
  • Hardware independence
  • Configuration through UI
  • Open-source ready
  • Adaptive regulation

Status

Project phase: Home Assistant one-zone host vertical slice

Core candidate version: 0.2.0 (unpublished)

Home Assistant integration candidate version: 0.3.1

Use the latest published release for HACS custom-repository installation. Version 0.3.1 is under development and has not been tagged or published. Controlel is not listed in the default HACS store.

Home Assistant installation

The supported distribution uses the public repository https://github.com/vmshops/controlel as a HACS custom repository. The primary installation flow is:

  1. In HACS, open the menu and select Custom repositories.
  2. Add https://github.com/vmshops/controlel with category Integration.
  3. Download the latest released integration and restart Home Assistant.
  4. Open Settings > Devices & services > Add integration and select Controlel.

The integration manifest makes Home Assistant install the exact public core dependency controlel==0.1.0; users must not install the core manually. Detailed prerequisites, configuration, safety behavior, manual installation, upgrades, removal, and current limitations are in the Home Assistant installation guide.

Home Assistant development integration

The reusable core remains under src/controlel. The first Home Assistant host is a custom component under custom_components/controlel; its dependency direction is strictly custom component to core.

The integration supports one config entry, one zone, one explicitly bound temperature sensor, and one shared heat source. New entries use a filtered temperature selector, generated stable IDs, safe timing defaults, and a simple controlled-switch mode. Existing entries can be edited through Configure; advanced mode preserves separate enable and disable service calls. Options updates fully unload and rebuild the runtime. It uses a dedicated single-worker executor for every synchronous ControlRuntime operation. No core method runs on Home Assistant's event-loop thread.

Each entry creates one Controlel — <Zone name> device with operational and diagnostic sensors. They expose the normalized temperature and target, measurement validity and age, demand, safety grace/timeout state, the latest decision and reason, requested command and dispatch outcome, failure flags, and runtime/core versions. Demand and a dispatched service call are not proof that the physical heat source changed state. The target remains writable only through Configure. Diagnostics include the immutable current snapshot and a maximum 20-record in-memory decision trace; neither survives reconstruction.

The integration manifest requires the exact public core release controlel==0.1.0. A supported custom-component deployment can therefore let Home Assistant obtain the core dependency automatically; users do not need to install the core manually. Editable installation remains available for local source compatibility testing. The core test suite does not require Home Assistant, while Home Assistant framework tests use separate local-source and public-package compositions.

Framework compatibility is tested against Home Assistant 2026.7.3 with pytest-homeassistant-custom-component==0.13.347 on Python 3.14.2 or newer. The isolated, hashed environment is defined by requirements/ha-test.in and requirements/ha-test.txt; setup and suite commands are in the development guide. The compatibility harness is separate from HACS release validation. HACS metadata and deterministic release packaging are prepared for 0.3.1, but that candidate has not been published and no default-store publication exists.

Core package artifacts

The reusable core is prepared as the controlel distribution and import package at candidate version 0.2.0. Its static version source and PEP 517 build configuration live in pyproject.toml; normal installation depends only on Pydantic. Packaging validation builds one wheel and one sdist, inspects their contents, and installs the wheel into a clean environment outside the checkout.

Core 0.1.0 is published on PyPI and is immutable; 0.2.0 remains an unpublished candidate. Future core corrections require a new version; rebuilt local 0.1.0 artifacts must never be uploaded. Repository packaging CI remains validation-only and contains no publication automation. See the core release guide for the published release record, build validation, and version separation.

Metadata

Release files for controlel 0.2.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 controlel 0.2.0
File Size Uploaded
controlel-0.2.0.tar.gz 27.1 kB Details

Built distribution (wheel)

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

Total release size: 84.5 kB

Release files / controlel-0.2.0.tar.gz

Download URL controlel-0.2.0.tar.gz
Size 27.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3ae1e87eac7736bf25ee496415f3dfdbad4cbbc27e1b85e34ed70127448fd6d1
BLAKE2b-256 checksum
How to use checksums
dcc3be8f7e2d6afda1f7756cfe2db404c5dc75ed644b84fb7fe741f5fa48c434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / controlel-0.2.0-py3-none-any.whl

Download URL controlel-0.2.0-py3-none-any.whl
Size 57.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e566ed803144fd58951303123dda61f6e048158a54861e79260ae80a3adb4c7
BLAKE2b-256 checksum
How to use checksums
6cccffaf945bf7b381aa736f4a16fa8ede5d4dd2fb0e3e27e03c4038bd1f9268
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

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