Skip to content

Add register mapper for Regulus IR14 firmware 1.0.11.0 - #6

Merged
Haluska77 merged 1 commit into
Haluska77:masterfrom
petrmac:add-ir14-1-0-11-0-mapper
Jun 4, 2026
Merged

Add register mapper for Regulus IR14 firmware 1.0.11.0#6
Haluska77 merged 1 commit into
Haluska77:masterfrom
petrmac:add-ir14-1-0-11-0-mapper

Conversation

@petrmac

@petrmac petrmac commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a register mapper for Regulus IR 14, firmware 1.0.11.0 (ir_version: 14_1_0_11_0).

This controller's PLC register bank does not overlap any existing mapper — 0/54 register addresses in common with 12_04_10, 14_1_0_5_0, or 14_1_0_10_0 — so without a dedicated table every entity reads unknown. (Verified by comparing each shipped mapper's registers against a live register dump from the controller.)

Changes

  • custom_components/regulus/mapper/registry_mapper_ir14_1_0_11_0.py — new REGISTRY_MAPPER (32 keys)
  • custom_components/regulus/const.py — register the mapper in REGISTRY_MAPPERS and add 14_1_0_11_0 to IR_VERSION_OPTIONS

No changes to integration logic.

Coverage

32 keys, all validated live on a running Home Assistant against the controller and the Regulus IR Client app:

  • Temperatures: outdoor, heat-pump inlet/outlet, DHW (switching sensor / required / comfort), zone 1+2 heating-water, zone 1+2 room + desired, AKU top
  • Heat-pump statistics (complete): running & idle time; overall and hot-water totals/today/yesterday (hours, minutes, starts)
  • State: zone 1

Remaining keys (AKU tank detail and solar — not installed on this unit — plus a few dashboard status bits and zone required-temps) will follow in subsequent commits.

How the registers were derived

The controller's web UI XSL binds each labelled field to a positional INPUT[n], which corresponds to the n-th register in the page XML. Addresses were extracted from that geometry and cross-checked against the IR Client app's labelled readings — e.g. the statistics counters were matched by value and confirmed by their drift over time (a counter reading 44→53 min between two samples nails the mapping).

Tested on the live controller: every mapped key decodes correct, sane, updating values.

🤖 Generated with Claude Code

This IR14 controller (FW 1.0.11.0; RegulusBOX / TECO Foxtrot, local web
login uzivatel/uzivatel) uses a PLC register bank with zero overlap
against every shipped mapper (0/54 vs 12_04_10, 14_1_0_5_0, 14_1_0_10_0),
so all entities read "unknown" without a dedicated table.

Adds ir_version "14_1_0_11_0" with 32 keys, all validated live on a
running Home Assistant and cross-checked against the Regulus IR Client
app: outdoor / HP inlet-outlet / DHW / zone heating-water / room /
desired / AKU-top temperatures, the full heat-pump statistics block
(running & idle time, overall + hot-water totals/today/yesterday hours,
minutes and starts), and zone 1 state. Remaining keys (AKU & solar — not
installed on this unit — plus some dashboard status bits) to follow.

Registers were derived from the controller's own XSL (each labelled field
binds to a positional INPUT[n] -> n-th register in the page XML) and
confirmed by value against the app, including counter drift over time.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Haluska77
Haluska77 merged commit 1ef2102 into Haluska77:master Jun 4, 2026
2 checks passed
@Haluska77

Copy link
Copy Markdown
Owner

thanks for PR - in release 2.0.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants