Controllare un ventilatore sulla base di un range termico tramite Home Assistant (v2)

4 minuti di lettura
SCOPI DEL PROGETTO:
  • Gestire accensione e spegnimento di un ventilatore in modo automatico in base a un range (intervallo) di temperature
  • Livello di difficoltà: elementare
  • Costo: n.a.
CONCETTI AFFRONTATI:
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
  • Un ventilatore già modificato/controllato tramite un attuatore domotico (tipo smart plug, o altro, vedi esempio) integrato a Home Assistant
  • Un sensore di temperatura già integrato in configurazione Home Assistant
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione progetto: 1.0

Ventilatore da terra

Abstract

Molte persone amano l’uso del ventilatore, nella stagione calda, in luogo del climatizzatore/condizionatore. Questo perché esso fornisce, per alcuni, un refrigerio più piacevole, specialmente di notte. Il problema, sopratutto in quest’ultimo caso d’uso, sta nel fatto che l’accensione costante alla lunga diventa fastidiosa e lo spegnimento prima di coricarsi lo è altrettanto perché porta a sentire caldo nelle prime ore di sonno.

La domotica ci viene in aiuto. Il presente progetto permetterà di configurare presso Home Assistant un meccanismo automatico tale da fornire all’utente la possibilità di scegliere una temperatura massima al raggiungimento della quale il ventilatore si accenda automaticamente e una minima al di sotto della quale esso si spenga, sempre automaticamente.

Nella prima versione di questo progetto abbiamo proposto l’utilizzo di uno slider; in questa versione utilizziamo un più appropriato termostato virtuale grazie all’adozione della piattaforma “Generic Thermostat“, una delle figlie del componente “Climate“. Questa piattaforma consente di creare un termostato virtuale che agisca su un dato switch (accendendolo e spegnendolo) a fronte del raggiungimento/allontanamento rispetto a una data temperatura target scelta dall’utente.

N.b. Ovviamente questo mini-progetto può essere applicato a qualsiasi entità di tipo switch: tutto quanto spiegato vale anche per ventilatori a pale da soffitto e altre tipologie di impianti, purché integrati a Home Assistant come “Switch”.

Si parte

Assunzioni

Si assume che presso la configurazione di Home Assistant siano presenti le seguenti entità:

  • uno “Switch chiamato “ventilatore” (“switch.ventilatore”) che corrisponda all’attuatore che eroga/interrompe corrente al ventilatore (vedi progetto esemplificativo e relative considerazioni) – in sostanza, che lo accende/spegne;
  • un “Sensor” di temperatura chiamato “temperatura” (“sensor.temperatura”) che fornisca la temperatura istantanea della stanza in cui è presente il ventilatore con una risoluzione al decimo di grado centigrado.

Noi abbiamo testato la cosa utilizzando un sensore di temperatura Shelly H&T e un attuatore singolo canale Sonoff Basic R3; in alternativa si può utilizzare una qualunque sensore integrabile (Xiaomi/LUMI, Xiaomi Bluetooth ecc.) e una qualsiasi presa intelligente integrabile (la Shelly Plug S e molte altre) o attuatore a singolo canale.

Creazione del termostato

Creare un termostato dati gli assunti di cui sopra è piuttosto elementare. La configurazione proposta è la seguente:

climate
  - platform: generic_thermostat
    name: Ventilatore
    heater: switch.ventilatore
    target_sensor: sensor.temperatura
    min_temp: 24
    max_temp: 31
    ac_mode: true
    target_temp: 27
    cold_tolerance: 0.2
    hot_tolerance: 0.2
    initial_hvac_mode: "off"
    precision: 0.1

Questa configurazione definisce un’entità “Climate” chiamata climate.ventilatore.

Vediamo i campi relativi alla configurazione:

name Definisce il nome dell’entità
heater Qui si indica quale sia l’entità acceso/spento da controllare (nel nostro caso switch.ventilatore)
target_sensor Il sensore di temperatura da utilizzare per capire se lo switch indicato nel campo heater debba venire acceso o spento in relazione alla temperatura target impostata dall’utente
min_temp Indica quale sia la temperatura target minima regolabile
max_temp Indica quale sia la temperatura target massima regolabile
ac_mode Impostato a “true” fa funzionare l’entità “Climate” come fosse un climatizzatore
target_temp La temperatura target di default
cold_tolerance Quanti gradi di tolleranza fredda vengono considerati (se lo imposto a 0.5 e la temperatura target è 27, lo switch viene spento sotto i 26.5)
hot_tolerance Quanti gradi di tolleranza calda vengono considerati (se lo imposto a 0.5 e la temperatura target è 27, lo switch viene acceso sopra i 27.5)
initial_hvac_mode La modalità iniziale (quando parte Home Assistant) dell’entità
precision La precisione di analisi di comparazione temperatura target/temperatura rilevata

Uso

Naturalmente l’entità così generata può essere utilizzata manualmente presso l’interfaccia Lovelace UI di Home Assistant, consentendo all’utente di regolare con semplicità la temperatura target tramite l’utilizzo di una “card” grafica di tipo termostato:

Home Assistant - Generic Thermostat - Ventilatore

Ovviamente nessuno vieta di utilizzarla anche tramite automazioni, magari attivandola automaticamente impostando delle temperature target a fronte di determinati scenari, magari in abbinamento a un sensore di benessere, oppure disattivandola per esempio quando si esce di casa, e così via.

N.b. Usiamo i temini attivare/disattivare anziché accendere/spegnere per non generare confusione. L’accensione e lo spegnimento dell’entità switch (quale che sia) avviene quando l’etità climate è attiva e quando si raggiunge o meno la temperatura target impostata. Se l’entità climate è disattiva, anche a fronte del raggiungimento (o meno) della temperatura target precedentemente impostata non ci sarà alcuna azione sullo switch

Mettiamo per esempio di voler disattivare l’entità climate (quindi evitare eventuali accensioni non volute del ventilatore) quando usciamo di casa. In un’ipotetica automazione dentro/fuori casa, nel blocco action da innescare automaticamente quando si abbandona casam imposteremmo qualcosa del genere:

# parte finale dell'automazione che si attiva quando si esce di casa

    action:
      service: climate.turn_off
      entity_id: climate.ventilatore

Così facendo, l’entità climate.ventilatore verrà automaticamente disattivata ogni qual volta si esce.


Un esempio di andamento della temperatura durante una notte estiva controllata con questa tecnica è rappresentata nel seguente esempio (si noti l’andamento a zig-zag della temperatura durante la notte). L’automazione è stata disattivata manualmente all’una, ma prima di quell’ora:

Grafico temperature Home Assistant

Ovviamente si tratta solo di una rappresentazione esemplificativa: come sempre, il limite è la fantasia, pertanto sarà nelle corde dell’utente provvedere a personalizzare la rappresentazione come meglio crede.

Telegram News Channel