Se avete letto (e realizzato) le due puntate precedenti che spiegano, grazie ad un Raspberry Pi ed alla scheda PiCAN2, come hackerare la vostra pompa di calore Daikin HPSU Compact:
Daikin HPSU Compact hack: prima parte
Daikin HPSU Compact hack: seconda parte
siete pronti per completare un sistema di monitoraggio avanzato della vostra pompa di calore.
L’obiettivo e’ quello di poter pubblicare su un servizio in cloud i dati rilevati dai contatori interni della pompa di calore Daikin onde farne analisi in tempo reale e su base storica.
Successivamente, ma vi rimando al prossimo inverno, saremo anche in grado di controllare in modo automatico la pompa di calore.
Se pensi di aver trovato un approccio troppo complesso, ti invito a leggere in alternativa fin dove mi sono spinto in termini di ottimizzazione del riscaldamento sulla mia pompa di calore Daikin HPSU Compact con un approccio tradizionale in Pompa di calore Daikin HPSU Compact: curva climatica inversa a 4 scorrimenti.
Raspberry Pi + PiCAN2: raccolta e pubblicazione dati
Questo e’ il fulcro software del sistema e ringrazio ancora una volta zanac per la sua realizzazione ho solamente supportato in minima parte.
Ricordo che le componenti hardware sono un Raspberry Pi ed una scheda PiCAN2:
Un prerequisito è l’installazione del package pyserial su Python:
pip3 install pyserial
Al momento non c’e’ ancora un procedura di installazione consolidata, per cui occorre andare sul progetto in GitHub e scaricare ed installare il tutto:
https://github.com/zanac/pyHPSU
Non dimenticate anche di creare la directory /etc/pyHPSU/
ed installarci i i vari file di configurazione presenti:
commands_hpsu.csv
commands_hpsu_EN.csv
commands_hpsu_IT.csv
EMONCMS.ini
Nella versione corrente la sintassi di utilizzo è la seguente:
pyHPSU.py -d DRIVER -c COMMAND
-d --driver driver name: [ELM327, PYCAN, EMU, HPSUD]
-p --port port (eg COM or /dev/tty*, only for ELM327 driver)
-o --output_type output type: [JSON, CSV, CLOUD] default JSON
-c --cmd command: [see commands domain]
-v --verbose verbosity: [1, 2] default 1
-u --upload upload on cloud: [_PLUGIN_]
-l --language set the language to use [EN IT DE]
-g --log set the log to file [_filename]
Con un esempio di utilizzo pratico si vede che e’ alquanto semplice:
python3 /home/pi/pyHPSU-master/pyHPSU.py -d PYCAN -c t_hc_set -c t_dhw_set -c t_ext -c t_outdoor_ot1 -c ta2 -o CLOUD -u EMONCMS -g /home/pi/hpsu.medium.log -v 1
[Notate la sintassi estesa che ho utilizzato includendolo in uno script]
-d PYCAN
: specifica il driver per la librieria Python CAN (quella utilizzata con la scheda PiCAN2)-c t_hc_set -c t_dhw_set -c t_ext -c t_outdoor_ot1 -c ta2
: e’ l’elenco di variabili prelevate dalla HPSU con l’invocazione del comando (utilizzando i nomi definiti nel vocabolario applicativo)-o CLOUD -u EMONCMS
: specifica di pubblicare contestualmente in cloud spendendo verso emoncms.org-g /home/pi/hpsu.medium.log -v 1
: specifica un file di log con verbosità alta
Il tutto e’ basato su un file di configurazione di sintassi alquanto chiara ed auto-esplicativa:
[config]
apikey=YOUR-API-KEY-HERE
[node]
node_30=t_hs,t_hc,flow_rate,t_return,mode,t_ext,t_hc_set,bpv,posmix,t_dhw,t_dhw_set,t_v1,t_dhw1,t_vbh,t_r1,tliq2,tdhw2,ehs,qboh,qchhp,qch,qwp,qdhw,pump,ta2,t_outdoor_ot1,t_dhw_setpoint1,hyst_hp
Ricordate anche di inserire la vostra chiave in lettura e scrittura per le API di emoncms.org nel file di configurazione EMONCMS.ini
.
Al fine di non perturbare troppo il sistema e dati i limiti di frequenza di pubblicazione su emoncms, ho creato tre timer + servizio + shell script da installare in systemctl
che catturano e pubblicano i dati con frequenza differenti:
Metriche Daikin HPSU Compact
Direi che questa parte, superate le complessità tecniche di installazione e configurazione software di Raspberry Pi e PiCAN2, e’ stata quella più lunga in termini di tempo soprattutto perché la documentazione Daikin non e’ spesso chiara/completa.
L’esito e’ stata la selezione di un set di parametri che si sono rivelati affidabili ed associabili facilmente allo schema di funzionamento della pompa di calore Daikin HPSU Compact:
DISPLAY | VOCABOLARIO | SCHEMA | DESCRIZIONE | Unità |
---|---|---|---|---|
Flusso Volumetrico | flow_rate | V1 | Portata flusso circolazione acqua | l/h |
Pos Mix | posmix | 3UV DHW | Posizione valvola 3 vie 3UV DHW | % |
BPV | bpv | 3UBV1 | Posizione valvola 3 vie 3UV B1 | % |
T-GDC | t_v1 | tV1 | Temperatura di mandata scambiatore a piastre | °C |
T-ACS | t_dhw1 | tDHW1 | Temperatura bollitore acqua calda | °C |
T.Circ.Risc. | t_vbh | tV,BH | Temperatura mandata pavimento o uscita bollitore | °C |
T-ritorno | t_r1 | tR1 | Temperatura di ritorno | °C |
Pump | pump | pump | Velocità pompa di circolazione acqua | % |
EHS | ehs | ehs | Potenza backup-heater | kW |
Oppure la visualizzazione della modalità di funzionamento / set-point impostati correntemente sul sistema:
DISPLAY | VOCABOLARIO | DESCRIZIONE | Unità |
---|---|---|---|
Mode | mode | Modalità attuale pompa di calore | Riscaldamento, Raffrescamento, Produzione ACS, Sbrinamento |
T.Circ.Risc.Nom. | t_hc_set | Temperatura nominale mandata riscaldamento | °C |
T-ACS Nom. | t_dhw_set | Temperatura nominale bollitore acqua calda | °C |
Calibrazione sensori di temperatura
Al fine di garantire misure il più possibile affidabili, in particolare quelle di potenza ed energia, e’ necessario effettuare una taratura delle misure dei sensori “fisici” di temperatura. Questo serve a garantire che calcolando delle differenze di temperatura si siano rimossi/minimizzati gli errori di misura dei sensori veri e propri.
Per quanto sia le componenti hardware Raspberry Pi e PiCAN2 che quelle software garantiscano di collezionare i dati digitali presenti sul CAN-Bus della pompa di calore Daikin HPSU Compact, l’esperienza pratica di tutti i possessori di questa pompa di calore ci dice che le misure di temperatura presenti non si “parlano” mai (in particolare i famigerati T-GDC e T.Circ.Risc.).
La procedura di calibrazione che ho seguito e’ alquanto semplice:
- ho messo la pompa di calore in condizioni di riscaldamento ma con una temperatura di mandata nominale estremamente bassa: il risultato e’ che la pompa di circolazione gira (al massimo valore possibile) mentre il compressore esterno rimane spento
- in questa condizione, osservando lo schema interno di funzionamento, dopo un certo numero di ore in cui il sistema stabilizza qualsiasi transitorio deve essere necessariamente tV1 = tV,BH = tR1 (o in altri termini T-GDC = T.Circ.Risc. = T-Ritorno)
- Scegliendo come valore corretto quello mediano, otteniamo gli off-set da applicare alle singole misure per “normalizzare” il valore a quello più corretto (statisticamente parlando)
- Questo ci assicura che nel calcolo delle potenze abbiamo rimosso totalmente l’errore dovuto alla tolleranza dei sensori di temperatura
- Non siamo ovviamente “protetti” dagli errori associati a non linearità dei sensori (differenze che variano al variare della temperatura) e dalla risoluzione della misura stessa
Nella pratica del mio esemplare di pompa di calore Daikin HPSU Compact posso dire che:
- la calibrazione e’ perfettamente affidabile per le temperatura tipiche del riscaldamento (intorno ai 30 °C)
- si evidenziano delle non linearità (quindi differenze) per le temperature tipiche della produzione di ACS (intorno ai 50 °C)
- ho preferito la perfetta calibrazione in riscaldamento poiché e’ di gran lunga la condizione di funzionamento in cui viene prodotta più energia termica nel corso dell’anno
Calcolo di potenza/energia termica e COP
Oltre ad apprezzare il funzionamento in tempo reale, siamo ora in grado di calcolare le metriche più interessanti per verificare l’efficienza del funzionamento della nostra pompa di calore Daikin HPSU Compact.
La formula di base per poter calcolare la potenza termica scambiata da un circuito qualsiasi in cui circola acqua e’ la seguente:
P termica ( W) = 1,163 * Portata (l/h) * ΔT ( °C)
Questa formula può essere applicata ai vari elementi del nostro impianto, ma occorre porre attenzione alla presenza delle valvole a 3 vie che cambiano la configurazione idraulica, in particolare durante le fasi transitorie. In questo senso lo sbrinamento e’ la fase più complessa in termini di “attribuzione” dei vari flussi termici.
La misura della potenza/ energia termica netta che transita sullo scambiatore a piastre e’ quella più precisa in assoluto perché non soffre dei vari stati delle valvole a tre vie:
Exchanger Power = 1.163 * V1 * (tV1 – tR1)
L’unico difetto che ha e’ che non consente di distingue i contributi termici dovuti a fasi tra di loro molto diverse come riscaldamento, sbrinamento ed ACS. Questo diventa particolare importante col comportamento della pompa di calore Daikin HPSU Compact che, per basse temperatura di mandata, preleva tutto il calore necessario agli sbrinamenti dall’accumulo.
Per questo motivo, data la limitatezza di emoncms.org per fare calcoli avanzati sui valori di input, ho adottato le formule seguenti per valutare la potenza termica netta inviata al pavimento ed all’accumulo:
Floor Power = 1.163 * V1 * (tV,BH – tR1) ; Heating Mode only
Tank Power = 1.163 * V1 * (tV1 – tV,BH) + EHS ; DHW Mode or Defrost Mode only
Queste 2 formule sono affette da un errore marginale durante le fasi transitorie (valvole a 3 vie in movimento da uno stato stabile all’altro).
Con queste definizioni la perdita per gli sbrinamenti si sposta sulla potenza termica inviata all’accumulo che viene decurtata dell’energia sottratta a causa degli sbrinamenti. Nella pratica si vede bene che con sbrinamenti frequenti il Tank COP si riduce drasticamente, per quanto una frazione di calore vada anche verso il pavimento.
Vediamo l’andamento delle tre misure di potenza termica in fase di riscaldamento ed ACS:
Si vede benissimo:
- la perfetta aderenza di Floor Power e Exchanger Power
- la sovra-stima di Tank Power rispetto ad Exchanger Power (dovuta alla differenza non lineare dei sensori di temperatura al crescere della temperatura stessa)
I COP in tempo reale vengono calcolati dividendo la potenze/energia termica per la corrispondente potenza/energia elettrica.
L’energia viene calcolata dalla potenza utilizzando il processor Power to kWh di emoncms.
Utilizzando le dashboard di emoncms e’ possibile creare viste davvero gradevoli e potenti che potenti che potete apprezzare qui’ in Funzionamento in tempo reale pompa di calore aria acqua.
Il sistema cosi’ realizzato e’ in grado di misurare il COP effettivo della pompa di calore avulso da qualsiasi influenza dell’impianto idraulico:
- la potenza termica e’ misurata ai morsetti (scambiatore di calore a piastre)
- la potenza elettrica e’ misurata ai morsetti (alimentazione di unita’ esterna RRLQ006CAV3 + unita’ interna Daikin HPSU Compact 508 (H/C) DB + backup-heater BUH1)
Queste misure sono quindi perfettamente confrontabili con i dati nominali presenti sulla documentazione di prodotto.
Daikin HPSU Compact + Raspberry Pi + PiCAN2: next steps
Quando ho creato il sistema, oltre alla sorpresa iniziale, ho scatenato un po’ di mal di pancia e critiche sulla sua attendibilità. Mi duole dirlo ma la maggior parte non in buona fede.
Il punto di partenza e’ che la precisione del sistema e’ quella assicurata dalla pompa di calore Daikin HPSU Compact stessa: non abbiamo aggiunto errori a quelli eventualmente esistenti. Detto in altre parole abbiamo realizzato delle viste facilitate e storicizzate ai dati interni Daikin (DaikinHPSU Compact hack).
Aggiungerei che grazie alla calibrazione delle misure di temperatura la precisione della misura della potenza/energia termica del sistema e’ di gran lunga maggiore della pompa di calore Daikin HPSU Compact grezza.
Dopo abbondanti osservazioni dei dati fornitori dal mio Raspberry Pi e dalla scheda PiCAN2, ci sono comunque una serie di considerazioni da fare che vanno indirizzate:
- qualche singola estrazione dati dalla Daikin HPSU Compact fallisce (campione mancante) – statisticamente irrilevante e sostanzialmente invisibile sui dashboard
- qualche singola estrazione dati dalla Daikin HPSU Compact fornisce dati palesemente errati (sicuramente errore interno alla Daikin HPSU Compact, ad esempio una temperatura che crolla da 30 °C ad 1 °C per risalire immediatamente dopo a 30 °C) – statisticamente irrilevante ma visibile sui dashboard
- la frequenza di campionamento delle grandezze termiche (estratte dalla Daikin HPSU Compact) e’ differente da quelle elettriche (misurate direttamente da OEM)
- per le grandezze calcolate (in particolare ΔT e potenze termiche) tutti i punti precedenti determinano valori “rumorosi” e/o con singoli campioni visibilmente spuri – statisticamente irrilevante ma visivamente molto fastidioso
- alcuni sensori sembrano lievemente rumorosi (ad esempio la temperatura di ritorno)
La mia idea di soluzione è che nel layer intermedio tra quello fisico (CAN-Bus) e quello applicativo, la libreria di acquisizione e pubblicazione dei dati, ci dovrebbero stare delle logiche (opzionali) di:
- data filtering (per attenuare/rimuovere il rumore)
- data cleansing (per rimuovere dati palesemente fuori scala)
- calcolo on the fly (calcolare al volo una grandezza derivata da grandezze elementari ma tra campioni tra di loro sincroni)
Questo potrebbe essere del tutto trasparente al layer applicativo che non farebbe altro che invocare normalmente la lettura di una grandezza (nativa o derivata) ottenendo dati estremamente puliti.
Ovviamente le grandezze derivate sarebbero scolpite in un vocabolario per il loro uso con il codice implementativo.
Anche la pubblicazione in cloud dovrebbe fare uso di questo servizio intermedio per poter visualizzare/storicizzare dati puliti.
Esempi di calcoli on-the-fly di grandezze derivate:
- applicazione di off-set (costanti) di correzione (vedi calibrazione sensori di temperatura)
- calcolo di differenze (come i ΔT acqua)
- calcolo potenze termiche
- derivazione di grandezze binarie (esempio Modo Defrost) da grandezze multivalore (Modo corrente)
Direi che zanac ha ancora un sacco di lavoro da fare !
Nel caso vi capiti con frequenza di bruciare la SD Card del vostro Raspberry Pi leggere la mia soluzione in Raspberry Pi | Collegare hard disk esterno.
Tutti i miei articoli su Daikin HPSU Compact:
Ultimo aggiornamento Amazon Affiliate 2024-12-07 at 09:41
Complimenti per l’ottimo lavoro svolto.
Avrei un paio di domande da porle:
1) Io possiedo il modulo RoCon U1 già collegato al J13. Posso collegare il Raspberry in parallelo? Potrebbero sorgere dei problemi?
2) Una volta che si ha accesso alla macchina tramite Raspberry pensa sia possibile aggiornare il FW della stessa che, anche nell’ultima versione, è ancora pieno di bachi? Bachi che Daikin ha riconosciuto ma purtroppo non intende correggere per le HPSU Compact 508 R410A come la mia.
La ringrazio anticipatamente.
Ciao,
complimenti per la guida! Ho la tua stessa pompa di calore.
Con questo sistema di monitoraggio, effettuo solo una lettura dei dati? corretto?
non c’è possibilità di interagire con la macchina? (cosa che non voglio assolutamente fare per non fare danni)
grazie mille
Ciao Emiliano, ho seguito senza intoppi le prime 2 parti della guida, ora mi trovo a dover installare il pacchetto presente in Github, potresti spiegare meglio come va instllato?
Ciao Davide,
devi clonare tutto il pacchetto da GitHub. Tieni conto che non è ingegnerizzato quindi bisogna smanettare purtroppo.
Prova a dare una lettura a questa quida introduttiva Introduction To GitHub (Raspberry Pi).
In alternativa puoi fare il download dello zip dall’interfaccia web di GitHub.
Ciao, complimenti per il progetto,
Vorrei realizzarlo ma mi manca il tempo e sicuramente un po’di conoscenze.
Esiste una soluzione simile già pronta in commercio? Ho una Daikin altherma 3 h HT,
Oppure ne realizzi tu per la vendita?
Lo scheda ufficiale Daikin da quel che ho capito mi sembra inutile…
Ciao Davide,
con le soluzioni proprietarie Daikin al momento hai “solo una prolunga” del pannello di comando.
Leggi anche il mio articolo su Termostato Daikin Altherma 3.
Non realizzo o vendo nulla (il sistema non è industrializzato).
Gli unici sistema commerciali che ho trovato che si interfaccino con la Daikin Altherma sono i seguenti:
– Airzone
https://www.youtube.com/watch?v=Mkc0pfHRlMk
– Niko
Non ho comunque approfondito troppo.
Ciao ,
Ho una compact r32 del 2018 , ho acquistato il modulo can per partire con il progetto ma poi mi sono fatto un po’ di problemi ( paure ) e ho acquistato il rocon g1 ( 500€) buttati per carità qualcosa mi fa cambiare ma nulla di più della t ambiente e modalità !
Arrivando al sodo , questo fantastico progetto d applicabile alla mia versione secondo te ?
Grazie
Ciao Stefano,
premesso che non ho potuto provare materialmente, secondo me la risposta è quasi certamente sì.
Ho verificato sul manuale della unità interna della Daikin Altherma 3 R ECH2O ed anche della ancora più recente Daikin Altherma 3 H HT ECH2O ed in entrambi i casi è ancora assolutamente presente il connettore J13 per il collegamento di dispositivi RoCon opzionali che utilizzano il CAN Bus.
L’unico margine minimo di sfrido potrebbe essere su qualche dato che transita sul bus.
La mia esperienza professionale mi fa però ritenete che sia stato applicato fino in fondo il principio della retro compatibilità (detto anche “del maiale non si butta via niente”).
Sei hai parecchio tempo libero, con un investimento limitato, potresti serenamente buttartici.
Ovviamente dovrai mangiare pane, Raspberry e Python. Ma potrebbe pure essere divertente.
Ho colto l’occasione per aggiornare il primo articolo della serie in questo senso aggiungendo i dettagli.
Ciao ,
scusa mi ero perso la risposta . intanto grazie,
sto giusto preparando in questi giorni il RPI con il suo modulo e poi inizierò il progetto ,
ti aggiornerò dell’esito ( compatibilità).
Grazie
Ciao Stefano,
io ho installato da qualche mese una ALTHERMA 3 R ECH2O e nonostante il tecnico Daikin me lo avesse sconsigliato (!!) ho acquistato il ROCON G1 per poter comandare la PDC e visualizzare i consumi senza dover scendere in garage. A novembre e dicembre si è collegata al server DAIKIN per qualche giornata, poi dal 27 dicembre blocco totale. Dall’assistenza Daikin di Genova prima mi hanno detto di avere dei problemi con il server in Germania, poi di far controllare la rete e di impostare un IP fisso (???).
Da te funziona il ROCON? come hai impostato la rete ? (io sono su FASTWEB) A volte resta accesa la luce verde sul ROCON ma non è visibile ne sul sito internet ne sulla APP.
NON ho grandi esigenze ed ancor meno esperienza di elettronica ed informatica per fare il progetto con Raspberry , ma mi scoccia molto aver buttato quei soldi per nulla !!
Ciao Luca,
io lo avevo preso anni fa e poi abbandonato perché non mi permetteva quanto mi interessava.
Ho ritrovato mail del 2016 (!) in cui avevo contattato il supporto all’indirizzo service-export@rotex.de
Ho provato ma non funziona più
“Due to the reorganisation of ROTEX Heating System GmbH to DAIKIN Airconditioning Germany GmbH the E-Mail address service-export@rotex.de is no longer used.
The service and sales business is handled via the local DAIKIN affiliate in your country.”
Io avevo un indirizzo IP dinamico e funzionava anche se ricordo numerose disconnessioni.
È possibile contattarti telefonicamente?
Grazie
Ciao Simone,
non faccio consulenze personalizzate al momento.