Skip to main content

Turn on the Heat

% start synopsis % start main

A heating controller for a hybrid system: a Solvis buffer and heating circuit, a heat pump, and a KWB pellet burner. Independent units on MoaT-Link compute the heating curve, pick the heat source, and drive the heat pump, the burner, the heating valve and the water pump.

% end synopsis

The controller consists of these units, each a separate MoaT-Link service:

Unit Role
target heating curve and heat demand
heat_valve heating circuit on/off
flow the heat pump's water pump (PWM)
pump the heat pump's state machine and load
pellet the pellet burner's load and temperature
selector which heat sources may run
errors the heat pump's errors and their severity
frost frost protection of the idle heat-pump loop
passthru handing the heat pump to its original controller for maintenance, and back
watchdog shuts the heat pump down when the pump unit dies (optional, on another host)

moat dev heat run runs all units but the watchdog in one process; moat dev heat run UNIT… runs some of them. Each unit waits until no other process runs it, so a second instance is a hot standby. The units read their sensors from, and write their commands to, the Modbus pollers (moat modbus dev poll) of the heat pump and the Solvis controller; moat dev heat pwm drives the water pump's PWM output, and moat dev heat modbus_mon restarts a stuck Solvis poller. The package moat-dev-heat-service has systemd units for all of these.

Other commands:

  • moat dev heat stop stops the units in an orderly way: the heat pump is switched off and cooled down before the water pump stops.
  • moat dev heat off shuts the heat pump down at once (emergency).
  • moat dev heat override sets or clears an operator override, e.g. to keep the heat pump off.
  • moat dev heat migrate converts the legacy controller's configuration and state to the units' MoaT-Link items (once).
  • moat dev heat record records MoaT-Link data for tests. moat dev heat sim, in the separate moat-dev-heat-sim package, runs a plant simulator on MoaT-Link.

The units' configuration lives in MoaT-Link (cfg.app.heat.UNIT), overlaid on the package defaults, and takes effect without a restart.

Safety depends on the flow unit: an emergency shutdown, whether by the pump unit, the watchdog or moat dev heat off, asks the flow unit to keep the water running until the heat pump has cooled down. If the flow unit is dead too, the water pump keeps its last PWM. That protects the heat pump from overheating, but nothing stops the water pump afterwards.

% end main

Metadata

Release files for moat-dev-heat 1.0.1

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

Source distribution (sdist)

Source distribution for moat-dev-heat 1.0.1
File Size Uploaded Provenance
moat_dev_heat-1.0.1.tar.gz 83.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for moat-dev-heat 1.0.1
File Interpreter ABI Platform
moat_dev_heat-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 181.6 kB

Release files / moat_dev_heat-1.0.1.tar.gz

Download URL moat_dev_heat-1.0.1.tar.gz
Size 83.0 kB
Tags Source
SHA-256 checksum
How to use checksums
43d30c0930c9294f266304bdb6343373a6ac43c028f2b6e33b6c9746bf641bb5
BLAKE2b-256 checksum
How to use checksums
be6b69e9688b8bc826eaf238eb4510f4de28c0679d97b8925785e09c46b98cd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / moat_dev_heat-1.0.1-py3-none-any.whl

Download URL moat_dev_heat-1.0.1-py3-none-any.whl
Size 98.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9651c5f51bc02303674d52474dcbe7f1f9baec7fe9e4d20b111193c2548a2c8a
BLAKE2b-256 checksum
How to use checksums
30756c5cb1beb546cc73c27fc9a49019eaa909b7b8895fc55ced5c7c28e96628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Security for moat-dev-heat 1.0.1

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