Home Automation System - Comandiamo OpenHAB con la voce
ita·@marcolino76·
0.000 HBDHome Automation System - Comandiamo OpenHAB con la voce
<center>

**[Fonte PIXABAY - CC0 Creative Commons](https://pixabay.com/it/comando-vocale-i-comandi-vocali-2598422/)**
</center>
Come promesso, torno a raccontare dei miei esperimenti *"vocali"*...in particolare integrazione e configurazione di **Google Home Mini** con **OpenHAB**
Nel post precedente (vedi https://steemit.com/ita/@marcolino76/home-automation-system-diamo-il-benvenuto-al-nostro-assistente-vocale) avevo introdotto i miei nuovi acquisti: un **Google Home Mini** ed un **Google Chromecast**. Ho fatto alcune prove con diverse configurazioni e setup e adesso sono pronto per integrare l'assistente in **OpenHAB** per poter inviare comandi e richieste vocali al mio **Home Automation System**.
In **OpenHAB** esiste un ottimo plugin nativo per l'integrazione di **Google Assistant**. Niente di più facile...come sempre basta seguire le indicazioni della guida ufficiale - https://www.openhab.org/docs/ecosystem/google-assistant/
In particolare il plugin si appoggia al connettore **Cloud di OpenHAB** ed al servizio **myOpenHAB**, che permettono l'utilizzo di **OpenHAB** al di fuori della rete locale in maniera del tutto sicura; in questo modo è possibile interfacciarsi con servizi esterni, come appunto il nostro **Google Assistant**.
<center>

**[Fonte PIXABAY - CC0 Creative Commons](https://pixabay.com/it/icona-sociale-networking-908163/)**
</center>
Dopo la configurazione iniziale è necessario *marchiare* gli item che vogliamo esporre e quindi comandare con **Google Assistant**...Questa operazione viene effettuata con l'ausilio dei **tag** di **OpenHAB**, che non sono altro che degli attributi da assegnare ai diversi *items* del nostro sistema, normalmente utilizzati da addons (per approfondimenti vedere https://www.openhab.org/docs/configuration/items.html#tags)
In base al tag assegnato al singolo item possiamo attribuire la funzione che l'item stesso avrà all'interno del sistema **Google Home**; questo perchè un *item* di **OpenHAB** per essere utilizzabile da **Google Assistant** dev'essere visto come un "device" compatibile con **Google Home**; in questo modo può essere aggiunto come dispositivo all'interno dell'app di Google e quindi controllabile nativamente con la voce (oltre che direttamente dall'app, cosa che però a me non interessa perchè continuerò ad utilizzare **OpenHAB**).
Al momento non tutte le tipologie di dispositivi sono compatibili. In particolare ad oggi possiamo gestire interruttori, luci, termostati e prese. Ecco i relativi tag:
- "Lighting"
- "Switchable"
- "Scene"
- "Outlet"
- "CurrentTemperature"
- "Thermostat"
L'elenco è in evoluzione...per avere l'elenco aggiornato seguire questo link
https://github.com/openhab/openhab-google-assistant/blob/master/README.md
Per attribuire un tag ad un *item* abbiamo due strade:
- se l'item è definito in un file di configurazione allora possiamo semplicemente aggiungere i tag all'interno di [...] nella riga di definizione dell'item;
- se l'item è definito tramite interfaccia web PAPERUI, si devono utilizzare le API REST (vedere https://www.openhab.org/docs/configuration/restdocs.html), in particolare il servizio */items/{itemname}/tags/{tag}*
Ad esempio, ecco l'aggiunta del tag "lighting" allo switch della luce in soggiorno:
<center>

</center>
Terminato l'assegnazione dei diversi tag a tutti gli items interessati, proseguiamo con la configurazione dell'applicazione **Google Home** su smartphone e/o tablet (la stessa utilizzata per il setup iniziale di **Google Home Mini** e **Chromecast**). Quello che bisogna fare è andare ad aggiungere un nuovo dispositivo e ricercare **OpenHAB** dalla lista dei dispositivi compatibli. Verrà richiesto l'aggancio al servizio myOpenHAB utilizzando le credenziali di accesso e la magia è fatta...Vengono riconosciuti tutti gli items precedentemente configurati che ritroveremo nell'app **Google Home**. Non ci rimane che assegnare ad ognuno di essi un nome che utilizzeremo nel comando vocale...ad esempio, nel mio caso ho chiamato la lampada in soggiorno "Lampada Peppina".
<center>

</center>
Basterà dire: ***Hey Google, accendi la lampada Peppina*** e il gioco è fatto!
Ogni dispositivo può essere inserito in una stanza della nostra casa virtuale; in questo modo possiamo accendere più luci in contemporanea semplicemente chiedendo a Google, ad esempio, di accendere le luci in *soggiorno*.
<center>

</center>
Oltre ad inviare dei comandi di accensione / spegnimento delle luci è possibile anche interrogare lo stato di un sensore...ad esempio chiedere la temperatura in una stanza.
Nel mio caso, ho aggiunto il tag "CurrentTemperature" all'item relativo al sensore di temperatura in cucina
<center>

</center>
**Google Home** me lo vede come un termostato ed in questo modo posso farmi dire la temperature corrente.
<center>

</center>
Dulcis in fundo, quando si *taggano* altri item su **OpenHAB**, sarà sufficiente dire a Google ***Hey Google, sincronizza i miei dispositivi** per far apparire i nuovi device in **Google Home**.
Una cosa molto interessante è che il sistema è utilizzabile anche da **Google Assistant** presente sugli smartphone **Android**, anche in remoto, cioè non connessi alla nostra rete locale; l'importante è che si utilizzi lo stesso account google utilizzato per il **Google Home**.
Quindi possiamo accendere le luci con un semplice comando vocale dato allo smartphone mentre stiamo rientrando a casa.
<center>***Tutte le foto, se non diversamente indicato, sono di proprietà dell'autore***</center>👍 bluepeteractin, jadabug, kehuanmi, stmpay, ralph-rennoldson, tony.montana, xrp.trail, bluesniper, raise-me-up, naskaipr12, toplice, vika09, ivan.gotovin, frost013, sutegloss, danceslovak, tamilaisaeva, rebrovivan, nebulabilled, xebeclist, petqrcode, curryvoid, whiskeynovelty, semyuell, bors.hl88, cannedslook, eforucom, curation.trail, alexzicky, nicola71, mondodidave73, steemchoose, moncia90, sciack, mattiarinaldoni, deusjudo, steemterview, heidi71, blitz, mirkon86, noemilunastorta, giacomocasolo, marcuz, curie, martaorabasta, giocondo83, frafiomatale, liberosist, clode, martacantatore, misia1979, andreaminaldo, criptomabilia, pataxis, locikll, jesusj1, wstanley226, kurtein24k, panicolovers, vact, john-gpr, mrliga, herodirock, michelacinque, hendrikdegrote, capitolo23, superfazio, rootsengrave, steempostbuilder, adinapoli, anwenbaumeister, silviu93, marcoriccardi, tamon, pawpawpaw, lymph07, chabertonvideo, gruntu, m4rco, jacksartori, lorenzopistolesi, gabriele-gio, petrolinivideo, hollywwod, tati0808, cryptomarketer, celiachia, aboutyourbiz, cryptokrieg, bubblbubble, paololuffy91, ivand83, skycae, sissyjill, morbyjohn, giolino, adamantino, dashfit, borrellismo, girolamomarotta, lucaboccassi, kevinwong, ilvacca, viperblckz, nitego, imcesca, marielladeg, acquarius30, tombstone, kakaroth, emdesan, ladynightwish2, steam.erotic, moksamol, alinakot, stahlberg, enmaart, kork75, aniellopas, didic, road2horizon, claudiazazu, fboccassi, neumannsalva, drmake, mangoish, komichian, ceciliagiordano, avizor, call-me-howie, niccolini, orontius, giuseppemasala, djluka14, massimoc23, vyaduka, javier.dejuan, lola-carola, voghera, franky4dita, sarizzi, ilovecryptopl, luigiborla, positiveninja, tommasobusiello, marcolino76, wanasoloben, mrnichilista, spaghettiscience, gianmaria, trang, chris4210, lacremo-it, kenadis, koinsquare, thabiggdogg, isakost, blewitt, double-negative, hairgistix, nuthman, sabinaschiavon, ixion89, travisung, robertbira, leonardo11, elohim4, arconite, frankiecur, lube, brunix, marcodobrovich, ginovotino, g-e-m-i-n-i, lycos, luca99, arcange, ciuoto, thesonnyboy, coccodema, giu-marcantuono, vittoriozuccala, lecheile, giornalista, serialfiller, wonderfulitalia, profumodimare, kikka190389, viralweb, marchino88, stevenotto, gianluccio, nfabiola, snakecharmer03, abramjs, ispira, elloco7, tosolini, soniafenoglio, middleearth, altertrader, francymakeup, armandosodano, spiceboyz, edo.quellola, thegreenfox, designeasy, deathrays, cooperfelix, tizswa, mauryis, sarabelardo, sgravaleonte, luna79, pablito, camomilla, ilnegro, charlesx, giulianomlodi, andreaderrico, roch66, turez, lelluzzo, aditili, thegodtrader, mad-runner, fonzie, leandro77, fulviaperillo, anitram, pojo, rosemery, versusvii, phage93, themadicine, suryavoice, nfelix92, giovannicic, elvisxx71, sergioambro, thenightflier, sbarandelli, davide.vasco, green77, ageeksdiary, rutger76, raphaelle, dexpartacus, etn0, stella87s, scriptamanent, mirkojax, drago18121996, frask14, lady-bug, wisher, ecampisi, zaragast, fabiob, peaceandwar, epicdesigns, wackou, drifter1, mammasitta, iansart, momogrow, jiujitsu, combatsports, massivevibration, bennettitalia, benleemusic, eric-boucher, yomismosoy, kafupraise, azarmadr3, aotearoa, lk666, golbang, oghie, ivan-g, woolnami, silkroadgo, nawamy, steempostitalia, lafona-miner, enlil,