Home Assistant - Creiamo un sensore turni sincronizzato con Google Calendar

Home Assistant - Creiamo un sensore turni sincronizzato con Google Calendar

di Antonio Mario Longo

27 Ottobre 2020

Home Assistant

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  
    ScreenSoht per consenso Auth Ambiti Google Calendar
  • 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 
    Crea Credenziali per Google Calendar
     
  • 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.
Google Calendar Api attivate

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 +  
    Select Other Calendar Google Calendar
  • 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 
Selezione Turni Lavoro da Google Calendar
  • 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

 

esempio della plancia home assistant con sensore turni lavorativi

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.

Antonio Mario Longo

Antonio Mario Longo

Nato a Foggia nel Settembre 1984 perito elettrotecnico di sistemi e automazione, lavoro nel settore aereonautico su macchine a controllo numerico per la produzione di particolari in fibra di carbonio, appassionato di informatica (nata dai primi 8086) e automatismi per le nuove case del futuro.

Disqus loading...