Amazon Echo an Symcon anbinden inklusive Proxy

Im knx Forum hat jemand eine reine PHP Lösung entwickelt. Hab es noch nicht getestet, das sollte man aber relativ einfach adaptieren können. https://knx-user-forum.de/forum/supportforen/smarthome-py/1007415-umfrage-amazon-echo?p=1014205#post1014205

Bei der FHEM Lösung braucht man ja wieder einen extra Node js…

Gesendet von iPhone mit Tapatalk

Hallo
Seh ich das richtig , dass dafuer der AWS-Lambda Service benutzt wird?
Im Moment ist der ja quasi kostenfrei ( erste Million Anfrage frei ) , aber man weiss ja nie wann/ob
sich das aendert.

Smart Home skill muss immer über aws Lambda laufen

Hallo,

ich wollte mich bei 10007 für seine Scripte bedanken. Nach etwas einarbeiten habe ich es geschafft das „schalten“ Script um die Angabe/Abfrage des Raumes zu erweitern.

Kannst Du kurz beschreiben, was im Default_Script bei Dir gemacht wird. Da fehlt mir gerade die Idee. Derzeit würde ich da eine Standardausgabe machen, dass die Funktion nicht belegt ist, oder so ähnlich?

Die Spracherkennung von Alexa ist wirklich super. Ich habe den Dot und auch die Sprachausgabe als Rückmeldung funktioniert sehr gut.

Derzeit bin ich ziemlich begeistert. Ich bin gespannt, wie sich das Thema weiterentwickelt.

Vielen Dank an alle Vorreiter.

Gruß
Christian

Hallo
Mein Default ist nur ein Platzhalter fuer weitere Scripte.
Da steht bei mir nur drin

	$response = "Was meinst du mit : " .$command;
	SetVariable("Response",$response);
	$endsession = true;			

	return $endsession;

In der heute erschienenen Beta scheint Oauth möglich zu sein… Dann rückt der IP-Symcon Smarthome-Skill ja doch in erreichbare Nähe :slight_smile: :loveips:

paresy hat auf das Thema ‚IP-Symcon 4.1.x (Beta)‘ im Forum ‚Allgemeine Diskussion‘ bei IP-Symcon Community Forum geantwortet.

Dieses Thema ist hier zu finden:
IP-Symcon 4.1.x (Beta)

Dies ist der Beitrag, der gerade geschrieben wurde:


-Neu: OAuth Control für die neue Symcon Connect + OAuth2 Brücke
-Neu: Ein Klick auf die rote „Verbindung verloren“ Meldung startet die Konsole neu und verbindet automatisch
-Neu: PHP Module können direkt Hook/OAuth Daten empfangen
-Neu: Konsole maskiert Kennwörter im Module Control
-Neu: Z-Wave unterstützt korrekt NOTIFICATION V4
-Neu: Z-Wave Optimierung kann im Gateway für alle Geräte und zusätzlich für jedes Gerät einzeln konfiguriert werden

Benutze zZ Custom Skill. Einrichtung wie in Post #1 beschrieben.

Hier mein Testskript

	IPSUtils_Include ("AmazonEchoInclude.ips.php");

	$parentDataID = IPSUtil_ObjectIDByPath("Program.IPSLibrary.data.privat.AmazonEcho");
	
	StartNewSession($parentDataID,0);
	
   	$debug = true;

   	$command = "schalte lampe ein";

	include("AmazonEcho_Schalte.ips.php");

	$response = GetVariable("Response");

	echo "
Response : " .$response;

Ihr müsst nur schauen ob Amazon als OAuth Server oder OAuth Client auftritt. Momentan ist IP-Symcon der OAuth Server und vergibt die Client ID. Falls ein OAuth Client benötigt wird müsst ihr noch Geduld haben. Aber theoretisch können sich ja ein paar findige Echo oder Dot Besitzer zusammentun und einen Skill und ein PHP Modul basteln dass dann alle IP-Symcon Nutzer in Zukunft nutzen können, das wäre sicher die praktischste Lösung für alle. Wer an einer Anbindung von Echo an IP-Symcon mitarbeiten will wendet sich an DaveRichter.

Hallo Leute,

bei einer Anfrage über einen Custom Skill bekomme ich folgende Fehlermeldung im Amazon Echo Log:

„type“:„INVALID_RESPONSE“,„message“:„An exception occurred while dispatching the request to the skill.“

In IP Symcon wird das Web Hook Skript aktualisiert.

Kennt jemand diese Fehlermeldung?

Gruß

Axel

Hallo
Was heißt im Amazon Echo Log ?
Kannst du problemlos Tests im „Skill Editor“
Nachrichten schicken?

Die Datei AmazonEcho.log finde ich auf dem IP Server an folgender Stelle: „/var/log/symcon/AmazonEcho“

Wenn ich im Service Simulator folgenden Befehl eingebe: „alexa sag demhaus schalte licht ein“ kommt meistens folgende Fehlermeldung: „The remote endpoint could not be called, or the response it returned was invalid.“

Axel

OK dann benutzt du wohl mein Script.
Da das eigentlich funktioniert hast du beim Einrichten Bei Amazon einen Fehler.
Überprüfe mal das Setting wie im Post #1

Mit dem Alexa-App-Server https://github.com/matt-kruse/alexa-app-server von matt-kruse lassen sich lokal ‚AWS Lambda‘ basierende Custom Skills relativ einfach entwickeln, testen und debuggen! Dies ist zwar nicht der ‚straight forward‘ Weg um Custom Skills in IP-Symcon zu integrieren aber trotzdem ist es empfehlenswert sich das anzusehen …

Als Code Editor verwende ich hier Visual Studio Code. Damit habe ich nicht nur ein guten Code Editor, sondern auch Source Code Verwaltung (GIT) und Debugging Umgebung in einem …

Sieht dann so aus:

Mit dem Modul ‚alexa-app‘ welches der ‚alexa-app-server‘ verwendet werden bereits im Code die slots und utterances definiert.

Auf der lokalen Test Seite stellt der ‚alexa-app-server‘ dann das ‚Intents Schema‘ und unzählige Kombinationen der ‚Utterances‘ zur Verfügung. Die braucht man nur mehr die die Custom Skill Konfiguration auf der Amazon Developer Seite via Copy-Paste ablegen.

Ich finde das zum experimentieren und verstehen ganz gut…
Hab mir so mal schnell auf einen AWS Lambda basierenden Custom Skill gemacht, der das Fernsehprogramm von heute Abend vorliest.

var alexa = require('alexa-app');

// Allow this module to be reloaded by hotswap when changed
module.change_code = 1;

// Define an alexa-app
var app = new alexa.app('helloworld');
app.launch(function(req,res) {
	res.say("Hello World!!");
});
app.intent('NameIntent', {
		"slots":{"NAME":"LITERAL","AGE":"NUMBER"}
		,"utterances":["{My name is|my name's} {matt|bob|bill|jake|nancy|mary|jane|NAME} and I am {1-100|AGE}{ years old|}"]
	},function(req,res) {
		res.say('Your name is '+req.slot('NAME')+' and you are '+req.slot('AGE')+' years old');
	}
);
app.intent('AgeIntent', {
		"slots":{"AGE":"NUMBER"}
		,"utterances":["My age is {1-100|AGE}"]
	},function(req,res) {
		res.say('Your age is '+req.slot('AGE'));
	}
);
module.exports = app;

Screenshot von der lokalen ‚Alexa-App-Server‘ Testseite:

p.s. ich weis, dass ‚alexa-app-server‘ hier in diesem Thread nicht ganz Richtig ist. Aber vielleicht profitiert der eine oder andere von euch davon …

Hallo
Es ist nur eine prinzipelle Frage:
Soll Alexa einfach nur meinen Text an meinen IPS-Server senden?
oder schon ein " AWS Lambda basierenden Skill" ausfuehren?

Theoretisch würde ein String / Array ausreichen, die restliche Analyse kann ja wie in den Scripten hier erfolgen.
Ich sehe halt den Vorteil im Smarthome-Skill, das wir mit den Invocation-Words etwas flexibler umgehen können…

Gruß,
Markus

Was schaltet ihr denn momentan alles über den Custom Skill? Wäre es nicht vielleicht besser einen Custom Skill für IP-Symcon zu erstellen als ein Smart Home Skill da man bei dem Smart Home Skill ja auf die Befehle beschränkt ist die die Smart Home Skill API vorgibt. Oder reicht Euch das aus?

Hallo Leute.
Bei mir läuft die Kommunikation mit IPS und diversen Lampen ,Rollos usw jetzt auch super.
Was mich wirklich stört ist dieses ’ Alexa sag dem Haus…’ vor dem eigentlichen Befehl. Ich hoffe,da wird es bald einen Weg drum herum geben!!

Ich habe bei der Sprachauswertung einen einfacheren Weg eingeschlagen;

Ich hatte schon vor Längerem das Skript von Thiemo zu seiner Android App ‚Haussteuerung‘ in Betrieb. Hier werden zwei Stringvariablen (-send und -receive) befüllt und im eigentlichen Skript ausgewertet.
Die einzelnen Geräte/Kommandos stehen mit allen Informationen einmal in einem Array und dieses wird dann mit dem Befehl verglichen…
Hatte da schon einiges drin stehen,also hab ich die o.g. Index einfach angepasst und lasse die Commands und responds einfach in die entsprechenden Variablen schreiben…
Bei Bedarf könnte ich die Skripts hier gerne auch noch posten… Viele Wege führen nach Rom bzw zu Amazon…

Gesendet von meinem HTC One M9 mit Tapatalk

Ich würde gerne den Hybrid-Weg beschreiten… Den Smarthome-Skill für die Flexibilität bei den gängigsten Befehlen - und den Custom-Skill (läuft bereits 1A). „Alexa, schalte das Licht im Wohnzimmer ein“ - anstatt „Alexa, sag smarthome schalte das Licht im Wohnzimmer ein“

Die Idee ist praktisch 2 Interfaces anzubieten, die von 2 Skills befüttert werden - aber die gleiche Analyse-Logik dahinter steckt um nicht doppelt entwickeln zu müssen. Der Vorteil: wir können so eine viel größere Breite an Sprachbefehlen anbieten - und unterm Strich ist es für den Anwender dann egal, ob er „Alexa, Licht ein“ - oder „Alexa, sag smarthome Licht einschalten“ sagt.

Gruß,
Markus