Controllare un ventilatore sulla base di un range termico tramite Home Assistant

3 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à: basso
  • Costo: n.a.
CONCETTI AFFRONTATI:
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
  • Un ventilatore già modificato per esser controllato tramite un attuatore domotico (vedi esempio) già inserito in configurazione Home Assistant
  • Un sensore di temperatura già inserito in configurazione Home Assistant
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico)
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
Revisione guida: 2.3

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.

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);
  • un sensore 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.

Creazione degli slider

Primo passo è quello di definire due slider per definire quali siano le temperature “di soglia” per l’auto accensione/spegnimento. Per far ciò includeremo nella sezione “Input Number” (“maxtemp_fan” e “mintemp_fan”) le seguenti entità:

input_number:
  maxtemp_fan:
    name: FAN Max°
    initial: 29
    min: 27
    max: 31
    step: 0.1
  mintemp_fan:
    name: FAN Min°
    initial: 26
    min: 24
    max: 28
    step: 0.1

“maxtemp_fan” rappresenta lo slider dal quale regolare la temperatura oltre la quale si scatena l’accensione automatica; viceversa, “mintemp_fan” rappresenta quello dal quale regolare la temperatura al di sotto della quale si scatena lo spegnimento automatico.

Il primo ha un range operativo che va dai 27 ai 31 gradi centigradi, il secondo dai 24 ai 28 gradi. La risoluzione di regolazione è impostata al decimo di grado (“step: 0.1”).

Questa configurazione si traduce, sul frontend, in una rappresentazione come segue:

Home Assistant Input Number slider

Creazione dei sensori

Per innescare l’automazione che andremo a creare è necessario introdurre in configurazione due “Template Binary Sensor“, ovvero due sensori virtuali (li chiameremo “max_setpoint_status” e “max_setpoint_status”) che ci dicano in base al loro stato se nella stanza si sono superate (in alto e in basso) le due temperatura impostate tramite slider di cui sopra.

Nella sezione “binary_sensor:” andremo ad aggiungere la seguente configurazione:

binary_sensor:
  - platform: template
    sensors:
      max_setpoint_status:
        value_template: "{{ states('sensor.temperatura')|float > states('input_number.maxtemp_fan')|float }}"
      min_setpoint_status:
        value_template: "{{ states('sensor.temperatura')|float < states('input_number.mintemp_fan')|float }}"

Il sensore “max_setpoint_status” passa allo stato “on” se la temperatura nella stanza è più alta della soglia impostata sullo slider “maxtemp_fan“, viceversa è in stato “off“;

Il sensore “min_setpoint_status” passa allo stato “on” se la temperatura nella stanza è più bassa della soglia impostata sullo slider “mintemp_fan“, viceversa risponde “off“.

Automazione

Definiamo ora un’automazione che agisca al cambio di stato (da “no” a “yes”) dei due sensori di cui sopra.
Nel blocco “automation:” aggiungiamo la seguente automazione:

- alias: "AUTO Ventilatore"
  initial_state: 'off'
  trigger:
    platform: state
    entity_id: binary_sensor.min_setpoint_status, binary_sensor.max_setpoint_status
    to: 'on'
  condition:
    condition: state
    entity_id: group.awesome_people
    state: home
  action:
    service_template: >
      {% if trigger.entity_id == 'binary_sensor.min_setpoint_status' %}
      switch.turn_off
      {% elif trigger.entity_id == 'binary_sensor.max_setpoint_status' %}
      switch.turn_on
      {% endif %}
    data_template:
      entity_id: switch.ventilatore

L’automazione è configuratea in modo da non essere operativa all’avvio di Home Assistant (“initial_state: ‘off'”) .

È stata aggiunta inoltre una condizione, ovvero la presenza degli inquilini in casa: il gruppo chiamato “group.awesome_people” è infatti la rappresentazione di un raggruppamento di “Device Tracker“.


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

Uso

Ad avvenuta configurazione sarà dunque possibile definire presso il frontend Lovelace un’interfaccia simile alla seguente:

Ventilatore auto ON

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.


Home Assistant Official LogoATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.

🔻 Clicca QUI per commentare l'articolo. 🔻