Raffrescamento a pavimento e comfort

Regolazione estiva Daikin Rotex HPSU Compact per raffrescamento a pavimento e comfort ottimale.

Gli effetti del riscaldamento globale sono sempre più evidenti: inverni asciutti ed estati calde che cominciano sempre prima.

Per chi vive in piena pianura padana come me il tutto si combina ad una umidità a dir poco soffocante. Se avete la ventilazione meccanica controllata raccomando la lettura preliminare di Raffrescamento estivo e VMC: attenzione all’umidità.

Nell’articolo Climatizzazione estiva: too fast too furious, avevo condiviso le mie esperienze di regolazione del raffrescamento a pavimento sul mio impianto, che ricordo essere costituito da pompa di calore con pavimento radiante, UTA per ventilazione meccanica e deumidifica e fotovoltaico.

I dettagli dell’impianto li trovate alla pagina Informazioni.

Comfort estivo

Le necessita’ di comfort interno per l’estate 2017 non sono sostanzialmente cambiate, ma nel corso di questo inverno mi sono dotato di un sistema di monitoraggio e controllo che mi consente di accendere e regolare la mia pompa di calore Daikin HPSU Compact in modo avanzato e sofisticato (ma soprattutto in modo programmabile). Per approfondire potete leggere l’articolo Hack my Daikin HPSU Compact: terza parte.

Per cercare di avere una misura univoca del comfort che tenga conto sia della temperatura che dell’umidità ambientale, ho provato ad adottare il cosiddetto Humidex, che misura fornisce la temperatura percepita rispetto all’umidità relativa dell’aria.

Nel mio sistema di climatizzazione estiva, in cui raffrescamento a pavimento e deumidifica viaggiano sempre in tandem, l’Humidex può essere l’indicatore perfetto da misurare (calcolare) e poi utilizzato per una crono-programmazione con isteresi, cercando di non superare mai in modo significativo il valore di 29 ºC di temperatura percepita.

Convenienza economica

Ripassiamo invece i criteri con cui stabilire la convenienza economica di quando far funzionare la climatizzazione estiva con raffrescamento a pavimento:

  • presenza di impianto fotovoltaico
  • convenzione di SSP (Scambio Sul Posto)
  • tariffa elettrica mono-oraria o bi-oraria

Come sempre, facciamo due calcoli col mio caso concreto: stimiamo il costo economico netto per “sottrarre” 10 kWh termici dall’involucro (e contemporaneamente deumidificare).

Prendo come riferimento i dati del 22 giugno 2017, giornata già particolarmente calda ed umida.

A supporto le caratteristiche nominali di prodotto della pompa di calore Daikin HPSU Compact in caso di funzionamento con raffrescamento a pavimento:

Regolazione estiva Daikin Rotex HPSU Compact per raffrescamento e comfort ottimale.

L’UTA in modalità deumidifica ha un assorbimento sostanzialmente costante di circa 540 W elettrici.

Per semplicità nei calcoli, assumiamo di operare con una temperatura di mandata pari a 15 ºC e di dissipare il calore richiesto in 2 ore di funzionamento.

Io dispongono di una tariffa bi-oraria D1 per pompe di calore, suggerisco a chi fosse interessato la lettura di Tariffa D1 per pompe di calore e riforma tariffe elettriche.

I costi elettrici netti sono i seguenti:

  • F1 = 0,262 Eur / kWh
  • F2+F3 = 0,182 Eur / kWh

Lo SSP nell’ultimo anno (2016) mi ha mediamente restituito 0,208 Eur / kWh scambiato. Potete trovare i dettagli in Scambio Sul Posto: bilancio 2016.
Una precisazione: nella simulazione i dati dello SSP sono relativi al 2016 mentre le tariffe elettriche quelle del 2017. Ritengo che il risultato non cambierà nella sostanza dei fatti.

Funzionamento diurno

In questo caso cerchiamo di massimizzare l’autoconsumo del fotovoltaico mediante l’accensione diurna del raffrescamento a pavimento.

Intervallo di riferimento climatizzazione e fotovoltaico ⇒ 12:30 – 14:30

T Esterna media ⇒ 31 ºC

P FV = 1,65 kW

Vi prego di notare la potenza di picco di produzione del fotovoltaico limitata determinata dalla potenza nominale di 3 kWp e dalla disposizione sulle falde Est ed Ovest del mio tetto.

Dalla tabella di prodotto:

EER = 3,0

Quindi ricaviamo la potenza elettrica assorbita dalla pompa di calore:

P = E termica / (Intervallo * EER) = 10 / (2,0 * 3,0) = 1,67 kW elettrici

Aggiungendo la UTA otteniamo un assorbimento elettrico di 2,21 kW.

Il costo lordo per “sottrarre” 10 kWh termici durante il giorno mediante il raffrescamento a pavimento (inclusa deumidifica), con la tariffa F1, risulta dunque essere:

2,21 * 2 * 0,262 = 1,16 Eur

Ipotizzando di auto-consumare integralmente la produzione del fotovoltaico, dovremo invece assorbire dalla rete per 2 ore:

2,21 – 1,65 = 0,56 kW

Il costo netto per “sottrarre” 10 kWh termici durante il giorno mediante il raffrescamento a pavimento (inclusa deumidifica) risulta dunque essere:

0,56 * 2 * 0,262 = 0,293 Eur

In altre parole l’auto-consumo ci ha fatto risparmiare 0,867 Eur.

Funzionamento notturno

In questo caso cerchiamo di massimizzare l’efficienza della pompa di calore facendo funzionare il raffrescamento a pavimento di notte. Ovviamente la potenza in eccesso del fotovoltaico di verrà restituita mediante lo SSP e deve essere tenuta in conto per avere dati confrontabili.

Intervallo di riferimento FV ⇒ 12:30 – 14:30

P FV = 1,65 kW

Possiamo facilmente calcolare l’energia immessa in rete:

E = 2,0 * 1,65 = 3,3 kWh elettrici

Che lo SSP ci potrebbe restituire integralmente in misura pari a:

3,3 * 0,208 = 0,686 Eur

Intervallo di riferimento climatizzazione ⇒ 04:00 – 06:00

T Esterna media ⇒ 22,5 ºC

Dalla tabella di prodotto:

EER = 4,0 (onestamente per i valori misurati sul campo sarebbe più alto)

Quindi ricaviamo la potenza elettrica assorbita dalla pompa di calore:

P = E termica / (Intervallo * EER) = 10 / (2,0 * 4,0) = 1,25 kW elettrici

Aggiungendo la UTA otteniamo un assorbimento elettrico di 1,79 kW: col semplice spostamento in notturna il consumo elettrico si riduce del 19% !

Dovremo dunque assorbire dalla rete 1,79 kW per 2 ore.

Applicando la tariffa F2+F3, il costo lordo per “sottrarre” 10 kWh termici durante la notte mediante il raffrescamento a pavimento (inclusa deumidifica) risulta dunque essere::

1,79 * 2 * 0,182 = 0,652 Eur

Combinando solamente il miglioramento di efficienza della pompa di calore con miglior tariffa elettrica notturna abbiamo ridotto il costo elettrico lordo del 44% spostando da funzionamento diurno a notturno !

Sottraendo quanto non consumato di giorno e restituito dallo SSP, otteniamo il costo netto per “sottrarre” 10 kWh termici durante la notte mediante il raffrescamento a pavimento (inclusa deumidifica):

0,652 – 0,686 = –0,034 Eur

Conclusioni

Nel mio caso risulta evidente che far funzionare la climatizzazione estiva (raffrescamento a pavimento + deumidifica) di notte rispetto al giorno consente un risparmio economico netto sostanzialmente pari al 100% !!

Ricordo e ribadisco che questo risultato si riferisce al mio caso: raccomando di ripercorrere lo stesso ragionamento col vostro caso specifico.

Ovviamente tutto questo e’ possibile solo se si assicura il livello di comfort atteso, ovvero che nella fascia diurna l’involucro non si riscaldi (e riempia di umidità) troppo rapidamente.

Nel grafico seguente potete leggere facilmente gli orari di funzionamento e le variazioni dei parametri ambientali interni:

Regolazione estiva Daikin Rotex HPSU Compact per raffrescamento e comfort ottimale.

Non dimenticate: una casa fresca ed asciutta d’estate non ha prezzo !

Sbrinamenti Daikin: è primavera

688580676-croco-disgelo-della-neve-fondere-prato-di-fiori

Sta finalmente tornando la primavera che, con le sue temperature più miti, si porta via il freddo ed il gelo invernale. Ed anche gli sbrinamenti della mia Daikin HPSU Compact, per lo meno fino al prossimo inverno.

Vi racconto gli ultimi aggiornamenti per quanto, purtroppo, non ci sia quasi nulla di sostanziale.

Le puntate precedenti

Nel caso non lo abbiate ancora fatto, Vi raccomando la lettura preliminare di questi articoli che aiutano a comprendere la situazione:

Riscaldamento invernale e pompa di calore aria-acqua- attenzione agli sbrinamenti

Rotex HPSU Compact: come funziona lo sbrinamento ?

Defrost Daikin: una scelta consapevole ?

Consumi casa elettrica – Gennaio 2017

Tutto questo mi ha spinto a realizzare un sistema di monitoraggio estremamente avanzato:

Hack my Daikin HPSU Compact: terza parte

La visita fiscale

malattie-e-visite-fiscali-tutte-le-novita-del-2017

Il 22 febbraio 2017 Daikin Italia e’ tornata a farmi visita, con forze ancora più numerose della prima volta, mostrando sicuramente estrema attenzione, preparazione e serietà.

L’obiettivo era di raccogliere dati sul mio impianto nella sua interezza, ma abbiamo speso ore a parlare. E’ anche stato fatto anche un intervento sull’impianto stesso (non sulla pompa di calore) che pero’ non ha sortito beneficio alcuno sugli sbrinamenti precoci.

Impianto termico con pompa di calore

Parto da una premessa basata su una coppia di domande in apparenza semplici che mi stavo ponendo da diverse settimane:

  • quali sono i valori corretti di portata e salto termico lato acqua  (differenza tra temperatura di mandata e temperatura di ritorno) da utilizzare in un impianto di riscaldamento con pavimento radiante ?
  • qual’e’ la corretta regolazione del pavimento radiante con la pompa di calore ?

La risposta e’ in realtà articolata e dipende dall’interazione di tutte le componenti che costituiscono l’impianto termico:

  • involucro:  fabbisogno termico dipendente dalla temperatura esterna
  • generatore di calore (pompa di calore): il rendimento dipende dalla temperatura di mandata dell’acqua, dalla temperatura esterna e dal regime di carico (potenza termica erogata rispetto a quella nominale)
  • sistema di emissione del calore (pavimento radiante): il rendimento dipende da portata e salto termico dell’acqua

In altre parole il rendimento complessivo e’ la combinazione del rendimento di involucro, pompa di calore e pavimento radiante.

Quindi, se osservate consumi elettrici effettivi non consistenti col vostro attestato di certificazione energetica, la causa e’ da ricercare nell’insieme involucro/generatore di calore/sistema di emissione e non solo nella pompa di calore.

Tutto questo e’ riassunto nella documentazione che dovrebbe accompagnare ogni abitazione:

  • attestato di certificazione energetica (obbligatorio in ogni compravendita)
  • progetto termico (relazione tecnica ex legge 10)
  • progetto del pavimento radiante (contenente portata e salto termico atteso per ogni anello)

E quanto progettato dovrebbe poi essere conformemente realizzato, configurato e verificato.

Per l’utente finale la realtà e’ che quasi certamente si dispone dell’ACE, mentre tutto il resto dovrebbe essere parte di un lavoro fatto a regola d’arte della cui documentazione non si dispone (non essendo obbligatoria come ad esempio la dichiarazione legge 46/90 per l’impianto elettrico).

Giustamente questa e’ la documentazione che Daikin Italia mi ha chiesto durante la sua visita per fare un assessment dell’impianto termico.

Nella mia realtà:

  • il documento legge 10 non era aggiornato: era stata depositato in Comune alla richiesta di autorizzazione alla costruzione fatta dal costruttore quando aveva avviato il cantiere di 3 vilette sinole – tutte le variazioni successive specifiche della mia abitazione non erano state registrate
  • il progetto del pavimento radiante non era disponibile: richiesta copia al termo-tecnico ma non se sia emersa
  • durante la chiamata al termo-tecnico il medesimo ha dichiarato che il mio impianto a pavimento era stato progettato inizialmente per una caldaia a condensazione e che lui non sapeva che era collegata anche una UTA !
  • probabilmente non era mai stata fatta una configurazione iniziale di pompa di calore e pavimento radiante con parametri tra di loro perfettamente consistenti

Provando a mettere a fattore comune altre segnalazioni simile alle mie, penso che possiamo avere gli elementi seguenti in comune:

  • involucro con basso fabbisogno termico
  • pompa di calore sovra-dimensionata (leggermente) rispetto al fabbisogno termico
  • sistema di emissione (pavimento radiante) sovra-dimensionato rispetto alla potenza termica necessaria alla temperatura di progetto
  • caratteristiche particolari / mal regolazione del sistema di emissione (pavimento radiante)
  • mancata regolazione iniziale della pompa di calore in coerenza al progetto termo-idraulico

Ahia. Sembra davvero che il mio impianto ne esca con le ossa rotte. Ma manca la relazione di tutto quanto descritto con gli sbrinamenti precoci che determinano un crollo repentino delle prestazioni sotto i 4 ºC circa a causa della frequenza troppo elevata.
Ne riparliamo più tardi.

Pompa di calore sovra-dimensionata ?

engine-flatbed_thumb1

Qualche tempo fa avevo pubblicato Pompa di calore – dimensionamento semplificato un metodo semplificato per determinare il taglio della pompa di calore dato il fabbisogno dell’involucro.

Era evidente che per la mia casa una macchina da 4 kW sarebbe stata sufficiente. La scelta era ricaduta sul modello di Daikin HPSU Compact da 6 kW per due ragioni fondamentali:

  • il modello di HPSU da 4 kW ha solamente l’accumulo da 300 l insufficiente per le mie esigenze familiari
  • il costruttore mi proponeva di montare la 11 kW e dovetti insistere io per avere il taglio inferiore (una sorta di compromesso all’italiana)

La conseguenza di questa scelta ? Che la pompa di calore lavorerà in riscaldamento per la maggior parte del tempo ad un regime di carico inferiore al 100%. Per capire se sia un male od un bene occorre analizzare la documentazione relativa alle prestazioni della pompa di calore nelle differenti condizioni.

Quanto e’ sicuro, in caso di sovradimensionato della pompa di calore, e’ che le temperature esterne di inizio e fine inverno richiedono di lavorare per un numero limitato di ore al giorno (da gestire mediante crono-programmazione). Ma questo accade con qualsiasi generatore di calore che per quanto possa modulare mediante un inverter non avrà mai una gamma di funzionamento in grado di coprire tutta la stagione.

Prestazioni Daikin HPSU Compact ai carichi parziali

Vediamo quindi come variano capacita’ nominale e rendimento in riscaldamento della Daikin HPSU Compact con differenti condizioni per:

  • temperatura di mandata
  • temperatura esterna
  • regime di carico parziale (potenza termica erogata rispetto a quella nominale)

Daikin, come previsto dalla normativa, ci fornisce i dati integrati inclusivi di sbrinamenti e tutti i consumi elettrici necessari al funzionamento (inclusa la pompa di circolazione integrata). Nella pagina Documentazione Daikin/Rotex trovate il documento completo, riporto solo i valori pertinenti al mio caso:

parziali

Mattiamo ora su un grafico il fabbisogno del mio involucro con le potenze nominali dichiarate:

pow30pow35

Questi grafici ci dicono che:

  • per il fabbisogno termico del mio involucro
  • con una temperatura di mandata tra i 30 ºC ed i 35 ºC 
  • con una temperatura esterna compresa tra i -5 ºC ed +5 ºC
  • il regime di carico della HPSU Compact sara’ sempre compreso tra il 30% ed il 70%

Questo lieve sovra-dimensionamento per una pompa di calore ad inverter e’ un male ? Non necessariamente.

Mettendo su un grafico i rendimenti a carico parziale ci si può dare una risposta:

cop-2 cop2

Con temperature esterna compresa tra i -2 ºC ed i +2 ºC e temperatura di mandata compresa tra i 30 ºC ed i 35 ºC, minore e’ il regime di carico e maggiore e’ il rendimento della Daikin HPSU Compact.

Questo ci dice che sovra-dimensionando leggermente in realtà si e’ migliorato il rendimento medi con cui la pompa di calore opera ! Un apparente problema e’ diventato una opportunità.

Attenzione a non generalizzare troppo pero’: i dati Daikin con una mandata inferiore ai 30 ºC o regime di carico inferiore al 30% non sono disponibili. Non e’ quindi detto che scendendo ulteriormente con la portata e/o col regime di carico si migliori ancora il COP. Osservando il grafico per temperature di mandata superiori il comportamento e’ esattamente l’opposto.

Pompa di calore leggermente sovra-dimensionata !

Mettiamo tutto insieme e traiamo le conclusioni in merito alla congruenza del dimensionamento della mia pompa di calore rispetto al mio impianto:

  • per il fabbisogno termico del mio involucro
  • con una temperatura di mandata tra i 30 ºC ed i 35 ºC
  • con una temperatura esterna compresa tra i -2 ºC ed i +2 ºC
  • il regime di carico della HPSU sara’ sempre compreso tra il 30% ed il 70%
  • il COP della HPSU sara’ sempre il massimo possibile !

Ottima conclusione per il momento ! Abbiamo eliminato una delle possibile cause di rendimento complessivo dell’impianto termico non in linea con le aspettative.

Pavimento radiante sovra-dimensionato ?

page4-gal8-image2

Proviamo a fare due calcoli alquanto semplici.

Il fabbisogno termico del mio involucro alla temperatura di progetto e’ di circa 4 kW, che dividendo per la superficie indica un fabbisogno termico specifico di circa 35 W/m², valore tipico per una qualsiasi casa a basso consumo.

Prendo un prestito dal sito di Eurotherm un sinottico relativo alla norma UNI EN 1264-3 che ci indica la temperatura di mandata necessaria per una determinata potenza termica specifica con diverse combinazioni di passo del pavimento radiante e di materiale superficiale:

rese

La conclusione di massima e’ che:

  • per il fabbisogno termico specifico del mio involucro (di circa 35 W/m²)
  • con un salto termico pari a 5 ºC con rivestimento in ceramica
  • con un passo del pavimento radiante di 10 cm la temperatura di mandata deve essere intorno ai 28-30 ºC
  • con un passo del pavimento radiante di 15 cm la temperatura di mandata deve essere intorno ai 29-32 ºC
  • con un passo del pavimento radiante di 20 cm la temperatura di mandata deve essere intorno ai 29-33 ºC

Direi che anche in questo caso ci siamo, anche se al limite. Eliminata anche la seconda causa di rendimento complessivo dell’impianto termico non in linea con le aspettative.

Occorre pero’ riflettere un attimo perché c’e uno spunto estremamente importante: la temperatura di ritorno di un pavimento caldo a regime non può mai scendere sotto un certo limite (altrimenti non scalderebbe l’aria). Nel mio caso ho verificato sperimentalmente intorno ai 26,6 ºC.

Se alla temperatura esterna di progetto, quindi con potenza termica massima, la temperatura di mandata e’ bassa, figuratevi cosa può succedere quando il fabbisogno termico, e quindi la temperatura di mandata, si abbassa. L’impianto dovrebbe funzionare con un salto termico bassissimo. Sicuramente complesso da regolare.

La conclusione e’ con case a basso consumo e’ opportuno operare con passi meno fitti per rendere più facile la gestione di un range di salti termici e massimizzare il rendimento del pavimento. Ma non dimenticavi di non esagerare perché poi andreste a ridurre il COP di funzionamento della pompa di calore.

Insomma serve equilibrio nelle componenti dell’impianto ed e’ proprio il lavoro di un progettista.

Salto termico e portata per HPSU Compact

Visto che nel sinottico precedente si parlava di salto termico lato acqua, a questo punto e’ interessante comprendere quali siano valori attesi dalla Daikin HPSU Compact in base ai valori di potenza nominale dichiarati.

Sul manuale della mia versione e’ indicato che la portata minima del circuito di riscaldamento per la HSPU Compact 4-8 kW e’ di 720 l/h.

Nel caso di circuito diretto, ovvero in cui la pompa di circolazione integrata alimenta direttamente tutto il pavimento radiante, possiamo ora determinare il salto termico massimo corrispondente alla portata minima ed alle potenze nominali dichiarati ai vari regimi di funzionamento:

tabella

 

Ovviamente alcune di queste combinazioni non sono materialmente raggiungibili perché incompatibili con una temperatura di ritorno che non può scendere sotto un certo limite.
Ho evidenziato in grigio quelle non possibili con una temperatura di ritorno di 26,6 ºC (quella che ho rilevato sperimentale col mio pavimento radiante caldo): in questi casi la portata deve inevitabilmente salire per poter erogare le potenze nominali dichiarate (oppure dobbiamo innalzare la temperatura di mandata).

La conclusione di massima applicata al mio involucro e’ dunque la seguente:

  • per il fabbisogno termico del mio involucro
  • con una temperatura di mandata tra i 30 ºC ed i 35 ºC
  • con una temperatura esterna compresa tra i -2 ºC ed i +2 ºC
  • il regime di carico della HPSU sara’ sempre compreso tra il 30% ed il 70%
  • il COP della HPSU sara’ sempre il massimo possibile !
  • il salto termico massimo lato acqua deve essere compreso tra i 2,5 ºC ed i 5,4 ºC

Direi che i valori di normale funzionamento del mio impianto continuano ad essere assolutamente in linea con quelli nominali. Eliminata anche questa.

Mal regolazione del pavimento radiante

regolazione-cambio-posteriore-bicicletta_ng3

Qui’ invece abbiamo toppato, almeno in apparenza. L’ispezione dell’impianto da parte dei tecnici Daikin ha infatti rilevato che:

  • i rubinetti dei termo-arredi dei bagni erano totalmente aperti
  • la derivazione che alimenta la UTA era totalmente aperta con flusso effettivamente circolante (nonostante in questa stagione non serva a nulla)

Di fatto era come se ci fossero due by-pass in parallelo agli anelli del pavimento radiante.

Chiusi tutti e tre i rubinetti si e’ ottenuto il risultato seguente sulla portata erogata dalla pompa di circolazione integrata:

  • prima: Δ pompa 1% => Δ portata 15,7 l/h
  • dopo: Δ pompa 1% => Δ portata 10,0 l/h

Di conseguenza il salto termico, a parità di portata, nel pavimento si e’ innalzato. Migliorando quasi certamente il rendimento del pavimento radiante.

Ottima conclusione per l’ottimizzazione di base dell’impianto nel suo complesso: grazie Daikin !

Ma come si collega tutto questo col mio problema originale (sbrinamenti troppo frequenti sotto i 4 ºC) e conseguente crollo del rendimento della pompa di calore) ?

Daikin Italia mi ha spiegato (senza riuscirci per i miei limiti di conoscenza nel campo termodinamica applicata) che innalzando in riscaldamento il salto termico lato acqua si innalzerebbe la temperatura media di evaporazione riducendo, a parità di potenza termica erogata e temperatura esterna, la possibilità di sbrinamenti troppo anticipati (secondo l’algoritmo Daikin).
Confrontandomi con esimi frigoristi che frequentano il forum cercaenergia non ho trovato conferma.

Vediamo allora se l’evidenza sperimentale a valle dell’intervento di chiusura rubinetti conferma l’indicazione di Daikin sul salto di temperatura.

Come prima più di prima

Ho sfruttato gli ultimi spruzzi di inverno per monitorare le condizioni “ottimali” per gli sbrinamenti, facendo una crono-programmazione che facesse lavorare la pompa di calore con le temperatura più fredde.

Purtroppo, pur lavorando con un salto termico lievemente maggiore, la situazione degli sbrinamenti non e’ cambiata (riporto i dati del 01 marzo 2017):

Potenza e salto termico

tre

deltatdue

COPuno

deltat

Reintegri ACS

acs

Osservazioni sui dati riportati:

  • potenza termica erogata in situazione di sbrinamento e non sostanzialmente la medesima (tra i 3,0 ed i 3,5 kW)
  • salto termico lato acqua perfettamente in linea con le specifiche nominali (tra i 3,5 ºC ed i 4,5 ºC)
  • si nota la sensibilità estrema alla temperatura esterna degli sbrinamenti
  • il COP e’ sensibilmente ridotto nei primi 20 minuti dopo la riaccensione (quindi gli sbrinamenti da 25 minuti sono deleteri sotto questo punto di vista)
  • ci sono i noti impatti sui reintegri dell’accumulo

Ho anche fatto un monitoraggio su una gamma temporale maggiore dei rendimenti sintetizzando i dati disponibili online:

tabella

Anche questa vista conferma quanto scrivevo sopra: osservate le perfetta corrispondenza dei pallini rossi ed amber sul numero di defrost ed i corrispondenti COP.

Si vede per bene come i defrost molto numerosi determinino:

  • importante riduzione del COP complessivo (Exchanger COP)
  • riduzione del COP in riscaldamento (Floor COP)
  • drammatica riduzione del COP in ACS (Tank COP)

Ricordo che questi COP sono misurati direttamente sulla macchina e non sono quindi affetti da eventuali inefficienze del pavimento radiante. Quindi l’impianto non c’entra nulla (in modo diretto).

Valvola a 3 vie

Non posso dimenticare che Daikin ha sostituito l’attuatore di una delle valvole a 3 vie: il rumore si e’ drasticamente ridotto. Direi problemi chiuso. Grazie Daikin !

Conclusioni

La visita di Daikin Italia mi ha portato diversi elementi:

  • ha dimostrato l’impegno di Daikin stessa per definire la natura del problema in senso lato, anche al di fuori delle proprie responsabilità dirette; e’ stata anche garantita una estensione di garanzia fino a marzo 2018 durante l’analisi del mio problema
  • per un impianto di climatizzazione invernale/estiva basato su pompa di calore e pavimento radiante, la filiera cliente/impresario/termo-tecnico/idraulico/Daikin e’ troppo lunga:
    • responsabilità/complessità di progettazione e realizzazione
    • ci dovrebbe essere una figura unica chiave competente in grado di supervisionare il tutto (Daikin stessa comincia ad offrire un servizio del genere)
    • commistione di responsabilità per lavori non eseguiti a regola d’arte (il collaudo da parte dei CAT Daikin non prevede controlli sull’avvenuta configurazione della pompa di calore secondo l’impianto)
    • competenza diffusa ancora limitata
    • il cliente finale paga tutte le conseguenze in caso di problemi
  • e’ facile additare la pompa di calore perché e’ l’unico elemento misurabile direttamente delle componenti dell’impianto involucro/generatore di calore/sistema di distribuzione
  • azioni di ottimizzazione generale del mio impianto non specificamente legati agli sbrinamenti precoci
  • la valvola a tre vie non fa + più rumore
  • ho acquisito una serie di nozioni che riverserò nel software di controllo automatico della mandata, alternativo alla climatica, per massimizzare comfort e prestazioni
  • il problema degli sbrinamenti troppo frequenti non e’ imputabile direttamente od indirettamente al mio impianto ma al mio esemplare di Daikin HPSU Compact:
    • il problema si manifesta lavorando con valori “normali” di portata, salto termico e potenza termica
    • la misura diretta del COP della HPSU conferma la drastisca riduzione “a scalino” al di sotto dei 4 ºC

Non rimane che aspettare l’esito della visita a tutti gli “utenti sfortunelli”, ma temo che dovremo rimandare al prossimo inverno (finora Daikin non ha ancora catturato dati relativi ad un “pettine” di sbrinamenti ogni 25 minuti).

La mia speranza in un difetto di qualche componente del mio esemplare di HPSU e non un problema di prodotto scarsamente adatto ad operare su abitazioni con basso fabbisogno termico continua.

Per fortuna che la primavera mette di buon umore ma soprattutto allontana gli sbrinamenti precoci:

imm-cop-primavera

 

 

Hack my Daikin HPSU Compact: terza parte

finishing_the_puzzle_by_picxilete-d6usw6v

Se avete letto (e realizzato) le due puntate precedenti:

Hack my Daikin HPSU Compact: prima parte

Hack my Daikin HPSU Compact: seconda parte

Siamo pronti per completare un sistema di monitoraggio avanzato della vostra Daikin HPSU Compact.

L’obiettivo e’ quello di poter pubblicare su un servizio in cloud i dati rilevati dai contatori interni della pompa di calore 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.

Libreria di 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.

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

Nella versione corrente la sintassi di utilizzo e’ 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

Al fine di non perturbare troppo il sistema e dati i limiti di frequenza di pubblicazione su emoncms, ho creato tre timer + servizi schedulati che catturano e pubblicano i dati con frequenza differenti.

Selezione delle metriche HPSU

Direi che questa parte, superate le complessità tecniche, 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 HPSU:

hpsu

hpsu_1

DISPLAYVOCABOLARIOSCHEMADESCRIZIONEUnita’
Flusso Volumetricoflow_rateV1Portata flusso circolazione acqual/h
Pos Mixposmix3UV DHWPosizione valvola 3 vie 3UV DHW%
BPVbpv3UBV1Posizione valvola 3 vie 3UV B1%
T-GDCt_v1tV1Temperatura di mandata scambiatore a piastre°C
T-ACSt_dhw1tDHW1Temperatura bollitore acqua calda°C
T.Circ.Risc.t_vbhtV,BHTemperatura mandata pavimento o uscita bollitore°C
T-ritornot_r1tR1Temperatura di ritorno°C
PumppumppumpVelocità pompa di circolazione acqua%
EHSehsehsPotenza backup-heaterkW

Oppure la visualizzazione della modalità di funzionamento / set-point impostati correntemente sul sistema:

DISPLAYVOCABOLARIODESCRIZIONEUnita’
ModemodeModalità attuale pompa di caloreRiscaldamento, Raffrescamento,
Produzione ACS, Sbrinamento
T.Circ.Risc.Nom.t_hc_setTemperatura nominale mandata riscaldamento°C
T-ACS Nom.t_dhw_setTemperatura 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.

Il software garantisce infatti di collezionare i dati digitali presenti sul bus della HPSU, ma 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-GDCT.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 HPSU 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 HPSU.

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 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:

floor tank

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 Tempo Reale.

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 HPSU Compact 508 (H/C) DB + backup-heater BUH1)

Queste misure sono quindi perfettamente confrontabili con i dati nominali presenti sulla documentazione di prodotto.

Limitazioni & 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 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 (Hack my Daikin HPSU Compact).

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 HPSU grezza.

Dopo un mesetto abbondante di osservazioni dei dati ci sono comunque una serie di considerazioni da fare che vanno indirizzate

  1. qualche singola estrazione dati dalla HPSU fallisce (campione mancante) – statisticamente irrilevante e sostanzialmente invisibile sui dashboard
  2. qualche singola estrazione dati dalla HPSU fornisce dati palesemente errati (sicuramente errore interno alla HPSU, 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
  3. la frequenza di campionamento delle grandezze termiche (estratte dalla HPSU) e’ differente da quelle elettriche (misurate direttamente da OEM)
  4. 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
  5. 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 !

Consumi casa elettrica – Gennaio 2017

hugh-jackman-wolverine-mi-rende-nervoso-news

E siamo finalmente arrivati a poter fare dei bilanci sul primo inverno con temperature normalmente basse. Nella pratica e’ il primo “vero inverno” gestito mediante la mia Daikin HPSU Compact.

I dati pubblicati sono i consueti (a cui ho aggiunto per leggibilità la differenza tra i parametri climatici interni ed esterni)

  • Esterno
    • temperatura esterna effettiva (misurata con un’unita’ esterna dell’OpenEnergyMonitor)
    • umidità esterna effettiva (misurata con un’unita’ esterna dell’OpenEnergyMonitor)
  • Interno
    • temperatura interna effettiva (misurata con un’unita’ interna dell’OpenEnergyMonitor)
    • umidità interna effettiva (misurata con un’unita’ interna dell’OpenEnergyMonitor)
  • Delta
    • differenza di temperatura effettiva tra interno ed esterno (misurate con OpenEnergyMonitor)
    • differenza di umidità effettiva tra interno ed esterno (misurate con OpenEnergyMonitor)
  • Energia elettrica
    • prodotta dal fotovoltaico
    • consumata complessivamente dalla casa
    • prelevata dalla rete
    • immessa in rete
  • PVGIS
    • produzione di energia elettrica teorica prevista per il fotovoltaico
    • confronto con la produzione effettiva
  • Dettaglio Energia elettrica consumata
    • pompa di calore (che si occupa di riscaldamento, acqua calda sanitaria e raffrescamento)
    • UTA (ventilazione meccanica controllata, deumidifica, eventuale integrazione in riscaldamento/raffrescamento)
    • tutti gli altri consumi elettrici (inclusa la piastra ad induzione della cucina)

gennaio-2017

Direi che i tempi sono finalmente maturi per fare qualche confronto tra i dati dei fabbisogni termici previsti nel mio Attestato di Certificazione Energetica (ACE) ed i consumi elettrici effettivi della pompa di calore.

Suggerisco innanzitutto di rileggere Pompa di calore – dimensionamento semplificato.

Il mio ACE (vedi Informazioni) ci dice:

  • Fabbisogno annuo di energia termica per climatizzazione invernale ETH = 66,11 kWh/m²a
  • Fabbisogno annuo di energia termica per acqua calda sanitaria ETW = 18,59 kWh/m²a
  • Superficie utile = 114,35 m²
  • Gradi Giorno = 2.544 GG
  • Periodo di attivazione dell’impianto = 15 ottobre – 15 aprile ⇒ 184 GG

Come di consueto possiamo ricavare una formula, mediante semplici proporzioni, per determinare il fabbisogno termico di un determinato mese conoscendo le temperature interne ed esterne medie:

  • Fabbisogno mensile di energia termica per riscaldamento = ETH * Superficie Utile * Giorni Mese * (Temperatura interna media – Temperatura esterna media) / Gradi Giorno
  • Fabbisogno mensile di energia termica per ACS = ETW * Superficie Utile * Giorni Mese / 365

Applicandole per semplicità ai mesi invernali completi (novembre → marzo) disponibili possiamo ottenere i fabbisogni termici effettivamente attesi e confrontarli con i consumi elettrici effettivi ottenendo un valutazione del COP effettivo:

alfaNon parrebbe nulla di particolarmente esaltante. Ma dobbiamo confrontare con i dati nominali del generatore di calore, ovvero della pompa di calore.

Recuperiamo la documentazione di prodotto della Daikin HPSU Compact (PRESTAZIONI AI CARICHI PARZIALI UNITA’ A BASSA TEMPERATURA RRLQ/RVLQ/ERLQ E ALTA TEMPERATURA RRRQ/ERRQ – 12/09/2013) su cui si trovano i COP dichiarati dal produttore.

Riporto per comodità solo i dati rilevanti per il mio caso specifico:

rrlq1 rrlq2

[Mi permetto di osservare che le unita’ esterne ERLQ e RRLQ hanno esattamente le stesse performance …]

Alcune osservazioni importanti sui valori indicati nel documento delle prestazioni nominali:

  • Dati integrati indica che sono incluse anche le perdite per sbrinamento
  • La normativa EN 14511 per la misura dei rendimenti delle pompe di calore per riscaldamento / ACS prescrive che sia inclusa nella potenza elettrica assorbita anche la pompa di circolazione

Abbiamo ora tutti gli strumenti per fare un confronto completo: per essere ancora più pedantico del solito ho stimato la temperatura media di mandata in riscaldamento richiesta dal mio involucro (che opera con curva climatica 0,5 e scorrimento 20,5 ºC) per una scelta del COP nominale la più precisa possibile dare una valutazione del COP teorico ultra-precisa.

Ho ipotizzato, in modo conservativo per il COP, che l’energia per il riscaldamento sia distribuita su 20 ore giornaliere, mentre la produzione di ACS su 2 ore. Questo ha permesso di identificare il regime di funzionamento atteso per la pompa di calore.

Possiamo rappresentare in un paio di grafici come i fabbisogni del mio involucro si confrontino con i dati nominali della mia Daikin HPSU Compact 6kW;

potenza

Questo grafico ci dice semplicemente che la mia pompa di calore, in una gamma di temperature esterne rappresentativa, dovrebbe lavorare sempre con un carico inferiore al 70% della potenza nominale disponibile.

Possiamo vederlo facilmente con una tabella riepilogativa:

percent

Vediamo il grafico dei COP nominali corrispondenti:

grcop

Il COP Pesato teorico, da confrontare con quello effettivo determinato in precedenza, e’ determinato pesando i COP Riscaldamento ed ACS nominali in base ai rispettivi fabbisogni termici:

COP Pesato Teorico = (E Term. Risc.  + E Term. ACS) / (E Term. Risc. / COP Nom. Risc. + E Term. ACS / COP Nom. ACS)

Ecco il risultato dove ho ordinato in base alla temperatura esterna media ed evidenziato in giallo le colonne con i dati chiave:

tabellacop

Se non ho commesso errori grossolani, da questa valutazione emerge che:

  1. parrebbe che sul mio sistema, il COP effettivo sia inferiore anche del 35% / 40% rispetto a quello nominale (dichiarato dal produttore) nei mesi piu’ freddi (e che quindi richiedono piu’ energia)
  2. E’ sicuramente certo che scendendo sotto temperature esterne medie di 4 ºC / 5 ºC l’efficienza effettiva si riduce drammaticamente rispetto a quella prevista nominalmente
  3. A temperatura esterne medie “relativamente alte” (maggiori di 8 ºC) la differenza si riduce ad un 15%

maxresdefault

Non e’ che forse tutto questo c’entra con quanto ho riscontrato in Defrost Daikin: una scelta consapevole ? e su cui, al momento della redazione di questo articolo, aspetto ancora una risposta definitiva ?

Proviamo a rappresentare in un diagramma per rendere le cose semplici:

graficocop

La sostanza non cambia guardano i dati nell’ovale arancione: scendendo sotto temperature esterne di 4 ºC / 5 ºC l’efficienza effettiva si riduce drammaticamente rispetto a quella prevista nominalmente.

Direi che ci saranno puntate ulteriori su questo argomento, anche grazie a quanto emergerà col progetto di monitoraggio in corso di realizzazione:

Hack my Daikin HPSU Compact: prima parte

Hack my Daikin HPSU Compact: seconda parte

Stay tuned, se ne vedranno delle belle !

Hack my Daikin HPSU Compact: seconda parte

dna_6

Probabilmente avete letto il primo articolo che spiegava come interfacciare a basso livello la vostra pompa di calore Daikin HPSU Compact.

E’ venuto ora il momento di capire quali dati transitano sul bus dati della pompa di calore al fine di poterli comprendere ed utilizzare. Materia ostica e noiosa ma fondamentale per poter procedere.

La doverosa premessa e’ che tutto quanto descritto in questo articolo e’ esclusivamente frutto di zanac. Che ha passato ore “sniffando” dati e determinandone empiricamente la semantica (partendo da un semilavorato trovato in un forum tedesco). Inoltre le operazioni di scrittura sul bus non sono ancora state esplorate fino in fondo.

CAN-Bus

Il Controller Area Network, noto anche come CAN-Bus, è uno standard seriale per bus di campo (principalmente in ambiente automotive), di tipo multicast, introdotto negli anni ottanta dalla Robert Bosch GmbH.

Lo standard CAN, a differenza del procollo TCP/IP utilizzato su internet,  non prevede per i messaggi che transitano un indirizzo del nodo mittente e uno per il nodo destinatario, ma semplicemente l’identificativo del nodo CAN sorgente.

Un messaggio CAN transita infatti su tutto il bus e viene ricevuto da tutti i nodi collegati, e’ compito del singolo nodo gestire, se di interesse, il messaggio.

Questa architettura facilita di molto il lavoro di intercettazione (sniffing) dei dati che transitano: ogni periferica ha la piena visibilità di tutto quanto transita sul bus.… è per questo motivo che risulta facile sniffare comandi: ogni periferica connessa al bus ha piena visibilità di quanto transita nel bus.

diag_canbus2

Non a caso ho riportato uno schema concettuale di un’automobile che utilizza proprio il CAN Bus.

Suggerisco questa lettura: Cosa succede se un hacker prende il controllo di un’auto a distanza.

Formato dei dati

La Daikin HPSU Compact implementa il CAN-bus nella variante 11 bit (base format); lo standard CAN stabilisce che i device debbano tollerare anche la variante a 29 bit (extended) senza andare in errore.

Tralasciando i campi tecnici, un base format è essenzialmente composto da un identificatore di dati (id) e un campo dati che può essere lungo sino a 8 byte (la lunghezza del campo dati è detta DLC):

can-bus-frame_in_base_format_without_stuffbits-svg

Nella HPSU Compact tutti i campi dati sono da 7 byte e quindi occorre tenerne assolutamente conto quando si spediscono i dati alla macchina.

Nel resto dell’articolo, utilizzeremo la rappresentazione seguente per i numeri:

  • esadecimale: 0x (es. 0xFA)
  • decimale: nessun prefisso (es. 250)
  • primo/secondo semi-byte: minuscolo/MAIUSCOLO (es. 0xfA)

Partiamo da un esempio di un messaggio CAN:

iddati
0x1800x32 0x10 0xFA 0x01 0xD6 0x01 0x0C

Il campo dati contiene una sequenza di byte con una semantica applicativa ben precisa specifica del sistema che utilizza il bus: vediamo il caso specifico della Daikin HPSU Compact.

Primo byte

  • Il primo semi-byte contiene il nodo CAN di destinazione (da decodificare moltiplicandolo per 0x80)
  • Il secondo semi-byte indica se il messaggio e’ in lettura (1) oppure risposta / scrittura (2); la differenziazione tra risposta e scrittura viene poi fatta mediante il secondo byte

Vediamolo con un paio di esempi concreti:

  • 0x31 ⇒ comando di lettura spedito al nodo CAN 0x180 (0x3 * 0x80)
  • 0x32 ⇒ risposta o scrittura dal nodo CAN 0x180 (0x3 * 0x80)

Secondo byte

  • Lettura: è valorizzato fisso a 0x00
  • Risposta a lettura: vale 0x10 oppure 0x0a (non ancora chiara la differenza)
  • Scrittura: è valorizzato fisso a 0x00 (non ancora verificato se vale per tutti i casi)

Terzo byte

  • Valorizzato a 0xfa: se il comando è di lettura (vedi primo/secondo byte), significa che il parametro applicativo oggetto di lettura e’ codificato nei due byte successivi (4 e 5)
  • Altro valore: il parametro applicativo e’ codificato direttamente nel terzo byte stesso

Prendiamo di nuovo un paio di esempi concreti:

  • 0x31 0x00 0xFA 0x01 0xD6 0x00 0x00 ⇒ comando di lettura al nodo CAN 0x180 del parametro applicativo 0x01 0xd6 (che poi corrisponde a T-GDC)
  • 0x31 0x00 0x0E 0x00 0x00 0x00 0x00 ⇒ comando di lettura al nodo CAN 0x180 del parametro applicativo 0x0E (che poi corrisponde al parametro alla temperatura ACS)

Quarto / quinto byte

  • Lettura “non 0xFA”: 0x00 0x00 (non rilevanti)
  • Risposta “non 0xFA”: contengono il valore applicativo richiesto (con rappresentazione su due byte; sia valori positivi che negativi)
  • Lettura / Risposta / Scrittura “0xFA”: contengono il parametro applicativo oggetto di lettura / risposta (secondo un dizionario predefinito)

Sesto / settimo byte

  • Risposta / Scrittura “0xFA”: contengono il valore applicativo oggetto di risposta o di scrittura

La Stele di Rosetta

697323

Nonostante tutte le meravigliose premesse ed informazioni precedenti, siamo comunque di fronte ad un flusso di informazioni binarie la cui semantica deve essere compresa.

Penso che zanac all’inizio si sia sentito come di fronte alla Stele di Rosetta (mi piace più questa metafora che parlare di reverse engineering).

La stesura del dizionario di transcodifica tra valori binari/esadecimali ed i parametri applicativi, scolpito da qualche parte nel firmware della nostra pompa di calore Daikin HPSU Compact, non e’ comunque tutto, occorre pure scoprire:

  • codifica dei valori applicativi negativi (come la temperatura esterna ad esempio)
  • codifica dei valori applicativi multi-valore (come la modalità corrente di funzionamento)
  • assegnazione degli indirizzi dei nodi CAN che compongono il sistema (Unita’ interna, unita’ esterna, ecc.)

Esempi

Per chiudere con la speranza in una prossima puntata di questa storia, qualche esempio completo di messaggio interpretato:

  • 0x31 0x00 0x16 0x00 0x00 0x00 0x00 ⇒ lettura della temperatura di ritorno
  • 0x32 0x10 0x16 0x00 0xDF 0x00 0x00 ⇒ risposta della temperatura di ritorno con valore 22,3 ºC (“0x00 0xDF” corrispondente a 223 decimale, ovvero 22,3 ºC)
  • 0x61 0x00 0xFA 0x0A 0x0C 0x00 0x00 ⇒ lettura della temperature esterna
  • 0x62 0x10 0xFA 0x0A 0x0C 0xFF 0x69 ⇒ lettura della temperature esterna con valore -11,5 ºC (“0xFF 0x69” corrispondente a -115 decimale, ovvero -11,5 ºC)