Heater Info 1 (0x21)
Signal ID: 0x21 | PID: 0x61 | Direction: Slave → Master
Reports current temperatures and fan speed feedback.
Frame Layout
Frame: 65 AB BC 28 12 01 F0 0F
│ │ │ │ │ │ │ └─ Byte 7: Always 0x0F (?)
│ │ │ │ │ │ └──── Byte 6: Always 0xF0 (?)
│ │ │ │ │ └─────── Byte 5: Status byte
│ │ │ │ └────────── Byte 4: Available Electric power
│ │ │ └───────────── Byte 3: Available Burner power
│ │ └──────────────── Byte 2: Measured Water temp [11:4]
│ └─────────────────── Byte 1: Water[3:0] | Room[11:8]
└────────────────────── Byte 0: Measured Room temp [7:0]
Bytes 0-2: Temperature Encoding
Two 12-bit values packed into 3 bytes, representing Kelvin × 10.
Room Temp: ((byte1 & 0x0F) << 8) | byte0 → Kelvin × 10
Water Temp: (byte2 << 4) | ((byte1 >> 4)) → Kelvin × 10
Celsius: (encoded / 10.0) - 273.0
Decoding Example
Frame: 65 AB BC 28 12 01 F0 0F
│ │ │
│ │ └─ Water[11:4] = 0xBC
│ └──── Water[3:0]=0xA, Room[11:8]=0xB
└─────── Room[7:0] = 0x65
Room: 0x0B65 = 2917 → 2917/10 - 273 = 18.7°C
Water: 0x0BCA = 3018 → 3018/10 - 273 = 28.8°C
Bytes 3-4: Device Capabilities
Bytes 3 and 4 indicate heater model capabilities. Values are constant per device.
Combi 6 (no electric):
... 3C 00 ...
│ └──── Byte 4: 0x00 = 0 dec → No electric heater
└─────── Byte 3: 0x3C = 60 dec → 6kW burner
Combi D4E (diesel + electric):
... 28 12 ...
│ └──── Byte 4: 0x12 = 18 dec → 1.8kW electric
└─────── Byte 3: 0x28 = 40 dec → 4kW burner
Combi 6E (gas + electric):
... 3C 12 ...
│ └──── Byte 4: 0x12 = 18 dec → 1.8kW electric
└─────── Byte 3: 0x3C = 60 dec → 6kW burner
- Byte 3: Burner power in 100W units (0x28=4kW, 0x3C=6kW)
- Byte 4: Electric heater power in 100W units (0x00=none, 0x12=1.8kW)
Byte 5: Status Byte
Byte 5: 0x31 = 0b00110001
│││││││└─ Bit 0: Fuel active
││││││└── Bit 1: Electric active
│││││└─── Bit 2: Unknown (always 0)
││││└──── Bit 3: Unknown (always 0)
│└┴┴───── Bits 4-6: Fan RPM bracket
└──────── Bit 7: Unknown
Byte 5 Bits 0-1: Energy Source
Energy source bitmap showing which energy source is currently active (not selected mode).
| Bit | Meaning |
|---|---|
| 0 | Fuel active (gas/diesel) |
| 1 | Electric active |
| Value | Binary | Energy Source |
|---|---|---|
0x1 | 0b01 | Idle or Fuel only |
0x2 | 0b10 | Electric only |
0x3 | 0b11 | Mix (fuel + electric) |
Note: When idle (heater off), the value is always 0x1 regardless of the selected mode on the display. The bits only reflect actual energy usage during active heating.
Byte 5 Bits 2-3: Unknown
Always observed as 0b00.
Byte 5 Bits 4-6: Fan Speed RPM Bracket
Reports actual fan RPM as a speed bracket (0-7). The value updates dynamically as the fan ramps up or down.
This reflects actual fan operation regardless of source:
- Manual ventilation command (vent levels 1-10)
- Automatic heating operation (fan speed adjusts based on heat output)
| Bits 6:4 | Value | RPM Bracket | Manual Vent Levels |
|---|---|---|---|
0b000 | 0x0 | Off | Off |
0b010 | 0x2 | Low | Level 1-3 |
0b011 | 0x3 | Low-Mid | Level 4-5 |
0b100 | 0x4 | Mid | Level 6-7 |
0b101 | 0x5 | Mid-High | Level 8 |
0b110 | 0x6 | High | Level 9 |
0b111 | 0x7 | Max | Level 10 |
During automatic heating, the fan speed increases as the burner temperature rises and heat output increases.
Observed Byte 5 Values
| Byte 5 | Binary | RPM Bracket | Context |
|---|---|---|---|
0x01 | 0000 0001 | Off | Idle, no ventilation |
0x21 | 0010 0001 | Low | Vent level 1-3, or heating startup |
0x31 | 0011 0001 | Low-Mid | Vent level 4-5, or heating (burner warming) |
0x41 | 0100 0001 | Mid | Vent level 6-7 |
0x51 | 0101 0001 | Mid-High | Vent level 8 |
0x61 | 0110 0001 | High | Vent level 9 |
0x71 | 0111 0001 | Max | Vent level 10 |
Bytes 6-7: Unknown
Always observed as 0xF0 0x0F in the modern protocol. Purpose unknown.
