Home Assistant - Creiamo un sensore turni sincronizzato con Google Calendar

Home Assistant

Scritto da Antonio Mario Longo

Lavorando in azienda, e su turni, non ho mai adorato alzarmi presto al mattino.

Soprattutto se alle 6 del mattino devo già essere operativo, quindi alle 4:45 dovrei essere in piedi, sempre che, la sera precedente abbia ricordato di mettere la sveglia.

Ma se magari, la sera il sistema domotico riconoscesse i miei turni e ad attendermi ci fosse una tazza di caffè già pronta?

Sicuramente sarei leggermente più felice e il risveglio sarebbe meno traumatico. 

Home Assistant ha di per sé un sensore turni lavorativi chiamato work day, che ci indica solo se il giorno odierno è un giorno lavorativo o meno.

Ma per far si che conosca i nostri orari, dobbiamo essre noi ad indicarli al nostro HUB Domotico.

Di solito i lavoratori turnisti, seguono 3 o 4 turni.

Noi prenderemo in esempio 3 turni lavorativi che convenzionalmente indicheremo con 

  • Primo dalle 6.00 alle 14.00
  • Secondo dalle 14.00 alle 22.00
  • Notte dalle 22.00 alle 6.00
  • Riposo

Di solito le aziende, in base alle esigenze lavorative schematizzano i turni e li eseguono a rotazione.

Quindi magari, si lavorerà per ipotesi 5 giorni di mattina, 2 giorni di Riposo poi 5 giorni di Notte, altri 2 giorni di Riposo e infine 5 giorni di pomeriggio e gli ultimi 2 giorni di Riposo.

Tutti questi turni, si ripetono molte volte per anni salvo imprevisti personali o esigenze aziendali. 

Questo schema di turnistica, potremmo riportarlo in Google Calendar.

La piattaforma di Google Calendar, su Home Assistant permette di connettere i Calendari di Google e generare, in base agli eventi dei sensori binari che indicano con lo stato On o Off, se determinati eventi sono avvenuti o meno.

La prima volta che aggiungeremo quest'integrazione, Home Assistant creerà in automatico un file chiamato google_calendars.yaml, che avrà al suo interno le informazioni su tutti i calendari associati al proprio account.

Partiamo immediatamente:

  • Aprite il seguente link: https://console.developers.google.com/start/api?id=calendar
  • La configurazione guidata chiederà di creare un nuovo progetto, quindi cliccare su Cotinua
  • Successivamente cliccare su 'Vai alle credenziali' e arrivati alla pagina chiamata 'Aggiungi Credenziali al tuo progetto' cliccate su Annulla.
  • Sulla barra laterale sinistra, dirigetevi su Credenziali per poi cliccare su 'Configura schermata di consenso'
  • Alla nuova pagina User Type selezionate 'Esterno' e infine cliccate su Crea
  •  Impostate come nome dell' applicazione Home-Assistant
  • Su supporto e-mail dal menù a tendina selezionare la vostra mail e su Informazioni di contatto dello Sviluppatore, digitate nuovamente la vostra e-mail.
  •  Cliccate su Salva e Continua e passerete dalla sezione Schermata consenso OAuth alla sezione Ambiti  
  • Ora lasciate invariata questa schermata, e spostatevi nel menu laterale sinistro cliccando la voce Credenziali.
  • In alto al menu principale, troverete il tasto + Crea Credenziali   
  • Selezionate dal menù a discesa che vi comparirà cliccandoci ID Client Oauth
  • Alla nuova schermata selezionate come Tipo di Applicazione ' Tv e dispositivi di immissione limitata ' ,  e al box nome sottostante inserite Credenziali Home Assistant.
  • Cliccate su Crea e alla schermata successiva vedrete un pop-up che vi indica il Client ID e  il Client Secret

Attenzione: Annotate i due codici in qualche modo perchè andranno inseriti nel file configuration.yaml di Home Assistant

  • Cliccate su OK e ora passiamo alla doppia verifica delle ' API di Google Calendar '
  • Nel menù laterale sinistro, selezionate libreria e nella nuova pagina che si aprirà cercate 'Google Calendar Api' e selezionatela.
  • Se nella nuova pagina vi ritroverete il pallino con la V verde dove è scritto API abilitata, non dovrete far nulla, altrimenti abilitatela.

Attenzione: Se cercate di passare a un nuovo account Google, potreste trovarvi qualche errore. Quindi eliminate il file .google.token Presente nella cartella Config di Home Assistant e riavviate Home Assistant.

Passiamo ora alla configurazione di Home Assistant.

  • Collegatevi ad Home Assistant | Hassio con Samba o FTP 
  • Dirigetevi nella cartella Config e aprite il file configuration.yaml 
  • All'ultima riga del file configuration.yaml inserite le seguenti stringhe di codice:

google:
  client_id: CLIENT_ID (che avete annotato in precedenza)
  client_secret: CLIENT_SECRET (che avete annotato in precedenza)

CREARE TURNI LAVORATIVI CON GOOGLE CALENDAR

  • Dal vostro browser, dopo esservi loggati con il vostro account google, dirigetevi al seguente indirizzo: https://calendar.google.com 
  • Cliccate dal menù in basso a sinistra sulla voce Altri Calendari +  
  • Successivamente Create un nuovo calendario con l'apposita voce
  • Impostate come Nome Turni Lavoro, e lasciate vuota la descrizione, cliccate infine su Crea calendario
  • Una volta creato il Calendario cliccate sulla freccia presente accanto alla scritta Impostazioni in modo tale da ritrovarvi nel menù principale di Google Calendar.
  • In basso sotto la voce I miei Calendari spuntate il calendario appena creato 

  • Cliccate sul tasto Crea
  • Al nuovo Pop-Up inserite come Titolo il turno che volete (ex: Primo) e spostatevi direttamente alla voce Non si ripete, selezionando la dicitura Personalizza.
  • Alla voce Ripeti ogni impostate 3 settimane
  • Si ripete il, selezionate i giorni lavorativi (per esempio dal Lunedì al Venerdì)
  • Fine, impostate la data in cui volete far finire la vostra turnzione e terminate con il Tasto Fine
  • Inserite gli orari, dei turni per esempio dalle 06.00 alle 14.00 e alla fine ripetete questa procedura per tutti gli altri turni, incluso il riposo.

INTEGRARE SENSORE TURNI IN HOME ASSISTANT

Ora ripassiamo sul nostro Home Assistant, riavviando il sistema per permettere a Home Assistant di aggiornarsi in modo tale da vedere il calendario precedentemente creato.

  • Collegatevi su Home Assistant con Samba o FTP
  • Recarsi nella cartella Config e aprire il file configuration.yaml 
  • In fondo al file aggiungere le seguenti righe di codice

 

sensor:
  - platform: template
    sensors:
      turni_antonio:
        friendly_name: "Turni Lavorativi"
        value_template: "{{ state_attr('calendar.turni_lavoro', 'message') }}"

Praticamente, abbiamo creato un sensore legato all'attributo message, del calendario turni_lavoro, che cambia il valore del proprio stato in base al turno giornaliero.

  • Al termine, riavviate Home Assistant e potrete aggiungerlo alla vostra plancia ottenendo magari questo risultato

 

Spero che questo sensore, con questa guida possa esservi d'aiuto per le infinite automazioni e che ne possiate fare buon uso.

Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.


Vai ai commenti