Advanced Automation With Template – Preparo il Caffè?

coffee time

Non sarebbe comodo al nostro risveglio trovare la macchina per il caffè già accesa?
Attraverso l’ uso dei template è possibile impostare l’ accensione della macchina del caffè qualche minuto prima che squilli la sveglia del nostro smartphone.
Troveremo la macchina già calda, pronta ad accogliere la nostra cialda con l’ aroma preferito.

Leggere la Sveglia dello Smartphone

Per far in modo che Home Assistant legga la sveglia impostata sul nostro smartphone (nell’ esempio vtr_l09_prossimo_allarme) è necessario installare l’ App Home Assistant e concedere l’ autorizzazione alla lettura dei sensori dello smartphone.

P.S. Grazie all’ amico Luigi per la collaborazione nella stesura del codice.

Vediamo come procedere…

Progetto Coffee Time

Innanzitutto dovremo impostare la sveglia sul nostro smartphone. 🙂
Attraverso l’ utilizzo di un template, Home Assistant leggerà la data e l’ orario della sveglia a cui sottrarrà 15 minuti. Sarà il trigger che utilizzeremo per accendere la nostra macchina del caffè.
Quest’ ultima dovrà essere collegata ad un’ interruttore domotico che fornirà l’ alimentazione quando richiesto.

Detto questo, vediamo il codice da utilizzare in configuration.yaml …

# Coffee Time Sensor (sensor.coffee_next_alarm)
sensor:
  - platform: template
    sensors:
     coffee_next_alarm:
       friendly_name: "Il prossimo caffè"
       value_template : >-
             {{(as_timestamp(states('sensor.vtr_l09_prossimo_allarme')) | int - (15*60))| timestamp_custom('%a %h %d %H:%M %Z %Y')}}


# Customized Time/Date Sensor (sensor.time_formatted)
  - platform: time_date
    display_options:
      - 'date_time_iso'
  - platform: template
    sensors:
      time_formatted:
        friendly_name: "Date and time"
        value_template: "{{ as_timestamp(states('sensor.date_time_iso')) | timestamp_custom('%a %h %d %H:%M %Z %Y') }}"
        icon_template: mdi:calendar-clock

Cosa abbiamo scritto?

Dunque, la piattaforma template del componente sensor consente ad un sensore di leggere dei valori da altre entità.
Il nostro sensore coffee_next_alarm con friendly name “Il prossimo caffè” assumerà come valore l’ orario della sveglia del nostro smartphone a cui verranno sottratti 15 minuti.
Praticamente la macchina del caffè si accenderà, grazie a questo sensore,  15 minuti prima della sveglia per raggiungere la temperatura ottimale al nostro risveglio.

  • vtr_l09_prossimo_allarme è la sveglia impostata sul nostro smartphone;
  • | int – (15*60) sottrae 15 minuti alla sveglia del nostro smartphone (900 secondi);
  • | timestamp_custom(‘%a %h %d %H:%M %Z %Y’) è il formato prescelto.

Nella seconda parte del codice è’ stato, inoltre, creato un nuovo sensore personalizzato derivato da quello di sistema e avente lo stesso formato del sensore  coffee_next_alarm.

La piattaforma time_date  aggiunge uno o più sensori alla state machine di Home Assistant.
Per maggiori informazioni sulla creazione di sensori con la piattaforma date_time in HA leggi questo articolo della guida.

Il sensore creato si chiamerà time_formatted con friendly name “Date and time” e leggerà lo stato del sensore sensor.date_time_iso adattandolo al nostro formato.
In questo modo Home Assistant sarà in grado di confrontare l’ orario corrente con quello del sensore coffee_next_alarm.
Creiamo dunque un’ automazione dove il trigger sarà definito da un template.

alias: Prova caffè
description: ''
trigger:
  - platform: template
    value_template: '{{states.sensor.time_formatted.state == states.sensor.coffee_next_alarm.state}}'
condition: []
action:
  - service: persistent_notification.create
    data:
      title: Caffè in arrivo
      message: 'Alle ''{{now().strftime("%I:%M%p")}}'''
mode: single

Viene confrontato l’ orario di sistema con l’ orario a cui è prevista l’ accensione della macchina.
Quando i tempi coincideranno la macchinetta si accenderà.
Nell’ esempio viene inviata una notifica persistente per testare l’ automazione.
Non resta che aggiungere nelle action il nostro interruttore domotico che provvederà ad accendere la macchina del caffè (passando dallo stato off allo stato on).

P.S. Verificare il corretto funzionamento dell’ automazione prima di renderla effettiva.

Buon Caffè !!
Hai da suggerire modifiche al codice per migliorarlo? Scrivilo nei commenti !!

Qualsiasi modifica all’impianto elettrico deve essere effettuata da personale qualificato.
Si declina ogni responsabilità per eventuali danni causati a persone, animali o cose derivanti dall’ utilizzo delle informazioni pubblicate.

domoticacaserta
Latest posts by domoticacaserta (see all)
4.5 2 votes
Vota l' Articolo
Subscribe
Notificami
guest
7 Commenti
più vecchi
più nuovi più votati
Inline Feedbacks
View all comments
arduinoforever
arduinoforever
3 anni fa

Buona idea !!

Fabio
Fabio
Reply to  arduinoforever
3 anni fa

Sto seguendo con interesse questa guida. Sto giocando molto inserendo il codice nei modelli e a destra vedo l’output. Se però copio quello che ho creato nei modelli su un’automazione (call template ) ed incollo il codice non funziona. Dove sbaglio?

Ciclolento
Ciclolento
2 anni fa

Ottimo lavoro. Pensavo di modificare il codice usando invece del sensore dell’app sul cellulare quello della sveglia dell’Echo show che ho sul comodino. Il sensore è disponibile in Home Assistant grazie all’integrazione Hacs Alexa media player. Credi che possa funzionare?

Edo78
Edo78
2 anni fa

Un suggerimento … Invece di impostare un tempo (15 minuti) fisso nel codice il tutto sarebbe più elastico se utilizzaste un helper numerico. In questo modo si può creare l’automazione per altri membri della famiglia che possono, cambiando il valore dell’helper, tararla sulle proprie preferenze senza che si debba rimettere mano al codice.