Files
rootandClaude Opus 5.5 33aead7352
CI / Check (gateway, backend, frontend) (push) Successful in 1m8s
refactor: remove the CWU heater, the house has none
The app showed the controller's heater signal as a device, a detail and a
statistic. Drop it from the API (heaterOn, heaterHours) and the UI; the
gateway still records output_heater as raw data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 09:20:35 +01:00

4.3 KiB
Raw Permalink Blame History

Frisko RX910-SE21: what we know

Sources: research/frisko/. Facts here are verified on the device unless marked otherwise.

Identity and protocol

  • Heat pump controller RX910-SE21, firmware v24062015: a read of 4131–4133 gave 18/19/15 (whole °C; firmware v10112017 uses tenths).
  • Behind the MK01 gateway (192.168.0.150:502, Modbus TCP → RTU 9600 8N1). One TCP client at a time; a new one drops the old.
  • FC 3 read, FC 6 write verified 2026-10-23 (4143 8 → 9: echo OK, read-back 9 after 1 s, no password needed); FC 16 per MR208-PC+ docs. Values are sign-magnitude integers; the baseline's "legacy wrap" decodes this. Addresses are raw (4131 is 4131).
  • RX910-SE21-AdresyMODBUS.pdf is the official map (~90 registers) and has no scales: take them from RX910-SE21_v24062015.xml (format, min/max). Scale is per register, not a global 0.1.
  • No SE21 manual for the control logic; MR208-PC+_9P_v3.pdf is the closest reference.
  • frisko/mr208_m3p.csv on archive/spring-boot-attempt is for MR208-M3+: do not use.

Registers we rely on

Group Registers Notes
Temperatures 4065 outdoor, 4066 indoor, 4067 CO/buffer, 4069 CWU, 4070/4071 ground in/out, 4072 pump outlet, 4199 avg outdoor X10
Targets now 4201 room, 4202 CO supply, 4203 CWU X10; show economy vs comfort period
State 4227 pump (0 stop, 1 CO, 2 CWU, 3 both), 4226 program, 4221 alarm, 4073 pressure switch
Outputs 4112 CO, 4113 buffer, 4114 compressor (0/33/66/100), 4115 heater signal (heater not connected), 4116 circulation, 4117 ground, 4118 CWU 0 or 100
Setpoints (F3) 4131/4132 CO economy/comfort (5–35), 4143/4144 CWU economy/comfort (5–70) whole °C
Protection 4158 TmaxPc = 52 °C, 4149 TmaxCWU = 55, 4148 HistCWU = 5, 4146 PriorCWU = 1, 4147 heater signal delay = 20 read 2026-10-23
Compressor 4166 zwlZSt(II) = 30 min (stage 2 delay; was 20, matching history, until the owner-approved one-time write of 2026-10-25, read back 30), 4165 zwlZSt(..) = 10 (likely stage 3, never seen), 4162 t_wylSpr = 5 min (minimum off, matches the 18:20 stop / 18:25 restart), 4160 t_zwlZalSpr = 20, 4161 t_zwlWylPdz = 20, 4163 t_minSpr = 160, 4164 t_maxSpr = 230 (units unknown); 4157 TminDz = −3, 4159 ∆TmaxDz = 10 FC3 read 2026-10-25, 4166 written and read back 2026-10-25
CWU extras 4150 TpodbCWU = 5, 4151 t_podbCWU = 15, disinfection 4152–4154 = 7 days / 60 °C / 60 min (off: 4145 = 0), 4155/4156 t_zal/wylCCW = 2/2; 4246, 4247 read garbage (not on this firmware) FC3 read 2026-10-25

Unknown: 4119 WyCHL reads −14308. Vendor-app findings, all unverified: app-knowledge.md.

Weekly program

Behind a selector: write circuit (4177) and day (4167), then read or write the intervals (4169–4176). Reading it is therefore not read-only, and the selector is shared with the panel and the Frisko app. Party mode (4140 = 2, hours in 4142) is a simpler "heat now" override.

Observed behaviour

  • 2026-10-23 21:52: pump stop, weekly program, all outputs 0, targets 18.0 / 31.0 / 8.0 °C (economy period). 5 blocks, 36 registers in 2.5 s.
  • CWU is heated daily at ~11:00 and ~17:30 to ~44 °C (~15–20 °C/h, pump outlet ~47 °C). Slow morning rises with the pump off come from the solar collector.
  • The pump outlet tops out at ~52 °C (TmaxPc), so the pump alone reaches ~47–48 °C in the tank. Higher CWU values in history occur only in summer (solar).
  • Setting CWU above what the pump reaches raises the controller's heater signal (after the delay; the heater is not connected) and risks pressure-switch trips; three trips in one cycle latch a fault until manual reset (MR208-PC+ docs).
  • Frisko phone app: direct Modbus TCP, LAN only, 200–300 ms between requests, 5 s timeout.
  • History analysis of 2026-10 (history-2026-10.md): the heater signal comes 20 min into a CWU cycle (4147), zb_state 2 = that signal. The heater is not connected (owner, 2026-10-25); at the same moment the compressor goes from stage 1 to 2 (the +0.9 kW meter step, three-phase); at an outlet of 52 °C (TmaxPc) it stops; 4227 is unreliable for "heating CWU"; the controller clock does not follow DST; period = target compared with the setpoints, valid only with 4226 = 1.