NEWS
[gelöst] Statusabfrage mit Alexa (Anwesenheitsliste)
-
Hallo,
ich habe beim mir eine Script erstellt, mit der mir die Liste der Anwesenden + Gäste von Alexa angesagt werden.Damit die Ansage auch an der Alexa ankommt, über der ich die Anfrage gestartet habe, habe ich das bisher so wie hier gelöst. Dies scheint mir aber eher ein Umweg zu sein und wolllte es dann über die Statusabfrage eines Gerätes lösen.
Somit habe ich über Geräte ein virtuelles Gerät vom Typ "Info" angelegt. Habe das Objekt mit Schreibrechte und der Rolle Value und der Art Zeichenkette versehen und dann per Script mein Ansagetext dort hineingeschrieben.
Anschließend habe ich das Objekt erfolgreich mit Alexa verbunden.
Wenn ich jetzt aber Frage: Alexe, wie ist der Status von Anwesenheit.
Bekomme ich als Antwort: Gästezimmer unterstützt das nicht.Wo fehlt mir hier die richtige Einstellung? Eine Temperaturabfrage (Rolle: value.temperature) funktioniert in einem anderen Fall ohne Probleme.
-
@MichaHidd Zeig mal bitte die entsprechenden Bilder zu dem Datenpunkt und der Einstellung zum Alexa-Gerät.
Unabhängig davon kann man den Satz "wie ist der Status von Anwesenheit" auch als Routine hinterlegen und somit verhindern, das Alexa nach bestimmten Schlüsselwörtern sucht und dann feststellt, dass das angesprochene Gerät das nicht unterstützt.
Status ist z.B. so ein Schlüsselwort. Da hat Alexa eigene Routine dahinter angelegt und reagiert entsprechend.
Vielleicht reicht auch schon die Änderung vom Satz: wie ist die Anwesenheit, oder nur Anwesenheit , wenn Anwesenheit das in iot definierte Gerät ist. -
@MCU Bilder reiche ich später nach.
Aber: Könnte es sein, dass dies so mit Alexa gar nicht möglich ist? Über Alexa-Routinen geht es nicht und habe auch in anderen Foren nicht gefunden, dass Alexa einen Text aus einer Variable etc. abfragen und vorlesen kann.
dennoch:
Verstehe ich es evtl. richtig, dass für diese Aufgabe der Skill Custom ioBroker genutzt werden muss? Die Beispielfragen sehen sehr vielversprechend aus:
7.) Personenabfragen (Typ-Text für Text2Command: askWho)- ... wer (hat zuletzt das Haus betreten)
-
@MichaHidd Alexa kann Text aus einer Variablen vorlesen mit dem Alexa2-Adapter.
iot-Adapter muss installiert werden damit iobroker mit Alexa und der Cloud kommunizieren kann.
Und der Skill iobroker.iot muss installiert werden in der Alexa App. -
@MCU Problem ist gelöst
Die Adapter waren bereits alle installiert, aber man bekommt Alexa nicht so einfach dazu, den Inhalt vorzulesen, wenn es sich um Text handelt.
Mit dem Skill Custom ioBroker und Text2Speach funktioniert das einwandfre.
In Test2Speach einfach den zu sprechenden Text vorgeben (wer anwesend ist / wer ist anwesend) und mit dem Datenpunkt verknüpfen, den ich mit einem script gefüllt habe.Frage ich jetzt:
Alexa, frage I O Broker, wer anwesend ist (oder wer ist anwesend), wird der Text des Datenpunktes entsprechen vorglesen. -
@MichaHidd Kannst du bitte ein Beispiel bildlich darstellen. Man kann es dann schneller nachvollziehen. Danke.
-
@MCU
Habe es jetzt ohne Alias gelöst (denke ich) und bin wie folgt vorgegangen:
Schritt 1:
Fritzbox CheckPresence installiert und eingerichtet.Schritt 2:
Ein zusätzlichen Datenpunkt im Opjekt fb-checkpresence.0 eingerichtet
Schritt 3:
Mit Blockly ein Script erstellt, dass bei jeder Änderung beim Anwesenheitscheck einen vorgefertigten Ansagetext in den oben erstellten Datenpunkt schreibt:
Schritt 4:
Text to command installiertSchritt 5:
Textkommando erstellt, dass er bei der Frage: wer anwesend ist / wer ist anwesend den entsprechenden Datenpunkt vorliest
Schritt 6:
Den Skill ioBroker in Alexa aktiviert und mit dem Konto (iobroker.pro) verknüpftSchritt 7:
Alexa befragenIch bin mir nur nicht so sicher, ob man einfach so einen Datenpunkt hinzufügen darf, oder ob der irgendwann gelöscht wird. Scheint aber bisher so ganz gut zu klappen.
-
@MichaHidd Man sollte Datenpunkte immer in javascript.0 oder in 0_userdata.0 hinzufügen.
-
@MichaHidd
Mir hat das oft auch nicht so getaugt und noch zusätzlich frage io Broker will ich in vielen Fällen auch nicht sagen. Ich mache es jetzt teils über den alexa2 Adapter und lege in der alexa app auf dem handy eine Routine an. Sage ich jetzt "Alexa, wie warm ist es hier?" Triggert die Routine und über ein blockly schreibe ich in den speak Datenpunkt von dem dot "im Wohnzimmer sind es (Datenpunkt Temperatur) Grad"
Nachteil an der Lösung ist, dass man die Routine ganz genau so nennen muss damit Alexa damit etwas anfangen kann. -
@Ocrim
Genau das wollte ich ja gerade nicht, weil ich dann durch eine ellenlange Wenn-Dann-Abfrage die Sprachausgabe auf die Alexa bekomme, von der ich die Frage stelle (hatte ich auch schon im Einsatz). Wobei man diese Wenn-Dann-Abfrage auchnur ein Mal in einem Script speichern müsste.