SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
|
PROGETTO INDICATO a UTENTI CON ISTALLAZIONE: |
|
NOTE E DISCLAIMER
|
|
Revisione progetto: 2.4 |
ATTENZIONE! Nel giugno 2020 abbiamo rilasciato la versione 2 del presente progetto, riveduta, corretta e migliorata nella sua definizione.
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:
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: false
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:
action: >
{% 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:
entity_id: switch.ventilatore
L’automazione è configurata in modo da non essere operativa all’avvio di Home Assistant (“initial_state: false”) .
È 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:
Uso
Ad avvenuta configurazione sarà dunque possibile definire presso l’interfaccia dell’HUB qualcosa simile a ciò che segue:
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.
⚠️ 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. |