Skip to content

Emulating a Nibe AXC40 as ECS_S3 (address 0x03) #304

Description

@Philiphall6

I'm working on extending the ESPHome NibeGW component to emulate an AXC40/ECS circuit on a Nibe heat pump.

Current status

The heat pump successfully detects the accessory as:

  • ECS_S3 (address 0x03)
  • Accessory token EE is acknowledged
  • No communication alarms

Current ESPHome configuration:

- address: ECS_S3
  token: ACCESSORY
  data: [0x01, 0x0F, 0xA2]

- address: ECS_S3
  token: ECS_DATA_MSG_1
  data: [0x02, 0x02, 0x77, 0x20, 0x06]

- address: ECS_S3
  token: ECS_DATA_MSG_2
  data: [0x02, 0x00, 0x00, 0xA0, 0x06]

- address: ECS_S3
  token: ECS_DATA_REQ
  data: [0x00, 0x93]

Observations

Real ECS_S2 traffic:

5C 00 02 A0
5C 00 02 55
5C 00 02 90

ECS_S3 traffic observed from the heat pump:

5C 00 03 A0
5C 00 03 A3
5C 00 03 A4
5C 00 03 AF
5C 00 03 EE

The heat pump actively requests A3, A4 and AF for address 0x03.

I added support for:

ECS_DATA_A3 = 0xA3
ECS_DATA_A4 = 0xA4
ECS_DATA_AF = 0xAF

but I do not know the expected payload structure.

Problem

The heat pump creates circuit S3 correctly, but sensor values are wrong:

BT2 (Supply temperature S3) = 0.0°C
BT3 (Return temperature S3) = 20.8°C

Changing the payload contents does not seem to affect BT2.
According to the Nibe register database:

40006 = EP22-BT2 Supply temp S3
40128 = EP22-BT3 Return temp S3
40031 = EP22-BT50 Room temp S3

(all s16 with factor 10)

Additional information requested

I am also looking for information regarding the control of the mixing valve and circulation pump for an AXC40/ECS circuit.

Specifically:

  • Which messages/tokens contain the mixing valve position command?

  • Which messages/tokens contain the circulation pump enable/disable command?

  • Addresses/registers used by ECS_S3 for:

    • BT2 (Supply temperature)
    • BT3 (Return temperature)
    • BT50 (Room temperature)
    • Mixing valve position
    • Circulation pump status

If anyone has:

  • AXC40 packet captures
  • ECS_S3 traffic dumps
  • Nibe service documentation
  • Reverse protocol information

I would be very interested in knowing:

Token
Payload format
Data length
Expected values

for:

0xA3
0xA4
0xAF
0xEE

and any messages related to:

Mixing valve control
Circulation pump control
Heating demand
Circuit status

The objective is to fully emulate an AXC40/ECS circuit using ESPHome and NibeGW, including temperatures, mixing valve operation and circulator control.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions