Afstandsbedieningen zijn zo 1950. Als je een Kodi-mediacentrum en een Amazon Echo hebt, kun je al je favoriete films en shows afspelen met een goed geplaatste spraakopdracht ... als je bereid bent een kleine installatie uit te voeren.
De Amazon Echo is naar onze mening een van de coolste delen van een slimme woning . Je verlichting, jaloezieën en tv bedienen met je telefoon is cool, maar ze bedienen met je stem is echt de toekomst. Ik was sceptisch, maar raakte al snel onder de indruk - en verlangde naar meer.
VERWANT: Hoe u uw Amazon Echo instelt en configureert
Het is cool om mijn tv aan te kunnen zetten, maar wat ik echt wilde, was mijn mediacentrum kunnen bedienen. Ik wilde kunnen zeggen "Speel de volgende aflevering van Vrienden af" en het in mijn bibliotheek laten zoeken, zien wat ik het laatst heb bekeken en de volgende aflevering kunnen afspelen. En na wat zoeken vond ik die ene ondernemende programmeur met de naam Joe Ipson heeft al precies dat gedaan .
Dit vergt een beetje installatie en het ziet er in het begin erg intimiderend uit. Je zult een webserver moeten maken, wat code van GitHub moeten pushen en wat werk moeten doen vanaf de opdrachtregel, maar je hoeft geen programmeur te zijn om dit aan de gang te krijgen. Ipson heeft bijna al het zware werk gedaan, en je hoeft alleen maar zijn code te kopiëren, een paar delen te bewerken en deze naar de juiste plaats te uploaden. Als u deze gids letterlijk volgt, zou u binnen de kortste keren aan de slag moeten zijn.
OPMERKING: we gebruiken Amazon Web Services voor deze tutorial, omdat deze de meest betrouwbare is. Als je een nieuwe AWS-gebruiker bent, zegt Ipson dat je de vaardigheid ongeveer een jaar gratis zou moeten kunnen gebruiken, waarna je minder dan 20 ¢ per maand in rekening wordt gebracht. Als u iets echt gratis wilt, kunt u het in plaats daarvan instellen met Heroku, waarbij u stap twee, drie en vier van deze handleiding vervangt door de Heroku-instructies in de documentatie van Ipson . Het is echter iets minder betrouwbaar en bij sommige verzoeken kan een time-out optreden wanneer u het gebruikt. We raden AWS aan als je de best mogelijke ervaring wilt - het is de magere 20 ¢ per maand zeker waard.
Stap één: bereid uw Kodi-webserver voor
Om dit te laten werken, heeft Kodi een server nodig die toegankelijk is vanaf internet. Gelukkig is dit ingebouwd in Kodi, hoewel je misschien enkele poorten op je router moet doorsturen en een aantal andere taken moet uitvoeren voordat het soepel werkt.
Open Kodi in uw mediacentrum en ga naar Systeem> Services> Webserver. Schakel de webserver in als deze nog niet is ingeschakeld, en geef deze een gebruikersnaam en wachtwoord. Zorg ervoor dat u een wachtwoord gebruikt dat u niet voor een andere service gebruikt.
Je hebt ook nodig het openbare IP-adres van uw huis . Omdat dit echter kan veranderen, raden we u ten zeerste aan om u aan te melden voor een dynamische domeinnaam met een service zoals Extract . Volg onze gids hier voordat u verdergaat als u er nog geen heeft.
Ten slotte moet u port forwarding instellen voor uw Kodi-box. Dit verschilt van router tot router, maar dat kan bekijk hier onze gids voor meer informatie. Stuur gewoon een externe poort door naar het lokale IP-adres van uw Kodi-box (in mijn geval 192.168.1.12) en lokale poort (standaard 8080).
OPMERKING: hoewel de lokale poort van Kodi standaard 8080 is, kunt u deze wijzigen in wat u maar wilt - of u kunt deze doorsturen naar een andere externe poort om er zeker van te zijn dat er geen complicaties zijn (aangezien andere apps mogelijk om poort 8080 vragen). Ik gebruik 8080 in deze tutorial, maar als je iets anders gebruikt, vervang dan alle instanties van poort 8080 door de extern poort die u hier kiest.
Als alles goed gaat, zou je toegang moeten hebben tot de webinterface van Kodi door een webbrowser te openen en het volgende te typen:
my.dynamic-domain.com:8080
waar
my.dynamic-domain.com
is de URL van uw dynamische domein, en
8080
is de poort die u in Kodi instelt. Als dat niet werkt, zorg er dan voor dat Kodi, uw dynamische domein en uw port forwarding allemaal correct zijn ingesteld.
VERWANT: Hoe u overal gemakkelijk toegang krijgt tot uw thuisnetwerk met dynamische DNS
Stap twee: stel uw Amazon Web Services-account in
Vervolgens moet u een account aanmaken bij Amazon Web Services (AWS). Ga naar deze pagina en klik op “Maak een AWS-account”. Log in met uw Amazon-inloggegevens wanneer daarom wordt gevraagd. Als u nog geen AWS-account heeft, wordt u gevraagd uw contactgegevens in te voeren om er een te maken. Zorg ervoor dat u bovenaan "Persoonlijk account" aanvinkt.
Doorloop de rest van de stappen in de wizard. U moet ook uw creditcardgegevens invoeren, maar maakt u zich geen zorgen - zoals we al zeiden, er zou niet of nauwelijks in rekening moeten worden gebracht (vooral niet in de eerste 12 maanden).
Nadat u uw identiteit met uw telefoonnummer heeft geverifieerd en uw ondersteuningsplan heeft geselecteerd (wij raden Basic aan, dat gratis is), klikt u op de knop "Registratie voltooien" in de rechterhoek van het scherm. Amazon zal je dan inloggen.
Ga nu naar de Identiteits- en toegangsbeheerpagina (log indien nodig opnieuw in op AWS) en klik op het tabblad "Gebruikers" aan de linkerkant. Klik op de knop "Gebruiker toevoegen".
Maak een nieuwe gebruiker aan met elke gewenste gebruikersnaam. Vink het vakje "Programmatic Access" aan en klik op "Next: Permissions".
Vervolgens wordt u gevraagd om rechten in te stellen. Klik op "Bestaande beleidsregels rechtstreeks bijvoegen" en zoek vervolgens naar "AdministratorAccess". Vink de optie AdministratorAccess aan en klik op “Next: Review”.
Zorg ervoor dat uw gebruiker eruitziet als de onderstaande afbeelding en klik vervolgens op "Gebruiker aanmaken".
Sluit de volgende pagina niet! U moet hier de toegangssleutel-ID en geheime toegangssleutel pakken (u moet op 'Weergeven' klikken om uw geheime sleutel te tonen). Kopieer ze naar een tekstbestand om ze veilig te bewaren, omdat u de geheime sleutel niet opnieuw kunt ophalen nadat u deze pagina verlaat.
Als je die eenmaal hebt opgeschreven, kun je dat venster veilig sluiten.
Stap drie: Installeer Python 2.7 en stel uw variabelen in
Om de code van Ipson naar AWS te pushen, moet Python 2.7 op uw computer zijn geïnstalleerd. We zullen Windows gebruiken in deze tutorial, maar je zou dit ook op macOS en Linux moeten kunnen doen.
Om Python op Windows te installeren, ga naar de downloadpagina van Python en download Python 2.7. Voer het installatieprogramma uit zoals elk ander Windows-programma. Gebruik de standaardselecties, aangezien we een aantal tools nodig hebben die bij het installatieprogramma van Python worden geleverd.
Vervolgens, Klik hier om Ipson's code te downloaden. Pak de map kodi-alexa-master uit in het ZIP-bestand ergens op uw harde schijf.
Na installatie is het tijd om in de opdrachtregel te graven. Druk op Windows + X op uw toetsenbord en kies "Command Prompt". (Mac- en Linux-gebruikers zullen hun respectieve Terminal-apps willen openen). Voer vanaf daar de volgende twee opdrachten na elkaar uit:
C: \ Python27 \ Scripts \ pip.exe installeer awscli
C: \ Python27 \ Scripts \ aws configureren
Hiermee worden de AWS-opdrachtregelprogramma's geïnstalleerd en wordt de configuratietool gestart.
Plak uw toegangssleutel-ID en geheime toegangssleutel wanneer daarom wordt gevraagd. Typ wanneer u wordt gevraagd om uw standaardregionaam
us-east-1
(als u zich in de VS bevindt) of
eu-west-1
(als u zich in Europa bevindt). U kunt uw standaard uitvoerformaat leeg laten (druk gewoon op Enter).
Voer vervolgens de volgende opdracht uit:
C: \ Python27 \ Scripts \ pip.exe installeer virtualenv
U heeft dit later nodig.
CD nu naar je kodi-alexa-master-map met het volgende commando:
CD C: \ Users \ Whitson \ Documents \ Code \ kodi-alexa-master
Vervang uiteraard het bestandspad door het pad naar de locatie waar u uw kodi-alexa-master-map hebt opgeslagen.
Houd het raam voorlopig open, we zullen er straks op terug moeten komen.
Om de Ipson-code te laten werken met uw Kodi- en AWS-configuratie, moet u eerst een paar variabelen in een configuratiebestand definiëren. Downloaden
deze sjabloon
, hernoem het naar
kodi.config
, en sla het op in je map kodi-alexa-master. Open het in een codevriendelijke teksteditor zoals
Kladblok ++
en bewerk de volgende vier variabelen:
adres = poort = gebruikersnaam = wachtwoord =
De
adres
variabele zal het dynamische adres zijn dat u in stap één heeft ingesteld (bijv.
my.dynamic-domain.com
),
haven
zal de poort zijn die u in stap één hebt gebruikt (waarschijnlijk 8080, tenzij u deze hebt gewijzigd), en
gebruikersnaam
en
wachtwoord
zullen de inloggegevens zijn van stap één.
Als je meerdere Kodi-boxen in huis hebt, kun je dit configuratiebestand ook gebruiken om ze afzonderlijk aan te sturen met Alexa. We zullen dat in deze handleiding niet bespreken, maar u kunt instructies vinden in Ipsons documentatie hier .
Als u klaar bent, slaat u het bestand op en gaat u terug naar uw opdrachtpromptvenster.
Stap vier: push uw code naar AWS
Met deze variabelen is uw code klaar voor implementatie. Voer in je opdrachtprompt deze twee opdrachten uit:
C: \ Python27 \ Scripts \ virtualenv venv
venv \ Scripts \ active.bat
Dit zal een nieuwe "virtuele omgeving" creëren en deze activeren.
Voer de volgende opdrachten uit vanaf de venv-prompt die verschijnt:
pip install -r requirements.txt
pip install verpakking
pip installeer zappa
Hiermee wordt een tool genaamd Zappa geïnstalleerd, waarmee je je code kunt implementeren.
Vervolgens moet u Zappa instellen. Rennen:
zappa init
Het leidt je door een tovenaar. Accepteer gewoon de standaardinstellingen voor alles.
Voer ten slotte uit:
zappa implementeren dev
Hiermee wordt uw code naar Lambda geïmplementeerd. Het duurt een paar minuten, dus laat het draaien. Aan het einde krijgt u een URL. Kopieer deze naar beneden, want u heeft deze nodig bij de volgende stap.
Ten slotte raad ik ook aan om de volgende opdracht uit te voeren, aangezien je de resulterende bestanden ook in de volgende stap nodig hebt:
python generation_custom_slots.py
Zorg ervoor dat uw Kodi-box is ingeschakeld en actief is wanneer u dit script uitvoert, omdat het namen van films, shows en andere media uit uw bibliotheek haalt.
Je bent er bijna! Nu hoeven we alleen maar een Alexa-vaardigheid in te stellen voor deze code.
Stap vijf: creëer je Alexa-vaardigheid
Om de code van Ipson te verbinden met onze echo, moeten we een Alexa-vaardigheid maken die die code gebruikt. Deze app zal aan niemand worden gedistribueerd, hij blijft voor altijd in de 'testmodus', verbonden met je eigen Amazon-account voor gebruik met je Echo.
Maak om te beginnen een gratis Amazon Developer-account. Ga naar deze pagina , log in met je Amazon-account en registreer je voor een ontwikkelaarsaccount. Vul de verplichte velden in, ga akkoord met de voorwaarden en zeg "Nee" wanneer u wordt gevraagd of u inkomsten wilt genereren met uw apps.
Eenmaal ingelogd, ga naar "Alexa" in de bovenste werkbalk. Klik op de knop "Aan de slag" onder "Alexa Skills Kit".
Klik vervolgens op de knop "Een nieuwe vaardigheid toevoegen".
Geef je vaardigheid een naam - ik noemde de mijne "Kodi" - en geef het een aanroepnaam. Dit is wat je zegt als je een commando wilt aanroepen. Mijn aanroepnaam is bijvoorbeeld ook 'de woonkamer', wat betekent dat ik 'Vraag de woonkamer om ...' moet zeggen om Alexa-opdrachten te geven voor mijn mediacentrum.
In mijn ervaring werken lange aanroepnamen beter dan kortere. Ik heb "Kodi" een tijdje gebruikt ("Vraag Kodi om ...") maar Alexa had af en toe problemen met het vinden van films. Ik kon je niet vertellen waarom, maar langere aanroepnamen zoals 'de woonkamer' werken bijna perfect voor mij. Dus probeer iets te kiezen met een paar lettergrepen.
Klik op Volgende als u klaar bent.
Klik op de knop "Add Slot Type" in het midden van het volgende venster.
Maak een nieuw slot met de naam
SHOWS
. Ga terug naar je kodi-alexa-master-map, open het SHOWS-bestand met Notepad ++ en kopieer de shows naar het vak op de Amazon-pagina. Dit zal Alexa helpen de shows te herkennen die je eraan dicteert.
U kunt ook enkele van uw tv-programma's in het vak vermelden, één per regel. Je hoeft niet elke show in je Kodi-bibliotheek toe te voegen, maar het is goed om een behoorlijk aantal voorbeelden te hebben (ik heb ontdekt dat 20 of 30 best goed is).
Klik op OK als u klaar bent.
Herhaal dit proces met deze gokautomaattypen: FILMS, FILMS, MUSICARTISTS, MUSICALBUMS, MUSICSONGS, MUSICPLAYLISTS, VIDEOPLAYLISTS en ADDONS (als je geen informatie hebt voor een van deze, maak dan toch het gokautomaattype aan - de code van Ipson vereist dit - en schrijf het woord 'leeg' in het vak. Het veroorzaakt geen problemen.)
Nogmaals, je hebt niet elke show, film of artiest in deze slots nodig, dus je hoeft ze niet elke keer bij te werken als je een nieuwe film aan je bibliotheek toevoegt. Het helpt gewoon om in elk een behoorlijk aantal voorbeelden te hebben.
Als je alle negen soorten slots hebt gemaakt, ga je terug naar de map kodi-alexa-master. Open de map speech_assets en open het
IntentSchema.json
en
SampleUtterances.txt
bestanden met een app zoals
Kladblok ++
.
Selecteer alle tekst in het
IntentSchema.json
bestand en plak het in het vak "Intent Schema" op de Amazon Developer-website. Herhaal dit proces met de
SampleUtterances.txt
bestand, door de tekst in het vak "Sample Utterances" te plaatsen.
Als u klaar bent, klikt u op Volgende. Het bouwen van het interactiemodel kan even duren.
Kies op de volgende pagina "HTTPS" voor het eindpunttype en plak de URL die je aan het einde van stap vier hebt gekregen. Kies uw geografische regio (Noord-Amerika of Europa) en selecteer "Nee" voor Accountkoppeling. Klik volgende.
Selecteer op de volgende pagina "Mijn ontwikkelingseindpunt is een subdomein van een domein met een jokertekencertificaat van een certificeringsinstantie". Klik volgende.
U hoeft geen informatie op de testpagina toe te voegen, maar u kunt bepaalde aspecten van de code testen als u weet wat u doet. Klik anders op Volgende.
Vul op de pagina Publicatiegegevens de verplichte velden in, maar maak u niet al te veel zorgen over wat u invoert, aangezien u deze app niet voor certificering indient. U bent de enige die deze app gaat gebruiken. ( Hier is een 108 × 108-pictogram en een 512 × 512-pictogram die u kunt gebruiken.) Klik op Volgende als u klaar bent.
Kies op de laatste pagina "Nee" voor beide privacyvragen en vink het vakje Compliance aan. Klik op de knop "Opslaan" als u klaar bent. Klik NIET op de knop "Verzenden voor certificering".
Stap zes: test uw nieuwe opdrachten
Als alles goed is gegaan, zou je nu je nieuwe commando's moeten kunnen testen. Zorg ervoor dat je Kodi-box is ingeschakeld en probeer iets te zeggen als:
"Alexa, vraag de woonkamer om seizoen één, aflevering één van Friends te spelen"
(… Uiteraard vervangen door een aflevering en show die je op je computer hebt.) Het kan Alexa even duren, maar hopelijk zou ze moeten reageren en de betreffende show moeten gaan spelen. Als je een foutmelding krijgt en de aflevering wordt niet afgespeeld, ga dan terug en controleer of je alles goed hebt gedaan.
Je kunt Alexa vragen of je nieuwe afleveringen hebt, haar vragen de volgende aflevering van een programma af te spelen, of haar zelfs gebruiken om Kodi te besturen, hoe inefficiënt het ook is ("Alexa, vraag de woonkamer om te pauzeren", "Alexa , vraag de woonkamer om naar beneden te navigeren ”, enz.). Bekijk de
SampleUtterances.txt
bestand om te zien wat Alexa allemaal kan doen met deze integratie. Als je ooit een nieuwe zin wilt toevoegen die overeenkomt met een van die functies, log dan gewoon weer in op je Amazon Developer-account en voeg deze toe aan de lijst die we in stap vier hebben geplakt.
Het is niet het snelste of gemakkelijkste om in te stellen, maar als je het eenmaal aan het werk hebt, is het naar mijn mening gemakkelijk een van de coolste dingen die je kunt doen met je Amazon Echo. Nu kan ik tv gaan kijken tijdens het koken in de keuken of als de batterijen van mijn afstandsbediening leeg zijn. Dit is het soort kracht waarvoor Amazon Echo is ontworpen, en hoewel het wat werk kost, is het de moeite waard.
Problemen hebben? Uitchecken deze thread op de Kodi-forums , net zoals de originele GitHub-pagina , of laat een bericht achter in onze opmerkingen hieronder.
Titelafbeelding van doomu / Bigstock en Amazon.