MauzenLi
(MauzenLi)
August 14, 2025, 3:49pm
124
Hi Michael, would you be so kind and maybe share your message format string? I got the same software version and still can’t get it to run properly.
I have no access to my system at the moment. I can post it in 10 days.
1 Like
MauzenLi
(MauzenLi)
August 19, 2025, 3:26pm
126
That would be great. Thanks in advance!
@MauzenLi
Here is my message format:
msgformat: "<DAQPRJ><ANALOG><CHANNEL id='0' name='ZK' dop='0'/><CHANNEL id='1' name='O2' unit='%'/><CHANNEL id='2' name='O2soll' unit='%'/><CHANNEL id='3' name='TK' unit='°C'/><CHANNEL id='4' name='TKsoll' unit='°C'/><CHANNEL id='5' name='TRL' unit='°C'/><CHANNEL id='6' name='TRLsoll' unit='°C' dop='0'/><CHANNEL id='7' name='Spreizung' unit='°C'/><CHANNEL id='8' name='TRG' unit='°C'/><CHANNEL id='9' name='SZist' unit='%' dop='0'/><CHANNEL id='10' name='SZsoll' unit='%'/><CHANNEL id='11' name='TPo' unit='°C'/><CHANNEL id='12' name='TPm' unit='°C'/><CHANNEL id='13' name='TPu' unit='°C'/><CHANNEL id='14' name='Puff Füllgrad' unit='%' dop='0'/><CHANNEL id='15' name='Puffer_soll oben' unit='°C' dop='0'/><CHANNEL id='16' name='Puffer_soll unten' unit='°C' dop='0'/><CHANNEL id='17' name='PuffZustand' dop='0'/><CHANNEL id='18' name='Max Anf Kessel' dop='0'/><CHANNEL id='19' name='TFW' unit='°C' dop='0'/><CHANNEL id='20' name='Leistung' unit='%' dop='0'/><CHANNEL id='21' name='ESsoll' unit='%'/><CHANNEL id='22' name='min.Leist.TRG' unit='%'/><CHANNEL id='23' name='max.Leist.TRG' unit='%'/><CHANNEL id='24' name='max.Leist.Fuell' unit='%'/><CHANNEL id='25' name='max.Leist.TPO' unit='%'/><CHANNEL id='26' name='ESRegler' unit='%' dop='0'/><CHANNEL id='27' name='Regler K'/><CHANNEL id='28' name='KeBrstScale' unit='%' dop='0'/><CHANNEL id='29' name='Programm' dop='0'/><CHANNEL id='30' name='Störungs Nr' dop='0'/><CHANNEL id='31' name='Max Anf ZenPuf' unit='°C' dop='0'/><CHANNEL id='32' name='I Es' unit='mA' dop='0'/><CHANNEL id='33' name='I Ra' unit='mA' dop='0'/><CHANNEL id='34' name='I Aa' unit='mA' dop='0'/><CHANNEL id='35' name='I Sr' unit='mA' dop='0'/><CHANNEL id='36' name='I Rein' unit='mA' dop='0'/><CHANNEL id='37' name='LZ ES seit Füll.' unit='Min' dop='0'/><CHANNEL id='38' name='LZ ES seit Ent.' unit='Min' dop='0'/><CHANNEL id='39' name='Anzahl Entasch.' dop='0'/><CHANNEL id='40' name='Anzahl SR Beweg.' dop='0'/><CHANNEL id='41' name='Lagerstand' unit='kg' dop='0'/><CHANNEL id='42' name='Verbrauchszähler' unit='kg' dop='0'/><CHANNEL id='43' name='Heiz P Lambda' unit='W' dop='2'/><CHANNEL id='44' name='Heiz U Lambda' unit='V' dop='2'/><CHANNEL id='45' name='Heiz I Lambda' unit='mA' dop='0'/><CHANNEL id='46' name='U_Lambda' unit='mV'/><CHANNEL id='47' name='U Netzteil' unit='mV' dop='0'/><CHANNEL id='48' name='T Spülung' unit='°C'/><CHANNEL id='49' name='BRT' unit='°C'/><CHANNEL id='50' name='Tplat' unit='°C' dop='0'/><CHANNEL id='51' name='TVG' unit='°C'/><CHANNEL id='52' name='TVG2' unit='°C'/><CHANNEL id='53' name='AIN17' unit='V'/><CHANNEL id='54' name='Taus' unit='°C'/><CHANNEL id='55' name='TA Gem.' unit='°C'/><CHANNEL id='56' name='Effizienz' unit='%'/><CHANNEL id='57' name='ExtHK Solltmp.' unit='°C' dop='0'/><CHANNEL id='58' name='TVL_A' unit='°C'/><CHANNEL id='59' name='TVLs_A' unit='°C' dop='0'/><CHANNEL id='60' name='TRA_A' unit='°C'/><CHANNEL id='61' name='TRs_A' unit='°C'/><CHANNEL id='62' name='HKZustand_A' dop='0'/><CHANNEL id='63' name='FRA Zustand' dop='0'/><CHANNEL id='64' name='HKPA Status' dop='0'/><CHANNEL id='65' name='TVL_1' unit='°C'/><CHANNEL id='66' name='TVLs_1' unit='°C' dop='0'/><CHANNEL id='67' name='TRA_1' unit='°C'/><CHANNEL id='68' name='TRs_1' unit='°C'/><CHANNEL id='69' name='HKZustand_1' dop='0'/><CHANNEL id='70' name='FR1 Zustand' dop='0'/><CHANNEL id='71' name='HKP1 Status' dop='0'/><CHANNEL id='72' name='TVL_2' unit='°C'/><CHANNEL id='73' name='TVLs_2' unit='°C' dop='0'/><CHANNEL id='74' name='TRA_2' unit='°C'/><CHANNEL id='75' name='TRs_2' unit='°C'/><CHANNEL id='76' name='HKZustand_2' dop='0'/><CHANNEL id='77' name='FR2 Zustand' dop='0'/><CHANNEL id='78' name='HKP2 Status' dop='0'/><CHANNEL id='79' name='TVL_B' unit='°C'/><CHANNEL id='80' name='TVLs_B' unit='°C' dop='0'/><CHANNEL id='81' name='TRA_B' unit='°C'/><CHANNEL id='82' name='TRs_B' unit='°C'/><CHANNEL id='83' name='HKZustand_B' dop='0'/><CHANNEL id='84' name='FRB Zustand' dop='0'/><CHANNEL id='85' name='HKPB Status' dop='0'/><CHANNEL id='86' name='TBA' unit='°C'/><CHANNEL id='87' name='TBs_A' unit='°C' dop='0'/><CHANNEL id='88' name='TB1' unit='°C'/><CHANNEL id='89' name='TBs_1' unit='°C' dop='0'/><CHANNEL id='90' name='BoiZustand_1' dop='0'/><CHANNEL id='91' name='TBB' unit='°C'/><CHANNEL id='92' name='TBs_B' unit='°C' dop='0'/><CHANNEL id='93' name='HKR Anf' unit='°C'/><CHANNEL id='94' name='Anf. HKR0' unit='°C' dop='0'/><CHANNEL id='95' name='Anf. HKR1' unit='°C' dop='0'/><CHANNEL id='96' name='Anf. HKR2' unit='°C' dop='0'/><CHANNEL id='97' name='Anf. HKR3' unit='°C' dop='0'/><CHANNEL id='98' name='Anf. HKR4' unit='°C' dop='0'/><CHANNEL id='99' name='Anf. HKR5' unit='°C' dop='0'/><CHANNEL id='100' name='Anf. HKR6' unit='°C' dop='0'/><CHANNEL id='101' name='Anf. HKR7' unit='°C' dop='0'/><CHANNEL id='102' name='Anf. HKR8' unit='°C' dop='0'/><CHANNEL id='103' name='Anf. HKR9' unit='°C' dop='0'/><CHANNEL id='104' name='Anf. HKR10' unit='°C' dop='0'/><CHANNEL id='105' name='Anf. HKR11' unit='°C' dop='0'/><CHANNEL id='106' name='Anf. HKR12' unit='°C' dop='0'/><CHANNEL id='107' name='Anf. HKR13' unit='°C' dop='0'/><CHANNEL id='108' name='Anf. HKR14' unit='°C' dop='0'/><CHANNEL id='109' name='Anf. HKR15' unit='°C' dop='0'/><CHANNEL id='110' name='Wasserdruck' unit='bar' dop='2'/><CHANNEL id='111' name='dummy' unit='bar' dop='2'/><CHANNEL id='112' name='dummy2' unit='bar' dop='2'/></ANALOG><DIGITAL><CHANNEL id='0' bit='0' name='Störung'/><CHANNEL id='0' bit='1' name='Stb'/><CHANNEL id='0' bit='2' name='Fuellstand'/><CHANNEL id='0' bit='3' name='RLP/PuffP'/><CHANNEL id='0' bit='4' name='RLm_auf'/><CHANNEL id='0' bit='5' name='RLm_zu'/><CHANNEL id='0' bit='10' name='WS freig.'/><CHANNEL id='0' bit='11' name='Akt. Code'/><CHANNEL id='0' bit='14' name='FW Freig.'/><CHANNEL id='0' bit='15' name='gFlP'/><CHANNEL id='0' bit='16' name='gFlM auf'/><CHANNEL id='0' bit='17' name='gFlM zu'/><CHANNEL id='0' bit='18' name='gFl2P'/><CHANNEL id='0' bit='19' name='gFl2M auf'/><CHANNEL id='0' bit='20' name='gFl2M zu'/><CHANNEL id='1' bit='0' name='L Heiz.'/><CHANNEL id='1' bit='1' name='Z Heiz.'/><CHANNEL id='1' bit='2' name='Z Geb.'/><CHANNEL id='1' bit='3' name='AA Run'/><CHANNEL id='1' bit='4' name='AA Dir'/><CHANNEL id='1' bit='5' name='ES Run'/><CHANNEL id='1' bit='6' name='ES Dir'/><CHANNEL id='1' bit='7' name='AS Saug'/><CHANNEL id='1' bit='8' name='AS RA Run'/><CHANNEL id='1' bit='9' name='AS RA Dir'/><CHANNEL id='1' bit='10' name='Rein En'/><CHANNEL id='1' bit='11' name='Rein Run'/><CHANNEL id='1' bit='12' name='Es Rein Endl'/><CHANNEL id='1' bit='13' name='sAS Anf Füll'/><CHANNEL id='2' bit='0' name='HKPA'/><CHANNEL id='2' bit='1' name='MAA'/><CHANNEL id='2' bit='2' name='MAZ'/><CHANNEL id='2' bit='3' name='HKP1'/><CHANNEL id='2' bit='4' name='M1A'/><CHANNEL id='2' bit='5' name='M1Z'/><CHANNEL id='2' bit='6' name='HKP2'/><CHANNEL id='2' bit='7' name='M2A'/><CHANNEL id='2' bit='8' name='M2Z'/><CHANNEL id='2' bit='9' name='HKP3'/><CHANNEL id='2' bit='10' name='M3A'/><CHANNEL id='2' bit='11' name='M3Z'/><CHANNEL id='2' bit='12' name='HKP4'/><CHANNEL id='2' bit='13' name='M4A'/><CHANNEL id='2' bit='14' name='M4Z'/><CHANNEL id='2' bit='15' name='HKP5'/><CHANNEL id='2' bit='16' name='M5A'/><CHANNEL id='2' bit='17' name='M5Z'/><CHANNEL id='2' bit='18' name='HKP6'/><CHANNEL id='2' bit='19' name='M6A'/><CHANNEL id='2' bit='20' name='M6Z'/><CHANNEL id='2' bit='21' name='HKPB'/><CHANNEL id='2' bit='22' name='MBA'/><CHANNEL id='2' bit='23' name='MBZ'/><CHANNEL id='2' bit='24' name='HK-P Poolp'/><CHANNEL id='2' bit='25' name='HK-P Primp'/><CHANNEL id='2' bit='26' name='HK-P MA'/><CHANNEL id='2' bit='27' name='HK-P MZ'/><CHANNEL id='3' bit='0' name='BPA'/><CHANNEL id='3' bit='1' name='BP1'/><CHANNEL id='3' bit='2' name='BP2'/><CHANNEL id='3' bit='3' name='BP3'/><CHANNEL id='3' bit='4' name='BPB'/><CHANNEL id='3' bit='5' name='BZPA'/><CHANNEL id='3' bit='6' name='BZP1'/><CHANNEL id='3' bit='7' name='BZP2'/><CHANNEL id='3' bit='8' name='BZP3'/><CHANNEL id='3' bit='9' name='BZPB'/><CHANNEL id='4' bit='0' name='Aschebox'/><CHANNEL id='4' bit='1' name='Netztrafo'/><CHANNEL id='4' bit='2' name='Netzrelais'/><CHANNEL id='4' bit='4' name='Lagerraum'/><CHANNEL id='4' bit='6' name='FLP'/><CHANNEL id='4' bit='8' name='ATW'/><CHANNEL id='4' bit='9' name='Entasch gesp.'/><CHANNEL id='4' bit='13' name='HKV'/><CHANNEL id='4' bit='14' name='Spülung Aktiv'/><CHANNEL id='4' bit='15' name='ExtHK vorh'/><CHANNEL id='4' bit='16' name='ExtHK_2 vorh'/><CHANNEL id='4' bit='17' name='ExtHK_3 vorh'/><CHANNEL id='6' bit='0' name='ExtHK Anf'/><CHANNEL id='6' bit='2' name='ExtHK_2 Anf'/><CHANNEL id='6' bit='3' name='ExtHK_3 Anf'/><CHANNEL id='6' bit='4' name='ExtHK Pumpe'/><CHANNEL id='6' bit='6' name='ExtHK_2 Pumpe'/><CHANNEL id='6' bit='7' name='ExtHK_3 Pumpe'/><CHANNEL id='6' bit='8' name='KASK1 MinLeist'/><CHANNEL id='6' bit='9' name='KASK2 MinLeist'/><CHANNEL id='6' bit='10' name='KASK3 MinLeist'/><CHANNEL id='6' bit='11' name='KASK4 MinLeist'/><CHANNEL id='6' bit='12' name='KASK1 MaxLeist'/><CHANNEL id='6' bit='13' name='KASK2 MaxLeist'/><CHANNEL id='6' bit='14' name='KASK3 MaxLeist'/><CHANNEL id='6' bit='15' name='KASK4 MaxLeist'/><CHANNEL id='6' bit='16' name='KASK1 Run'/><CHANNEL id='6' bit='17' name='KASK2 Run'/><CHANNEL id='6' bit='18' name='KASK3 Run'/><CHANNEL id='6' bit='19' name='KASK4 Run'/><CHANNEL id='6' bit='20' name='KASK1 OK'/><CHANNEL id='6' bit='21' name='KASK2 OK'/><CHANNEL id='6' bit='22' name='KASK3 OK'/><CHANNEL id='6' bit='23' name='KASK4 OK'/><CHANNEL id='6' bit='24' name='Kask KWK Out'/><CHANNEL id='6' bit='25' name='Kask FW Out'/><CHANNEL id='6' bit='26' name='KASK KWK OK'/><CHANNEL id='6' bit='27' name='KASK FW OK'/><CHANNEL id='7' bit='0' name='DReg P2'/><CHANNEL id='7' bit='1' name='DReg P3'/><CHANNEL id='7' bit='2' name='DReg Mi auf'/><CHANNEL id='7' bit='3' name='DReg Mi zu'/><CHANNEL id='7' bit='5' name='DReg2 P2'/><CHANNEL id='7' bit='6' name='DReg2 Mi auf'/><CHANNEL id='7' bit='7' name='DReg2 Mi zu'/><CHANNEL id='7' bit='9' name='DReg3 P2'/><CHANNEL id='7' bit='10' name='DReg3 P3'/><CHANNEL id='7' bit='11' name='DReg3 Mi auf'/><CHANNEL id='7' bit='12' name='DReg3 Mi zu'/></DIGITAL></DAQPRJ>"
MauzenLi
(MauzenLi)
August 25, 2025, 12:30pm
128
Thanks for the message format. Unfortunately it still does not work for me. I don’t get anymore the message length error but now it just prints “Invalid State” and “Invalid value” in the logs. No entity holds any value…any idea?
EDIT: After some analysis I could see that the connection state toggles between ok and disconnected every 5 seconds… not sure why this happens.
Checking the connection on telnet directly is fine. There I receive constantly the messages
Could you post your complete nano_pk related configuration.yaml? Could be just a spelling error somewhere.
MauzenLi
(MauzenLi)
August 29, 2025, 8:43am
130
Here is my configuration:
nano_pk:
host: 192.168.0.41
msgformat: “NANO_V14HARp2”
devicename: Nano-PK
parameters: FULL
language: DE
nqtantalus
(Nqtantalus)
August 29, 2025, 11:28am
131
same here connection is flapping every 5 sec
So you inserted the new message format in hargassner.py?
Did you tried to insert it directly in configuration.yaml? I know it shouldn’t make a difference, but worth a try.
nqtantalus
(Nqtantalus)
September 1, 2025, 8:23pm
133
no difference with the connection
For you the message length is still not accurate. It is missing 13 channels. “Expected 135, actual 122”
Today I got my new Hargassner Nano PK and I get the same error as the users above…
@Michael1101W could you please tell me, where exactly I need to copy your mgsformat? I’m still very new to Home Assistant, and don’t know where to put that exactly in the Hargassner.py…
Thank you very much!
Just copying my msg format will not make you happy, most probably. Check in the GitHub folder for the instructions how to get the correct msg format for your system and where to add it
https://github.com/TheRealKillaruna/nano_pk
You need to extract it directly from your system as a lot of people do have different software versions. If this doesn’t work you can add the pull request from anderl78 to get more info why it’s not working. Maybe it’s just a wrong number of channels, which you can add manually.
Good luck.
If this is not working you can message me directly.
I made a new msgformat from my heating as the instructions said and added the new line in the hargassner.py and logged the data.
“HargassnerBridge.async_update(): Unexpected message length. Expected: 149, Actual: 118”
I tried a few different dummy entries, but the error is still the same as above with 118, even if I add 20 dummy lines to it.
So I tried to add the line directly into msgformat in the configuration.yaml instead of the “NANO_V14L” from the Github page.
“HargassnerBridge.async_update(): Unexpected message length. Expected: 116, Actual: 118”
Why is the expected line number changing from 149 to 116? And what should i do when my heating is sending 118 when only 116 are allowed?
hlehoux
September 19, 2025, 8:38pm
138
Hi Guys, i’ve developped a project to pilot my NanoPK, including modifying the temperature, the boiler mode and the zone mode.
project can be found here: GitHub - hlehoux2021/MyHargassner: my personnal hargassner experiments
boiler is presented using MQTT-Discovery ; unfortunatly i’m not a home assistant user, but still it might be useful to share
Hi,
I juste updated to HA 2025.9.4 and the NanoPK integration is down.
Here is the log I got saying init .py file needs adjustements about :
“async_setup await hass.helpers.discovery.async_load_platform(‘sensor’, DOMAIN, {}, config) ”
How can I manage to get it to work with last HA updates ?
Enregistreur: homeassistant.setup
Source: setup.py:425
S'est produit pour la première fois: 17:26:28 (1 occurrence)
Dernier enregistrement: 17:26:28
Error during setup of component nano_pk: 'HomeAssistant' object has no attribute 'helpers'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 425, in _async_setup_component
result = await task
^^^^^^^^^^
File "/config/custom_components/nano_pk-main_bkp/__init__.py", line 43, in async_setup
await hass.helpers.discovery.async_load_platform('sensor', DOMAIN, {}, config)
^^^^^^^^^^^^
AttributeError: 'HomeAssistant' object has no attribute 'helpers'
Hi, I managed to get rid of this error updating my custom component using Anderl78’s fork : this specitfic modification manage to pass this error message.
async_create_task change to work with HA >2014.11
However, my NanoPK12 has been updated to V14.0HAR.p2 this morning.
I had added my new MSGformat to hargassner.py file, adding a dummy channel (114 were excepted but 115 received).
To get it to work, I had to compare the data received from telnet and the MsgFormat expected.
I had to add a dummy Channel106 at the end of the Analog section, thanks to @skrue for the HowTo
opened 03:00PM - 02 Sep 24 UTC
Hello!
I think I figured something out. I compared the heater's TELNET output… with the number of expected values according to <DAQPRJ> (from SD-Card). It happens (at least for me) that two additional values are transferred via TELNET, (expected by the system = 127 vs 129) - and that's why it crashes. That's why I added two (analog) dummies at the end of the msgformat - Channel 119 and 120. If this is the correct position for the dummies is questionable. Please heck this and report it here.
Interesting at this point: The length of the messages seems to be quite different, see the pull request from @apaqd (which, however, did not work for me due to its different length. I could imagine that this is due to different versions of the heater?!
Here is the working msgformat (at least for me for my NANO PK 25) with inserted dummys:
`"<DAQPRJ><ANALOG><CHANNEL id='0' name='ZK' dop='0'/><CHANNEL id='1' name='O2' unit='%'/><CHANNEL id='2' name='O2soll' unit='%'/><CHANNEL id='3' name='TK' unit='°C'/><CHANNEL id='4' name='TKsoll' unit='°C'/><CHANNEL id='5' name='TRL' unit='°C'/><CHANNEL id='6' name='TRLsoll' unit='°C' dop='0'/><CHANNEL id='7' name='Spreizung' unit='°C'/><CHANNEL id='8' name='TRG' unit='°C'/><CHANNEL id='9' name='SZist' unit='%' dop='0'/><CHANNEL id='10' name='SZsoll' unit='%'/><CHANNEL id='11' name='TPo' unit='°C'/><CHANNEL id='12' name='TPm' unit='°C'/><CHANNEL id='13' name='TPu' unit='°C'/><CHANNEL id='14' name='Puff Füllgrad' unit='%' dop='0'/><CHANNEL id='15' name='Puffer_soll oben' unit='°C' dop='0'/><CHANNEL id='16' name='Puffer_soll unten' unit='°C' dop='0'/><CHANNEL id='17' name='PuffZustand' dop='0'/><CHANNEL id='18' name='Max Anf Kessel' dop='0'/><CHANNEL id='19' name='TFW' unit='°C' dop='0'/><CHANNEL id='20' name='Leistung' unit='%' dop='0'/><CHANNEL id='21' name='ESsoll' unit='%'/><CHANNEL id='22' name='min.Leist.TRG' unit='%'/><CHANNEL id='23' name='max.Leist.TRG' unit='%'/><CHANNEL id='24' name='max.Leist.Fuell' unit='%'/><CHANNEL id='25' name='max.Leist.TPO' unit='%'/><CHANNEL id='26' name='ESRegler' unit='%' dop='0'/><CHANNEL id='27' name='Regler K'/><CHANNEL id='28' name='KeBrstScale' unit='%' dop='0'/><CHANNEL id='29' name='Programm' dop='0'/><CHANNEL id='30' name='Störungs Nr' dop='0'/><CHANNEL id='31' name='Max Anf ZenPuf' unit='°C' dop='0'/><CHANNEL id='32' name='I Es' unit='mA' dop='0'/><CHANNEL id='33' name='I Ra' unit='mA' dop='0'/><CHANNEL id='34' name='I Aa' unit='mA' dop='0'/><CHANNEL id='35' name='I Sr' unit='mA' dop='0'/><CHANNEL id='36' name='I Rein' unit='mA' dop='0'/><CHANNEL id='37' name='BLDC_ES ist' unit='rpm' dop='0'/><CHANNEL id='38' name='BLDC_ES soll' unit='rpm' dop='0'/><CHANNEL id='39' name='LZ ES seit Füll.' unit='Min' dop='0'/><CHANNEL id='40' name='LZ ES seit Ent.' unit='Min' dop='0'/><CHANNEL id='41' name='Anzahl Entasch.' dop='0'/><CHANNEL id='42' name='Anzahl SR Beweg.' dop='0'/><CHANNEL id='43' name='Lagerstand' unit='kg' dop='0'/><CHANNEL id='44' name='Verbrauchszähler' unit='kg' dop='0'/><CHANNEL id='45' name='Heiz P Lambda' unit='W' dop='2'/><CHANNEL id='46' name='Heiz U Lambda' unit='V' dop='2'/><CHANNEL id='47' name='Heiz I Lambda' unit='mA' dop='0'/><CHANNEL id='48' name='U_Lambda' unit='mV'/><CHANNEL id='49' name='U Netzteil' unit='mV' dop='0'/><CHANNEL id='50' name='T Spülung' unit='°C'/><CHANNEL id='51' name='BRT' unit='°C'/><CHANNEL id='52' name='Tplat' unit='°C' dop='0'/><CHANNEL id='53' name='TVG' unit='°C'/><CHANNEL id='54' name='TVG2' unit='°C'/><CHANNEL id='55' name='AIN17' unit='V'/><CHANNEL id='56' name='Taus' unit='°C'/><CHANNEL id='57' name='TA Gem.' unit='°C'/><CHANNEL id='58' name='ExtHK Solltmp.' unit='°C' dop='0'/><CHANNEL id='59' name='TVL_A' unit='°C'/><CHANNEL id='60' name='TVLs_A' unit='°C' dop='0'/><CHANNEL id='61' name='TRA_A' unit='°C'/><CHANNEL id='62' name='TRs_A' unit='°C'/><CHANNEL id='63' name='HKZustand_A' dop='0'/><CHANNEL id='64' name='FRA Zustand' dop='0'/><CHANNEL id='65' name='TVL_1' unit='°C'/><CHANNEL id='66' name='TVLs_1' unit='°C' dop='0'/><CHANNEL id='67' name='TRA_1' unit='°C'/><CHANNEL id='68' name='TRs_1' unit='°C'/><CHANNEL id='69' name='HKZustand_1' dop='0'/><CHANNEL id='70' name='FR1 Zustand' dop='0'/><CHANNEL id='71' name='TVL_2' unit='°C'/><CHANNEL id='72' name='TVLs_2' unit='°C' dop='0'/><CHANNEL id='73' name='TRA_2' unit='°C'/><CHANNEL id='74' name='TRs_2' unit='°C'/><CHANNEL id='75' name='HKZustand_2' dop='0'/><CHANNEL id='76' name='FR2 Zustand' dop='0'/><CHANNEL id='77' name='TVL_B' unit='°C'/><CHANNEL id='78' name='TVLs_B' unit='°C' dop='0'/><CHANNEL id='79' name='TRA_B' unit='°C'/><CHANNEL id='80' name='TRs_B' unit='°C'/><CHANNEL id='81' name='HKZustand_B' dop='0'/><CHANNEL id='82' name='FRB Zustand' dop='0'/><CHANNEL id='83' name='TBA' unit='°C'/><CHANNEL id='84' name='TBs_A' unit='°C' dop='0'/><CHANNEL id='85' name='TB1' unit='°C'/><CHANNEL id='86' name='TBs_1' unit='°C' dop='0'/><CHANNEL id='87' name='BoiZustand_1' dop='0'/><CHANNEL id='88' name='TBB' unit='°C'/><CHANNEL id='89' name='TBs_B' unit='°C' dop='0'/><CHANNEL id='90' name='HKR Anf' unit='°C'/><CHANNEL id='91' name='Anf. HKR0' unit='°C' dop='0'/><CHANNEL id='92' name='Anf. HKR1' unit='°C' dop='0'/><CHANNEL id='93' name='Anf. HKR2' unit='°C' dop='0'/><CHANNEL id='94' name='Anf. HKR3' unit='°C' dop='0'/><CHANNEL id='95' name='Anf. HKR4' unit='°C' dop='0'/><CHANNEL id='96' name='Anf. HKR5' unit='°C' dop='0'/><CHANNEL id='97' name='Anf. HKR6' unit='°C' dop='0'/><CHANNEL id='98' name='Anf. HKR7' unit='°C' dop='0'/><CHANNEL id='99' name='Anf. HKR8' unit='°C' dop='0'/><CHANNEL id='100' name='Anf. HKR9' unit='°C' dop='0'/><CHANNEL id='101' name='Anf. HKR10' unit='°C' dop='0'/><CHANNEL id='102' name='Anf. HKR11' unit='°C' dop='0'/><CHANNEL id='103' name='Anf. HKR12' unit='°C' dop='0'/><CHANNEL id='104' name='Anf. HKR13' unit='°C' dop='0'/><CHANNEL id='105' name='Anf. HKR14' unit='°C' dop='0'/><CHANNEL id='106' name='Anf. HKR15' unit='°C' dop='0'/><CHANNEL id='107' name='DiffR3TWq' unit='°C'/><CHANNEL id='108' name='DiffR3 K1' dop='0'/><CHANNEL id='109' name='DiffR3 K2' dop='0'/><CHANNEL id='110' name='DiffR3TDiff1' unit='°C'/><CHANNEL id='111' name='DiffR3TDiff2' unit='°C'/><CHANNEL id='112' name='DiffR3 P1' unit='%' dop='0'/><CHANNEL id='113' name='DiffR3 P2' unit='%' dop='0'/><CHANNEL id='114' name='DiffR3 P3' unit='%' dop='0'/><CHANNEL id='115' name='DiffR3 WMZ_Ges' unit='kWh'/><CHANNEL id='116' name='DiffR3 WMZ_Tag' unit='kWh'/><CHANNEL id='117' name='DiffR3 WMZ_Moment' unit='kW'/><CHANNEL id='118' name='Wasserdruck' unit='bar' dop='2'/><CHANNEL id='119' name='Dummy' unit='bar' dop='2'/><CHANNEL id='120' name='Dummy2' unit='bar' dop='2'/></ANALOG><DIGITAL><CHANNEL id='0' bit='0' name='Störung'/><CHANNEL id='0' bit='1' name='Stb'/><CHANNEL id='0' bit='2' name='Fuellstand'/><CHANNEL id='0' bit='3' name='RLP/PuffP'/><CHANNEL id='0' bit='4' name='RLm_auf'/><CHANNEL id='0' bit='5' name='RLm_zu'/><CHANNEL id='0' bit='10' name='WS freig.'/><CHANNEL id='0' bit='11' name='Akt. Code'/><CHANNEL id='0' bit='14' name='FW Freig.'/><CHANNEL id='0' bit='15' name='gFlP'/><CHANNEL id='0' bit='16' name='gFlM auf'/><CHANNEL id='0' bit='17' name='gFlM zu'/><CHANNEL id='0' bit='18' name='gFl2P'/><CHANNEL id='0' bit='19' name='gFl2M auf'/><CHANNEL id='0' bit='20' name='gFl2M zu'/><CHANNEL id='1' bit='0' name='L Heiz.'/><CHANNEL id='1' bit='1' name='Z Heiz.'/><CHANNEL id='1' bit='2' name='Z Geb.'/><CHANNEL id='1' bit='3' name='AA Run'/><CHANNEL id='1' bit='4' name='AA Dir'/><CHANNEL id='1' bit='5' name='ES Run'/><CHANNEL id='1' bit='6' name='ES Dir'/><CHANNEL id='1' bit='7' name='AS Saug'/><CHANNEL id='1' bit='8' name='AS RA Run'/><CHANNEL id='1' bit='9' name='AS RA Dir'/><CHANNEL id='1' bit='10' name='Rein En'/><CHANNEL id='1' bit='11' name='Rein Run'/><CHANNEL id='1' bit='12' name='Es Rein Endl'/><CHANNEL id='1' bit='13' name='sAS Anf Füll'/><CHANNEL id='2' bit='0' name='HKPA'/><CHANNEL id='2' bit='1' name='MAA'/><CHANNEL id='2' bit='2' name='MAZ'/><CHANNEL id='2' bit='3' name='HKP1'/><CHANNEL id='2' bit='4' name='M1A'/><CHANNEL id='2' bit='5' name='M1Z'/><CHANNEL id='2' bit='6' name='HKP2'/><CHANNEL id='2' bit='7' name='M2A'/><CHANNEL id='2' bit='8' name='M2Z'/><CHANNEL id='2' bit='9' name='HKP3'/><CHANNEL id='2' bit='10' name='M3A'/><CHANNEL id='2' bit='11' name='M3Z'/><CHANNEL id='2' bit='12' name='HKP4'/><CHANNEL id='2' bit='13' name='M4A'/><CHANNEL id='2' bit='14' name='M4Z'/><CHANNEL id='2' bit='15' name='HKP5'/><CHANNEL id='2' bit='16' name='M5A'/><CHANNEL id='2' bit='17' name='M5Z'/><CHANNEL id='2' bit='18' name='HKP6'/><CHANNEL id='2' bit='19' name='M6A'/><CHANNEL id='2' bit='20' name='M6Z'/><CHANNEL id='2' bit='21' name='HKPB'/><CHANNEL id='2' bit='22' name='MBA'/><CHANNEL id='2' bit='23' name='MBZ'/><CHANNEL id='3' bit='0' name='BPA'/><CHANNEL id='3' bit='1' name='BP1'/><CHANNEL id='3' bit='2' name='BP2'/><CHANNEL id='3' bit='3' name='BP3'/><CHANNEL id='3' bit='4' name='BPB'/><CHANNEL id='3' bit='5' name='BZPA'/><CHANNEL id='3' bit='6' name='BZP1'/><CHANNEL id='3' bit='7' name='BZP2'/><CHANNEL id='3' bit='8' name='BZP3'/><CHANNEL id='3' bit='9' name='BZPB'/><CHANNEL id='4' bit='0' name='Aschebox'/><CHANNEL id='4' bit='1' name='Netztrafo'/><CHANNEL id='4' bit='2' name='Netzrelais'/><CHANNEL id='4' bit='4' name='Lagerraum'/><CHANNEL id='4' bit='6' name='FLP'/><CHANNEL id='4' bit='8' name='ATW'/><CHANNEL id='4' bit='9' name='Entasch gesp.'/><CHANNEL id='4' bit='13' name='HKV'/><CHANNEL id='4' bit='14' name='Spülung Aktiv'/><CHANNEL id='4' bit='15' name='ExtHK vorh'/><CHANNEL id='4' bit='16' name='ExtHK_2 vorh'/><CHANNEL id='4' bit='17' name='ExtHK_3 vorh'/><CHANNEL id='6' bit='0' name='ExtHK Anf'/><CHANNEL id='6' bit='2' name='ExtHK_2 Anf'/><CHANNEL id='6' bit='3' name='ExtHK_3 Anf'/><CHANNEL id='6' bit='4' name='ExtHK Pumpe'/><CHANNEL id='6' bit='6' name='ExtHK_2 Pumpe'/><CHANNEL id='6' bit='7' name='ExtHK_3 Pumpe'/><CHANNEL id='6' bit='8' name='KASK1 MinLeist'/><CHANNEL id='6' bit='9' name='KASK2 MinLeist'/><CHANNEL id='6' bit='10' name='KASK3 MinLeist'/><CHANNEL id='6' bit='11' name='KASK4 MinLeist'/><CHANNEL id='6' bit='12' name='KASK1 MaxLeist'/><CHANNEL id='6' bit='13' name='KASK2 MaxLeist'/><CHANNEL id='6' bit='14' name='KASK3 MaxLeist'/><CHANNEL id='6' bit='15' name='KASK4 MaxLeist'/><CHANNEL id='6' bit='16' name='KASK1 Run'/><CHANNEL id='6' bit='17' name='KASK2 Run'/><CHANNEL id='6' bit='18' name='KASK3 Run'/><CHANNEL id='6' bit='19' name='KASK4 Run'/><CHANNEL id='6' bit='20' name='KASK1 OK'/><CHANNEL id='6' bit='21' name='KASK2 OK'/><CHANNEL id='6' bit='22' name='KASK3 OK'/><CHANNEL id='6' bit='23' name='KASK4 OK'/><CHANNEL id='6' bit='24' name='Kask KWK Out'/><CHANNEL id='6' bit='25' name='Kask FW Out'/><CHANNEL id='6' bit='26' name='KASK KWK OK'/><CHANNEL id='6' bit='27' name='KASK FW OK'/><CHANNEL id='7' bit='0' name='DReg P2'/><CHANNEL id='7' bit='1' name='DReg P3'/><CHANNEL id='7' bit='2' name='DReg Mi auf'/><CHANNEL id='7' bit='3' name='DReg Mi zu'/><CHANNEL id='7' bit='5' name='DReg2 P2'/><CHANNEL id='7' bit='6' name='DReg2 Mi auf'/><CHANNEL id='7' bit='7' name='DReg2 Mi zu'/><CHANNEL id='7' bit='9' name='DReg3 P2'/><CHANNEL id='7' bit='10' name='DReg3 P3'/><CHANNEL id='7' bit='11' name='DReg3 Mi auf'/><CHANNEL id='7' bit='12' name='DReg3 Mi zu'/></DIGITAL></DAQPRJ>"`
**One more thing:**
Please edit your hargassner.py and add following (new) line 176:
`self._errorLog += f"HargassnerBridge.async_update(): Unexpected message length. Expected: {self._expectedMsgLength}, Actual: {len(msg)}\n"`
it should look like:
async def async_update(self):
if self._connectionOK:
try:
msgReceived = False
data = await asyncio.wait_for(self._reader.read(64*1024), timeout=BRIDGE_TIMEOUT) # read up to 64k
lines = data.decode().strip().split("\n")
for l in reversed(lines):
msg = l.split()[1:] # remove first field "pm"
if len(msg) != self._expectedMsgLength:
self._errorLog += f"HargassnerBridge.async_update(): Unexpected message length. Expected: {self._expectedMsgLength}, Actual: {len(msg)}\n"
continue
for param in self._paramData.values():
param.initializeFromMessage(msg)
self._latestUpdate = datetime.now()
msgReceived = True
self._missedMsgs = 0
break
If it doesn't work, an error is reported in the HomeAssistant protocol, which shows the expected value according to msgformat and the actual value (from TELNET). It would be helpful if we basically found out this value together with the specific model of the heater. I will also send a [pull request](https://github.com/TheRealKillaruna/nano_pk/pull/35) for this.
Thank you!!!
Finally it works again.
MauzenLi
(MauzenLi)
October 3, 2025, 9:08am
142
I tried now many things and played around a little but now I am stuck here:
HargassnerBridge.getStateClass(): Parameter key Verbrauchszähler not known.
HargassnerBridge.getValue(): Parameter key Verbrauchszähler not known.
HargassnerBridge.async_update(): Unexpected message length. Expected: 132, Actual: 134
HargassnerBridge.async_update(): Unexpected message length. Expected: 132, Actual: 134
HargassnerBridge.async_update(): Unexpected message length. Expected: 132, Actual: 134
Any idea what’s now wrong here?
What should I now add to the message definition?
What about “Verbrauchszähler”?
You need to add two dummy channels in your analog MSGFORMAT.
You will find the method to identify where are these here :
opened 03:00PM - 02 Sep 24 UTC
Hello!
I think I figured something out. I compared the heater's TELNET output… with the number of expected values according to <DAQPRJ> (from SD-Card). It happens (at least for me) that two additional values are transferred via TELNET, (expected by the system = 127 vs 129) - and that's why it crashes. That's why I added two (analog) dummies at the end of the msgformat - Channel 119 and 120. If this is the correct position for the dummies is questionable. Please heck this and report it here.
Interesting at this point: The length of the messages seems to be quite different, see the pull request from @apaqd (which, however, did not work for me due to its different length. I could imagine that this is due to different versions of the heater?!
Here is the working msgformat (at least for me for my NANO PK 25) with inserted dummys:
`"<DAQPRJ><ANALOG><CHANNEL id='0' name='ZK' dop='0'/><CHANNEL id='1' name='O2' unit='%'/><CHANNEL id='2' name='O2soll' unit='%'/><CHANNEL id='3' name='TK' unit='°C'/><CHANNEL id='4' name='TKsoll' unit='°C'/><CHANNEL id='5' name='TRL' unit='°C'/><CHANNEL id='6' name='TRLsoll' unit='°C' dop='0'/><CHANNEL id='7' name='Spreizung' unit='°C'/><CHANNEL id='8' name='TRG' unit='°C'/><CHANNEL id='9' name='SZist' unit='%' dop='0'/><CHANNEL id='10' name='SZsoll' unit='%'/><CHANNEL id='11' name='TPo' unit='°C'/><CHANNEL id='12' name='TPm' unit='°C'/><CHANNEL id='13' name='TPu' unit='°C'/><CHANNEL id='14' name='Puff Füllgrad' unit='%' dop='0'/><CHANNEL id='15' name='Puffer_soll oben' unit='°C' dop='0'/><CHANNEL id='16' name='Puffer_soll unten' unit='°C' dop='0'/><CHANNEL id='17' name='PuffZustand' dop='0'/><CHANNEL id='18' name='Max Anf Kessel' dop='0'/><CHANNEL id='19' name='TFW' unit='°C' dop='0'/><CHANNEL id='20' name='Leistung' unit='%' dop='0'/><CHANNEL id='21' name='ESsoll' unit='%'/><CHANNEL id='22' name='min.Leist.TRG' unit='%'/><CHANNEL id='23' name='max.Leist.TRG' unit='%'/><CHANNEL id='24' name='max.Leist.Fuell' unit='%'/><CHANNEL id='25' name='max.Leist.TPO' unit='%'/><CHANNEL id='26' name='ESRegler' unit='%' dop='0'/><CHANNEL id='27' name='Regler K'/><CHANNEL id='28' name='KeBrstScale' unit='%' dop='0'/><CHANNEL id='29' name='Programm' dop='0'/><CHANNEL id='30' name='Störungs Nr' dop='0'/><CHANNEL id='31' name='Max Anf ZenPuf' unit='°C' dop='0'/><CHANNEL id='32' name='I Es' unit='mA' dop='0'/><CHANNEL id='33' name='I Ra' unit='mA' dop='0'/><CHANNEL id='34' name='I Aa' unit='mA' dop='0'/><CHANNEL id='35' name='I Sr' unit='mA' dop='0'/><CHANNEL id='36' name='I Rein' unit='mA' dop='0'/><CHANNEL id='37' name='BLDC_ES ist' unit='rpm' dop='0'/><CHANNEL id='38' name='BLDC_ES soll' unit='rpm' dop='0'/><CHANNEL id='39' name='LZ ES seit Füll.' unit='Min' dop='0'/><CHANNEL id='40' name='LZ ES seit Ent.' unit='Min' dop='0'/><CHANNEL id='41' name='Anzahl Entasch.' dop='0'/><CHANNEL id='42' name='Anzahl SR Beweg.' dop='0'/><CHANNEL id='43' name='Lagerstand' unit='kg' dop='0'/><CHANNEL id='44' name='Verbrauchszähler' unit='kg' dop='0'/><CHANNEL id='45' name='Heiz P Lambda' unit='W' dop='2'/><CHANNEL id='46' name='Heiz U Lambda' unit='V' dop='2'/><CHANNEL id='47' name='Heiz I Lambda' unit='mA' dop='0'/><CHANNEL id='48' name='U_Lambda' unit='mV'/><CHANNEL id='49' name='U Netzteil' unit='mV' dop='0'/><CHANNEL id='50' name='T Spülung' unit='°C'/><CHANNEL id='51' name='BRT' unit='°C'/><CHANNEL id='52' name='Tplat' unit='°C' dop='0'/><CHANNEL id='53' name='TVG' unit='°C'/><CHANNEL id='54' name='TVG2' unit='°C'/><CHANNEL id='55' name='AIN17' unit='V'/><CHANNEL id='56' name='Taus' unit='°C'/><CHANNEL id='57' name='TA Gem.' unit='°C'/><CHANNEL id='58' name='ExtHK Solltmp.' unit='°C' dop='0'/><CHANNEL id='59' name='TVL_A' unit='°C'/><CHANNEL id='60' name='TVLs_A' unit='°C' dop='0'/><CHANNEL id='61' name='TRA_A' unit='°C'/><CHANNEL id='62' name='TRs_A' unit='°C'/><CHANNEL id='63' name='HKZustand_A' dop='0'/><CHANNEL id='64' name='FRA Zustand' dop='0'/><CHANNEL id='65' name='TVL_1' unit='°C'/><CHANNEL id='66' name='TVLs_1' unit='°C' dop='0'/><CHANNEL id='67' name='TRA_1' unit='°C'/><CHANNEL id='68' name='TRs_1' unit='°C'/><CHANNEL id='69' name='HKZustand_1' dop='0'/><CHANNEL id='70' name='FR1 Zustand' dop='0'/><CHANNEL id='71' name='TVL_2' unit='°C'/><CHANNEL id='72' name='TVLs_2' unit='°C' dop='0'/><CHANNEL id='73' name='TRA_2' unit='°C'/><CHANNEL id='74' name='TRs_2' unit='°C'/><CHANNEL id='75' name='HKZustand_2' dop='0'/><CHANNEL id='76' name='FR2 Zustand' dop='0'/><CHANNEL id='77' name='TVL_B' unit='°C'/><CHANNEL id='78' name='TVLs_B' unit='°C' dop='0'/><CHANNEL id='79' name='TRA_B' unit='°C'/><CHANNEL id='80' name='TRs_B' unit='°C'/><CHANNEL id='81' name='HKZustand_B' dop='0'/><CHANNEL id='82' name='FRB Zustand' dop='0'/><CHANNEL id='83' name='TBA' unit='°C'/><CHANNEL id='84' name='TBs_A' unit='°C' dop='0'/><CHANNEL id='85' name='TB1' unit='°C'/><CHANNEL id='86' name='TBs_1' unit='°C' dop='0'/><CHANNEL id='87' name='BoiZustand_1' dop='0'/><CHANNEL id='88' name='TBB' unit='°C'/><CHANNEL id='89' name='TBs_B' unit='°C' dop='0'/><CHANNEL id='90' name='HKR Anf' unit='°C'/><CHANNEL id='91' name='Anf. HKR0' unit='°C' dop='0'/><CHANNEL id='92' name='Anf. HKR1' unit='°C' dop='0'/><CHANNEL id='93' name='Anf. HKR2' unit='°C' dop='0'/><CHANNEL id='94' name='Anf. HKR3' unit='°C' dop='0'/><CHANNEL id='95' name='Anf. HKR4' unit='°C' dop='0'/><CHANNEL id='96' name='Anf. HKR5' unit='°C' dop='0'/><CHANNEL id='97' name='Anf. HKR6' unit='°C' dop='0'/><CHANNEL id='98' name='Anf. HKR7' unit='°C' dop='0'/><CHANNEL id='99' name='Anf. HKR8' unit='°C' dop='0'/><CHANNEL id='100' name='Anf. HKR9' unit='°C' dop='0'/><CHANNEL id='101' name='Anf. HKR10' unit='°C' dop='0'/><CHANNEL id='102' name='Anf. HKR11' unit='°C' dop='0'/><CHANNEL id='103' name='Anf. HKR12' unit='°C' dop='0'/><CHANNEL id='104' name='Anf. HKR13' unit='°C' dop='0'/><CHANNEL id='105' name='Anf. HKR14' unit='°C' dop='0'/><CHANNEL id='106' name='Anf. HKR15' unit='°C' dop='0'/><CHANNEL id='107' name='DiffR3TWq' unit='°C'/><CHANNEL id='108' name='DiffR3 K1' dop='0'/><CHANNEL id='109' name='DiffR3 K2' dop='0'/><CHANNEL id='110' name='DiffR3TDiff1' unit='°C'/><CHANNEL id='111' name='DiffR3TDiff2' unit='°C'/><CHANNEL id='112' name='DiffR3 P1' unit='%' dop='0'/><CHANNEL id='113' name='DiffR3 P2' unit='%' dop='0'/><CHANNEL id='114' name='DiffR3 P3' unit='%' dop='0'/><CHANNEL id='115' name='DiffR3 WMZ_Ges' unit='kWh'/><CHANNEL id='116' name='DiffR3 WMZ_Tag' unit='kWh'/><CHANNEL id='117' name='DiffR3 WMZ_Moment' unit='kW'/><CHANNEL id='118' name='Wasserdruck' unit='bar' dop='2'/><CHANNEL id='119' name='Dummy' unit='bar' dop='2'/><CHANNEL id='120' name='Dummy2' unit='bar' dop='2'/></ANALOG><DIGITAL><CHANNEL id='0' bit='0' name='Störung'/><CHANNEL id='0' bit='1' name='Stb'/><CHANNEL id='0' bit='2' name='Fuellstand'/><CHANNEL id='0' bit='3' name='RLP/PuffP'/><CHANNEL id='0' bit='4' name='RLm_auf'/><CHANNEL id='0' bit='5' name='RLm_zu'/><CHANNEL id='0' bit='10' name='WS freig.'/><CHANNEL id='0' bit='11' name='Akt. Code'/><CHANNEL id='0' bit='14' name='FW Freig.'/><CHANNEL id='0' bit='15' name='gFlP'/><CHANNEL id='0' bit='16' name='gFlM auf'/><CHANNEL id='0' bit='17' name='gFlM zu'/><CHANNEL id='0' bit='18' name='gFl2P'/><CHANNEL id='0' bit='19' name='gFl2M auf'/><CHANNEL id='0' bit='20' name='gFl2M zu'/><CHANNEL id='1' bit='0' name='L Heiz.'/><CHANNEL id='1' bit='1' name='Z Heiz.'/><CHANNEL id='1' bit='2' name='Z Geb.'/><CHANNEL id='1' bit='3' name='AA Run'/><CHANNEL id='1' bit='4' name='AA Dir'/><CHANNEL id='1' bit='5' name='ES Run'/><CHANNEL id='1' bit='6' name='ES Dir'/><CHANNEL id='1' bit='7' name='AS Saug'/><CHANNEL id='1' bit='8' name='AS RA Run'/><CHANNEL id='1' bit='9' name='AS RA Dir'/><CHANNEL id='1' bit='10' name='Rein En'/><CHANNEL id='1' bit='11' name='Rein Run'/><CHANNEL id='1' bit='12' name='Es Rein Endl'/><CHANNEL id='1' bit='13' name='sAS Anf Füll'/><CHANNEL id='2' bit='0' name='HKPA'/><CHANNEL id='2' bit='1' name='MAA'/><CHANNEL id='2' bit='2' name='MAZ'/><CHANNEL id='2' bit='3' name='HKP1'/><CHANNEL id='2' bit='4' name='M1A'/><CHANNEL id='2' bit='5' name='M1Z'/><CHANNEL id='2' bit='6' name='HKP2'/><CHANNEL id='2' bit='7' name='M2A'/><CHANNEL id='2' bit='8' name='M2Z'/><CHANNEL id='2' bit='9' name='HKP3'/><CHANNEL id='2' bit='10' name='M3A'/><CHANNEL id='2' bit='11' name='M3Z'/><CHANNEL id='2' bit='12' name='HKP4'/><CHANNEL id='2' bit='13' name='M4A'/><CHANNEL id='2' bit='14' name='M4Z'/><CHANNEL id='2' bit='15' name='HKP5'/><CHANNEL id='2' bit='16' name='M5A'/><CHANNEL id='2' bit='17' name='M5Z'/><CHANNEL id='2' bit='18' name='HKP6'/><CHANNEL id='2' bit='19' name='M6A'/><CHANNEL id='2' bit='20' name='M6Z'/><CHANNEL id='2' bit='21' name='HKPB'/><CHANNEL id='2' bit='22' name='MBA'/><CHANNEL id='2' bit='23' name='MBZ'/><CHANNEL id='3' bit='0' name='BPA'/><CHANNEL id='3' bit='1' name='BP1'/><CHANNEL id='3' bit='2' name='BP2'/><CHANNEL id='3' bit='3' name='BP3'/><CHANNEL id='3' bit='4' name='BPB'/><CHANNEL id='3' bit='5' name='BZPA'/><CHANNEL id='3' bit='6' name='BZP1'/><CHANNEL id='3' bit='7' name='BZP2'/><CHANNEL id='3' bit='8' name='BZP3'/><CHANNEL id='3' bit='9' name='BZPB'/><CHANNEL id='4' bit='0' name='Aschebox'/><CHANNEL id='4' bit='1' name='Netztrafo'/><CHANNEL id='4' bit='2' name='Netzrelais'/><CHANNEL id='4' bit='4' name='Lagerraum'/><CHANNEL id='4' bit='6' name='FLP'/><CHANNEL id='4' bit='8' name='ATW'/><CHANNEL id='4' bit='9' name='Entasch gesp.'/><CHANNEL id='4' bit='13' name='HKV'/><CHANNEL id='4' bit='14' name='Spülung Aktiv'/><CHANNEL id='4' bit='15' name='ExtHK vorh'/><CHANNEL id='4' bit='16' name='ExtHK_2 vorh'/><CHANNEL id='4' bit='17' name='ExtHK_3 vorh'/><CHANNEL id='6' bit='0' name='ExtHK Anf'/><CHANNEL id='6' bit='2' name='ExtHK_2 Anf'/><CHANNEL id='6' bit='3' name='ExtHK_3 Anf'/><CHANNEL id='6' bit='4' name='ExtHK Pumpe'/><CHANNEL id='6' bit='6' name='ExtHK_2 Pumpe'/><CHANNEL id='6' bit='7' name='ExtHK_3 Pumpe'/><CHANNEL id='6' bit='8' name='KASK1 MinLeist'/><CHANNEL id='6' bit='9' name='KASK2 MinLeist'/><CHANNEL id='6' bit='10' name='KASK3 MinLeist'/><CHANNEL id='6' bit='11' name='KASK4 MinLeist'/><CHANNEL id='6' bit='12' name='KASK1 MaxLeist'/><CHANNEL id='6' bit='13' name='KASK2 MaxLeist'/><CHANNEL id='6' bit='14' name='KASK3 MaxLeist'/><CHANNEL id='6' bit='15' name='KASK4 MaxLeist'/><CHANNEL id='6' bit='16' name='KASK1 Run'/><CHANNEL id='6' bit='17' name='KASK2 Run'/><CHANNEL id='6' bit='18' name='KASK3 Run'/><CHANNEL id='6' bit='19' name='KASK4 Run'/><CHANNEL id='6' bit='20' name='KASK1 OK'/><CHANNEL id='6' bit='21' name='KASK2 OK'/><CHANNEL id='6' bit='22' name='KASK3 OK'/><CHANNEL id='6' bit='23' name='KASK4 OK'/><CHANNEL id='6' bit='24' name='Kask KWK Out'/><CHANNEL id='6' bit='25' name='Kask FW Out'/><CHANNEL id='6' bit='26' name='KASK KWK OK'/><CHANNEL id='6' bit='27' name='KASK FW OK'/><CHANNEL id='7' bit='0' name='DReg P2'/><CHANNEL id='7' bit='1' name='DReg P3'/><CHANNEL id='7' bit='2' name='DReg Mi auf'/><CHANNEL id='7' bit='3' name='DReg Mi zu'/><CHANNEL id='7' bit='5' name='DReg2 P2'/><CHANNEL id='7' bit='6' name='DReg2 Mi auf'/><CHANNEL id='7' bit='7' name='DReg2 Mi zu'/><CHANNEL id='7' bit='9' name='DReg3 P2'/><CHANNEL id='7' bit='10' name='DReg3 P3'/><CHANNEL id='7' bit='11' name='DReg3 Mi auf'/><CHANNEL id='7' bit='12' name='DReg3 Mi zu'/></DIGITAL></DAQPRJ>"`
**One more thing:**
Please edit your hargassner.py and add following (new) line 176:
`self._errorLog += f"HargassnerBridge.async_update(): Unexpected message length. Expected: {self._expectedMsgLength}, Actual: {len(msg)}\n"`
it should look like:
async def async_update(self):
if self._connectionOK:
try:
msgReceived = False
data = await asyncio.wait_for(self._reader.read(64*1024), timeout=BRIDGE_TIMEOUT) # read up to 64k
lines = data.decode().strip().split("\n")
for l in reversed(lines):
msg = l.split()[1:] # remove first field "pm"
if len(msg) != self._expectedMsgLength:
self._errorLog += f"HargassnerBridge.async_update(): Unexpected message length. Expected: {self._expectedMsgLength}, Actual: {len(msg)}\n"
continue
for param in self._paramData.values():
param.initializeFromMessage(msg)
self._latestUpdate = datetime.now()
msgReceived = True
self._missedMsgs = 0
break
If it doesn't work, an error is reported in the HomeAssistant protocol, which shows the expected value according to msgformat and the actual value (from TELNET). It would be helpful if we basically found out this value together with the specific model of the heater. I will also send a [pull request](https://github.com/TheRealKillaruna/nano_pk/pull/35) for this.