Skip to content

Google Assistant

JFtechOfficial edited this page Jun 20, 2019 · 12 revisions

Il supporto a Google Assistant permette di interagire con l'assistente vocale per mandare comandi a Hyperion (es. "Ok Google, effetto Snake")

Adafruit IO

Per prima cosa è necessario creare un account su https://io.adafruit.com/. Questo sito permette di creare un broker MQTT online che verrà usato per lo scambio di messaggi tra Google Assistant e il Raspberry Pi, senza dover aprire porte del proprio router. A questo punto è necessario creare 3 nuovi feeds:

  • un feed per lo scambio di messaggi riguardanti gli effetti da applicare
  • un feed per lo scambio di messaggi riguardanti il colore da applicare
  • un feed per lo scambio di messaggi di diversa natura (rimuovere effetti/colori precedentemente applicati, attivare/disattivare la modalità caminetto, azioni personalizzate)

Successivamente da https://io.adafruit.com/ saranno necessari:

  • nome assegnato a ciascun feed
  • username e AIO key (visualizzabili clickando su "View AIO key")

IFTTT

è necessario anche un account su https://ifttt.com. IFTTT verrà utilizzato come interfaccia tra Google Assistant e Adafruit IO in qualità di publisher. Una volta collegato IFTTT ai due suddetti servizi, questi sono gli applets necessari:

screenshot IFTTT - JF tech applets

Yandex

Se si usa la lingua inglese per comunicare con l'Assistente Google OPPURE non si desidera applicare colori tramite l'Assistente vocale è possibile saltare questo passaggio. Altrimenti per poter applicare un colore bisogna tradurre il nome del colore dalla lingua di partenza all'inglese. Per fare ciò è necessaria una API key da https://translate.yandex.com/developers/keys

client.json

L'ultimo passo consiste nel configurare il client subscriber che dovrà comandare Hyperion. Questa procedura può essere eseguita scrivendo sul file client.json:

  • hyperion_server
"hyperion_server":
          {
              "ip_address": "Insert.Ip.Address.Here",
              "port": 19444
          },

Informazioni relative a Hyperion: l'indirizzo IP del dispositivo su cui è in esecuzione Hyperion ("127.0.0.1" se è lo stesso dispositivo che fa girare questo script) e la porta (19444 di default).

  • mqtt_broker
"mqtt_broker":
          {
              "url": "mqtts://io.adafruit.com",
              "port": 8883,
              "username": "InsertYourUsernameHere",
              "key": "InsertYourKeyHere",
              "topics":
              {
                  "effect_topic": "InsertTopicNameHere",
                  "color_topic": "InsertTopicNameHere",
                  "other_topic": "InsertTopicNameHere"
              }
          },

Informazioni relative al broker MQTT: username, AIO key e nomi dei feed salvati precedentemente.

  • translation
"translation":
          {
              "engine": "yandex",
              "API_key": "InsertYourKeyHere",
              "from_language": "it"
          },

Informazioni relative al motore di traduzione: API key e lingua di partenza (se non si inserisce alcun valore verrà scelta la lingua di sistema). Se si usa la lingua inglese non è necessario riempire il campo API_key, ma è comunque consigliato specificare il valore di from_language con la lingua "en"

  • kodi_server
"kodi_server":
          {
            "ip_address": "Insert.Ip.Address.Here",
            "port": 80,
            "video_uri": "InsertLink/PathHere"
          }

Informazioni relative al server Kodi: l'indirizzo IP del dispositivo su cui è in esecuzione Kodi ("127.0.0.1" se è lo stesso dispositivo che fa girare questo script), il percorso locale o il link da internet del video che vuoi riprodurre nella modalità caminetto (supportati: YouTube, Dropbox, Flickr, GoogleDrive, Reddit, Twitch:video, Vimeo, VK e molti altri)

  • custom actions
"custom_actions":
          [
          {
            "message": "ON",
            "target": [255, 255, 255]
          }
          ]

Informazioni relative alle azioni personalizzate che viaggiano sul feed per i messaggi di diversa natura: messaggio da ricevere e cosa lanciare quando esso viene ricevuto (è possibile assegnare un effetto, un colore, "clear" oppure null). Puoi aggiungere quante azioni personalizzate vuoi semplicemente aggiungendo, come primo elemento dopo "custom_actions": [ il seguente codice:

          {
            "message": "*il_tuo_messaggio*",
            "target": "effetto"/colore/"clear"/null
          },

▶️ Pulsanti

▶️ Android come telecomando

▶️ Addon Kodi

▶️ Ventola

Clone this wiki locally