Amazon Echo (Alexa) mit IP-Symcon verbinden

Diesen Wunsch musst du dann Amazon mitteilen.
Alexa sendet einfach 100%, also kann IPS da nicht viel machen. Zumal die Frage ist, welcher letzter Wert?
Den welchen du über IPS gesetzt hast, oder direkt über den Aktor, oder den letzten Wert von Alexa?
Somit wird das also nicht so simpel sein :wink:
Michael

Ich hätte jetzt gesagt, der letzte wert, den das Gerät vor dem ausschalten hatte.

@Nall-chan und @Fonzo danke für die Info, dann ist es ja wie bei der alten API.

Swen

Update: eine Sache habe ich noch leider geht das ändern der Farbtemperatur nicht mehr.
(SetColorTemperatureRequest, IncrementTargetTemperatureRequest und DecrementTargetTemperatureRequest)
Ist da etwas in Planung, oder gibt es neue Befehle?

Alexa.ColorTemperatureController | Alexa Device APIs

Und gibt es schon eine Anleitung für die Skript Commands?($_IPS[‚REQUEST‘])

Grade bemerkt, dass ich keine Skripte mehr benutzen kann. Ist das gewollt, kommen die noch?

Hallo,

habe leider keine bekommen, könntest du bitte nochmal schauen.
Danke und schöne Ostern an alle…

strgalt

Alexa versteht unter an zunächst mal 100%. Du kannst je nachdem welches Gerät geschaltet wird das aber unterschiedlich lösen. Eine Möglichkeit besteht bei manchen Geräten darin dies am Gerät einzustellen, z.B. kann man bei einem Homematic Dimmer in der CCU unter Parametern definieren welchen Wert die Lampe anfahren soll wenn diese eingeschaltet wird. Wenn das Gerät selber so was nicht unterstützt kannst Du in IP-Symcon eine Hilfsvariable anlegen mit einem Aktionskript. Das Aktionskript kannst Du dann ja beliebig modifizieren und schaltest damit dann die eigentliche Instanz. So kannst Du z.B. in einem Aktionskript dann definieren das z.B. um eine bestimmte Uhrzeit nur noch Wert x angefahren werden soll. Mit einer weiteren Hilfsvaribale kannst Du Dir auch den letzten Zustand merken und so gezielt den letzten Zustand wieder anfahren. Möglich ist das alles schon kostet nur ein oder zwei Hilfsvariablen pro Gerät.

Falls Du mit so einen Skript nicht zurecht kommst kannst Du ja sagen was Du wann genau machen willst dann kann man Dir auch eventuell helfen.

Color > Dimmer > Schalter. Color kann somit alles was Dimmer + Schalter können usw. Es reicht also aus, wenn ihr das Gerät für die höherwertige Aktion angebt :slight_smile:

Ich habe alle Einladungen verschickt. Wer keine bekommen hat, aber eine bekommen haben sollte, kann aus dem ersten Beitrag versuchen den Invite Link zu verwenden. Übrigens ist wichtig, dass ihr eure Amazon Mail-Adresse angegeben habt. Die von der Lizenz ist hierfür erstmal nicht so wichtig :slight_smile:

paresy

Hi Fonzo,

ich hab Homematic Geräte… In den Geräten selbst ist eingestellt, dass sie beim Schalten über den Schalter auf den letzten Level Wert gehen…

Wenn ich es richtig verstanden hab, kann man im Moment kein Script direkt mit Alexa ansprechen… (so hatte ich das in der alten Version gelöst)…

Muss ich mir noch mal genauer angucken…

Das hier war das Script in der alten Version

If (is_bool($_IPS[‚VALUE‘])){
if ($_IPS[‚VALUE‘] == true){
HM_WriteValueBoolean(45546 /[Räume\Gäste Badezimmer\Dimmer]/,„OLD_LEVEL“,true);
}else{
HM_WriteValueFloat(45546 /[Räume\Gäste Badezimmer\Dimmer]/,„LEVEL“,0.0);
}
}else{
$val= $_IPS[‚VALUE‘] / 100;
HM_WriteValueFloat(45546 /[Räume\Gäste Badezimmer\Dimmer]/,„LEVEL“,$val);
}

Dumm nur, dass man jetzt in der neuen Version kein Script direkt ansprechen kann…

Ansprechen kannst Du das wie gesagt schon entweder als Szene oder als Aktionskript, die Frage, die ich mir eher stelle ist wie differenziert man zwischen Einschaltvorgang und dem setzten auf einem Levelwert durch Alexa. Das kann letztendlich nur Paresy beantworten, ob es da eine sinnvolle Möglichkeit gibt über eine Varibale, die zusätzlich übergeben wird, dies zu differenzieren. Dies wäre zumindest notwendig, um bei einem Einschaltvorgang auf ein bestimmtes Level zu fahren und ansonsten der Level Wert beim Dimmen 1:1 an der Aktor zu übergeben.

Die $_IPS[‚REQUEST‘] Variable gibt es denke ich zur Zeit nicht, diese wäre notwendig um zwischen Einschalten und Dimmen zu unterscheiden.

Wie meinst Du das mit dem Aktionsscript?
Also ausführen bei Variablenaktualisierung?

Die Unterscheidung zwischen An- und Levelwert durch Alexa war in der alten Version möglich, da Amazon bei An den Bool True geschickt hat und wenn man eine Prozentzahl gesagt hat, eben diese als Int-Wert…
Siehst Du ja in meinem Script…

Wenn ein Bool kam, dann wurde auf den letzten gespeicherten Level Wert geschaltet…
Bei Int wurde der Wert für den Level benutzt…

Jetzt muss ich nur noch rausfinden, ob dieses Verhalten bei Amazon noch genau so ist und wie ich das Script vor dem Schalten laufen lassen kann…

Gibt es schon eine Aussage, wann Rolläden eingebunden werden?

Nein Du legst Dir einfach eine Float Hilfsvariable an (CTRL+2), weist dieser das Profil ~Intensity.1 zu und das Skript was dann als Aktionskript aufgerufen werden soll. Im Aktionskript schaltest Du den eigentlichen Aktor.

Musst Du probieren ob das noch geht, schöner fände ich so eine Request Variable wie in der vorherigen Version.

Das mit der Hilfsvariable funktioniert…
Blöderweise kommt jetzt tatsächlich nur noch eine Value Variable an… und in der steht dann eben 1 bei an oder der prozentuale Wert…
Also keine Unterscheidung mehr, ob man einen Wert oder an/aus gesagt hat…

Jetzt könnte man das Script natürlich gestalten, dass man den Old-Value nimmt, wenn 1 als Wert ankommt…
Aber dann kann man nicht mehr auf 100 % über ein Kommando setzen…

Hmmm… das gefällt mir noch nicht wirklich…

Vielleicht doch mal über die Szenen probieren…

Finde ich auch etwas unglücklich, ich würde mir hier noch eine Verbesserung wünschen, es ist ja aber auch noch Beta Phase. Ein Unterscheidung ob ein ein/aus Request kommt oder zum Beispiel ein Request zum Dimmen wäre sehr wünschenswert.

Das wäre ja dann tatsächlich noch mal eine Frage an die Symcon-Entwickler…

Gibt es keine Möglichkeit von Amazon zurückzubekommen, ob ein Brightness Wert oder ein PowerController gesetzt wurde?
Zumindest sieht es ja so im Debug aus…
Bei schalte an wird „PowerController: TurnOn“ gesendet
bei setze auf wird „SetBrightness“ gesendet…

Die Response verstehe ich noch nicht ganz…

Was im Moment auch noch zur Verwirrung führt…

das ein Gerät nur einmal eingetragen werden muss…
Ich hab ein Lightify Gerät und habe das dann unter Light(Color), Dimmer und Switch eingetragen…
Jetzt dann ja gelesen, dass es nur unter Color eingetragen werden muss und der Rest sich von selbst ergibt…

Da ich aber ja nur die Variable Color hinterlege war für mich nicht logisch, dass damit auch die Variablen Level und State abgedeckt sind… Vielleicht wäre es hier sinnvoller das Gerät hinterlegen zu können und nicht eine Variable davon…

Aus meiner Sicht wäre es auch sinnvoller die Instanz anzugeben und nicht die Variable, das wird mit kommenden Device Types von Amazon so oder so unumgänglch werden, ich wüste zumindest nicht wie man dies sinnvoll auf Variblenebene lösen will. Aber warten wir mal ab, eine Differenzierung im Skript anhand eines übergebenen Werts wäre ja schon mal ein Fortschritt, bzw. man hätte dann den gleichen Möglichkeiten wie im alten Alexa Modul.

Das sollte nicht schwer sein, in L90 wird z.B. einfach IPS_RunScriptEx aufgerufen, hier ist dann dann lediglich im Array noch der name und namespace Wert mit in zwei Variablen zu übergeben, die ja beide initial vorliegen. Diese müssen nur auch weitergereicht werden, diese liegen ja in L151 vor. Dann ist es auch möglich diese in dem Skript dann auszuwerten und damit zu arbeiten.

So, habe jetzt zwar immer noch keine Mail bekommen, aber bei Amazon war die Einladung jetzt zu sehen.

Dort steht dann:
„Zusätzlich muss das folgende PHP Modul (GitHub - IQLiving/IQL4Symcon) installiert und eingerichtet sein.“
Ist das zwingend nötig? (Habe es zumindest installiert)

Skill ist nun aktiviert, Gerät „Festplatte“ hat er gefunden.

Habe das Licht „Festplatte“ genannt (um zu sehen, ob er dies nimmt).
Bei folgendem Aufruf: „Schalte Festplatte ein“, bekomme ich: „Festplatte reagiert gerade nicht“.

Folgendes ist mir noch aufgefallen:

Im Alexa Instanz Editor unter Light (Switch) (Name: Festplatte) steht bei Status: „Action required“ (vermutlich, da die Spalte viel zu kurz ist, um das richtig lesen zu können).

Liegt es eventuell daran, das nichts passiert?

Super wäre eine kleine Anleitung für Leute wie mich :wink:

Danke schonmal vorab

Also ohne die Möglichkeiten direkt Skripte einzubinden, kann ich alexa erstmal nicht so verwenden. Grade wenn wie hier schon erwähnt ich unter dem Namen mehrere Sachen durchführen möchte (an/aus, Helligkeit, Farbtemperatur und Farbe)
Ist ja noch eine Beta.

Swen

P.s. Könnte man nicht die Liste so ändern, dass man eine Variable und eine Skript angeben kann und er eines der beiden als Favorit verwendet. (Also ist Variable leer Prüfe Skript)

Du hast eine Variable als ID angegeben und diese Variable braucht noch eine
„Eigene Aktion“ . zB ein Script in der nur folgendes steht:

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

Hi, danke für die schnelle Antwort.

genau, eine Variable als ID.
Dieser Variable habe ich jetzt ein Script hinzugefügt, welches eine andere Variable mit true beschreibt.
Bleibt jedoch leider bei dem Fehler „Festplatte reagiert nicht“, Action required steht auch immer noch da.

Ist „Festplatte“ wirklich dann das Schlagwort für Alexa?

strgalt

P.S. Leider kann man Beiträge nicht editieren, oder finde ich das nur nicht???