Amazon Echo (Alexa) mit IP-Symcon verbinden

Hast du denn versucht die Temperatur per Sprache abzufragen ?
Ja habe ich, jetzt geht es, habe vielleicht nicht genug abgewartet oder nicht richtig gefragt :eek:. Habe jetzt mal eine KNX Temp und eine HM Temp angelegt und beide lassen sich abfragen. :smiley:

Vielen Dank…

Nein, der Skill wird der selbe bleiben - Wir werden dazu ebenfalls noch zusammen mit den Dave den „alten“ Skill auf V3 anpassen, jedoch ohne neue V3 Funktionen. Das ganze dauert aber noch ein wenig. Für neue Funktionen möchten gerne zur Zeit das neue Modul testen, welches alle neuen Funktionen bieten wird.

paresy

Gibt es eine Kurzanleitung wie ein Schloss einzubinden ist? Was muss das Variablenprofil sein? Gibt es da z.B. ein Beispiel für eine Keymatic? Was ist dann theoretisch möglich nur auf und abschließen oder auch das Abfragen des Status?

Gibt des des weiteren ein Beispiel Skript für eine Szenensteuerung? Wird das Skript dann einfach ausgeführt oder kann ich dort irgendwelche Parameter auswerten die von Alexa übergeben werden?

Sprich kann ich auch bei einer Szene ein/aus sagen oder nur diese starten, gibt es da irgendwo bei Amazon nähere Infos zu?

Ich habe auf jeden Fall alle hinzugefügt die sich angemeldet haben. Bei wem keine E-Mail angekommen ist, der kann den Invite Link auf der ersten Seite mal ausprobieren.

paresy

Klappt bei Euch Alexa Licht einschalten? Oder muss das eine ganz spezielle Formulierung sein? Bei mir sagt Alexa dann so was wie Licht kennt sie nicht.

Funktioniert bei mir einwandfrei!
Ich habe eine Gruppe Angelegt mit dem Namen „Büro Gruppe“ dieser Gruppe sind dann die Geräte zugeordnet.
Licht nennt sich zb „Licht Büro“ zum schalten sage ich wenn ich im Büro bin einfach nur „Alexa, schalte Licht ein“
aus einem anderen Raum wird das Licht mit „Alexa, schalte Licht im Büro ein“ geschalten.

Da es noch zu wenig unterstützte Geräte gibt musste ich meine Lautsprecher auch Light (Switch) zuordnen, somit werden leider bei „Licht aus“ diese auch mit ausgeschalten.
Ich hoffe das die unterstützten Geräte bald erweitert werden.
Die Einbindung von Scripten fehlt mir sehr, hoffe da kommt noch was…

Danke das probiere ich heute Abend mal aus, kann sein das Alexa da eine ganz bestimmte Redewendung erwartet.
Alexa Licht einschalten ging bei mir nicht, aber Deine Formulierung ist ja auch anders. Intuitiv ist da immer noch was anderes, wenn man genau wissen muss was zu sagen ist, das kann man dann zwar selber bedienen, aber jeder Gast wird z.B. nicht kapieren wie man wo das Licht einschaltet. Da ist die Sprachsteuerung von einer allgemeinen Alltagstauglichkeit noch entfernt, ein Lichtschalter weis jeder wie man diesen drückt.

Ich habe mir beim Editieren der Alexa Instanz gerade die Instanz zerschossen :frowning:

Beim Speichern der Instanz kam es zu den Fehlermeldungen:

Warning: Invalid argument supplied for foreach()
   Error in Script C:\IP-Symcon\modules\Alexa\Alexa\registry.php on Line 48
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
   48 in modules\Alexa\Alexa\registry.php (call IPSLogger_PhpErrorHandler)
   58 in modules\Alexa\Alexa\module.php (call updateProperties)
    3 in C:\Windows\System32\- (call ApplyChanges)

Warning: Invalid argument supplied for foreach()
   Error in Script C:\IP-Symcon\modules\Alexa\Alexa\registry.php on Line 75
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
   75 in modules\Alexa\Alexa\registry.php (call IPSLogger_PhpErrorHandler)
   58 in modules\Alexa\Alexa\module.php (call updateProperties)
    3 in C:\Windows\System32\- (call ApplyChanges)

Beim Öffnen erhalte ich jetzt die Fehlermeldung

Warning: Invalid argument supplied for foreach()
   Error in Script C:\IP-Symcon\modules\Alexa\Alexa\registry.php on Line 173
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  173 in modules\Alexa\Alexa\registry.php (call IPSLogger_PhpErrorHandler)
  207 in modules\Alexa\Alexa\module.php (call getConfigurationForm)
    3 in C:\Windows\System32\- (call GetConfigurationForm)

Ich habe mal auf Zeile 173 die folgenden Anweisungen eingefügt

            echo 'DeviceType: '.$deviceType.PHP_EOL;
            var_dump(IPS_GetProperty($this->instanceID, self::propertyPrefix . $deviceType));

Das Ergebnis ist:

LightSwitch.PNG

LightSwitch enthält nur noch einen leeren String und nicht mehr meine Geräte.

Ich werde wohl die Instanz löschen müssen, oder?

Gruß

Burkhard

Hallo,

zu ein paar Fragen und Anmerkungen, die hier kamen:

  • Ihr braucht keine „passenden“ Profile für eure Variablen. Ein Schloss kann also auch ein ‚Switch‘ sein und so weiter. Das ist natürlich insbesondere praktisch, wenn ihr eigene Profile verwenden wollt. Die Informationen, um was für ein Gerät es sich handelt kommt in diesem Modul ja von den unterschiedlichen Gerätelisten

  • Ein Schloss benötigt eine Boolean-Variable, bei der true für verschlossen steht

  • Eine Szene aktiviert ein Skript ohne zusätzliche Parameter. Bisher sind Szenen nicht deaktivierbar. Dafür wird noch ein zusätzlicher Gerätetyp kommen, bei welchem man dann zwei Skripte auswählen kann.

Und buumas Fehlermeldung schaue ich mir jetzt an.

Könnte nicht wenigstens die übliche Systemvariable $_IPS[‚VALUE‘] true oder false enthalten beim aktivieren / deaktivieren einer Szene?
Zwei Scripte sind ja wirklich ungewöhnlich im IPS-Universum.
Michael

Zu der Fehlermeldung: Dafür war wohl ein Fehler bei den Listen in der webbasierten Konsole verantwortlich. Der Fix dazu kommt.

Die Daten für die Lichtschalter sind aber wohl leider weg. Um weiter mit Alexa zu basteln kannst du entweder die Instanz löschen und neu erstellen oder, was inbesondere praktisch ist, falls du die Einträge der anderen Tabellen speichern möchtest, die Property der Lichtschalter-Tabelle, also DeviceLightSwitch auf „“ setzen.

Hallo Paresy,

ich habe leider noch keine bekommen.
Hatte Dir geschrieben das ich euch die falsche E-Mail Adresse in das Formular eingetragen hatte.
Richte kam per PM

Hi WiBo,

ich habe die richtige Mail eingetragen. Schau mal im ersten Post - da ist ein Invite Link, über den du ggf. den Skill freischalten kannst.

paresy

Jetzt hat es gefunkt, Danke

Ok. Dann weiß ich bescheid und nutze erst einmal nicht die Listenbearbeitung der WebKonsole. Ich habe die Instanz neu angelegt, bin ja noch am spielen :slight_smile:

Ich weis zwar noch nicht wie man das dann am besten umsetzt aber beim ersten Testen fällt mir doch eine große Schwäche im jetzigen Skill auf es werden ja ausschließlich einzelne Variablen verlinkt und dann diese Variablen in IP-Symcon verstellt.

Ein Gerät kann aber abhängig von den Eigenschaften die es besitzt ja mehrere Eigenschaften haben

[ul]
[li]PowerController
[/li][li]BrightnessController
[/li][li]ColorTemperatureController
[/li][/ul]

In IP-Symcon regelt jeweils eine andere Variable den jeweiligen Wert. Wichtig wäre es aber eigentlich einem Alexa Gerät je nachdem was es für ein Geräte Typ ist auch mehrere Variablen zuordnen zu können und das dieses dann trotzdem Alexa als ein Gerät bekannt ist, nur das eben unterschiedliche Variablen angesprochen werden bei unterschiedlichen Sprachbefehlen von Alexa.

Wenn man ein alternativ ein Skript verlinken könnte und dort die Anforderung von Alexa durchgereicht wird könnte man zumindest mit einem Skript alles als ein Gerät abbilden. Besser wäre es aber wie gesagt das Modul würde sich darum kümmern und man könnte je nach Typ des Geräts auch mehrere Variablen angeben.

Ich habe jetzt verschiedene Leuchten (Switch) angelegt und kann sie auch über die Alexa App an- und ausschalten. Nur eine Leuchte will nicht. Bei ihr sehe ich zwar den korrekten Zustand in der Alexa App, kann sie aber nicht schalten.
Beim Schalten kommt in der Alexa App der Hinweis „Ein Problem ist aufgetreten“.

Das Besondere der Leuchte ist, dass die zugehörige Variable keine Statusvariable ist, sondern eine ‚einfache‘ Boolean Variable, bei deren Veränderung entsprechende Aktionen durchgeführt werden.

Was könnte die Ursache sein?

Gruß

Burkhard

@Fonzo: Die Geräte sind kein exaktes Mapping auf die Alexa-Interfaces. Das dimmbare Licht unterstützt beispielsweise, wie Burkhard korrekt erkannt hat, sowohl PowerController als auch BrightnessController. Dies gilt auch analog für farbiges Licht.

@buumas: Beim Schalten wird die Standardaktion der Variable ausgeführt und nicht einfach der Wert geändert. Wahrscheinlich hat die Variable keine Aktion. Wenn du einfach die Variable schalten möchtest, müsstest du noch ein entsprechendes minimales Aktionsskript hinzufügen. Das kannst du aber mittlerweile ja auch komfortabel über den Bearbeiten-Dialog machen.

Die Variable hat keine Standardaktion, aber eine ‚Eigene Aktion‘. Aus dem Webfront lässt sich die Variable auch umsetzen. Das zugeordnete Skript wird aber nicht aufgerufen…

//edit: sehe gerade, dass auch gar kein TurnOn Request kommt. Beim Anlernen hat Alexa die Leuchte aber erkannt.

Und was heisst das jetzt konkret? Bei einem dimmbaren Gerät habe ich ja festgestellt das ich an/aus dimmen sagen kann und das ganze ist auf eine Variable verlinkt. Wie wäre das jetzt analog bei farbigen Licht? Da hätte das Gerät ja dann drei Controller Eigenschaften aber ich habe ja mindestens zwei Variablen in IP-Symcon die das steuern, einmal die Variable mit Hexcolor für das Einstellen der Farbe und einmal die Variable für die Helligkeit.

Spätestens bei Entertainment Device geht das Konzept nur einzelne Variablen zu verlinken gar nicht mehr auf.

Das ist dann

[ul]
[li]Alexa.PowerController[/li][li]Alexa.ChannelController[/li][li]Alexa.PlaybackController#[/li][li]Alexa.Speaker[/li][li]Alexa.StepSpeaker[/li][/ul]
in einem Gerät und das sind definitiv in IP-Symcon fünf verschiedene Variablen, nämlich eine Bool zum ein/aus schalten des Geräts und drei mal Integer für die Auswahl der Inputs bzw. Kanäle, eine weitere Integer für Befehle wie Play, Pause, Stop, eine Integer für Volume Up , Down, und eine Float für einen Volume Slider.

In sofern muss es dann eine Möglichkeit geben entweder ein einzelnes Skript anzuhängen das alles auswerten kann und die Alexa Anforderungen weiter verarbeiten kann oder eben viel besser die passenden Variablen für den passenden Controllertype pro Alexa Gerät auswählbar sind.

Es müsste also so was wie die Liste in der Liste geben oder wie auch immer man das dann löst.