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.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 moat-dev-heat 1.0.0
File Size Uploaded Provenance
moat_dev_heat-1.0.0.tar.gz 82.9 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 181.4 kB

Release files / moat_dev_heat-1.0.0.tar.gz

Download URL moat_dev_heat-1.0.0.tar.gz
Size 82.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2cb0ed94c809782eb144dc701705da565758ea046a432c84ad598c22d5a2bcb6
BLAKE2b-256 checksum
How to use checksums
412dbe9fa46a628f8b55a1488166fa7cbe56946b5b8ed054f5fd55810a5a2689
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.0-py3-none-any.whl

Download URL moat_dev_heat-1.0.0-py3-none-any.whl
Size 98.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a77ac74f8367ec5db6323c43e1ce753c229def3a7b5bcc7863d7cfd470f2d6f
BLAKE2b-256 checksum
How to use checksums
29be2c14aeef3018487473e56daf9137c3c2b759ccafedaa4de5324be63c7231
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.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