Installare dei dispositivi intelligenti per controllare la climatizzazione della propria casa è sicuramente un modo per risparmiare, con un occhio anche alla salvaguardia del pianeta, ottimizzando i consumi con pianificazioni aderenti alle esigenze ed alle abitudini di tutta la famiglia, potendo agire stanza per stanza e dispositivo per dispositivo. Per questo, ad esempio, abbiamo introdotto nella nostra casa smart il riscaldamento mediante Tado.

Ma è sufficiente? Certo che no!!

Al netto di una pianificazione ottimale, per poter ridurre maggiormente gli sprechi ci vengono in aiuto le potenzialità del nostro hub domotico. come noto, una corretta areazione quotidiana della casa è necessaria, ma ha un impatto importante sul cima interno ed è difficile trovare il momento migliore per farlo. Ad esempio, in inverno è sempre meglio areare le stanze nelle ore più calde e tenere invece chiusi gli infissi quando i termosifoni sono accesi, a maggior ragione se il calorifero è posizionato, come quasi sempre, proprio sotto la finestra. Viceversa, in estate, è consigliabile areare nelle prime ore del mattino, quando la temperatura non è ancora quella massima, anche in questo caso spegnendo eventuali apparecchi di condizionamento.

Nell’esempio presentato in questo post assumiamo di essere nel periodo invernale, pertanto parliamo di caloriferi. Tuttavia, generalizzando, tutto quanto andremo descrivere è perfettamente adattabile al contesto invernale, dove il dispositivo su ci andremmo ad agire sarebbe un condizionatore oppure un deumidificatore.

Cosa vogliamo fare

Una casa smart è in grado di adeguarsi autonomamente ed automaticamente alle condizioni che si verificano. Nello specifico quindi, vogliamo che il nostro hub di domotica rilevi l’apertura di una finestra in prossimità dei caloriferi e provveda a spegnere questi ultimi. Viceversa, quando la finestra viene chiusa, il riscaldamento può essere riattivato e riprendere il suo funzionamento come pianificato.

Nota su Tado Le funzionalità avanzate descritte in questo e in altri post dedicati al riscaldamento intelligente mediante dispositivi Tado, sono comunque disponibili, in modo più o meno immediato, mediante app. Nel caso del rilevamento finestre aperte, l’app si limita tuttavia a notificare l’utente, mentre l’azione automatica conseguente sul calorifero richiede la sottoscrizione di un abbonamento.

Cosa ci serve

Ricapitoliamo l’elenco della spesa, in aggiunta ai dispositivi visti qui:

La logica

Il funzionamento dell’automazione è molto semplice: mediante i sensori installati sulle finestre, rileviamo l’apertura e la chiusura di queste per spegnere e poi riaccendere le valvole di caloriferi che si trovino nelle immediate vicinanze. In questo modo eviteremo che, a fronte di una temperatura percepita più bassa, la valvola dei caloriferi si apra oltremodo, aumentando il calore prodotto e quindi disperso dalle fineste aperte. Viceversa, riporteremo il dispositivo alla sua impostazione pianificata (modalità automatica) quando la finestra sarà richiusa. Defniremo, inoltre, un tempo minimo di apertura/chiusura delle finestre da attendere prima di andare ad agire sui caloriferi, in modo da non scatenare l’automazione quando non effettivamenet necessario.

Scriviamo i file yaml

In Home Assistant sono state introdotte recentemente le Blueprint. Si tratta di uno strumento molto utile che consente di creare modelli di automazioni o addirittura utilizzare modelli scritti da altri e disponibili online. Lo scenario che stiamo descrivendo è perfetto per mettere in pratica l’utilizzo vantaggioso delle blueprint: possiamo infatti creare un modello di automazione e poi istanziarla per ciascun gruppo di caloriferi e finestre che vogliamo controllare.

Blueprint

Nella cartella di configurazione di HA creiamo se non già presente una cartella blueprints e in questa la cartella automations nella quale possiamo posizionare (anche in sottocartelle) i file yaml con le nostre blueprint di automazioni.

Nel nostro caso, collochiamo il file tado_finestre.yaml nella sotto-cartella dedicata al dominio: /home/HomeAssistant/.HomeAssistant/blueprints/automations/climate/.

Rispettando il formato atteso dal file, cominciamo nel definire il nostro modello, specificando nome, descrizione e soprattutto il dominio a cui appartiene l’oggetto che vogliamo modellare, ovvero l’automazione:

blueprint:
  name: Finestra aperta spegni Tado
  description: Spegni il riscaldamento se la finestra è aperta.
  domain: automation

Procediamo indicando quelle che sono le entità utilizzate come input dell’automazione. Nel nostro caso, l’unica misura che andremmo a valutare per scatenare l’azione automatica è lo stato del sensore binario sulla finestra:

  input:
    window_sensor:
      name: finestra
      selector:
        entity:
          domain: binary_sensor
          device_class: opening

Allo stesso modo, l’entità obiettivo della nostra azione è la valvola del calorifero nelle vicinanze della fiestra, ovvero il dispositivo di tipo climate generato dall’integrazione:

    climate_target:
      name: calorifero
      selector:
        target:
          entity:
            domain: climate

Come accennato nel paragrafo introduttivo della logica della nostra automazione, per evitare che qualsiasi apertura/chiusura della finestra azionino lo spegnimento/accensione del calorifero, definiamo un parametro tempo_attesa che potremo regolare per decidere il tempo di reazione dell’automazione:

    time_trigger:
      name: tempo_attesa
      description: Tempo di apertura della finestra prima dello spegnimento.
      default: 30
      selector:
        number:
          min: 10
          max: 120
          unit_of_measurement: seconds

Definiamo poi due variabili che ci torneranno utili per la notifica di avvenuta automazione:

variables:
  climate_target: !input climate_target
  room_target: "{{ states[climate_target].attributes.friendly_name }}"

Come si deve comportare la nostra automazione se la finestra viene chiusa e riaperta in un intervallo di tempo inferiore al tempo di attesa definito prima? Per gestire questè proprietà sfruttiamo il parametro di configurazione mode descritto nella pagina ufficiale: decidiamo che il conteggio del tempo riparta ogni volta che si agisce sulla finestra.

# If motion is detected within the delay, restart the script.
mode: restart
max_exceeded: silent

Realizziamo la logica definendo l’evento scatenante:

trigger:
  platform: state
  entity_id: !input window_sensor
  to: "on"
  for: !input time_trigger

E le azioni conseguenti:

action:
  - service: climate.turn_off
    entity_id: !input climate_target
  - service: notify.mobile_app_device
    data:
      title: "*Finestra aperta in {{ room_target }}*\n"
      message: "Riscaldamento SPENTO."    
  - wait_for_trigger:
    - platform: state
      entity_id: !input window_sensor
      to: 'off'
      for: !input time_trigger
  - service: climate.set_hvac_mode
    data:
      entity_id: !input climate_target  
      hvac_mode: auto      
  - service: notify.mobile_app_device
    data:
      title: "*Finestra chiusa in {{ room_target }}*\n"
      message: "Riscaldamento AUTO."

Notiamo che, dopo aver spento il riscaldamento, l’automazione si mette in attesa che finestra venga richiusa, mediante l’opzione wait_for_trigger. Anche in questo caso, agirà sul calorifero solo dopo il tempo prefissato.

Infine mediante il servizio notify notifichiamo al dispositivo su cui è installata l’app Home Assistant Companion che il calorifero è stato spento o ripristinato.

Automazioni

Nella sezione automation: del nostro file configuration.yaml andiamo ad istanziare l’automazione appena modellata, tante volte quante solo le coppie di finestre/caloriferi che intendiamo far gestire in modo automatico dal nostro hub:

automation:
  - alias: Clima__Cameretta_Finestra_Tado
    use_blueprint:
      path: climate/tado_finestre.yaml
      input:
        window_sensor: binary_sensor.door_window_sensor_abcd0123456789
        climate_target: climate.cameretta
        time_trigger: 30

Enjoy!