{"id":369,"date":"2018-11-20T14:51:04","date_gmt":"2018-11-20T13:51:04","guid":{"rendered":"https:\/\/www.clodo.it\/blog\/?p=369"},"modified":"2024-04-09T16:00:27","modified_gmt":"2024-04-09T15:00:27","slug":"primo-impatto-con-alexa-amazon-echo","status":"publish","type":"post","link":"https:\/\/www.clodo.it\/blog\/primo-impatto-con-alexa-amazon-echo\/","title":{"rendered":"Primo impatto con Alexa \/ Amazon Echo"},"content":{"rendered":"<p>Ho recentemente testato Amazon Echo \/ Alexa (in particolare un Echo Plus e un Echo Spot) per la mia domotica (una domotica che nel mio piccolo considero &#8216;seria&#8217;, non semplicemente du&#8217; device IoT tipo le luci Ikea o Hue).<\/p>\n<p>In linea generale, \u00e8 un ottimo prodotto. Mi sto attrezzando per piazzare diversi Echo in giro per casa per un&#8217;ampia copertura, per cui ho gradito cos\u00ec tanto il prodotto che NON indagher\u00f2 se la soluzione Google \u00e8 meglio o peggio. Feedback molto graditi comunque.<\/p>\n<h2>E&#8217; un&#8217;intelligenza artificiale?<\/h2>\n<p>No. Qualsiasi frase fuori dai suoi pattern-matching non funziona.<\/p>\n<blockquote><p>>Alexa, sei meglio di Cortana?<br \/>\n>Mi piacciono tutte le intelligenze artificiali.<\/p><\/blockquote>\n<blockquote><p>>Alexa, sei un&#8217;intelligenza artificiale?<br \/>\n>Purtroppo non trovo la risposta alla domanda.<\/p><\/blockquote>\n<blockquote><p>>Alexa, quanto fa 2+2?<br \/>\n>2 pi\u00f9 2 uguale 4<\/p><\/blockquote>\n<blockquote><p>>Alexa, quanto fa 5-20%?<br \/>\n>Il risultato del calcolo \u00e8 -1.995.<\/p><\/blockquote>\n<p>(sia Wolfram Alpha che -bada bene- Windows Calc.exe rispondono 4.)<\/p>\n<h2>E&#8217; un sistema di controllo per domotica?<\/h2>\n<p>Attualmente no.<br \/>\nForse pu\u00f2 essere considerato un sistema minimo in tal senso. Meglio considerarlo un&#8217;estensione, un helper di un sistema terze-parti di domotica.<\/p>\n<p>Pare limitato e pensato per chi ha un numero di device che si contano con le dita, pochissime tipologie, pochissime feature supportate.<br \/>\nA spanne pare pi\u00f9 una scelta di target che un peccato di giovent\u00f9.<br \/>\nNel mio caso specifico ho oltre 70 devices listati nell&#8217;app Alexa: li elenca in ordine alfabetico, senza alcuna organizzazione tipica di altri sistemi di domotica (stanze, aree etc).<br \/>\nUsabilit\u00e0 UI scarsissima. Per dire, per rimuoverle tutte durante le prove, ho dovuto cliccarle una ad una, oltre a crash vari.<\/p>\n<p>A titolo di esempio, la gestione termostato: accetta un<\/p>\n<blockquote><p>>Alexa, imposta termostato a 20<\/p><\/blockquote>\n<p>oppure<\/p>\n<blockquote><p>>Alexa, alza la temperature di 3 gradi<\/p><\/blockquote>\n<p>e qualcosa su modalit\u00e0 e scheduling. Nient&#8217;altro.<\/p>\n<p>Non mi risulta sia preso in considerazione abitazioni con pi\u00f9 termostati (per dire uno per piano), figuriamoci la gestione di temperature diverse a livello di singola stanza (generalmente gestiti con valvole di regolazione radiatori termici, a livello di calorifero o a livello di collettori nei riscaldamenti a pavimento). Roba che una qualsiasi centrale z-wave (da Fibaro a domoticz su Raspberry) gestisce facilmente.<\/p>\n<p>Se avete un termostato di quelli supportati, fatemi sapere nei commenti o su Twitter se esiste un modo per chiedere la temperatura impostata o chiedere la temperatura rilevata, che non sia un&#8217;invocation a skill esterne.<br \/>\nUn<\/p>\n<blockquote><p>>Alexa, chiedi a Nest la temperatura impostata&#8221;<\/p><\/blockquote>\n<p>pu\u00f2 essere accettabile, ma significa che Alexa non lo supporta di suo (come feature Smart Home).<\/p>\n<h2>E&#8217; vera domotica? Funziona senza internet?<\/h2>\n<p>No. Il che a mio avviso lo rende totalmente e perennemente NON catalogabile come &#8220;sistema di gestione domotica&#8221;.<br \/>\nNessun altro sistema di domotica closed (Fibaro per dire) o open (Konnex, Domoticz, OpenHab per dire) richiede internet per forza, funzionano ovviamente in lan.<br \/>\nDi fatto, \u00e8 un helper, un gateway, niente di pi\u00f9.<\/p>\n<p>Oltre al suo funzionamento di base, che richiede un riconoscimento vocale lato cloud, anche tutte le Skill per estenderlo sono necessariamente cloud-based.<br \/>\nSe avete un device IoT o generalmente un hardware comandabile in casa (per dire, una caldaia via seriale o modbus) dovete sperare che il produttore supporti Alexa (via cloud per forza) o implementarlo voi (in bocca al lupo).<\/p>\n<p>Per me \u00e8 inconcepibile che un sistema di domotica che deve funzionare IN CASA MIA debba dipendere da qualcosa ESTERNO A CASA MIA.<br \/>\nCi si ritrova a dover avere un sistema di backup per forza (immaginate il dover aprire un cancello in mancanza di connessione internet).<\/p>\n<p>Per capirci, neanche una lampadina Philips Hue o Ikea che controlla una lampadina dentro una plafoniera \u00e8 domotica vera: se non si pu\u00f2 riaccendere via app dopo aver premuto il pulsante a parete, trattasi di giocattolo, non domotica. Imho.<\/p>\n<h2>Personalizzazioni, adattamento a sistemi di domotica custom<\/h2>\n<p>Racconto la mia necessit\u00e0.<br \/>\nCome gi\u00e0 raccontato <a href='https:\/\/www.clodo.it\/blog\/domotica-diy-personale\/'>qui<\/a>, ho un sistema custom, realizzato personale per hobby solo per casa mia, principalmente basato su uno <a href='https:\/\/it.wikipedia.org\/wiki\/KNX_(standard)'>standard hardware open chiamato Konnex<\/a>, che -incredibilmente- Alexa non supporta di suo (ed \u00e8 lo standard per eccellenza di domotica, <a href='https:\/\/www.knx.org\/knx-en\/for-manufacturers\/members\/index.php'>supportato dalla maggior parte dei produttori di componentistica elettrica<\/a>).<\/p>\n<p>Per cui l&#8217;integrazione tra Alexa e il mio sistema di domotica \u00e8 necessariamente (o banalmente&#8230;) che Alexa sia un&#8217;interfaccia per richieste REST\/API via http a un mio Raspberry locale che gestisce a sua volta tutto (compreso Konnex).<\/p>\n<p>Ci sono fondamentalmente due approcci (distinti): una <b>Custom Skill<\/b> o una <b>Smart Home Skill<\/b>.<\/p>\n<ul>\n<li>Una <strong>Custom Skill<\/strong> permette potenzialmente qualsiasi interazione, ma necessita di essere invocata esplicitamente per nome.<\/li>\n<li>Una <strong>Smart Home Skill<\/strong> permette di controllare devices (solo quelli previsti, da elencare preventivamente) senza invocazione, ma supporta pochissimi comandi.<\/li>\n<\/ul>\n<p>Per farvi un&#8217;idea, <a href='https:\/\/manuals.fibaro.com\/knowledge-base-browse\/fibaro-skills-in-amazon-alexa\/'>Fibaro li supporta entrambi<\/a>, per cui ha dovuto creare due skill distinte, la Smart Home per i comandi base e la Custom per tutti gli altri comandi.<\/p>\n<h3>La mia Custom Skill<\/h3>\n<div class=\"rightbox\"><video width=\"320\" height=\"240\" controls><source src=\"https:\/\/www.clodo.it\/files\/varie\/alexa-raspberry.mp4\" type=\"video\/mp4\"><\/source><\/video><br \/>\nOutput di linux &#8220;uptime&#8221; via Custom Skill, &#8220;Raspberry&#8221; come invocation\n<\/div>\n<p>Una Custom Skill significa dare un nome alla propria skill (nel mio caso Memole) e invocarla.<br \/>\nL&#8217;ho chiamata &#8220;Memole&#8221; per rendere la gestione della mia domotica user-friendly, famiglia-compatibile. Ho seriamente pensato di mettere un pupazzetto di Memole sopra ogni Alexa, per dargli un senso.<br \/>\nD&#8217;altro canto, che alternative mi permettono? &#8220;Raspberry&#8221;, &#8220;Casa&#8221; sarebbero nomi peggiori come invocation (<em>Chiedi a Casa la temperatura?<\/em> &#8230; mad\u00f2).<br \/>\nQuindi:<\/p>\n<blockquote><p>> Alexa, chiedi a Memole la temperatura in cucina<\/p><\/blockquote>\n<p>significa implementare in Alexa Developer Console una <i>skill<\/i> <b>Memole<\/b>, un <i>intent<\/i> <b>MyGetTemperature<\/b>, e infine il match di un <i>utterance<\/i>, una frase che Alexa pu\u00f2 riconoscere, tipo<\/p>\n<blockquote><p>> Alexa, chiedi a <b>{skill-name}<\/b> la temperatura in <b>{parametro}<\/b><\/p><\/blockquote>\n<p>Cos\u00ec posso ottenere che mi chiama un url del mio Raspberry passandomi l&#8217;intent <b>GetTemperature<\/b> e <b>parametro=cucina<\/b><br \/>\nQuesto per OGNI pattern che voglio gestire.<\/p>\n<ul>\n<li>Non c&#8217;\u00e8 verso che l&#8217;url sia lan. Deve essere raggiungibile da AWS. Deve essere sotto HTTPS valido, e -incredibile ma vero- LetsEncrypt non \u00e8 accettato.   Nel mio caso, ho configurato un reverse-proxy dal mio dominio al mio raspberry di casa.<\/li>\n<li>Non c&#8217;\u00e8 verso di ricevere la frase intera chiesta ad Alexa.   Di pi\u00f9, i parametri devono essere dei tipi specifici.   Pare che supportavano un generico AMAZON.Literal a m\u00f2 di stringa, per permettere un<br \/>\n<blockquote><p>> Alexa, chiedi a Memole {stringa Amazon.Literal} <\/p><\/blockquote>\n<p>in modo da smazzarmi raspberry-side richieste generiche, ma \u00e8 stato deprecato, perch\u00e8 Amazon pretende che le varie utterance siano il pi\u00f9 possibile esplicite nel loro cloud.\n<\/li>\n<\/ul>\n<h3>La mia Smart Home Skill<\/h3>\n<p>Lo scopo \u00e8 poter dire ad Alexa<\/p>\n<blockquote><p>Alexa, accendi luce cucina<\/p><\/blockquote>\n<p>il che significa che, come minimo:<\/p>\n<ul>\n<li>Alexa dovr\u00e0 chiamare un url sul mio raspberry per l&#8217;accensione<\/li>\n<li>Alexa dovr\u00e0 chiamare un url per sapere lo stato attuale<\/li>\n<\/ul>\n<p>Gli step sono i seguenti:<\/p>\n<ul>\n<li>Creare una skill <b>Smart Home<\/b> su Alexa Console<\/li>\n<li>Creare una funzione lambda su AWS<\/li>\n<li>Collegare la skill Alexa con la funzione lambda su AWS (e tutta la configurazione di autorizzazioni, oauth2, AWS role etc&#8230;)<\/li>\n<li>Attivare la skill sul mio Alexa<\/li>\n<\/ul>\n<p>A questo punto, parte una procedura chiamata <i>Discovery<\/i>: La funzione lambda chiama il mio raspberry per avere un elenco di devices, in modo che Alexa sappia quali <i>capabilities<\/i> supporta e come invocarle. L&#8217;elenco \u00e8 <a href='https:\/\/developer.amazon.com\/it\/docs\/device-apis\/list-of-interfaces.html'>qui<\/a>.<\/p>\n<p>Non mi dilungo per ora sull&#8217;implementazione della funzione lambda, mi limito a qualche perplessit\u00e0:<\/p>\n<ul>\n<li>Tutti i device generalmente on\/off (luci o prese comandate) \u00e8 solo questione di manovalanza.\n<\/li>\n<li>Idem le luci dimmerabili o RGB, anche se non le ho ancora affrontate.<\/li>\n<li>Ad oggi non ho ancora capito qual&#8217;\u00e8 il <i>Controller<\/i> raccomandato\/equivalente a un semplicissimo e banale <i>click<\/i>. Per dire, il <a href='https:\/\/www.fibaro.com\/en\/products\/the-button\/'>The Button Fibaro<\/a>.<br \/>\nAd esempio, il mio cancello elettrico, posso solo dargli un impulso &#8220;Apriti&#8221;, ma non \u00e8 uno switch on\/off e non posso saperne lo stato, e ad oggi non ho idea di come gestirlo con Alexa.\n<\/li>\n<li>Non ho ancora capito come gestire motori. Di solito nella domotica generale han funzioni &#8220;avvia\/ferma\/direzione(apertura\/chiusura)&#8221;. Forse devo usare un <i>LockController<\/i>, ma non ci sono ancora riuscito.<br \/>\nAd esempio, per un vasistas una funzione base \u00e8 avviare l&#8217;apertura, e potergli dire &#8216;stop&#8217; al momento giusto. Discorso simile basculanti garage.\n<\/li>\n<\/ul>\n<p>Bon, per ora mi fermo qui, se avr\u00f2 feedback magari estender\u00f2 qualche spiegazione.<\/p>\n<p>Ciao!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ho recentemente testato Amazon Echo \/ Alexa (in particolare un Echo Plus e un Echo Spot) per la mia domotica (una domotica che nel mio piccolo considero &#8216;seria&#8217;, non semplicemente du&#8217; device IoT tipo le luci Ikea o Hue). In linea generale, \u00e8 un ottimo prodotto. Mi sto attrezzando per piazzare diversi Echo in giro &hellip; <a href=\"https:\/\/www.clodo.it\/blog\/primo-impatto-con-alexa-amazon-echo\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Primo impatto con Alexa \/ Amazon Echo<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,5],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Clodo","author_link":"https:\/\/www.clodo.it\/blog\/author\/clodo\/"},"uagb_comment_info":3,"uagb_excerpt":"Ho recentemente testato Amazon Echo \/ Alexa (in particolare un Echo Plus e un Echo Spot) per la mia domotica (una domotica che nel mio piccolo considero &#8216;seria&#8217;, non semplicemente du&#8217; device IoT tipo le luci Ikea o Hue). In linea generale, \u00e8 un ottimo prodotto. Mi sto attrezzando per piazzare diversi Echo in giro&hellip;","_links":{"self":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts\/369"}],"collection":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/comments?post=369"}],"version-history":[{"count":25,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts\/369\/revisions"}],"predecessor-version":[{"id":394,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts\/369\/revisions\/394"}],"wp:attachment":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/media?parent=369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/categories?post=369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/tags?post=369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}