Das kann ich Dir leider nicht beantworten vielleicht meldet sich dazu Patami, der müsste das am besten wissen. Ansonsten müsste ich da selber mal nachschauen.
Auffällig ist nur das es
AskResponse::CreateSSML($text)
heisst, hier ist Groß und Kleinschreibung zu beachten, wie die SSML Parameter eingestellt werden, bin ich aber wie gesagt gerade überfragt.
Allen ein Frohes Neues Jahr und viel Erfolg bei Euren Projekten!
Ich habe gerade das Custom Skill Projekt für mich gestartet und denke mich gerade darin ein. Dank der wirklich tollen Doku und Umsetzung konnte ich den Demo Skill erfolgreich umsetzen.
Nun habe ich einen zweiten Skill („Haus“) eingerichtet mit zunächst einem Intent ('Licht"). Soweit hat bislang alles geklappt.
Nun zu meiner Frage: wenn ich zu dem zweiten Skill einen AMAZON.HelpIntent anlegen möchte, dann bekomme ich die Fehlermeldung „Der Name des Intents wird bereits von einer anderen Instanz verwendet.“ und die Instanz ist fehlerhaft.
Hier fehlt mir momentan das Verständnis, wie ich es schaffen kann für verschiedene Skills unterschiedliche HelpIntents anzulegen.
Ich würde gerne - um meine Skripte einfach und leichter wartbar zu machen - gerne Synonyme und IDs für die SlotTypeValues definieren. Im Skill Builder geht das ja bereits.
Im Skript möchte ich dann gerne auf die ID zugreifen wie hier beschrieben. Auf die Weise lassen sich im Skill die Synonyme beliebig erweitern, ohne dass die Skripte angepasst werden müssen …
Habe mich auch mit SSML beschäftigt um Alexa die Aussprache mitzuteilen und den Text zu betonen.
Leider tritt bei mir das gleiche Problem auf, dass sich nach dem Befehl:
AskResponse::CreateSSML($text)
der Code keinen Fehler bringt, aber auch kein Ton aus der Alexa kommt!
Ich hoffe, dass sich zu diesem Thema ein erfahrener User meldet und erklären kann, ob man hierfür noch was
„aktivieren“ muss oder ob die Funktion im Framwork einen Fehler hatt.
Danke für die Mühe und großes Lob an die Entwickler des Skills!!
Was würden wir ohne euch machen…
Hallo alle,
erstmal danke fuer das tolle Modul
Ich komme mit einem eigenen custom skill nicht weiter…
In IPS ist soweit schon alles angelegt (PatamiModul, GetInformation funktioniert auch)
Was muss ich denn im developer builder beta und im entsprechenden Actionsscript eingeben damit ich folgende Abfragen oder Kommandos absetzen kann ?
Hallo ihr alle,
so, ich habe jetzt einige Tage experimentiert und die Abfragen funktionieren jetzt.
Um Kommandos abzusetzen benutze ich das Modul IQL4SmartHome.
Nach einigem lesen hier im Forum und in der Beschreibung des Moduls habe ich es hin bekommen…
ich habe das gleiche Problem, ist dies mittlerweile gelöst?.
Ich habe wie im Beispiel von Patami und in der Doku beschrieben das Framework und das Beispiel angelegt. Die Verbindung funktioniert generell, USER-ID und Application-ID werden erkannt, dann scheitert jedoch die Validation der Decive-ID. Im Debug-Modus von Symcon steht, Device ID is invalid und im Test-Center von Alexa wird „Der angeforderte Skill konnte nicht ausgeführt werden weil eine ungültige Device ID übergeben wurde.“ zurückgegeben und alles weitere abgebrochen. Ich habe mich schon durch alles mögliche Im Internet „gewälzt“ finde aber keine Lösung. Kann mir jemand helfen? Kann ich die Device-ID-Validation irgendwie deaktivieren? Ich wüsste nämlich auch nicht, dass ich sie bewusst aktiviert habe.
Ich nutze IP-Symcon 4.4 und das Patami-Skript 3.4. Custom Skill und Intent sind so angelegt wie hier beschrieben: System Information Custom Skill - Patami IP Symcon Framework - Braintower Docs
Ich scheitere dann am Testen unter der Alexa Developer Console.
nur zur Info für diejenigen, die auch das Problem haben. Man kann es umgehen indem man im request.php im Verzeichnis C:\IP-Symcon\modules\ipspatami\libs\Patami\IPS\Services\Alexa\Skills\Custom die Zeilen:
$this->Debug(‚Device ID Validation‘, ‚Device ID is invalid‘);
throw new InvalidDeviceIdException();
mittels // deaktiviert, also so:
//$this->Debug(‚Device ID Validation‘, ‚Device ID is invalid‘);
//throw new InvalidDeviceIdException();
vielleicht kann mir trotzdem einer sagen, was das schief läuft, bzw. ich anpassen muss. Erstmal läuft alles.
hier wird von einer Länge von 156 ausgegangen bei mir hat die Device ID aber eine Länge von 181 daher wirft hier preg_match 0 und das führt zur Debug Meldung.
Schreib doch mal ein Issue das die Länge der Device ID nicht stimmt dann kann das patami ausbessern wenn er denn Zeit findet, ansonsten kannst Du mal probieren einfach die 156 durch 181 auszutauschen, ob das eine Besserung bringt. Kann aber auch sein das die Länge nicht fest ist dann müsste der Ausdruck dann nochmals anders lauten.
EDIT:
Das ist sehr merkwürdig, ich konnte jetzt feststellen das die device ID unterschiedlich lang ist wenn man über den Emulator geht hat diese bei mir eine Länge von 181 während die von einem Alexa Device nur 156 hat. Ist also blöd das das nicht einheitlich ist. Vielleicht hat ja jemand eine Idee wie man das dann sauber prüft.
Ich habe den Code jetzt folgendermaßen geändert - immer noch ein Workaround (vermutlich kann man das in dem regulären Ausdruck auch besser implementieren):
if (! preg_match('/^amzn1\.ask\.device\.[0-9A-Z]{181}$/', $id) && ! preg_match('/^amzn1\.ask\.device\.[0-9A-Z]{156}$/', $id)) {
$this->Debug('Device ID Validation', 'Device ID is invalid');
throw new InvalidDeviceIdException();
}
wenn ich den Framework über die Module installiere installiert sich eine weitere Kern-Instanz bei mir nicht automatisch.
Wenn ich dann versuche die Framework-Instanz manuell hinzuzufügen hängt sich das IPS auf. Kein Zugriff mehr - nur über PC-Neustart zu beheben.
Neben dem neuen Modul habe ich das IQL4Symcon-Modul installiert, welches problemlos schon länger läuft.
Was kann ich noch tun, um den Framework ans laufen zu bekommen?
Virenscanner/Firewall hatte ich auch mal komplett deaktiviert -ohne Erfolg.
Nach dem Neustart ist der Framwork dann als ungültiges Objekt installiert.
Was für eine IP-Symcon Version hast Du denn installiert? Stehen denn irgendwelche Meldungen im Meldungsfenster nachdem Du IP-Symcon neu gestartet hast?