Amazon Echo er, etter vår mening, en av de kuleste delene av et smart hjem. Kontrollere lysene dine, persienner og TV med telefonen din er kult, men å kontrollere dem med stemmen din er virkelig fremtiden. Jeg var skeptisk, men ble raskt imponert og sulten etter mer.
Å kunne slå på min TV er kult, men det jeg egentlig ville ha var å kunne kontrollere mitt mediasenter. Jeg ønsket å kunne si "Spill neste episode av venner" og få den til å søke i biblioteket mitt, se hva jeg så sist, og begynn å spille påfølgende episode. Og etter litt leting fant jeg ut at en initiativrik programmør som heter Joe Ipson allerede hadde gjort nettopp det.
Dette tar litt oppsett, og det ser veldig skremmende ut først. Du må opprette en webserver, trykke noen kode fra GitHub, og gjør litt arbeid fra kommandolinjen, men du trenger ikke å være programmerer for å få dette oppe. Ipson har gjort nesten alle de tunge løftene, og du trenger bare å kopiere koden, redigere noen få deler, og laste den opp på riktig sted. Hvis du følger denne veiledningen til brevet, bør du være oppe på et øyeblikk.
MERK: Vi bruker Amazon Web Services for denne opplæringen, siden den er den mest pålitelige. Hvis du er en ny AWS-bruker, sier Ipson at du skal kunne kjøre ferdighetene gratis i omtrent et år, hvoretter du blir belastet mindre enn 20 ¢ per måned. Hvis du vil ha noe virkelig gratis, kan du sette det opp ved å bruke Heroku i stedet, og erstatte trinnene 2, 3 og 4 i denne veiledningen med Heroku-instruksjonene i Ipsons dokumentasjon. Det er imidlertid litt mindre pålitelig, og noen forespørsler kan gå ut når du bruker den. Vi anbefaler AWS hvis du vil ha den beste opplevelsen mulig - det er vel verdt de mildere 20 ¢ per måned.
Trinn ett: Klargjør Kodi Web Server
For at dette skal fungere, må Kodi få en server tilgjengelig fra nettet. Heldigvis er dette bygget inn i Kodi, selv om du kanskje må sende frem noen porter på ruteren din og utføre andre oppgaver før det fungerer jevnt.
Åpne Kodi på mediasenteret ditt og gå til System> Tjenester> Webserver. Aktiver webserveren hvis den ikke allerede er aktivert, og gi den et brukernavn og passord. Pass på at du bruker et passord du ikke bruker til andre tjenester.
Du vil også trenge den offentlige IP-adressen til ditt hjem. Men siden dette kan forandre, anbefaler vi på det sterkeste å registrere deg for et dynamisk domenenavn ved hjelp av en tjeneste som Dynu. Følg vår guide her før du fortsetter hvis du ikke allerede har en.
MERK: Mens Kodis lokale port er som standard 8080, kan du endre den til alt du vil - eller du kan videresende den til en annen ekstern port for å sørge for at det ikke er noen komplikasjoner (siden andre apper kan be om port 8080). Jeg bruker 8080 i denne opplæringen, men hvis du bruker noe annet, bare erstatt alle forekomster av port 8080 med utvendig port du velger her.
my.dynamic-domain.com:8080
where
my.dynamic-domain.com
er nettadressen til det dynamiske domenet ditt, og
8080
er porten du satt i Kodi. Hvis det ikke virker, må du sørge for at Kodi, ditt dynamiske domene og din videresending av portene er satt opp riktig.
Trinn to: Konfigurer din Amazon Web Services-konto
Deretter må du opprette en konto med Amazon Web Services (AWS). Gå til denne siden og klikk "Opprett en AWS-konto". Logg inn med din Amazon-legitimasjon når du blir bedt om det. Hvis du ikke allerede har en AWS-konto, blir du bedt om å angi kontaktinformasjonen din for å opprette en. Pass på å sjekke "Personlig konto" øverst.
Etter å ha bekreftet identiteten din med telefonnummeret ditt, og velg din støtteplan (vi anbefaler Basic, som er gratis), klikker du på "Fullfør oppmelding" -knappen i høyre hjørne av skjermen. Amazon logger deg deretter inn.
Gå nå til siden Identity and Access Management (logg deg tilbake til AWS om nødvendig) og klikk på "Brukere" -fanen på venstre side. Klikk på "Legg til bruker" -knappen.
Trinn tre: Installer Python 2.7 og sett opp variablene dine
For å skape Ipsons kode til AWS, trenger du Python 2.7 installert på datamaskinen. Vi bruker Windows i denne opplæringen, men du bør også kunne gjøre dette på macOS og Linux.
For å installere Python på Windows, gå til Pythons nedlastingsside og last ned Python 2.7. Kjør installasjonsprogrammet som om du ville noe annet Windows-program. Bruk standardvalgene, siden vi trenger noen av verktøyene som følger med Python installasjonsprogram.
Når det er installert, er det på tide å grave inn i kommandolinjen. Trykk på Windows + X på tastaturet og velg "Kommandoprompt". (Mac- og Linux-brukere vil åpne sine respektive Terminal-apper). Derfra kjører du følgende to kommandoer, den ene etter den andre:
C:Python27Scriptspip.exe install awscli
C:Python27Scriptsaws configure
Dette vil installere AWS kommandolinjeverktøy og starte konfigurasjonsverktøyet.
us-east-1
(hvis du er i USA) eller
eu-west-1
(hvis du er i Europa). Du kan la Standard utdataformat være tomt (bare trykk Enter).
C:Python27Scriptspip.exe install virtualenv
Du trenger dette installert for senere.
CD C:UsersWhitsonDocumentsCodekodi-alexa-master
Åpenbart, erstatt filbanen med banen til hvor du lagret mappen kodi-alexa-master.
Først, for at Ipsons kode skal fungere med Kodi og AWS-oppsettet ditt, må du definere noen variabler i en konfigurasjonsfil. Last ned denne malen, omdøpe den til
kodi.config
og lagre den i mappen kodi-alexa-master. Åpne den i et kodevennlig tekstredigeringsprogram som Notepad ++, og rediger følgende fire fire variabler:
address = port = username = password =
De
address
variabel vil være den dynamiske adressen du satt opp i trinn ett (f.eks.
my.dynamic-domain.com
),
port
vil være porten du brukte i trinn ett (sannsynligvis 8080, med mindre du endret det), og
username
og
password
vil være legitimasjonene fra trinn ett.
Hvis du har flere Kodi-bokser i huset ditt, kan du også bruke denne config-filen til å kontrollere dem separat med Alexa. Vi vil ikke gå gjennom det i denne veiledningen, men du finner instruksjoner i Ipsons dokumentasjon her.
Når du er ferdig, lagre filen og gå tilbake til kommandopromptvinduet.
Trinn fire: Trykk koden til AWS
Med disse variablene på plass, er koden din klar for distribusjon. Tilbake i kommandoprompt, kjør disse to kommandoene:
C:Python27Scriptsvirtualenv venv
venvScriptsactivate.bat
Dette vil skape et nytt "virtuelt miljø" og aktivere det.
pip install -r requirements.txt
pip install packaging
pip install zappa
Dette vil installere et verktøy kalt Zappa, som vil hjelpe deg med å distribuere koden din.
zappa init
Det tar deg gjennom en veiviser. Bare godta standardverdiene for alt.
zappa deploy dev
Dette vil distribuere koden til Lambda. Det tar noen minutter, så la det løpe. På slutten vil det gi deg en URL-kopi dette ned, siden du trenger det i neste trinn.
python generate_custom_slots.py
Pass på at Kodi-boksen er slått på og kjører når du kjører dette skriptet, da det vil ta bilder av filmer, programmer og andre medier fra biblioteket ditt.
Du er nesten der! Nå trenger vi bare å sette opp en Alexa-ferdighet for denne koden.
Trinn fem: Lag din Alexa Ferdighet
For å koble Ipsons kode med Echo, må vi opprette en Alexa "Ferdighet" som bruker den koden. Denne appen vil ikke bli distribuert til noen, det vil bare være i "testmodus" for alltid, koblet til din egen Amazon-konto for bruk med ekko.
For å starte, sett opp en gratis Amazon Developer-konto. Gå til denne siden, logg inn med din Amazon-konto, og registrer deg for en utviklerkonto. Fyll ut de nødvendige feltene, godkjenn vilkårene, og si "Nei" når du blir spurt om du skal tjene penger på appene dine.
Etter min erfaring fungerer lange påkallingsnavn bedre enn kortere. Jeg brukte "Kodi" for en stund ("Spør Kodi til …"), men Alexa hadde noen ganger problemer med å finne filmer. Jeg kunne ikke fortelle deg hvorfor, men lengre påkallingsnavn som "stuen" jobber nesten feilfritt for meg. Så prøv å velge noe med noen stavelser.
Klikk på Neste når du er ferdig.
SHOWS
. Gå tilbake til mappen kodi-alexa-master, åpne SHOWS-filen med Notepad ++, og kopier showene i boksen på Amazons side. Dette vil hjelpe Alexa til å gjenkjenne de forestillingene du dikterer for det.
Alternativt kan du bare liste noen av TV-programmene dine i boksen, en per linje. Du trenger ikke å legge til hvert show i Kodi-biblioteket ditt, men det er godt å ha et anstendig antall eksempler (jeg har funnet 20 eller 30 er ganske bra).
Klikk på OK når du er ferdig.
Igjen trenger du ikke hvert eneste show, film eller artist i disse sporene, slik at du ikke trenger å oppdatere dem hver gang du legger til en ny film i biblioteket ditt. Det hjelper bare å få et anstendig antall eksempler i hver.
IntentSchema.json
og
SampleUtterances.txt
filer med en app som Notepad ++.
Velg all teksten i
IntentSchema.json
fil og lim det inn i "Intent Schema" boksen på Amazon Developer nettsted. Gjenta denne prosessen med
SampleUtterances.txt
fil, plasserer teksten i "Sample Utterances" -boksen.
Når du er ferdig, klikker du Neste. Det kan ta litt tid å bygge samhandlingsmodellen.
Fyll ut de obligatoriske feltene på Publiseringsinformasjon-men ikke bekymre deg for mye om hva du legger inn, siden du ikke sender denne appen for sertifisering. Du er den eneste som skal bruke denne appen. (Her er et 108 × 108 ikon og et 512 × 512 ikon for deg å bruke.) Klikk på Neste når du er ferdig.
Trinn seks: Test dine nye kommandoer
Hvis alt gikk bra, bør du kunne teste dine nye kommandoer nå. Pass på at Kodi-boksen er slått på, og prøv å si noe slikt:
“Alexa, ask the living room to play season one, episode one of Friends”
(… erstatter åpenbart det med en episode og viser at du har på maskinen din.) Det kan ta Alexa et øyeblikk, men forhåpentligvis burde hun svare og begynne å spille showet i spørsmålet. Hvis du får en feil og episoden ikke spiller, går du tilbake og sørger for at du gjorde alt riktig.
Du kan spørre Alexa hvis du har noen nye episoder, be henne om å spille neste episode av et show, eller til og med bruke henne til å kontrollere Kodi, så ineffektiv som det kan være ("Alexa, spør stuen til å pause", spør stuen å navigere ned, "etc.). Sjekk ut
SampleUtterances.txt
fil for å se alle de tingene Alexa kan gjøre med denne integrasjonen. Hvis du noen gang vil legge til et nytt uttrykk som tilsvarer en av funksjonene, må du logge deg på din Amazon Developer-konto og legge den til i listen vi limte inn i trinn fire.
Det er ikke den raskeste eller enkleste tingen å sette opp, men når du får det til å virke, er det lett en av de kuleste tingene du kan gjøre med Amazon Echo, etter min mening. Nå kan jeg begynne å se på TV mens jeg lager mat på kjøkkenet, eller når fjernkontrollens batterier er døde. Dette er den typen kraft Amazon Echo ble designet for å ha, og selv om det tar litt arbeid, er det vel verdt det.
Har problemer? Sjekk ut denne tråden på Kodi-forumene, i tillegg til den originale GitHub-siden, eller slipp en linje i våre kommentarer nedenfor.
Tittel bilde fra Doomu / Bigstock og Amazon.