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.
  • moat dev heat status reports the controller's health: the units' and the PWM daemon's services, the Modbus pollers, the error records, and the Solvis' and the pellet burner's own error data. It exits non-zero when something is down or in error.
  • moat dev heat start starts the heating's systemd units again after an emergency stop, in order, each once the previous one has announced its service; it stops at the first problem.

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.2.3

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.2.3
File Size Uploaded Provenance Actions
moat_dev_heat-1.2.3.tar.gz 97.9 kB Without provenance Details for moat_dev_heat-1.2.3.tar.gz

Built distribution (wheel)

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

Total release size: 212.4 kB

Release files / moat_dev_heat-1.2.3.tar.gz

Download URL moat_dev_heat-1.2.3.tar.gz
Size 97.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8290d388d3e51f17c453c5077f268a396a809a7b911e3f3ea6490f286e61cf5c
BLAKE2b-256 checksum
How to use checksums
b09d7163bfac949a0a94d37bba8dfa5869a1504a6702043d272beac04015ec51
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.2.3-py3-none-any.whl

Download URL moat_dev_heat-1.2.3-py3-none-any.whl
Size 114.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39a5aa4e5f14a6db228e28d49a1acbbbf29093152b843ba8441a7eab03878ceb
BLAKE2b-256 checksum
How to use checksums
1cdf137e577789756d67fac2c0fba6f254c48f2feba1df926ca0fe624de93342
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.2.3

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.

Release history Release notifications | RSS feed

This release

1.2.3 This release

2 release files No provenance

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