NEWS
Test Custom Skill v2 für ioBroker iot
-
Hallo alle zusammen,
wie in https://forum.iobroker.net/topic/56304/wie-spricht-man-mit-iobroker-iobroker-custom-skill-2022 schon diskutiert und angekündigt sind wir jetzt soweit und würden gern interessierte Nutzer zu einem Test des iobroker Custom Skill v2 einladen.
Details zu dem Skill und allen Möglichkeiten bitte ich Euch dem zweiten Post dieses Threads zu entnehmen.
Wie kann ich das jetzt testen?
Zu allererst MUSS die aktuelle Beta/Latest Version vom iot Adapter 1.13.0 installiert sein! Frühere Versionen können ggf bei Nutzung des neuen Skills crashen und Restarten was nur zu Fehlern führt. Dies bitte zuerst installieren. Alles bisherige sollte weiterhin funktionieren.
Danach bitte eine E-Mail an info@iobroker.net senden mit der Bitte für die Custom-Skill-Beta freigeschaltet zu werden unter Nennung der Amazon E-Mail. Dann erhaltet Ihr eine EIiladungsmail von Amazon.
Den Link am besten NICHT (!!) im Browser auf dem PC öffnen sondern auf einem Mobil-Device wo auch die Alexa App installiert ist!
Es kann sein das Ihr dann warten müsst bis Bluefox euch bestätigt hat.Wenn das soweit passt (bzw Ihr eine Einladung habt) und dann in der Alexa App "Skills" aufruft dann solltet Ihr eine Meldung bekommen das Ihr zur Beta eingeladen seid. ggf muss man die App nach dem Klicken auf die E-mail und einer weissen Seite in der App nochmal neu starten. Dann müsst Ihr den Skill mit eurem iot/Pro-Cloud Account verknüpfen. Danach ist alles fertig.
Unter Android scheint die App gerade sehr zickig zu sein. Eine Anleitung wie es geklappt hat gibt es unter https://forum.iobroker.net/post/908850 .
WICHTIG: Der Beta Skill ersetzt den normalen Skill soweit wir wissen, funktioniert aber laut unseren Tests.
Dann heisst es ein bissl damit rumspielen und Feedback geben.
Wenn alles ok ist dann werden wir die iot Version zeitnah in Stable geben und kurz darauf den Skill offiziell veröffentlichen.
Viel Spass,
Ingo und Bluefox
-
ioBroker Custom Skill v2 (enhanced by iot and Alexa2)
Hi All,
ich freue mich euch heute den ioBroker Custom Skill für Amazon Alexa vorstellen zu können. Dieser Post enthält einige Details über den Skill und seinen Möglichkeiten und wie dieser mit anderen Adaptern bzw. dem ioBroker-System genutzt werden kann. Vor allem mit text2Command, iot, alexa2 und eigenen Skripten mit dem JavaScript-Adapter können mächtige Interaktionen erstellt werden.
Was ist ein Custom Skill?
Ein Custom-Skill ist ein eigener Skill im Amazon Skill Store und bietet spezifischere Interaktionsmöglichkeiten als die Smart-Home-Skills, welche nur auf von Amazon definierte Geräte beschränkt sind.
Auch bei ioBroker ist der Custom Skill ein eigener Skill im Skill Store und wird mit der iobroker Pro Cloud verbunden und benötigt damit auch einen entsprechenden Pro-Cloud Account und eine damit verbundene iot Instanz.TL;DR Wofür brauche ich das jetzt? Was geht denn damit?
Ok, für die ungeduldigen hier eine ganz grobe Zusammenfassung was wir mit dem neuen Custom Skill, dem iot-Adapter und optional alexa2, text2Command und JavaScript machen können:
- Mit einer Startphrase "Alexa, sage/frage i.o. broker ..." den Skill öffnen und jeden Text an ioBroker weitergeben der gesprochen wird
- Text kann mit Text2Command oder eigenen JavaScript-Skripten verarbeitet werden
- Mit eigenen Skripten können auch Dialoge mit Rückfragen gebaut werden
- Über Alexa2 starten des Skills mit einem eigenen Text der gesprochen wird bzw. Frage die gestellt wird und dann User-Antwort entgegennehmen (Hallo Ingo, was kann ich für Dich tun?)
- Zuordnung der Geräte zu denen gesprochen wird zu Räumen und Alexa2 Devices
- Zuordnung der Benutzer die sprechen zu Namen
- Weiterleiten des erkannten Textes an Alexa2 "textCommand" State und damit Verarbeitung des Textes nur durch Amazon (so als ob man direkt gesprochen hätte)
- Weiterleiten des erkannten Textes an Alexa2 "textCommand" wenn eine eigene Verarbeitung via text2Command oder JavaScripts nicht möglich war
Wie funktioniert das ganze (wen es interessiert)?
Normalerweise haben Custom Skills vordefinierte Dialoge und Kommunikationsmodelle und -abfolgen einprogrammiert. Unser Custom Skill versuchen bestmöglich einfach den gesamten gesprochenen Text zu erfassen und an das ioBroker-System weiterzugeben. Das macht Amazon einem nicht ganz einfach, aber ich denke wir haben einen guten Kompromiss gefunden.
Es gibt genau zwei Möglichkeiten in Alexa-Custom-Skills, um den gesamten erkannten Text zu bekommen:
1.) Indem man spezielle Startworte definiert und dann den gesamten Text nach diesen bekommen kann. So haben wir in Summe 155 Startwörter definiert, wodurch 99% aller "Normalen Interaktions-Sätze" abgedeckt sein sollten, inklusive sehr vieler Kurzformen, die zB ein Gerätename oder Zimmername als erstes Wort enthalten. Die vollständige Liste ist unter https://docs.google.com/spreadsheets/d/17h7KKuYwp0atJ6_QFho1FBDulDZh7GNRDnZirP7atSg/edit?usp=sharing zu finden. Das ist bereits das Maximum an Startworten welche wir zur Verfügung haben, es können aber bei Bedarf Worte zusammengefasst werden o.ä.
2.) In dem man eine andere Interaktion hat, die vom Skill dann mit einer Rückfrage beendet wird kann man in einem "Dialogmodus" landen wo wir dann alle Worte erhalten können. Dies ist der Fall wenn man den Skill nur startet. ALternativ haben wir noch ein paar Sonderstartoptionen eingebaut, die aber nur über Umwege sinnvoll genutzt werden können (dazu später mehr)Wie interagiert man mit dem Skill?
Custom Skills haben immer eine Start-Phrase, mit der er aktiviert bzw. direkt befragt werden kann. Zusammen mit den Informationen oben ergeben sich die folgenden Interaktionsmöglichkeiten:
"menschliche" Interaktionsmöglichkeiten
- Alexa, starte i.o. broker startet den Skill und Alexa fragt "Hallo, was möchtest Du wissen oder steuern?" und ist im Dialogmodus
- Alexa, frage/sage i.o. broker <Startwort> ... erfasst den text der mit einem Startwort beginnt und erfasst idealerweise den Text und sendet Ihn an die ioBroker Instanz womit direkt gesteuert werden kann. Für den Fall das keins der möglichen Startworte genutzt wird gibt es einen "sehr groben" Fallback, welcher aber nur einzelne Wörter und nicht den gesamten text erkennen kann.
NEU: "Skript"-Interaktionsmöglichkeiten
Für die bessere Nutzung haben wir noch folgende weitere Startmöglichkeiten des Skills eingebaut, die zB per "textCommand"-State einer alexa2-Instanz ausgelöst werden können:
- Alexa, sage i.o. broker starte Dialog mit Guten morgen Ingo startet den Skill und Alexa sagt "Guten morgen Ingo" und hört danach auf weiteren Text vom User
- Alexa, sage i.o. broker starte Dialog mit Guten morgen Ingo, kann ich etwas für Dich tun startet den Skill und Alexa fragt "Guten morgen Ingo, kann ich etwas für Dich tun?" und hört danach auf weiteren Text vom User
- **Alexa, sage i.o. broker starte Dialog" startet den Skill und Alexa fragt nut "Ja?" (leider muss sie was fragen um danach zuzuhören) und ist im Dialogmodus
- In der Alexa-App kann man eine Routine anlegen, die den Custom Skill startet. Alexa fragt dann die Standardfrage "Hallo, was möchtest Du wissen oder steuern?" und ist im Dialogmodus
Wie wird der Text dann verarbeitet?
Der erkannte Text wird über die ioBroker Cloud an den iot Adapter gesendet.
Basierend auf den übermittelten Daten werden noch ein paar weitere Informationen ermittelt:
NEU: Raumzuordnung
ie Daten von Amazon enthalten eine Geräte-ID des Geräts zu dem gesprochen wurde. Diese sind leider eindeutige IDs die mit nichts direkt verknüpfbar sind. Der iot Adapter sammelt alle Geräte-IDs die genutzt werden und bietet in der UI die Möglichkeit an diese einem Raum (aus enum.rooms) zuzuordnen und auch optional ein Alexa2.Echo-Devices.XXXX gerät zu wählen.Damit steht zusätzlich ein Raumname zur Verfügung und auch eine Verknüpfung zu Alexa2 für weitere Steuermöglichkeiten.
Im iot Adapter kann auch gewählt werden ob der Raumname dem erkannten Text (für text2Command) hinzugefügt werden soll und so in Text-Regeln genutzt werden kann.
NEU: Personenzuordnung
Die Daten enthalten ebenfalls eine Benutzer/Sprecher-ID. Der iot Adapter sammelt auch diese IDs und erlaubt in der UI den IDs einen Namen zuzuordnen als Text).Es kann gewählt werden den Benutzernamen dem erkannten Text (für text2Command) hinzuzufügen und so in Text-Regeln zu nutzen.
Die weitere Verarbeitung kann nun auf verschiedene Arten erfolgen
NEU: Gesprochenen Text immer direkt an Alexa2 textCommand weitergeben
Wer den Custom Skill nur nutzen möchte um einen Dialog mit Alexa zu starten, die Verarbeitung des textes selbst aber von Alexa selbst "wie sonst auch" vornehmen lassen will, kann über die Raumzuordnung für alle Geräte das Alexa2-gerät zuordnen und der iot Adapter wird den erkannten text direkt an textCommand weitergeben und so zurück zu Amazon. Damit kann man erreichen, dass Alexa zB aus Skripten heraus gestartet wird und zuhört, und dann auch die Verarbeitung macht. Es kann allerdings sein das textCommand Limitierungen hat!
Text2Command
Wenn im iot Adapter eine text2Command Instanz konfiguriert ist wird der Text an diese gesendet und kann dort über Regeln verarbeitet werden. Die Antwort wird zurückgegeben. Der Dialog wird aber immer beendet nachdem die Antwort ausgegeben wurde, da text2Command das nicht wieder vereinen kann.
NEU: Eine neue Option erlaubt es, im Falle das text2Command den Text mit keiner Regel verarbeiten konnte, anstelle der Fehlerantwort den text immer an Alexa via Alexa2 textCommand weiterzugeben. Im Zweifel Antwortet Alexa mit einem Fehler.
Own JavaScript
Der iot-Adapter hinterlegt die Daten der Anfrage in den states iot.X.smart.lastCommand (nur der Text) und iot.X.smart.lastCommandObj als umfangreiches JSON objekt mit allen Details:
- words: Array mit den erkannten Wörtern
- intent: Information welcher Intent von Amazon erkannt wurde
- deviceId: Device-ID von Amazon
- deviceRoom: Raumname (enum) der in iot dem Raum zugeordnet ist, wenn definiert
- alexa2DeviceObjectId: Object ID des Alexa2 devices wenn definiert
- sessionId: Eindeutige ID der Kommunikations-Session, kann zur Erkennung von Interaktionsabfolgen genutzt werden
- userId: User-ID von Amazon
- userName: Benutzer-name der dem in iot User zugeordnet ist
Auf diesen stateChange kann der JavaScript Adapter nun reagieren und eigene Logiken inklusive ganzer Dialoge erstellt werden.
Eine Antwort muss bei einem, eigenen JavaScript innerhalb von 200ms erfolgen, indem entweder diese in das State iot.X.smart.lastResponse geschrieben wird oder eine Message "alexaCustomResponse" an die iot Instanz gesendet wird.
Die Antwort kann:
- der Antworttext allein sein, welcher ausgegeben und der Dialog beendet wird.
- ein stringified JSON-Objekt sein. Es sollte dann die sessionId enthalten zu der diese Antwort gehört, den responseText und optional ein Boolean shouldEndSession, welcher angibt, ob der Dialog beendet ist oder weitergeführt werden soll.
Weitere Details zu den Verarbeitungsmöglichkeiten gibts in der Readme des iot-Adapters
Jetzt dann mal viel Spass beim coole Dinge damit bauen
Ingo
-
Hallo, bekomme keine Einladung?
-
@sigi234 hhmmm. Was passier denn wenn du den Link auf machst auf nem Handy? (Bin ehrlich sind Annahmen wie das tut genau ;-)) )
-
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
@sigi234 hhmmm. Was passier denn wenn du den Link auf machst auf nem Handy? (Bin ehrlich sind Annahmen wie das tut genau
Nach open Alexa öffnet die App, dann tut sich nix
-
@sigi234 ist bei mir genauso !
schaut dann so aus:
-
@sigi234 dito bei mir !
-
Ok jetzt geht mal auf die skill Seite in der App. Kommt dann eine Meldung das ihr ne Einladung habt? So war es bei mir. Wenn nicht sendet bitte eure Amazon Account email Adressen an info@iobroker.net. Dann machen wir es manuell.
-
@apollon77 geschickt
-
@apollon77 auch geschickt
-
-
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
Kommt dann eine Meldung das ihr ne Einladung habt?
Nein
-
Bluefox meldet: zwei User eingetragen ;-)) solltet eine email haben. Von da öffnen auf Handy.
Und dann in App und auf der weisen Seite dann nochmal ins skills Menü . Da hab ich dann gestern ne Meldung bekommen das ich eingeladen wurde und dann neu verknüpfen
-
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
zwei User eingetragen
ok, ich bin es wohl dann nicht, daher bin ich da raus - leider
-
@djmarc75 hast Du Email an info@iobroker.net geschickt? Haste ne mail von amazon bekommen? (sorry falls ich mich verzählt hatte)
-
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
hast Du Email an info@iobroker.net geschickt?
ja klar: https://forum.iobroker.net/post/907239
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
Haste ne mail von amazon bekommen?
auch... ioBroker - no-reply@amazon.com
-
@djmarc75 na dann versuch doch mal Vllt warns dann doch 3 Natürlich werden wir niemand Testwilligen ausschliessen
-
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
na dann versuch doch mal
Was genau ?
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
Vllt warns dann doch 3
?? 3 was ??
@apollon77 sagte in Test Custom Skill v2 für ioBroker iot:
Natürlich werden wir niemand Testwilligen ausschliessen
Das wäre schön...
-
Also nochmal zusammengafasst und um verwirrung und irgendwie komisches aneinander vorbei reden zu beenden
Da der Einladunglink oben nicht tut. Bitte eine E-Mail an info@iobroker.net senden mit Eurer Amazon-E-Mail und um Freischaltung für Beta Test Custom Skill bitten.
Die Antwort auf die E-Mail ist quasi eine Mail von Amazon mit der Einladung zum Test. Da ist ein Link drin.
Diesen Link am besten auf einem Handy auf machen wo auch die Alexa App drauf ist. Die zeigt dann aber komischerweise eine weisse Seite an.Wenn man Sie aber dann schliesst bzw danach auf den Burger-Menü (3 Striche) -> "Skills" Punkt in der App geht dann hat mich gestern eine Seite begrüsst die über den test informiert hat. Dort dann diesen Custom Skill mit dem iot verknüpfen und fertig.
So jetzt ... bei wem tat das? Was tut nicht
-
@apollon77 siehe hier:
https://forum.iobroker.net/topic/60835/test-custom-skill-v2-für-iobroker-iot/6?_=1670676084356und das schon seit heute morgen !