Pompa Di Calore Bongioanni + Modbus + Home Assistant

La pompa di calore Unitec 2 di Bongioanni viene fornita con un controller murale molto completo, che supporta via wifi un'app di gestione alquanto scarna e soprattutto affidandosi a server cinesi di dubbia affidabilità. Qui si vuole illustrare il collegamento in rete locale ad un server Home assistant, il che significa piena disponibilità dei dati in tempo reale e quindi la possibilità di realizzare le più svariate automazioni.

La pompa di calore supporta nativamente il protocollo Modbus, uno standard industriale su interfaccia 485. Io ho voluto collegare via wifi la pompa di calore ad home assistant, quindi.....

Materiale necessario: 1 wifi serial server, cioè un convertitore da RS485 a wifi, individuato su Aliexpress EW11A0 Kit 4,

un alimentatore switching a basso consumo da barra din 220V -> 12 vcc tipo questo MZMW DR-15,

Assemblare il tutto nella scatola di comando della pompa di calore/caldaia, con un risultato simile a questo

Collegamenti: ovviamente il positivo e negativo dell'alimentatore sui corrispettivi del EW11, le connessioni del 485 A+ e B- sui corrispettivi H2 e H1 all'interno del display

Vista la brevità dei collegamenti non serve il cavo schermato, neanche twistato. Conviene annotare anche l'indirizzo del selettore,che stabilisce l'indirizzo slave. Per esempio nel mio esemplare era stato settato su 11.

Adesso si può alimentare l'EW11 e procedere con i settaggi. A questo indirizzo ew11 ho trovato molta documentazione su questa interfaccia, principalmente si tratta di impostare un indirizzo IP statico (no dhcp), settare i parametri di configurazione della seriale 485 (9600 baud, 8 bit, 1 stop, nessuna parità), qualche dato sull'interfaccia modbus (porta 502).

In ogni caso, ecco qui di seguito alcuni screenshot delle schermate di configurazione di EW11

Per chi è pigro, ecco il file di configurazione completo:

<!--SYS Config-->
<SYS key='User' value='admin'>
<SYS key='Password' value='admin'>
<SYS key='DHCP' value='Disable'>
<SYS key='Ip Address' value='192.168.1.170'>
<SYS key='GateWay' value='192.168.1.251'>
<SYS key='Mask' value='255.255.255.0'>
<SYS key='Host Name' value='EW11'>
<SYS key='DNS' value='223.5.5.5'>
<SYS key='Telnet' value='Disable'>
<SYS key='Telnet Port' value='23'>
<SYS key='Echo' value='Enable'>
<SYS key='Web' value='Enable'>
<SYS key='Web Port' value='80'>
<SYS key='Ipv6' value='Disable'>
<SYS key='Ipv6 address' value=''>
<SYS key='Ipv6 DHCP' value='Disable'>
<SYS key='NTP' value='Disable'>
<SYS key='NTP Server' value=''>
<SYS key='NTP Port' value='0'>
<SYS key='NTP GMT' value='8'>
<SYS key='Customer ID' value='EW11'>
<SYS key='Config Version' value='0'>
<SYS key='NetworkMode' value='Router'>
<SYS key='WiFiMode' value='STA'>
<SYS key='WiFiAPSSID' value='EW11_F956'>
<SYS key='WiFiAPKey' value=''>
<SYS key='WiFiSTASSID' value='YYYYYYYYY-XXXXXXX'>
<SYS key='WiFiSTAKey' value='XXXXXXXXXXXX'>
<SYS key='WiFiAPCH' value='0'>
<SYS key='WiFiHideSSID' value='0'>
<SYS key='WiFiRoamingEn' value='0'>
<SYS key='ScanRSSIThreshold' value='0'>
<SYS key='ConnectRSSIThreshold' value='0'>
<SYS key='LanIpAddress' value='10.10.100.254'>
<SYS key='LanMarsk' value='255.255.255.0'>
<SYS key='LanDhcpEn' value='Disable'>
<SYS key='EthernetMode' value='WAN'>
<SYS key='Longitude' value='0.000000'>
<SYS key='Latitude' value='0.000000'>
<SYS key='SmartConfig' value='SmartLink'>
<SYS key='ModbusTime' value='0'>

<!--UART Config-->
<UART key='Baudrate' value='9600'>
<UART key='Databits' value='8'>
<UART key='Stopbits' value='1'>
<UART key='Parity' value='NONE'>
<UART key='FlowCtrl' value='Half-Duplex'>
<UART key='Software FlowCtrl' value='Disable'>
<UART key='Xon' value='11'>
<UART key='Xoff' value='13'>
<UART key='Protocol' value='Modbus'>
<UART key='Frame Length' value='16'>
<UART key='Frame Time' value='100'>
<UART key='Tag Enable' value='Disable'>
<UART key='Tag Head' value='00'>
<UART key='Tag Tail' value='00'>
<UART key='Buffer Size' value='512'>
<UART key='gapTime Size' value='50'>
<UART key='cliGetin' value='1'>
<UART key='serialStr' value='+++'>
<UART key='waitTime' value='300'>

<!--SOCK Config-->
<SOCK name='netp' key='Name' value='netp'>
<SOCK name='netp' key='Protocol' value='TCP-SERVER'>
<SOCK name='netp' key='Server Addr' value='0.0.0.0'>
<SOCK name='netp' key='Remote Port' value='0'>
<SOCK name='netp' key='Local Port' value='502'>
<SOCK name='netp' key='Buffer Size' value='512'>
<SOCK name='netp' key='KeepAlive' value='60'>
<SOCK name='netp' key='Timeout' value='0'>
<SOCK name='netp' key='Security' value='NONE'>
<SOCK name='netp' key='Connect Mode' value='Always'>
<SOCK name='netp' key='VcomEn' value='0'>
<SOCK name='netp' key='Rout' value='uart'>
<SOCK name='netp' key='maxAccept' value='3'>

A questo punto, il dispositivo dovrebbe essere in grado di comunicare: ma cosa e come? Adesso entriamo un po nel dettaglio.....