Home Assistant e le Notifiche: la tua lavatrice ti avvisa quando ha finito?

Leggi questo articolo grazie alle donazioni di Luca Zeggio, Federico Bruno, Giovanni Tonini, Alessandro Sandrin, Stefano Collenghi, Davide Dari, Lorenzo Fabbri.
♥ Partecipa anche tu alle donazioni: sostieni SaggiaMente, sostieni le tue passioni!

Abbiamo visto come installare e configurare Home Assistant, poi siamo passati all’attivazione di HomeKit, infine Alberto ha spiegato in un chiarissimo articolo i concetti base delle automazioni. Arrivati a questo punto vorrei condividere con voi la mia automazione preferita, che consente di ricevere una notifica sul telefono quando uno dei nostri elettrodomestici cambia “stato”, nel caso specifico la lavatrice che termina il ciclo di lavaggio. Non potete immaginare quanto mi è utile questa automazione avendo la lavanderia fuori casa.

Due prese smart con monitoraggio dei consumi compatibili con Home Assistant

Procuriamoci una presa smart compatibile con Home Assistant

Per cominciare avremo bisogno di una presa smart con energy monitoring compatibile con HA. Io utilizzo la Smart Plug NeoCoolCam con standard z-wave (che richiede un dongle compatibile come quello di Aeotec), ma se ne trovano tantissime anche solo Wi-FI, come la nota TP-Link H110. In giro potete trovare offerte di prodotti apparentemente analoghi anche a 10€, ma serve un modello che sia integrabile in Home Assistant e che effettui una misurazione dei consumi, come quelli citati. Per attivare la presa basterà cercare la marca o il modello nella lista dei componenti sul sito ufficiale di Home Assistant e seguire le istruzioni di modifica del file configuration.yaml, che ormai dovreste conoscere bene. Una volta aggiunta la presa smart al sistema dovremo trovare l’entity id del sensore di consumo nella sezione “stati” (<>) del menu “strumenti per gli sviluppatori” su Home Assistant: nel mio caso con la NeoCoolCam l’identificativo univoco è sensor.neo_coolcam_power_plug_12a_power_8 

Abilitiamo le notifiche

Per quanto riguarda le notifiche, Home Assistant permette di inviarle utilizzando moltissime piattaforme, tra cui Slack, Telegram, Messenger, Pushbullet, ecc; e per ognuna di queste vi è il componente specifico elencato nella pagina dei componenti.

Io preferisco usare come sistema di notifica principale l’app per iOS di Home Assistant. Per poterla abilitare dovremo inserire nel configuration.yaml poche righe, ma prima è necessario leggere il “Device ID” nella pagina di Settings dell’app Home Assistant su ogni telefono su cui si vogliono ricevere le notifiche. Nel mio caso sono due, quindi ho creato un gruppo dal nome “telefoni” aggiungendo una riga “service” per ognuno di essi:

ios:
device_tracker: #questa riga vi servirà per abilitare la localizzazione
notify:
  - name: telefoni
    platform: group
    services:
      - service: davides_iphone8  # Davide ID su app HA
      - service: iphone_di_muriel # Muriel ID su app HA

Come sempre dobbiamo controllare la configurazione e riavviare. A questo punto, se tutto è stato eseguito correttamente, inserendo i dati di accesso sull’ app di Home Assistant dovranno apparire le tre spunte accanto ad iOS component, device tracker e notify platform.

Proviamo una notifica

Vediamo se le notifiche funzionano con una semplicissima automazione, del tipo: quando accendo la luce invia la notifica. Prendiamo il file automation.yaml e scriviamo qualcosa del genere:

- alias: Prova Notifica
  trigger:
    platform: state
    entity_id: light.camera 
    from: 'off'
    to: 'on'
  action:
    - service: notify.ios_davides_iphone8
      data:
        message: "La Luce è accesa"

In questa automazione innescata dal trigger “quando la luce della camera si accende“ l’azione richiesta è appunto la notifica sul mio telefono “notify.ios_davides_iphone8” (notate che si dovrà aggiungere ios_ prima del Device ID )dove riceverò il messaggio “La Luce è accesa”. Se invece vogliamo inviare la notifica su tutti i telefoni si dovrà richiamare il servizio dell’intero gruppo in questo modo:

- service: notify.telefoni

Notifica di fine Lavaggio

A questo punto abbiamo tutto quello che ci serve: l’entity id della nostra presa smart e le notifiche abilitate. Cominciamo quindi a scrivere l’automazione per far si che la lavatrice ci notifichi la fine del lavaggio, iniziando a definire un nome (alias) e impostando lo stato iniziale su spento. È importante che Home Assistant mantenga l’automazione disattiva come stato predefinito, altrimenti verrebbe inviata una notifica anche ad ogni riavvio della piattaforma.

- alias: Notifica fine lavaggio
  initial_state: False  # spenta quando Home Assistant si avvia

Subito dopo aggiungiamo l’entity id del componente della presa smart che misura il consumo di corrente (lo abbiamo già trovato nei precedenti passaggi) e stabiliamo un tetto massimo (inferiore a 3W) per una durata minima (8 minuti). Questo ci darà l’assoluta certezza che la lavatrice abbia terminato completamente il lavaggio e non sia solo in una fase intermedia tra una modalità e l’altra.

trigger:
- platform: numeric_state
  entity_id: sensor.neo_coolcam_power_plug_12a_power_8
  below: '3'
  for:
    minutes: 8

Passiamo ora all’azione di notifica, che ho definito con tre servizi. I primi due sono notifiche distinte sul telefono mio e di mia moglie, perché ho voluto differenziare i messaggi, m si potrebbe benissimo richiamare il gruppo notify.telefoni come visto in precedenza. Infine è opportuno spegnere l’automazione di notifica.

action:
  - service: notify.ios_davides_iphone8
    data:
      message: "La lavatrice ha completato il lavaggio"
  - service: notify.ios_iphone_di_muriel
    data:
      message: "Vedi che il marito NERD può essere utile?!! La LAVATRICE è Pronta"
  - service: automation.turn_off
    entity_id: automation.notifica_fine_lavaggio

L’ultimo e fondamentale passaggio è quello di far accendere l’automazione che esegue il monitoraggio della lavatrice al momento giusto, e per questo servirà una seconda automazione. Iniziamo come sempre dal suo nome (nel campo alias) e proseguiamo stabilendo il trigger basandoci sui consumi rilevati dalla presa. In sostanza si tratterà di determinare una soglia sopra la quale abbiamo la certezza che la lavatrice sia in funzione, nel mio caso 50W (above: 50). L’azione da compiere è prevedibile: attivare l’automazione che notificherà la fine lavaggio.

- alias: Attiva Notifica lavatrice
  trigger:
    - platform: numeric_state
      entity_id: sensor.neo_coolcam_power_plug_12a_power_8
      above: '50'
  action:
    - service: automation.turn_on
      entity_id: automation.notifica_fine_lavaggio

Grazie a questa semplice automazione non mi trovo più a dover attraversare inutilmente il giardino per arrivare in lavanderia e scoprire che la lavatrice è ancora in funzione. Partendo da questo spunto potrete scrivere automazioni anche molto diverse e ricordate che potete trovare tante nuove idee ed applicazioni pratiche nelle nostre repository su GitHub: Davide, Alberto, Andrea ed Andrea.

In un prossimo articolo studieremo i template, grazie ai quali si possono realizzare automazioni più complesse e al tempo stesso stesso lineari. Ad esempio si potrebbe provare a semplificare ulteriormente la logica di queste due automazioni usandone una soltanto che, dopo aver rilevato l’inizio del lavaggio, usa un wait_template per attendere che il consumo scenda per un tot di minuti e quindi inviare le notifiche.

Autore:
Davide (@daxda)

Revisori:
Alberto Zamboni (@albyzambo)
Maurizio Natali (@simplemal)

SmartHome Channel

Special Team - I SaggiUtenti del canale #SmartHome presente sul nostro Slack uniti per creare guide e recensioni dedicate all'automazione. Partecipa anche tu entrando nel gruppo effettuando una donazione. Clicca sul link qui sotto per maggiori informazioni.

Commenti controllati Oltre a richiedere rispetto ed educazione, vi ricordiamo che tutti i commenti con un link entrano in coda di moderazione e possono passare diverse ore prima che un admin li attivi. Anche i punti senza uno spazio dopo possono essere considerati link causando lo stesso problema.