Definire un indicatore di benessere estivo sulla domotica Home Assistant

5 minuti di lettura
Scopi del PROGETTO:
  • Dotarsi di un indicatore di benessere estivo calcolato col metodo dell’indice di Thom (semplificato)
  • Livello di difficoltà: bassa
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Dispositivi fisici utilizzati:
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.3

Abstract

Che d’estate faccia caldo non è di certo una novità. Ma cosa significa “avere caldo”? Si tratta di una condizione molto personale condizionata, diversamente da come si è portati a pensare, da più fattori, non dalla sola temperatura dell’ambiente in cui ci si trova. Un altro fattore importantissimo infatti è l’umidità relativa: la saturazione dell’aria che circonda il nostro corpo (quindi un valore alto di umidità) ne impedisce la traspirazione naturale data dalla sudorazione, impedendo al corpo di raffreddarsi automaticamente e portando alla percezione di calore. Ovviamente temperatura e umidità, combinati, contribuiscono vicendevolmente al benessere di un organismo a sangue caldo come il nostro.

Spesso e volentieri nel periodo estivo si sente parlare di temperatura percepita o di altri fattori: tutti tentativi di modellare un indice più o meno intelleggibile in grado di fornire la percezione del calore subito. Quello che forse al meglio descrive questa condizione è il cosiddetto indice di Thom, un semplice algoritmo in grado di fornire, numericamente, la percezione più o meno oggettiva di quanto faccia (o meno) “caldo”. Si tratta di un algoritmo in grado di tenere in considerazione anche la mobilità dell’aria (altro fattore importante), ma può essere ridotto all’uso con sola temperatura e umidità, semplificandolo, considerando l’aria mediamente ferma (di certo non ventosa) di casa.

In domotica personale dotarsi di un indicatore di questo tipo è particolarmente comodo per innescare per esempio sistemi di condizionamento e molto altro. Gli utenti che abbiano fondato la propria domotica personale implementando l’HUB personale Home Assistant possono beneficiare della sua grande versatilità per dotarsi di un’entità “indice di thom” che calcoli automaticamente, in base alle letture di umidità e pressione domestiche, questo valore (per essere poi usato in automazione come trigger e/o condition).

Si parte

Assunti

Come detto, per implementare l’indice di Thom (semplificato) è necessario per lo meno dotarsi di due entità di tipo sensore, una relativa alle letture di temperatura e umidità relativa domestiche. Per farlo è sufficiente integrare facilmente uno dei tantissimi sensori disponibili sul mercato.

inDomus ne ha testati svariati:

Ovviamente tale indice può essere applicato anche a sensori di temperatura e umidità relativa esterni all’abitazione, magari tramite l’integrazione Yr, in grado di fornirci sensori previsionali (per prevedere magari le giornate particolarmente afose).

Per questo progetto assumeremo di disporre di due entità chiamate sensor.temperatura e sensor.umidita.

N.b. Si ricorda sempre di provvedere alla calibrazione dei sensori domestici, qualora ve ne sia più di uno.

Indice di Thom

Il valore di indice di Thom (“Index”) si calcola facilmente:

Index = temperatura – (0,55 – 0,0055 * umidità) * (temperatura – 14,5)

Il che porta una distribuzione numerica di questo tipo:

indice di Thom

I valore di umidità relativa e temperatura portano l’indice a spostarsi tra circa 18 a circa 42; la lettura di questo valore è la seguente:

VALORE/RANGE INTERPRETAZIONE
 Index < 21 Benessere
21 ≤ Index ≤ 24 Il 50% della popolazione prova un leggero disagio
24 ≤ Index ≤ 27 Oltre il 50% della popolazione prova un crescente disagio
27 ≤ Index ≤ 29 Gran parte della popolazione prova disagio e un significativo deterioramento delle condizioni psicofisiche
29 ≤ Index ≤ 32 Forte disagio per chiunque
Index ≥ 32 Stato di emergenza medica, il disagio è molto forte; elevato il rischio di colpi di calore.

Home Assistant

Capito cosa sia l’indice di Thom, non resta che passare sul nostro HUB preferito per operare nella definizione di un indice di questo tipo.

Definizione sensore

Aggiungere un “Template Sensor” è piuttosto semplice: è infatti sufficiente aggiungere al file di configurazione di Home Assistant del codice analogo al seguente:

sensor:
  - platform: template
    sensors:
      indice_thom:
        friendly_name: "Indice Thom"
        value_template: "{{ (states('sensor.temperatura')|float - (0.55-0.0055 * states('sensor.umidita')|float)*(states('sensor.temperatura')|float - 14.5))|round(1) }}"
        unit_of_measurement: 'index'

Il calcolo è semplice e ricalcola l’algoritmo sopra illustrato, arrotondando poi il risultato alla prima cifra decimale. Ovviamente i nomi delle entità utilizzate per il calcolo possono variare a propria esigenza.

L’entità derivante si chiamerà sensor.indice_thom.

Su Lovelace UI

Ovviamente la prima cosa da fare è quella di visualizzare lo stato dell’entità presso l’interfaccia di Home Assistant, Lovelace UI.

Per farlo basterà aggiungere una “card” di tipo “Indicatore”, provvedendo anche a indicare i valori massimi e minimi nonché il grado di gravità per avere un’indicazione anche colorata della severità dell’indice:

Home Assistant - Indice di Thom - Lovelace UI Card Indicatore

Questo consentirà, a colpo d’occhio, di consultare l’indicatore.

Automazioni

Ma se volessi utilizzare l’indice di Thom nelle mie automazioni? Niente di più facile: si tratta di un valore numerico che varia dinamicamente, il che consente di utilizzarlo serenamente come trigger e/o come condition.

Accensione dei climatizzatori

Ipotizziamo di esser dotati di un’entità di tipo “Climate” grazie alla domotizzazione su Home Assistant di condizionatori/climatizzatori tradizionali tramite raggi infrarossi oppure tramite una o più delle piattaforme di integrazione per unità nativamente domotiche: assumeremo che tale entità si chiami climate.codizionatore.

Vogliamo dunque che tale climatizzatore si accenda automaticamente quando il valore dell’indice di Thom supera 24 (per più di 30 minuti, diciamo) – e solo se siamo a casa, ovviamente.

IN MERITO ALLA “PRESENZA IN CASA

Come forse sapremo l’integrazione della presenza dei vari inquilini autorizzati presso Home Assistant avviene tramite l’uso del componente “Device Tracker” declinato tramite le varie piattaforme ad esso collegate (sebbene, ormai, sia universalmente utilizzata la sola app ufficiale “Home Assistant Companion“). Tipicamente ogni inquilino ha il proprio smartphone e, quando viene rilevata la presenza/assenza in casa, Home Assistant ne è consapevole. Tale presenza può essere rilevata implementando una o più delle piattaforme sopracitate; la cosa non è oggetto della presente guida, la quale assume la presenza in configurazione delle seguenti due entità di tipo “Device Tracker”:

  • device_tracker.marco
  • device_tracker.daniela

le quali rappresentano, appunto, lo stato di presenza di due ipotetici inquilini, Marco e Daniela. Li raggrupperemo nel gruppo group.famiglia, il quale ovviamente assume stato “home” quando almeno un componente è a casa e “away” quando entrambi sono fuori.

Utilizzando quindi tre entità:

  • sensor.indice_thom
  • group.famiglia
  • climate.condizionatore

riusciremo a definire facilmente la nostra automazione:

automation:
  - alias: "Accensione Condizionatore"
    trigger:
      platform: numeric_state
      entity_id: sensor.indice_thom
      above: 24
      for:
        minutes: 30
    condition:
      condition: state
      entity_id: group.famiglia
      state: 'home'
    action:
    - service: climate.set_temperature
      data:
        entity_id: climate.condizionatore
        temperature: 20
        hvac_mode: cool
    - service: climate.set_fan_mode
      data:
        entity_id: climate.condizionatore
        fan_mode: auto
SMART SPEAKER

Magari non vogliamo accendere automaticamente il condizionatore, ma farci avvisare da Alexa (o da Google).
La configurazione è quantomai semplice (vediamo il caso Alexa – non differisce molto da Google):

automation:
  - alias: "Accensione Condizionatore"
    trigger:
      platform: numeric_state
      entity_id: sensor.indice_thom
      above: 24
      for:
        minutes: 30
    condition:
      condition: state
      entity_id: group.famiglia
      state: 'home'
    action:
      service: notify.alexa_media
      data:
        target: media_player.alexa
        data:
          type: announce
          method: spoken
        message: "Attenzione, comincia a fare davvero caldo. Aprire le finestre!"

E così via.


Ovviamente di tale indice si può fare ciò che si vuole: il limite, come sempre, è la fantasia.


Home Assistant Official Logo ATTENZIONE: 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.


Telegram News Channel