A HACS-installable custom integration for Guntamatic biomass/pellet heaters. It reads all DAQ channels the device exposes and adds control (writes) on top — using API-key authentication.
It talks to the same local HTTP/CGI web interface as the
guntamatic Rust project
(/ext/daqdesc.cgi, /ext/daqdata.cgi, /ext/parset.cgi).
Home Assistant ships an official guntamatic integration (since 2026.6). It is
excellent for monitoring but read-only, HTTP-only, keyless, and exposes a curated
subset of sensors. This integration is a superset focused on the gaps:
Official guntamatic |
This integration | |
|---|---|---|
| Sensors | curated (~11) | every DAQ channel (dynamic) |
| Boolean channels | as sensors | as binary sensors |
| Control / writes | ❌ none | ✅ boiler release, control program, per-circuit heating program, hot-water reload |
| Auth | keyless (root endpoints) | API key (/ext/ endpoints) |
| Discovery | DHCP | DHCP |
| Transport | HTTP polling | HTTP polling |
If you only need monitoring, the official integration + the built-in InfluxDB integration is the simplest path. Use this one when you want control and/or the full channel set.
- HACS → ⋮ → Custom repositories → add
https://github.com/swimmesberger/ha-guntamatic, category Integration. - Install Guntamatic (read/write) and restart Home Assistant.
- Settings → Devices & Services → Add Integration → Guntamatic (read/write).
A
kessel…device may also be auto-discovered via DHCP.
Manual install: copy custom_components/guntamatic_rw/ into your HA config/custom_components/ folder and restart.
- Host — IP or hostname of the heater.
- API key (optional) — a device key with authorization level W1 or higher.
- With key: all DAQ channels (
/ext/…) and control (boiler release, programs, hot-water reload). - Without key: a reduced, read-only channel set from the keyless root endpoints — no control.
- With key: all DAQ channels (
Either way you also get the par.cgi diagnostic sensors (operating mode, hybrid mode,
COP limit, electricity/pellet prices, heat-pump buffer setpoint) — handy on pellet + heat-pump
hybrids, where that configuration is otherwise invisible.
Options (Settings → the integration → Configure):
- Polling interval (default 30 s)
- Number of heating circuits (0–9) — creates one program select per circuit
HK0…HK8 - Number of hot-water circuits (0–3) — creates reload buttons per circuit
- Boiler product family — picks the correct boiler-release command:
PK002(Powerchip/Powercorn/Biocom/Pro) orK0010(Therm/Biostar)
- Sensors — one per numeric/text DAQ channel, with inferred units/device classes.
- Numeric
codeattribute on enum-like entities: theProgramm/Progamm HKxstatus channels, the enumpar.cgidiagnostic sensors (option index) and the control selects (device value). Recorders that only store numbers, such as VictoriaMetrics behind the InfluxDB integration, keep the state history through it. - Binary sensors — one per boolean DAQ channel. Without an API key the device sends booleans as
True/Falsetext; those channels are detected as boolean too. - Selects (writes):
- Boiler release — Auto / Off / On
- Control program — Off / Normal / Hot water / Heating / Setback / Manual
- Heating circuit N program — Off / Normal / Heating / Setback
- Buttons (writes) — Hot water N reload, Additional hot water N reload
- Control program and per-circuit heating program selects reflect the
real device state, read from the
Programm/Progamm HKxDAQ string channels. - The boiler release select is optimistic (shows the last command issued
from Home Assistant, restored across restarts), because the device only exposes
a boolean
Kesselfreigabechannel that can't distinguish Auto from On.
Writes are always sent live and validated against the device's ack/err reply.
Per the Guntamatic interface terms, remote control must not alter the operating behaviour of the appliance in a harmful way (e.g. rapidly toggling the boiler on/off like an oil burner causes serious malfunctions on biomass heaters). Only use the customer-level (W1) authorization, and make sure the installation is safe for remote operation. Use at your own risk.
All writes are GET /ext/parset.cgi?syn=<SYN>&value=<V>&key=<KEY>:
| Control | syn | values |
|---|---|---|
| Boiler release | PK002 / K0010 |
0=Auto, 1=Off, 2=On |
| Control program | PR001 |
0=Off, 1=Normal, 2=HotWater, 3=Heat, 4=Setback, 8=Manual |
| Heating circuit x (0–8) | HK{x}01 |
0=Off, 1=Normal, 2=Heat, 3=Setback |
| Hot-water reload x (0–2) | BK{x}06 |
1=reload |
| Add. hot-water reload x (0–2) | ZK{x}06 |
1=reload |
Add Home Assistant's built-in InfluxDB integration
and include sensor.guntamatic_rw_* / binary_sensor.guntamatic_rw_*.
MIT