Wie konfiguriere ich Alexa für den Zugriff auf eine REST-API?

20

Ich habe mehrere Lichter an Relais angeschlossen, die an einen Wiolink angeschlossen sind

Ich kann die Lichter über die REST-API ein- und ausschalten, wie folgt:

curl https://us.wio.seeed.io/v1/node/GroveRelayD0/onoff/[onoff]?access_token=xxxxx

Wie kann ich über Alexa mit einem Echo Dot auf diese REST-API zugreifen?

Spuder
quelle

Antworten:

14

Siehe diese Anweisungen .

Erstellen Sie ein AWS-Entwicklerkonto und ein AWS-Konto.

In der AWS-Konsole

  • Erstellen Sie eine Lambda-Funktion. Fügen Sie in die Lambda-Funktion Code ein, der auf die API zugreift. Dies kann entweder Python oder Java oder node.js sein.

Hier ist ein Python-Skript. Ändern Sie modify_state, um entweder 1 oder 0 zu sein

import urllib2

def modify_state( port, state, token):
    url = 'https://us.wio.seeed.io/v1/node/%s/onoff/%s?access_token=%s' % (port, state, token)
    req = urllib2.Request(url,'')
    response = urllib2.urlopen(req)

def lambda_handler(event, context):
    modify_state('GroveRelayD0', <STATE:0:1>, '<APIKEY')
    # TODO implement
    return {
        'version': '1.0',
        'sessionAttributes': {},
        'response': {
            'outputSpeech': {
                'type': 'PlainText',
                'text': '<whatever whitty remark alexa should say>'
            },
            'card': {
                'type': 'Simple',
                'title': "SessionSpeechlet - foo",
                'content': "SessionSpeechlet - bar" 
            },
            'reprompt': {
                'outputSpeech': {
                    'type': 'PlainText',
                    'text': 'I know right'
                }
            },
            'shouldEndSession': True
        }
    }
  • Stellen Sie sicher, dass Sie eine neue Version veröffentlichen (kopieren Sie die ARN oben rechts, sie wird später benötigt).

Aws Lambda-Code

  • Setze den 'Trigger' auf alexa skills

aws-Trigger-Konfiguration


In der Entwicklerkonsole

  • Erstellen Sie eine Fähigkeit erstelle einen Skill-Dialog

  • Erstellen Sie ein Interaktionsmodell mit einer Absicht und einer Beispieläußerung Intent-Schema-Dialog

  • Verknüpfen Sie den Endpunkt

Dialogfeld zur Endpunktkonfiguration

Sie können die letzten 2 Schritte überspringen. Die Fertigkeit wird im Entwicklungsmodus ausgeführt und nur Sie können darauf zugreifen. Führen Sie die letzten beiden Schritte nur aus, wenn Sie Ihre Fähigkeiten mit anderen auf der Welt teilen möchten.

Spuder
quelle
1
Wenn man nicht veröffentlicht, muss ich mein Echo mit einem Entwicklerkonto verbinden, richtig?
Helmar