NEWS
Alexa Wecker schaltet Beleuchtung an
-
@sveni_lee sagte in Alexa Wecker schaltet Beleuchtung an:
on(/^alexa2.0.Echo-Devices.G070xxx.Alarm..+triggered$/, function(dp) {});
OK, und wie baue ich das in ein Blockly ein? Java Script kann ich nicht
Wobei ich auch nicht verstehe, wie man ein DP in ein Script einbauen kann, den es zu dem Zeitpunkt noch nicht gibt, da der ja erst beim Erstellen des Wecker angelegt wird. -
ich kenne mich mit Blockly nicht wirklich gut aus aber im Grunde ist es auch nur visualisiertes JavaScript.
Eventuell geht aber sowasder RegExp-Ausdruck muß für Blockly eventuell angepasst werden und muß natürlich auch auf deinen Echo angepasst werden.
-
@sveni_lee
ich teste das mal, da ich das eben immer noch nicht ganz verstehe was ein "RegExp" ist und wo der herkommt.
Wäre aber zu schön, wenn das funktioniert, da das Blockly hier doch etwas verwirrend ist und ich auch der Meinung bin, dass das einfach gehen muss.Nur noch mal zur Sicherheit, der DP existiert nicht bis ich ihn anlege und es sieht vorher so aus:
Wenn ich hier also was anpassen muss, dann hab ich eh nur das Device G090U6108...., was dann eben eingetragen werden muss.
Danke schon mal für die Hilfe. -
@Jan1
ja, das ist in Ordnung. Der Datenpunkt muß auch nicht existieren...^alexa2.0\.Echo-Devices\.G090U61091570C7A\.Alarm\..+triggered$
Ein RegExP ist eine Tool zum zum "sammeln" und vergleichen von Ausdrücken in diesem Fall DPs.
Mit einem Array kannst du ja mehrere DP triggern. Mit diesem RegExP machst Du im Grunde etwas ähnliches.
Du sagst JavaSkript es soll alle Datenpunkte finden und triggern die mit alexa2.0.Echo-Devices.G090U61091570C7A.Alarm beginnen und mit .triggered auswerten(triggern).in diesem Fall
on(/^alexa2.0\.Echo-Devices\.G090U61091570C7A\.Alarm\..+triggered$/, function(dp) {});
in diesem Fall wird ausgewertet ob die DPs auf true gehen. Wenn also kein DP gefunden wird dann passiert halt nichts.
Das war jetzt sicher nicht 100% korreckt aber hoffentlich verständlich.
-
@sveni_lee
OK, das hört sich mal gut an und war auch recht verständlich.
Das probier ich morgen mal aus, heute fehlt mir etwas die Zeit. -
@Jan1
Du kannst dich auch langsam mal an JavaSkript ran wagen...on(/^alexa2.0\.Echo-Devices\.G090U61091570C7A\.Alarm\..+triggered$/, function(dp) { setState("alexa2.0.Echo-Devices.G090U61091570C7A.Commands.deviceStop"/*Aelxa Stop*/, true); });
damit triggerst Du deinen Wecker und Stoppst ihn sofort wenn er auslöst... Eigentlich solltest Du dann nichts hören und könntest beliebiege Befehle anfügen.
-
@sveni_lee
Ich komme mit Blockly ganz gut zurecht
Problem bestand hier eher darin, dass ich die Funktion von "RegExp" nicht kannte und somit auch mit Java Script auf die Nase gefallen wäre. -
@Jan1
Dann bin ich ja froh, dass ich jetzt den ganzen Aufwand versteheIch hatte mich das von Anfang an gefragt, warum nicht auf Wildcards getriggert wird.
Da ich aber keine fremde Frau im Haus habe, war ich mir nicht sicher, ob da noch ein Stolperstein war -
@Homoran
Ich hatte das auch schon mal vor einiger Zeit in einem eigenen Thread gefragt, wie man das erledigen kann und da kam nicht wirklich was rüber. Deshalb dachte ich schon, dass das nicht geht. So wie ich es jetzt aber verstanden habe, ist der Ansatz eigentlich sehr einfach.
Wie ich oben schon geschrieben habe, ist das eher ne Spielerei und normal sollte so was banales doch mit Alexa schon intern funktionieren, machen die bei Amazon aber nicht. Es ist eben doch etwas leichter mal schnell ein Wecker bei Bedarf kurz mit Alex zu stellen und da mein IOBroker Wecker da schon ne ganze Menge in Abhängigkeit weiterer Faktoren steuert, wollt ich den Komfort eben auch beim Alexa Wecker haben, falls ich den mal verwenden möchte und genau das war ohne den Ansatz eben schwieriger als erwartet. -
Mein Script funktioniert so:
Ein Wecker wird gestellt über Alexa.
Das Script erkennt das Wort "Wecker".
Jetzt guckt Blockly nach, wo der Wecker ist, der "aktiv" ist und speichert den Pfad zu "trigger" im Alexa2 Adapter.
"trigger" ändert sich zu "true", wenn der Wecker anfängt zu klingeln.
Das erkennt dann Blockly und schaltet die Lampe.
Mehr ist das nicht.Da kann man dann natürlich auch mit angeben, das der Wecker sofort aus geht, Lieder abspielt, Jallo hoch geht, Kaffeemaschine an geht, Wetter gesagt wird oder was auch immer..
-
@Elzershark
Das macht bei mir eh schon ein separates Script, ich brauch hier schlicht den aktiven Wecker als Trigger, das reicht mir vollkommen aus -
@Jan1
vielleicht mal ein Anfang zum "rum spielen"....Hier ist es egal ob der Wecker per Sprache oder per App oder iobroker gestellt wird. (mußt Du vielleicht dann zusätzlich noch .triggered auswerten) Den dazugehörigen ECHO kann man ja über diesen Weg auch ermitteln. -
So, alles zu kompliziert.
Wird ein Wecker ausgelöst, werden die Sachen erledigt, die erledigt werden sollen.
Viel zu kompliziert gedacht von mir -
@Elzershark
dann reicht auch falls Wert (=wahr kannst Du weg lassen) -
@dslraser
Jo. Ich schreib das noch so, da wo der Wecker klingelt, also Schlafzimmer, Kinderzimmer u.s.w., das dann auch nur "Da" die Lampen angehen, u.s.w.Einfach für jeden Echo den Block kopieren, und das Licht, oder was auch immer passieren soll, passiert dann, wenn der Wecker klingelt.
Pfad zum Alexa2 Adapter kopieren und umändern. Beispiel:
alexa2.0.Echo-Devices.G000MW04741702CN.Alarm.00444ada-fc0d-37e3-84ff-03b6b8e93613.triggered
umändern in
alexa2.0.Echo-Devices.G000MW04741702CN.Alarm.*.triggered
und dann einfügen.Von nem riesen Script zu nem Einzeiler. Schon fasst Peinlich..
-
@Elzershark
Ok das war ja das Beispiel @sveni_lee oben und wenn das funktioniert, brauch ich das gar nicht mehr testen.
Wenn man die Funktion dieses Block kennt, ist es wirklich sehr einfachDa muss ich mir gleich noch was ausdenken wo man das noch überall sinnvoll einsetzen kann.
-
naja, im Grunde überall wo Du verschiedene DP überwachenmöchtests die entweder mit dem gleichen Pfad beginnen oder aber gleich enden... Das gilt für eine Menge Adapter...
-
@sveni_lee
Eben und da gibts am WE viel zu vereinfachen. Bei Blockly erklärt sich das meiste von selber, aber solche Blöcke eben nicht. Deshalb freue ich mich da immer wie Bolle, wenn einer hier mal ein Beispiel aufzeigt was das Ding macht und gleich ein praktisches Beispiel dazu.Das lustige bei Dir ist dann noch, dass Du von Blockly kein Plan hast, aber eben JavaScript beherrschst.
-
@Elzershark
der Trigger RegExp gibt es bei mir nicht. Bekomme auch ne Fehlermeldung beim Script kopieren,
-