Per Alexa Scripte aufrufen und Variablen übergeben

Hallo zusammen,

ich lesen und lese und lese im Internet und versuche mich irgendwie in die Alexa-Materie einzuarbeiten,
leider bisher ohne wirklichen Erfolg.

Vielleicht ist es zu kompliziert, ich zu b***, vielleicht funktioniert es auch generell nicht.

Der IP-Symcon-Skill funktioniert ja grundsätzlich schon sehr gut, aber natürlich auch etwas eingeschränkt.

Ich denke, man kommt um einen Custom Skill nicht herum.

Ich nehme mal als Beispiel meinen IPS-Dartautomaten… Im Moment drücke ich Buttons :eek: Mit Alexa wäre es aber extrem viel cooler :cool:

Achtung… Wunschdenken…

Ich: „Alexa, starte Dartautomat“
Alexa: „Dartautomat läuft“

Ich: „Starte Spiel 301“
Alexa: „Spiel läuft“

Ich: „Einfach 19“
Ich: „Doppel 7“
Ich: „Bull“

Ich: „Nächster Spieler“

So lange bis das Spiel zu Ende ist

Dann „Neues Spiel“ oder „Starte Spiel 501“

Vielleicht denke ich zu einfach, aber die Variablen müssen doch „nur“ irgendwie an ein Script übergeben werden.

Die ganzen Berechnungen usw. erledigt ein Scripte wo verschiedene Funktionen aufgerufen werden, die dann Werte in Variablen schreiben.

Ist sowas vielleicht irgendwie geplant?

Grundsätzlich sollte es ja funktionieren „Schalte Lampe ein/aus“ ist ja eigentlich nichts anderes als irgendwelche Werte an IP-Symcon zu übergeben.

Das Einsatzgebiet wäre meiner Meinung nach so viel größer, wenn man nur Werte übergibt und Scripte die Verarbeitung übernehmen würden.

Aber vielleicht ist es auch alles Blödsinn und kann gar nicht funktionieren :smiley: :smiley: :smiley: :smiley: :smiley:

Viele Grüße

Markus

Danke für diesen Text, genau das frage ich mich seit 3 Tagen auch schon, da nun auch ein Echo hier steht.
Ich habe gerade mal ein wenig in der Anleitung der customskills gelesen…puh…das ist viel arbeit.

Die Version, einen Skill zu bauen finde ich alleine wegen der umständlichen Frage schon blöd:

„Alexa, frage Haussteuerung wie die Temperatur im Pool ist“

Schöner wäre:

„Alexa, wie ist die Temperatur im Pool“

Soll so etwas mal komme ? Oder verhindert das Alexa generell und man MUSS mit eigenen skills arbeiten ?
Sind wir mit diesen wünschen ein paar Monaten oder Jahren zu früh ?

Ich freue mich auf die Antworten :slight_smile:

LG
Sascha

Das ganze ist nicht so kompliziert und lässt sich eigentlich zusammenklicken. Für genau so was ist z.B. das Patami Alexa Skill Framework da. Lies Dir mal in Ruhe die Dokumentation durch, baue den ersten Demo Skill und dann ist Dein „Dart Skill für IPS“ auch nicht mehr weit entfernt. Wenn es fragen gibt bei der Doku dann am besten stellen dann kann man das ja ergänzen. Ansonsten stelle doch am besten Fragen wo es konkret hängt dann kann man Dir helfen Deinen Dialog zu basteln. So ein Dart Skill sollte in 2 Stunden stehen :wink:

Zur Zeit ist das zumindest ohne einen Custom Skill und eigenen Rufnamen nicht möglich, ist aber so auch in 30 Minuten erstellt. Das Problem ist die Komplexität da jeder was anderes fragen und steuern will und ich glaube nicht das da Amazon so schnell eine Lösung für hat. Das man das nicht ohne einen Rufnamen machen kann ist blöd aber dazu müsste Amazon sein ganzes Konzept überdenken und anderes aufstellen, das werden sie denke ich so schnell nicht machen.

Grundsätzlich musst Du mit bestimmten Einschränkungen leben bei Deinem Dialog.

Alexa, starte Dartautomat

Ist der LaunchIntent diesen fängst Du ab mit


function Execute(Request $request)
{
	if($request->IsLaunchRequest())
	{
		$text = 'Hallo dies ist der Dart Skill';
	}
	return TellResponse::CreatePlainText(
        $text
    )->SetSimpleCard(
        'IP-Symcon ',
        $text
    ); 
}

Ansonsten kannst entweder nur Antworten mit


return TellResponse::CreatePlainText(
        $text
    )->SetSimpleCard(
        'IP-Symcon Informationen',
        $text
    ); 

Oder eine Frage stellen, dann ist die Session weiter für 8 Sekunden offen und Du kannst Alexa antworten ohne den Rufnamen wieder sagen zu müssen.


return AskResponse::CreatePlainText(
                'Du hast die Auswahl zwischen unterschiedlichen Spielen.  Sag zum Beispiel 301. Welches möchtest Du spielen?'
            )->SetRepromptPlainText(
                'Welches Spiel?'
            );

Zur Einführung des Spieles kannst Du also mit Ask arbeiten da übergibst Du ja mehrere Einstellungen in Folge. Während des Spiels wirst Du wohl jedes mal den Invocation Name neu aufrufen müssen da ja auch Zeit vergeht bis der Wurf durchgeführt wurde.

Die Variable setzt Du dann einfach mit Skript. Angenommen Du Sagst Alexa sage DartAutomat es wurde 18 geworfen. Dann ist 18 dein Score das ist den IntentSlot nenne in Score und der Slottype ist AMAZON.Number

in IPS nimmst Du jetzt Score


function Execute(Request $request)
{
	$score = strtolower($request->slots->Score);
	
	
	
	if($score != "")
	{

$currentscore = GetValue(12345);
$total = $currentscore + $score;
$SetValue(12345, $total);
$text = "Es wurde der Wert ".$score." zum Ergebnis addiert. Der Zwischenstand ist ".$total;
	}  

     
    // Tell the user the score
    return TellResponse::CreatePlainText(
        $text
    )->SetSimpleCard(
        'IP-Symcon Informationen',
        $text
    ); 
	
}