Hallo Alexa-Freunde,
ergänzend zu der Anleitung unter:
https://www.symcon.de/forum/threads/32361-Amazon-Echo-an-Symcon-anbinden-inklusive-Proxy
möchte ich hier beschreiben, wie man den neuen Flashnews Skill nutzen kann.
Die Flash News sind ja eine Art Kurznachrichtenservice, bei dem man sich über den Amazon Echo Nachrichten vorlesen lassen kann. Neu ist nun (5.10.2016), dass es nun einen extra Skill Typ gibt, mit dem man selbst solche Kurznachrichten erstellt. Die eigentlichen Nachrichten werden hierbei entweder über ein JSON Objekt oder einen RSS Feed übergeben. Ein solches JSON Objekt kann man natürlich auch über Symcon bereitstellen!
Hierzu nun kurz die Anleitung:
(Aktuell geht Deutsch noch nicht bei diesem Skill-Typus, allerdings zeigen sich die ersten Eindeutschungen der Alexa-App, also lang wird es wohl nicht dauern und das Prinzip wird sicher gleich bleiben).
Bitte keine besonderen Ansprüche an Ausgereiftheit und Qualität des Codes stellen, das ist mehr eine Machbarkeitsstudie. Könnt ihr ja erweitern.
-
Voraussetzung ist, das man ein funktionsfähiges Echo oder Tap Gerät hat (die Basics siehe im obigen Link).
-
Ladet Euch folgendes Skript runter und fügt es irgendwo in Symcon ein:
<?php
// Provide JSON response
header('Content-Type: application/json;charset=UTF-8');
$aussentemp = strval(GetValue(25770 /*[Wetter Lokal\KS300 Wetterstation\Temperatur Aussen]*/));
$wassertemp = strval(GetValue(54542 /*[Heizung\Heizungstemps\WW Ist]*/));
$json = '[
{
"uid": "EXAMPLE_CHANNEL_MULTI_ITEM_JSON_TTS_1",
"updateDate": "2016-04-10T00:00:00.0Z",
"titleText": "Multi Item JSON (TTS)",
"mainText": "External temperature is '.$aussentemp.' Grad",
"redirectionUrl": "https://www.amazon.com",
"description": "this is a description"
},
{
"uid": "EXAMPLE_CHANNEL_MULTI_ITEM_JSON_TTS_2",
"updateDate": "2016-04-10T00:00:00.0Z",
"titleText": "Multi Item JSON (TTS)",
"mainText": "Water temperature is '.$wassertemp.' Grad",
"redirectionUrl": "https://www.amazon.com",
"description": "this is a description"
}
]';
// Response do Amazon Web Service (or GUI)
header('Content-Length: ' . strlen($json));
echo $json;
?>
Tauscht die beiden Variablen gegen irgendwelche Variablen aus eurem Symcon, was ihr eben Alexa erzählen lassen wollt, aus. Ggfs. lassen sich auch weitere JSON Sektionen ergänzen bzw. die Texte natürlich auch erheblich verlängern. Audio-Nachrichten gehen auch, dann muß das JSON Objekt nach Vorgabe auf der developer.amazon.com Seite angepasst werden. Die uid’s und sonstigen Beschreibungen kann man auch anpassen, ich hab hier im Skript noch mehr oder weniger die Vorlagen aus der Developer-Hilfe, geht auch.
Mal ausführen, sollte Euch den JSON Text ohne Fehler anzeigen.
Ggfs. bei sensitivem Inhalt noch Sicherheitsabfragen in den Code einbauen, siehe dazu den Code Index.php in den Basics, z.b. die Skills Application ID verifizieren. Das habe ich mir im Moment noch gespart.
-
Erstellt einen Webhook und lasst diesen auf dieses Script zeigen. Probiert den aus - wenn ihr es richtig gemacht habt, und den Hook in einem Browser aufruft, dann sollte der Browser Euch den JSON Text als Download anbieten.
-
Wenn ihr kein zertifiziertes SSL auf Eurem Symcon Server am Laufen habt, nutzt den Symcon Connect Dienst und speichert Euch den Link auf den Webhook weg. Also sowas wie <ellenlange connect ip addresse eures symcon servers>/hook/<euer webhook> .
-
Legt Euch nun einen Skill vom Typ Flash News an auf developer.amazon.com. Das ist recht selbsterklärend, ggfs. obige Basics nochmal durchlesen. Stand Okt. 2016 wie gesagt noch auf English, aber das wird bestimmt bald internationalisiert. Klickt dafür einfach die „Flash Briefing Skill API“ an.
Unter Configuration und dort unter Editing Feed euren Webhook unter URL eintragen. Das Icon nicht vergessen anzulegen, z.b. irgendwas passendes im Format 512x512 im Internet von einem ICON service ziehen.
Alle grünen Häkchen in der Skill Einrichtung bis Stufe Test müssen nun vorhanden sein.
- Nun in die Alexa App auf Eurem Handy gehen und unter Skills - Meine Skills Euren Symcon Flash aktivieren.
Jetzt sollte Alexa auf „Alexa, what’s in the news“ eure aus Symcon bereitgestellte Info runterplappern, ggfs. auch mit anderen Nachrichtenservices kombiniert. Ach ja, das ist denglish, z.B. müsste das Komma bei den Temperaturen natürlich eigentlich ein Punkt sein und Grad ist natürlich auch kein englisches Wort. Egal.
Viel Spaß