SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:DISPOSITIVI FISICI UTILIZZATI:
|
GUIDA INDICATA A UTENTI CON ISTALLAZIONE:![]() |
|
NOTE E DISCLAIMER
|
|
Revisione progetto: 2.5 |
Abstract
Molte abitazioni moderne dispongono di impianti autonomi di riscaldamento (a radiatori, a pavimento, misti ecc.) dedicati alla stagione invernale e climatizzatori per il raffrescamento per quella estiva.
Ciò che molti non sanno è il fatto che, durante la stagione fredda, l’uso del climatizzatore – solitamente utilizzato d’estate in modalità “raffrescamento” – può aiutarci in modo importante anche nella stagione invernale. Le unità moderne, infatti, sono dotati anche di funzione di riscaldamento, funzione che vedremo, tramite questo progetto, come possa venirci utile per aumentare il confort dei nostri ambienti e aiutarci a risparmiare moltissimo sul conto energetico.
Gli impianti di riscaldamento a radiatori tradizionali hanno il vantaggio di mantenere, con buona efficienza energetica, la temperatura all’interno degli ambienti in cui sono installati; di contro, presentano una grossa inefficienza nella fase di riscaldamento iniziale, ovvero quando si tratta di elevare la temperatura dell’ambiente da una temperatura di partenza X a una temperatura target Y. Quella è la fase in cui la resa energetica è minore: è infatti necessaria molta energia per innalzare la temperatura dell’acqua contenuta nel circuito dei radiatore, iniziare le scambio termico tra le unità radiatore e l’aria e innalzare così – anche solo di un grado – la temperatura dell’ambiente. Questo vale ancora di più per il riscaldamento a pavimento: il tempo di warm-up è ancora più lungo e inefficiente, mentre una volta entrati a regime l’efficienza è ottima.
Viceversa, i climatizzatori hanno una grande efficienza nel riscaldare rapidamente un ambiente mente ne hanno una bassa nel mantenimento della stessa nel tempo.
Questo progetto illustra come ottenere un’efficientamento importante in termini di confort e risparmio tramite l’uso combinato delle due tecnologie di riscaldamento nelle rispettive fasi di massima efficienza energetica.
Si parte
Assunzioni
Affinché questo progetto possa essere attuato è necessario che nell’ambiente siano già presenti:
- un impianto di riscaldamento autonomo controllato via termostato domotico, il quale sia fisico (ad esempio un tado°, per dirne uno) o virtuale (realizzato con tecniche alternative);
- un condizionatore dotato di funzione calore, il quale sia nativamente domotico o domotizzato tramite infrarossi
e che tali elementi siano già configurati presso Home Assistant.
Assumeremo, per il resto del progetto, che le entità definite presso Home Assistant si chiamino:
- l’impianto di riscaldamento: climate.riscaldamento
- il condizionatore: climate.condizionatore
Infine, daremo per scontata la presenza di un sensore termico (il quale il più delle volte potrebbe anche essere inteso come “sensore a lettura indiretta“, in quanto derivante dagli attributi disponibili presso l’entità climate.riscaldamento), così chiamato:
- sensore termico: sensor.temperatura
Altre assunzioni sono presenti strada facendo nel progetto.
Filosofia del progetto
Quello che andremo a fare è scrivere un’automazione (la chiameremo “Heat Boost”) la quale, a fronte dell’attivazione automatica o manuale del termostato (e quindi del riscaldamento autonomo) effettui, previa una o più verifiche di condizioni a contorno, l’accensione del climatizzatore in modalità “riscaldamento” e, superato un certo tempo, lo spegna.
Questo farà sì che i due impianti partano praticamente in contemporanea. Il climatizzatore provvederà a erogare lo “spunto” termico mentre nel frattempo il riscaldamento autonomo provvederà ad andare a regime. Dopo un determinato arco di tempo, il climatizzatore verrà spento, lasciando all’impianto tradizionale l’onere del mantenimento della temperatura.
L’approccio descritto ha il vantaggio dell’essere completamente slegato dalle logiche di programmazione del termostato: che esso sia programmato su base temporale, che venga attivato manualmente, che utilizzi automazioni legate alla posizione gps degli occupanti dell’ambiente o di altro tipo, questa automazione entrerà in gioco automaticamente per garantire massima efficienza.
In realtà raffineremo l’automazione la fine di renderla ancora più “invisibile” e funzionale di quanto descritto sopra.
In primis, la conditio sine qua non per la sua esecuzione consisterà nel fatto che la differenza tra la temperatura “target” del termostato e la temperatura dell’ambiente sia superiore o uguale a 2° centigradi. Questo perché una differenza inferiore non giustificherebbe l’ingaggio del climatizzatore.
Inoltre, il comando di attivazione del climatizzatore dovrà – com’è ovvio – contenere in sé l’indicazione della temperatura target da raggiungere; tale temperatura sarà impostata un grado sotto quella di target del termostato che controlla il riscaldamento autonomo. Il motivo è semplice: dato che il climatizzatore sarà rapido nel riscaldare il volume d’aria dell’ambiente, impostare la temperatura target al pari di quella del termostato potrebbe far sì che tale temperatura venga raggiunta prima del tempo di spegnimento del climatizzatore portando quindi il termostato a un’erronea disattivazione, in quanto impostato alla stessa temperatura target.
Infine, la velocità della ventilazione del climatizzatore è tanto più efficace quanto è più elevata, ma più è elevata più è rumorosa. Faremo in modo che venga attivata in modalità massima in assenza di occupanti in casa e in modalità media in caso di presenza.
Vediamo un caso pratico:
- orario operativo del termostato: ore 07:00
- temperatura target del termostato (TTT): 21°
- temperatura dell’ambiente (TA): 17°
- occupanti: presenti
Sequenza a patire dalle 07:00:
- sono le 7? Sì
- è TTT > TA? Sì, quindi attivazione del riscaldamento autonomo (comportamento tradizionale)
- l’attivazione del riscaldamento autonomo innesca la nostra automazione “Heat Boost”
- TTT – TA è maggiore/uguale a 2°?: Sì (21°-17° = 4°), automazione valida
- attivazione del climatizzatore a una temperatura target uguale a TTT-1° (21°-1° = 20°) e a una velocità di ventilazione “media”.
A questo punto entrambi gli impianti lavoreranno assieme: il climatizzatore continuerà a “spingere” fino al raggiungimento dei 20° (spegnendosi, a prescindere, dopo un tot di minuti, regolabili), mentre il riscaldamento autonomo si riscalderà fino al raggiungimento della propria temperatura target (TTT) di 21°. In caso il climatizzatore raggiunga la propria temperatura di target prima del termine del suo “tempo di operatività”, attenderà il proprio spegnimento mantenendo lo stato di semplice ventilazione.
Vediamo un altro caso:
- orario operativo del termostato: ore 17:00
- temperatura target del termostato (TTT): 21°
- temperatura dell’ambiente (TA): 20°
- occupanti: assenti
Sequenza a patire dalle 17:00:
- sono le 17? Sì
- è TTT > TA? Sì, quindi attivazione del riscaldamento autonomo (comportamento tradizionale)
- l’attivazione del riscaldamento autonomo innesca la nostra automazione “Heat Boost”
- TTT – TA è maggiore/uguale a 2°?: No (21°-20° = 1°), automazione NON valida
- l’automazione si ferma e rimane in esecuzione solo il riscaldamento autonomo.
Vediamo un terzo e ultimo caso:
- orario operativo del termostato: ore 15:00
- temperatura target del termostato (TTT): 21°
- temperatura dell’ambiente (TA): 19°
- occupanti: assenti
Sequenza a patire dalle 15:00:
- sono le 15? Sì
- è TTT > TA? Sì, quindi attivazione del riscaldamento autonomo (comportamento tradizionale)
- l’attivazione del riscaldamento autonomo innesca la nostra automazione “Heat Boost”
- TTT – TA è maggiore/uguale a 2°?: Sì (21°-19° = 2°), automazione valida
- attivazione del climatizzatore a una temperatura target uguale a TTT-1° (21°-1° = 20°) e a una velocità di ventilazione “massima” (perché non c’è nessuno in casa).
E così via.
Analisi
Il presente progetto è una traccia – si spera ben strutturata, ma pure sempre traccia. È evidente come ogni utente che decida di implementare questa tecnica dovrà farlo adattandola al proprio contesto in termini di entità Home Assistant, di durata del tempo di climatizzazione, di temperature di soglie e così via.
Tra le prime cose da fare sarà quindi capire quali siano gli scenari relativi agli automatismi del proprio termostato e quali siano le entità utili alla propria personalizzazione (banalmente: quale sia quella che comunica a Home Assistant l’attivazione/disattivazione del termostato).
Nell’automazione che andremo a scrivere daremo per scontate le seguenti ulteriori entità, oltre a quelle di base indicate nelle assunzioni:
Nome entità | Descrizione |
group.awesome_people | gruppo Device Tracker il quale stato determina la presenza di almeno un occupante dell’ambiente domotico o l’assenza di tutti |
climate.riscaldamento.attributes.temperature | attributo di climate.riscaldamento che rappresenta la temperatura target del termostato (TTT) |
binary_sensor.heating |
sensore binario che rappresenta lo stato di attivazione/disattivazione del termostato (se ‘on’, l’impianto sta riscaldando) |
Realizzazione dell’automazione
L’automazione, come di consueto su Home Assistant, è definita tramite tre blocchi, trigger (attivazione), condition (condizione) e action (azione).
TRIGGER
Ciò che innesca l’automazione abbiamo anticipato essere la rilevazione, da parte di Home Assistant, del passaggio di stato da “disattivo” ad “attivo” del termostato collegato all’impianto di riscaldamento autonomo.
Vediamo questo blocco:
- alias: Heat boost
trigger:
platform: state
entity_id: binary_sensor.heating
from: 'off'
to: 'on'
In questo esempio abbiamo assunto che l’entità preposta alla rilevazione di questo stato sia un sensore binario chiamato binary_sensor.heating il quale, nel momento in cui diventa ‘off’ da ‘on” significa che l’impianto ha cominciato a riscaldare.
Talvolta (dipendentemente dal termostato in uso), tale entità potrebbe essere diversa e il blocco trigger andrebbe modificato in relazione alla tipologia e al dato collezionato. Per esempio il tado° sopracitato prevede, in base alla sua componente di integrazione, l’uso di un sensore di tipo numerico che rappresenta un numero da 0 a 100. 0 rappresenta lo spegnimento, ogni valore superiore rappresenta l’accensione.
Nel caso, il blocco “TRIGGER” sarebbe stato:
- alias: Heat boost
trigger:
platform: numeric_state
entity_id: sensor.nomedelsensore
above: 0
CONDITION
Abbiamo detto che la condizione per la quale l’automazione sia considerata valida e che permetta quindi l’esecuzione della propria action sia legata al fatto che la differenza tra la temperatura dell’ambiente e quella target del termostato sia di almeno 2°.
Pertanto:
condition:
condition: template
value_template: "{{ ((states.climate.riscaldamento.attributes.temperature | float) - (states.sensor.temperatura.state | float|round(1))) >= 2 }}"
ACTION
Infine, l’azione.
Per rendere il tutto un po’ più leggibile definiremo uno script che verrà invocato dentro il blocco “ACTION“.
Lo chiameremo “heat_boost_sequence“.
Tale sequenza riceverà una variabile, “fanmodevalue” (inviata dall’evocazione nel blocco “ACTION“) che conterrà la modalità di accensione delle ventole, determinata in base alla presenza/assenza degli occupanti l’ambiente domotico (‘media’ se presenti, ‘massima’ se assenti).
Vediamo lo script:
script: heat_boost_sequence: sequence: - action: climate.set_temperature data: entity_id: climate.condizionatore temperature: '{{ (states.climate.riscaldamento.attributes.temperature | int(default=0)) - 1 }}' hvac_mode: heat - action: climate.set_fan_mode data: entity_id: climate.condizionatore fan_mode: '{{ fanmodevalue }}' - delay: minutes: 20 - action: climate.turn_off entity_id: climate.condizionatore
Come si capisce facilmente, la sequenza è composta di cinque azioni:
- attivazione di climate.condizionatore in modalità ‘heat‘ (accensione);
- impostazione della sua temperatura target (un grado in meno di quella di climate.riscaldamento);
- impostazione della sua velocità di ventilazione;
- attesa di 20 minuti (valore dipendente dalla volontà dell’utente);
- disattivazione di climate.condizionatore.
Infine, vediamo il blocco “ACTION” vero e proprio:
action:
- action: script.turn_on
entity_id: script.heat_boost_sequence
data:
variables:
fanmodevalue: "{% if states.group.awesome_people.state == 'home' %}mid{% else %}highest{% endif %}"
il quale evoca script.heat_boost_sequence e che valorizza fanmodevalue in base alla presenza o l’assenza degli occupanti.
L’automazione finale sarà dunque:
automation: - alias: Heat boost trigger: platform: state entity_id: binary_sensor.heating from: 'off' to: 'on' condition: condition: template value_template: "{{ ((states.climate.riscaldamento.attributes.temperature | float) - (states.sensor.temperatura.state | float|round(1))) >= 2 }}" action: - action: script.turn_on entity_id: script.heat_boost_sequence data: variables: fanmodevalue: "{% if states.group.awesome_people.state == 'home' %}mid{% else %}highest{% endif %}"
Temporizzazione
A latere, una delle caratteristiche più peculiari di un termostato è – oltre alla valutazione della temperatura – la possibilità di temporizzare le accensioni. Data la natura “Climate” delle entità trattate nel presente progetto, si consiglia la lettura anche di quest’altro progetto.
Conclusioni
Come spiegato, questo progetto è una scheletratura, una traccia, che può dare origine a molte personalizzazioni specifiche. Nello script “Heat Boost”, per esempio, potrebbero essere aggiunte delle notifiche, delle condizioni diverse o dei tempi di attesa più ampi o più piccoli.
Ovviamente, tutta la differenza del mondo la faranno l’impegno che ci si mette e, sopratutto, un’analisi fatta come dio comanda.
⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui. |
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |