Amazon Echo Skill & Modul

Es fehlten wohl 2 „;“
Jetzt läuft es ohne Fehler durch.
Alexa sagt zwar, dass sie nicht weiss was schief gelaufen ist, aber das Script scheint ordentlich gelaufen zu sein.

Ja genau, hatte ich auf die schnelle vergessen habe das aber mal ergänzt falls das jemand so rauskopiert.

Meckert jetzt Alexa nur oder passiert den grundsätzlich was, bzw. wird die Temperatur verstellt?

Wird wohl nur gemeckert.
„Soll Temperatur (ausstehend)“ wird von dem Script richtig gesetzt.

Und was sagt Alexa wörtlich als Antwort wenn man einen Befehl erteilt?

„Entschuldigung, etwas ist schief gelaufen“

Ich melde die FHT80b jetzt mal komplett neu an.
Irgendwas in der Kommunikation scheint nicht richtig.
Danach schaue ich nochmal mit Alexa und berichte

So, ich habe jetzt alles nochmal getestet an 3 verschiedenen FHT80
Über Symcon klappt alles wie es soll.
Temperaturen ändern, Daten abrufen. Alles läuft, solange man ein wenig Geduld hat.
Zieltemperatur wird auch auf dem Display richtig angezeigt und an den Stellmotor übermittelt!!!

Mache ich das Ganze über Alexa, wird auch alles richtig gemacht.
Daten werden übermittelt, der Stellmotor dreht sich, Anzeige richtig. In Symcon werden die Daten richtig angezeigt. Zeitstempel passen. Alles prima.

Nur Alexa besteht auf folgende antwort:
„Ich weiss nicht was schief gelaufen ist“

Egal was ich versuche, Alexa meint immer das etwas schief gelaufen ist, obwohl alles OK ist.

Hier sind mal die Debugausgaben von dem FHT80 script, Homematic Heizung, und einem Script was ein „IPS_RunScriptEx“ ausführt.
Vielleicht kann da jemand mehr mit anfangen. Die IDs habe ich ersetzt.

Script FHT80 (Temperatur wird gesetzt, ALEXA:„Ich weiss nicht was schief gelaufen ist“)

Array<LF>(<LF>    [header] => Array<LF>        (<LF>            [namespace] => Alexa.ConnectedHome.Control<LF>            [name] => SetTargetTemperatureRequest<LF>            [payloadVersion] => 2<LF>            [messageId] => ersetzt_MESSAGEID<LF>        )<LF><LF>    [payload] => Array<LF>        (<LF>            [accessToken] => ersetzt_ACCESSTOKEN<LF>            [appliance] => Array<LF>                (<LF>                    [applianceId] => ersetzt_APPLIANCEID<LF>                    [additionalApplianceDetails] => Array<LF>                        (<LF>                        )<LF><LF>                )<LF><LF>            [targetTemperature] => Array<LF>                (<LF>                    [value] => 22<LF>                )<LF><LF>        )<LF><LF>)<LF>

Array<LF>(<LF>    [header] => Array<LF>        (<LF>            [messageId] => ersetzt_MESSAGEID<LF>            [namespace] => Alexa.ConnectedHome.Control<LF>            [name] => SetTargetTemperatureConfirmation<LF>            [payloadVersion] => 2<LF>        )<LF><LF>    [payload] => stdClass Object<LF>        (<LF>        )<LF><LF>)<LF>

Homematic Heizung

Array<LF>(<LF>    [header] => Array<LF>        (<LF>            [namespace] => Alexa.ConnectedHome.Control<LF>            [name] => SetTargetTemperatureRequest<LF>            [payloadVersion] => 2<LF>            [messageId] => ersetzt_MESSAGEID<LF>        )<LF><LF>    [payload] => Array<LF>        (<LF>            [accessToken] => ersetzt_ACCESSTOKEN<LF>            [appliance] => Array<LF>                (<LF>                    [applianceId] => ersetzt_APPLIANCEID<LF>                    [additionalApplianceDetails] => Array<LF>                        (<LF>                        )<LF><LF>                )<LF><LF>            [targetTemperature] => Array<LF>                (<LF>                    [value] => 23<LF>                )<LF><LF>        )<LF><LF>)<LF>

Array<LF>(<LF>    [header] => Array<LF>        (<LF>            [messageId] => ersetzt_MESSAGEID<LF>            [namespace] => Alexa.ConnectedHome.Control<LF>            [name] => SetTargetTemperatureConfirmation<LF>            [payloadVersion] => 2<LF>        )<LF><LF>    [payload] => Array<LF>        (<LF>            [targetTemperature] => Array<LF>                (<LF>                    [value] => 23<LF>                )<LF><LF>            [temperatureMode] => Array<LF>                (<LF>                    [value] => AUTO<LF>                )<LF><LF>            [previousState] => Array<LF>                (<LF>                    [targetTemperature] => Array<LF>                        (<LF>                            [value] => 23<LF>                        )<LF><LF>                    [mode] => Array<LF>                        (<LF>                            [value] => AUTO<LF>                        )<LF><LF>                )<LF><LF>        )<LF><LF>)<LF>

Script Boolean

Array<LF>(<LF>    [header] => Array<LF>        (<LF>            [namespace] => Alexa.ConnectedHome.Control<LF>            [name] => TurnOffRequest<LF>            [payloadVersion] => 2<LF>            [messageId] => ersetzt_MESSAGEID<LF>        )<LF><LF>    [payload] => Array<LF>        (<LF>            [accessToken] => ersetzt_ACCESSTOKEN<LF>            [appliance] => Array<LF>                (<LF>                    [applianceId] => ersetzt_APPLIANCEID<LF>                    [additionalApplianceDetails] => Array<LF>                        (<LF>                        )<LF><LF>                )<LF><LF>        )<LF><LF>)<LF>

Array<LF>(<LF>    [header] => Array<LF>        (<LF>            [messageId] => ersetzt_MESSAGEID<LF>            [namespace] => Alexa.ConnectedHome.Control<LF>            [name] => TurnOffConfirmation<LF>            [payloadVersion] => 2<LF>        )<LF><LF>    [payload] => stdClass Object<LF>        (<LF>        )<LF><LF>)<LF>

Kann es sein das „SetColorTemperatureRequest“

Array
(
    [VARIABLE] => 111111-2222-3333-4444-5555555555555
    [VALUE] => 2200
    [REQUEST] => SetColorTemperatureRequest
    [SENDER] => AlexaSmartHome
    [THREAD] => 49
    [SELF] => 13019
)

noch nicht integriert ist.

Dann kann man nämlich über „Alexa Stelle [Smart Home-Gerät/Gruppenname] warmweiß“ die Farbtemepratur einstellen.

Skripttechnisch geht es soweit, aber alexa bekommt scheinbar keine Antwort zurück.

@Acer90: Ja, SetColorTemperatureRequest ist bisher nur für Skripte implementiert.

paresy

Jop, da benutze ich das auch. :cool:

Bei mir werden Befehle auch ausgeführt, ich bekomme aber von alexa die Meldung das etwas schiefgegangen ist.
Das Skript läuft aber ohne Fehler komplett durch und läuft auch nur wenige Millisekunden.

Hab das wenn ich wärmer/kälter, oder Heller/Dunkler sage.
Funktionieren tut es, aber halt mit der Meldung das was schiefgegangen ist.

Swen

Bei mir ist es so wie bei @godik was die Heizung anbelangt: da sagt Alexa „Es ist etwas schiefgelaufen“,
der Befehl wurde aber trotzdem erfolgreich durchgeführt.

Bei meinen Leuchten sagt Alexa immer sinngemäß dass dieses Feature nicht unterstützt wird.

Hallo zusammen,
ich habe IPS 4.3 auf einen neuen Server umgezogen, dann auf 4.4 aktualisiert und auch das Symcon Connect neu aktiviert.
Ich bekomme allerdings keine Geräte mehr mit Alexa angesprochen.
Ich habe darauf hin den Skill deaktiviert und neu eingerichtet. Hier habe ich aber nun das Problem, dass mir der Verification Code nach Eingabe meiner Lizenz-Email-Adresse nicht zugesendet wird.

Einer eine Idee?

Hast du mal im Spam Ordner nachgesehen? Notfalls kannst du uns auch anrufen und wir geben dir den Code durch.

paresy

Ich hab seit ein paar Tagen ein sehr merkwürdiges Verhalten.

Wenn ich sage „Alexa schalte Computer Büro ein“
oder „Alexa schalte TV ein“
oder „Alexa schalte Fernseher ein“

antwortet Alexa ganz oft (nicht immer) mit: …ich kann mit Kameras nichts anfangen oder so ähnlich.
Dann kann ich es auch 20 mal hintereinander versuchen. Immer selbes Ergebnis.

Sage ich dann fälschlicherweise: "Alexa schalte „Computer“ an (es gibt tatsächlich mehrere bei mir)
Anwortet Alexa natürlich daß es mehrere gibt und welches ich denn meinte.
Sage ich dann wiederum: „Computer Büro“ schaltet sie korrekt.

Ein paar Stunden später geht es wieder für einige Zeit normal.
Das ganze macht sie ca. seit 1 Woche…

Kennt das Phänomen jemand ?

Ja, kenne ich seit etwa 1 Woche.

„Schalte Fernseher Wohnzimmer ein“ = „…unterstützt keine Kameras…“

aber

„Wohnzimmer Fernseher einschalten“ funktioniert.

Vorher haben beide Varianten funktioniert.

Bestätige. „Alexa, Staubsauger einschalten!“ erzählt mir was von fehlenden Kameras in diesem Gerät. „Alexa, bitte schalte den Staubsauger ein“ funktioniert. Vielleicht solltet ihr mal ein „Bitte“ einbauen :smiley:

Bei mir seit 1 Woche das gleiche Problem. Fernseher einschalten klappt und bei Fernseher ausschalten, kommt Kameras werden nicht unterstützt. Wenn ich Fernseher Aus sage geht es.

Hallo alle,
um eine bestimmte Lichtfarbe z.B. bei einem RGB-Stripe zu setzen habe ich folgendes gemacht:
Vier Variablen (rot, grün, blau und warmweiss) mit Wertebereich von 0-255 (suffix im profil auf %), ein Aktionsscript mit diesem Inhalt:

setvalue($_IPS['VARIABLE'], $_IPS['VALUE']);

$r = getvalue(45480 /*[Wohnen\Schreibtisch Bernd\Alexa\rot]*/);
$g = getvalue(47348 /*[Wohnen\Schreibtisch Bernd\Alexa\grün]*/);
$b = getvalue(58135 /*[Wohnen\Schreibtisch Bernd\Alexa\blau]*/);
$w = getvalue(28878 /*[Wohnen\Schreibtisch Bernd\Alexa\weiss]*/);

$rgb = rgb2hex($r).rgb2hex($g).rgb2hex($b);
setvalue(28801 /*[Wohnen\Schreibtisch Bernd\Alexa\Farbe]*/,hexdec($rgb));

function rgb2hex($rgb)
	{
    return sprintf("%02X", $rgb);
	}

Die Variable 28801 (profil ~HexColor) stellt mir im WF nur die Farbe dar die ich eingestellt habe…

Somit habe ich schon mal vier Slider im WF die ich in IQL4SmartHome als Variablen setzen kann.
Mit der Ansage: ‘’Alexa, stelle rot (oder grün usw.) auf 50%‘’ wird dieses auch ausgeführt.

Entweder verwendet man den HEX-Farbwert für RGB oder nutzt die entsprechenden einzelnen Values.
Um die Werte an den RGB-Dimmer zu übertragen benutze ich dann das hier:

if($_IPS['SENDER'] == "AlexaSmartHome"){
	switch($_IPS["REQUEST"]){
		case "TurnOnRequest":
		//LED Ambient1 übernehmen
		$r = getvalue(45480 /*[Wohnen\Schreibtisch Bernd\Alexa\rot]*/);
		$g = getvalue(47348 /*[Wohnen\Schreibtisch Bernd\Alexa\grün]*/);
		$b = getvalue(58135 /*[Wohnen\Schreibtisch Bernd\Alexa\blau]*/);
		$w = getvalue(28878 /*[Wohnen\Schreibtisch Bernd\Alexa\weiss]*/);

		DMX_FadeRGB(38919 /*[ArtNet LED\ArtNet LED Dimmer 1\DMX RGB1]*/, $r, $g, $b, 2);	//RGB
		DMX_FadeChannel(13029 /*[ArtNet LED\ArtNet LED Dimmer 1\DMX Output2]*/, 1, $w, 2);	//Warmweiss
		$rgb = rgb2hex($r).rgb2hex($g).rgb2hex($b);
		setvalue(34152 /*[Wohnen\Schreibtisch Bernd\LED Ambient 1\Farbauswahl]*/,hexdec($rgb));
		setvalue(44156 /*[Wohnen\Schreibtisch Bernd\LED Ambient 1\WW Helligkeit]*/,$w);
			
		break;
		case "TurnOffRequest":
		//
		
		break;
		case "SetPercentageRequest":
		
		break;
		case "IncrementPercentageRequest":
		
		break;
		case "DecrementPercentageRequest":
		
		break;
		case "SetTargetTemperatureRequest":
		
		break;
		case "IncrementTargetTemperatureRequest":
		
		break;
		case "DecrementTargetTemperatureRequest":
		
		break;
		case "SetColorRequest":
		
		break;
		
		}
}

function rgb2hex($rgb)
	{
	return sprintf("%02X", $rgb);
	}

Dieses Script dann speichern, z.B. als Ambient1, nun kann ich mit: ”Alexa, schalte Ambient1 ein” den Stripe auf die gewünschte Farbe stellen… :wink:

Wäre es evtl. möglich dem Modul IQL4SmartHome die Funktion hinzuzufügen damit die entsprechende Device-ID des Echos mit ausgegeben wird?
So wie bei dem Patami-Modul…

Bei der Gelegenheit gibt es auch eine neue Funktion:

In der Execute() Funktion eines Custom Skills könnt ihr nun mit

PHP-Code:
$deviceId = $request->GetDeviceId()
die ID des Alexa Gerätes ermitteln. Damit könnt ihr z.B. bei „Schalte den Fernseher ein“ realisieren, dass in Abhängigkeit vom Gerät (z.B. Echo Dot im Schlaf- oder Wohnzimmer) der Fernseher neben dem entsprechenden Echo Dot eingeschaltet wird.