The Optional PCB connects to the HP via the CN-CNT connector. If a CZ-TAW1 is also used, the wiring chain is HP → Optional PCB → CZ-TAW1: the Optional PCB connects directly to the HP's CN-CNT, and has its own CN-CNT connector for the CZ-TAW1 to connect to. The Optional PCB communicates with the HP in a similar way to the CZ-TAW1: alongside the standard Magic Packets, the Optional PCB sends its own specific commands to the HP, and alongside the HP's normal answers there is an additional answer/confirmation addressed to the Optional PCB.
Recent firmware allows (experimental) support for optional PCB emulation. This lets you set SmartGrid or Demand Control values without having the optional PCB installed, and lets you send the temperatures normally connected to that board to the heat pump.
You can publish MQTT messages to 'topic base/commands/pcb_topic', for example "panasonic_heat_pump/commands/SetSolarTemp". For temperatures, just send the real temperature — the hexadecimal value is calculated for you. For SmartGrid and Demand Control, send the decimal representation of the hex value you want to send (see below for the possible hex values).
Before enabling optional PCB emulation, be aware of the following:
Remark 1: You need to set Optional PCB to YES in the HP's service settings, along with the appropriate function, for the MQTT topics to have any effect.
Remark 2: Setting Optional PCB to YES gives HeishaMon (as the Optional PCB emulator) an obligation to continuously send the Optional PCB Set Command. If that communication stops for around 40 seconds, the HP raises an H74 error and switches to standby. Continuous communication is therefore essential — be careful during a HeishaMon reboot, factory reset, or similar action.
Remark 3: With optional PCB emulation enabled, HeishaMon will not boot into a WiFi config hotspot if it fails to connect to the configured WiFi at boot. It will also keep running and retry the WiFi connection on failure instead of rebooting into hotspot config mode — because it needs to keep sending optional PCB commands to the heat pump, it can't afford to react to WiFi failures the normal way. As a result, if HeishaMon is running and you need to reconfigure its WiFi SSID or password, you must first factory reset it (or, if a normal factory reset isn't possible in that situation, use the double-reset trick to clear its configuration).
Remark 4: Enabling Optional PCB in the HP's options disables the Room Thermo 1 input (H/J series only). The PCB topics "SetExternalThermostat1State" and "SetExternalThermostat2State" can be used as a replacement, with SetExternalThermostat1State taking over Room Thermo 1's role.
| PCB Topic | Topic value | Byte# | Possible Value | Value decrypt | Value Description |
|---|---|---|---|---|---|
| - | 00 | F1 | Header | ||
| - | 01 | 11 | Data length ( Packet length = Data length + 3 ) | Header | |
| - | 02 | 01 | Header | ||
| - | 03 | 50 | Header | ||
| - | 04 | 00 | Acknowledge for Z1/Z2/Pool Water Pump & Mixing valves state | ||
| - | 05 | 00 | Acknowledge for Alarm | ||
| SetHeatCoolMode SetCompressorState SetSmartGridMode SetExternalThermostat1State SetExternalThermostat2State |
0/1 0/1 0/1/2/3 0/1/2/3 0/1/2/3 |
06 | 40 | 1st bit = Heat/Cool 2nd bit = Compressor state 3rd/4th bit == SmartGrid Mode (00 = normal, 10 = HP/DHW off, 01 = Capacity 1, 11 = Capacity 2) 5th/6th bit = Thermostat 1 (00 = no demand, 01 = cool demand, 10 = heat demand, 11 = heat and cool demand) 7th/8th bit = Thermostat 2 (00 = no demand, 01 = cool demand, 10 = heat demand, 11 = heat and cool demand) |
SG ready values , External Compressor SW , Heat/Cool SW, Thermostat 1 (H/J series only), Thermostat 2 |
| SetPoolTemp | Temp [C] | 07 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Pool |
| SetBufferTemp | Temp [C] | 08 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Buffer (H/J series only) |
| - | 09 | E5 but also93,92,91 (90) ,A2 | ? | ||
| SetZ1RoomTemp | Temp [C] | 10 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Z1_Room (H/J series only) |
| SetZ2RoomTemp | Temp [C] | 11 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Z2_Room |
| - | 12 | 00 | 0 byte | ||
| SetSolarTemp | Temp [C] | 13 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Solar |
| SetDemandControl | from 43 -5% to 234 - 100% |
14 | EA | HEX: EB-100% ,B8 - 75% ,85 -50%,52 - 25% ,2B - 5% | Demand Control |
| SetZ2WaterTemp | Temp [C] | 15 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Z2_Water |
| SetZ1WaterTemp | Temp [C] | 16 | FF | NTC 6,5kOhm resistance characteristic value | Temp. Z1_Water |
| - | 17 | 00 | 0 byte | ||
| - | 18 | 00 | 0 byte | ||
| - | 19 | 2C | CHECKSUM |
Answer/confirmation contains also steering parameters :
71 11 01 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2D
| Byte# | Possible Value | Value decrypt | Value Description |
|---|---|---|---|
| 04 | C4 | 1st bit = Z1 Water pump 2nd bit = Z1 Mixing Valve + 3rd bit = Z1 Mixing Valve - 4th bit = Z2 Water pump 5th bit = Z2 Mixing Valve + 6th bit = Z2 Mixing Valve - 7th bit = Pool Water pump 8th bit = Solar Water pump |
|
| 05 | 01 | 00 - No Alarm 01 - Alarm |
Values are direct measurement of NTC thermistor conected to Optional PCB. It can be approximate by function : Uref * (RT / (Rf + RT)) where Uref = 255 and Rf=6480. RT is calculated as R25 * exp(constant * (1 / (temp + K) - 1 / (T25 + K))) where R25 = 6340, T25=25, K=273.15, constant=3695 and temp the input temperature.
| HEX Val. | Temp [C] | HEX Val. | Temp [C] | Hex Val. | Temp [C] | Hex Val. | Temp [C] |
|---|---|---|---|---|---|---|---|
| 00 | 120 | 40 | 53 | 80 | 24 | C0 | 0 |
| 01 | 120 | 41 | 53 | 81 | 24 | C1 | 0 |
| 02 | 120 | 42 | 52 | 82 | 24 | C2 | -1 |
| 03 | 120 | 43 | 51 | 83 | 23 | C3 | -1 |
| 04 | 120 | 44 | 51 | 84 | 23 | C4 | -2 |
| 05 | 120 | 45 | 50 | 85 | 22 | C5 | -2 |
| 06 | 120 | 46 | 50 | 86 | 22 | C6 | -3 |
| 07 | 120 | 47 | 49 | 87 | 22 | C7 | -3 |
| 08 | 120 | 48 | 49 | 88 | 21 | C8 | -4 |
| 09 | 120 | 49 | 48 | 89 | 21 | C9 | -4 |
| 0A | 120 | 4A | 48 | 8A | 21 | CA | -4 |
| 0B | 120 | 4B | 47 | 8B | 20 | CB | -5 |
| 0C | 117 | 4C | 47 | 8C | 20 | CC | -5 |
| 0D | 114 | 4D | 46 | 8D | 19 | CD | -6 |
| 0E | 111 | 4E | 45 | 8E | 19 | CE | -6 |
| 0F | 108 | 4F | 45 | 8F | 19 | CF | -7 |
| 10 | 106 | 50 | 44 | 90 | 18 | D0 | -7 |
| 11 | 103 | 51 | 44 | 91 | 18 | D1 | -8 |
| 12 | 101 | 52 | 44 | 92 | 18 | D2 | -8 |
| 13 | 99 | 53 | 43 | 93 | 17 | D3 | -9 |
| 14 | 97 | 54 | 43 | 94 | 17 | D4 | -9 |
| 15 | 95 | 55 | 42 | 95 | 17 | D5 | -10 |
| 16 | 93 | 56 | 42 | 96 | 16 | D6 | -10 |
| 17 | 92 | 57 | 41 | 97 | 16 | D7 | -11 |
| 18 | 90 | 58 | 41 | 98 | 15 | D8 | -12 |
| 19 | 88 | 59 | 40 | 99 | 15 | D9 | -12 |
| 1A | 87 | 5A | 40 | 9A | 15 | DA | -13 |
| 1B | 86 | 5B | 39 | 9B | 14 | DB | -13 |
| 1C | 84 | 5C | 39 | 9C | 14 | DC | -14 |
| 1D | 83 | 5D | 38 | 9D | 14 | DD | -15 |
| 1E | 82 | 5E | 38 | 9E | 13 | DE | -15 |
| 1F | 80 | 5F | 38 | 9F | 13 | DF | -16 |
| 20 | 79 | 60 | 37 | A0 | 12 | E0 | -16 |
| 21 | 78 | 61 | 37 | A1 | 12 | E1 | -17 |
| 22 | 77 | 62 | 36 | A2 | 12 | E2 | -18 |
| 23 | 76 | 63 | 36 | A3 | 11 | E3 | -18 |
| 24 | 75 | 64 | 35 | A4 | 11 | E4 | -19 |
| 25 | 74 | 65 | 35 | A5 | 11 | E5 | -20 |
| 26 | 73 | 66 | 35 | A6 | 10 | E6 | -21 |
| 27 | 72 | 67 | 34 | A7 | 10 | E7 | -21 |
| 28 | 71 | 68 | 34 | A8 | 9 | E8 | -22 |
| 29 | 70 | 69 | 33 | A9 | 9 | E9 | -23 |
| 2A | 69 | 6A | 33 | AA | 9 | EA | -24 |
| 2B | 68 | 6B | 32 | AB | 8 | EB | -25 |
| 2C | 67 | 6C | 32 | AC | 8 | EC | -26 |
| 2D | 66 | 6D | 32 | AD | 8 | ED | -27 |
| 2E | 66 | 6E | 31 | AE | 7 | EE | -28 |
| 2F | 65 | 6F | 31 | AF | 7 | EF | -29 |
| 30 | 64 | 70 | 30 | B0 | 6 | F0 | -30 |
| 31 | 63 | 71 | 30 | B1 | 6 | F1 | -31 |
| 32 | 62 | 72 | 30 | B2 | 6 | F2 | -32 |
| 33 | 62 | 73 | 29 | B3 | 5 | F3 | -33 |
| 34 | 61 | 74 | 29 | B4 | 5 | F4 | -35 |
| 35 | 60 | 75 | 28 | B5 | 4 | F5 | -36 |
| 36 | 60 | 76 | 28 | B6 | 4 | F6 | -38 |
| 37 | 59 | 77 | 28 | B7 | 4 | F7 | -40 |
| 38 | 58 | 78 | 27 | B8 | 3 | F8 | -41 |
| 39 | 58 | 79 | 27 | B9 | 3 | F9 | -44 |
| 3A | 57 | 7A | 27 | BA | 2 | FA | -46 |
| 3B | 56 | 7B | 26 | BB | 2 | FB | -49 |
| 3C | 56 | 7C | 26 | BC | 2 | FC | -53 |
| 3D | 55 | 7D | 25 | BD | 1 | FD | -57 |
| 3E | 54 | 7E | 25 | BE | 1 | FE | -64 |
| 3F | 54 | 7F | 25 | BF | 0 | FF | -78 |
- Byte #9 decode ( probably connected with Buffer)