Inhalt

Übersicht

Das Alexa Custom Skill Intent Modul wird benötigt, um in Zusammenarbeit mit einer Alexa Custom Skill Instanz Intents für Amazon Alexa zu implementieren.

Modul-Informationen

NameAlexa Custom Skill Intent
IPS GUID{F14921A2-405D-4576-A389-95FB9A5CD730}
FQCN\AlexaCustomSkillIntent
Funktions-PrefixACSIntent

Einrichtung

Folge diesen Schritten, um eine Instanz des Moduls für einen neuen Intent hinzuzufügen:

Öffne in der IP Symcon Management Console die logische Baumansicht und klicke auf rechts auf eine bestehende Kategorie.

Klicke danach auf Objekt hinzufügen und dann auf Instanz hinzufügen:

Ein neues Fenster öffnet sich.

Gebe im Schnellfilter den Text intent ein, um die Auswahl der Module einzuschränken.

Wähle das "Gerät" Alexa Custom Skill Intent aus und klicke auf den Button Weiter:

Auf der nächsten Seite kannst Du im Feld Name einen eigenen Namen für die Intent Instanz vergeben.

Klicke anschließend auf den Button OK:

In der Konfiguration der Intent Instanz kannst Du den Namen der Instanz später an den Intent-Namen angleichen, indem Du einfach auf einen Button klickst.

IPS legt nun die Instanz an und öffnet die Konfigurationsseite.

Konfiguration

Konfigurationsseite öffnen

Um die Patami Custom Skill Intent Instanz zu konfigurieren, doppelklicke in der IP Symcon Management Console auf die Alexa Custom Skill Intent Instanz:

Ein neues Tab öffnet sich:

Übergeordnete Instanz auswählen

Am Endes des Konfigurationsformulars muss die übergeordnete Patami Custom Skill Instanz ausgewählt werden:

IPS wird beim Anlegen der Instanz automatisch eine übergeordnete Instanz auswählen oder anlegen.

Falls Du die Skill Instanz nicht bereits vor der Intent Instanz konfiguriert hast, solltest Du das jetzt tun. Eine Anleitung findest Du hier.

Sobald Du die Skill Instanz ausgewählt hast, ist der Intent mit dem Skill verknüpft und er kann von Alexa genutzt werden.

Intent-Namen festlegen

Jeder Intent eines Custom Skills benötigt einen Namen.

Die Intent-Namen aller Intent Instanzen, die mit derselben Skill Instanz verbunden sind, müssen eindeutig sein.

Solltest Du einen Intent-Namen doppelt verwenden, so werden beide betroffenen Instanzen als fehlerhaft markiert und die Meldung Der Name des Intents wird bereits von einer anderen Instanz verwendet wird angezeigt.

Im Debugging der Instanz wird die IPS Objekt ID der anderen Instanz mit demselben Namen angezeigt.

Beim Namen hast Du zwei Möglichkeiten, diesen anzugeben:

Eigenen Namen verwenden

Wenn Du im Dropdown Standard Name den Eintrag Eigenen Namen verwenden auswählst, kannst Du im Eingabefeld Eigener Name einen benutzerdefinierten Namen für den Intent angeben:

Der Name des Intents in der Konfiguration muss mit dem im Intent-Schema in der Alexa Developer Console für den Skill konfigurierten Namen übereinstimmen.

Intent-Namen dürfen nur Buchstaben (A bis Z) enthalten.

Solltest Du einen ungültigen Namen eingeben, so wird die Instanz als fehlerhaft markiert und die Meldung Der Name des Intents ist ungültig (darf nur Klein- und Großbuchstaben enthalten) angezeigt.

Falls das Feld Eigener Name nicht angezeigt wird, wähle zunächst Eigenen Namen verwenden im Dropdown aus und übernehme die Konfiguration. Anschließend wird das Feld wieder angezeigt.

Standard Intent-Namen

Im Intent-Schema von Custom Skills können von Amazon vordefinierte, sogenannte Built-In Intents verwendet werden.

Im Dropdown Standard Name kannst Du alle derzeit verfügbaren Built-In Intents auswählen:

Sobald Du einen der Built-In Intents ausgewählt und die Konfiguration übernommen hast, wird das Feld Eigener Name ausgeblendet:

Aktion festlegen

Sobald der Intent über die Skill Instanz von Alexa aufgerufen wird, wird die konfigurierte Aktion ausgeführt.

Hierbei hast Du mehrere Möglichkeiten. Welche Art von Aktion hierbei aufgerufen wird, legst Du über dieses Dropdown fest:

Die Standardaktion ist Skript ausführen.

Sprachausgabe

Wenn Du im Dropdown den Eintrag Sprachausgabe auswählst, wird Alexa den konfigurierten Text sprechen, wenn der Intent aufgerufen wird:

In den Eingabefeldern kannst Du für jede vom Skill unterstützte Sprache den Text der Antwort eingeben, die der Skill beim Aufruf des jeweiligen Intents geben soll.

Über das Dropdown kannst Du außerdem auswählen, ob der Text als einfacher Text (d.h. ohne weitere Auszeichnung) oder als Speech Synthesis Markup Language (SSML) interpretiert werden soll.

Setzt Du den Haken bei Session fortsetzen, so wird Alexa nach der Sprachausgabe die Session aufrechterhalten und auf einen weiteren Befehl warten.

Skript ausführen

Wenn Du im Dropdown den Eintrag Skript ausführen auswählst, wird die Intent Instanz ein IPS Skript ausführen, wenn der Intent aufgerufen wird:

Standardmäßig ist das Skript Action, das automatisch beim Anlegen der Intent Instanz unterhalb der Instanz erzeugt wird, ausgewählt.

Dieses automatisch erzeugte Skript hat folgenden Inhalt:

<?
function Execute(Request $request)
{
	// Write your own code here
	return TellResponse::CreatePlainText('Test');
}

Im Auswahlfeld kannst Du auch ein eigenes IPS Skript auswählen. Hierbei musst Du darauf achten, dass in Deinem Skript ebenfalls eine Execute-Funktion mit derselben Signatur vorhanden ist.

Umleiten an einen anderen Intent

Wenn Du im Dropdown den Eintrag Umleiten an einen anderen Intent auswählst, wird die Intent Instanz beim Aufruf des Intents die Anfrage an einen anderen Intent weiterleiten:

Im Feld Umleiten an diesen Intent kannst Du den Namen des anderen Intents angeben.

Diese Konfiguration sollte verwendet werden, wenn Du im Laufe einer Alexa-Session weitere Informationen vom Benutzer erfragst.

In diesem Fall kannst Du für die Antwort einen Intent ohne eigene Logik einrichten, der den Slot mit der vom Benutzer genannten Information an den "fragenden" Intent weiterreicht.

Umleiten an den Callback Intent

Wenn Du im Dropdown den Eintrag Umleiten an den Callback Intent auswählst, wird die Intent Instanz beim Aufruf des Intents die Anfrage an den in der Alexa-Session gespeicherten sogenannte Callback-Intent weiterleiten:

Diese Konfiguration ähnelt der Aktion Umleiten an einen anderen Intent, wobei der wesentliche Unterschied darin besteht, dass nicht dieser Intent festlegt, an welchen Intent weitergeleitet wird, sondern der "fragende" Intent. Dies ist dann nützlich, wenn ein Intent Informationen für mehrere "fragende" Intents sammeln muss.

Zum Setzen des Callback-Intents muss der "fragende" Intent die Method SetCallbackIntent() des Response-Objektes aufrufen.

Die letzte Antwort wiederholen

Wenn Du im Dropdown den Eintrag Die letzte Antwort wiederholen auswählst, wird die Intent Instanz beim Aufruf des Intents die letzte Antwort, die Alexa dem Benutzer innerhalb der Alexa-Session gegeben hat, wiederholen:

Diese Konfiguration wird normalerweise in Kombination mit dem Standard Intent-Namen AMAZON.RepeatIntent verwendet werden. Dies entspricht dem Verhalten des im Custom Skill Modul implementierten Built-In Intents.

Sonstiges

In der Testumgebung am Ende des Konfigurationsformular wird die aktuelle Version des Custom Skill Intent Moduls anzeigt.

Um das Modul zu aktualisieren, musst Du auf der Konfigurationsseite der Patami Framework Instanz das Patami Framework aktualisieren.

Außerdem stehen hier einige Buttons zur Verfügung:

Instanz umbenennen

Beim Klick auf den Button wird die Instanz umbenannt. Der Name wird dem Intent-Namen angeglichen.

Issue erstellen

Beim Klick auf den Button wird ein neues Issue im Issue Tracker des Patami Frameworks geöffnet. Hier kannst Du Fehler melden oder ein neues Feature vorschlagen.

Lizenz anzeigen

Beim Klick auf den Button wird die Lizenz des Frameworks geöffnet.

Dokumentation anzeigen

Beim Klick auf den Button wird diese Dokumentation-Seite geöffnet.

Versionhinweise anzeigen

Beim Klick auf den Button werden die Versionshinweise des Frameworks geöffnet.

Funktionen

Die folgenden Funktionen werden von IPS als globale Modulfunktionen mit dem Prefix ACSIntent registriert:

Aus technischen Gründen hat die Modul-Klasse weitere Public-Methoden, die ebenfalls von IPS als globale Funktionen registriert werden.

Sie sind jedoch für interne Zwecke gedacht und sollten nicht verwendet werden.

Fehlerbehandlung

Details zur Behandlung von Fehlern findest Du hier.