NEWS
[gelöst]Alexa Weckzeit bearbeiten
-
@nick-the-bird-92
Ich nutze RegExp um auf jede aktive Weckzeit zu triggern
In deinem Fall würde darin stehen:
alexa2\.0\.Echo-Devices\.G091EV12202406HS\.MusicAlarm\..*\.triggered
Wie damit 30 Minuten vorher gewckt werden kann weis ich nicht
-
@nick-the-bird-92 sagte in Alexa Weckzeit bearbeiten:
@asgothian
Erst einmal vielen Dank für die schnelle Rückmeldung.Das klappt leider nicht. Alexa erstellt ja immer wieder neue Wecker (für unterschiedliche Zeiten).
Hiermit kann ich ja triggern ob ein Wecker aktiviert wird (deswegen das "*")
alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm. * .enabledIch will jetzt, dass die dazugehörige Zeit ausgelesen wird.
Das kann zwar Alarm1 sein, aber auch Alarm 2 oder 3 oder 4.
Mit deinem Vorschlag hab ich ja immer nur Alarm1 als trigger.
Wie @FredF schon geschrieben hat - der Trigger sollte auf Regex Basis auf alle möglicherweise durch Alexa angelegten Trigger laufen. Im Trigger selber hast du dann das entsprechende Objekt in dem du die ID genau des Datenpunktes hast der den Trigger ausgelöst hat.
A.
-
@fredf
RegExp nutze ich auch genau so, allerdings ist das ja gerade der begrenzende Faktor. -
Ich glaube wir reden etwas aneinander vorbei.
Wie bekomme ich denn dann den Datenpunkt? Wenn ich nach .enabled trigger und dann die entsprechende Weckzeit (.time)ausgeben will? -
So hab ich es momentan gelöst. RegExt überwacht .trigger
Allerdings ist der Datenpunkt relativ unnütz, wenn man eine Routine vor dem aktivieren starten will.
Deswegen kam ich auf die Idee .enabled zu triggern und daraufhin die Weckzeit auf 30 Minuten vorher abzuändern.
Eine andere Lösung wäre auch okay. Z.B. beim Aktivieren des Weckers, auslesen der Weckzeit, 30min abziehen und abspeichern als neuen Datenpunkt. Diesen Datenpunkt dann als auslöser für den "Sonnenwecker" zu nehmen. Allerdings hab ich mit Datenpunkte erstellen komplett keine Erfahrung.
Habe auch wirklich schon sehr viel ausprobiert und würde gerne mal etwas weiter kommen
LG
Nick -
Es gibt im "Trigger" Bereich einen Baustein "Objekt ID". Mit diesem greifst Du direkt auf die Objekteide des Datenpunktes zu der den Trigger ausgelöst hat.
Wenn du also einen Regex Trigger auf
alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.enabled
hast, und der Datenpunktalexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.Alarm1.enabled
den Trigger auslöst, dann beinhaltet dieser Baustein die ID des auslösenden DatenpunktesDu kannst also z.Bsp. so auf die anderen Datenpunkte zugreifen. (Hinweis: ich weiss nicht wie die Datenpunkte bei Alexa heissen - ich bin einfach davon ausgegangen das zu einen "...enabled" Datenpunkt auch ein "...time" Datenpunkt existiert. Das müsstest du ggf. anpassen.
Ich hoffe jetzt wird klarer wie das funktionieren kann.
A.
p.s. Dein Skript teil kann theoretisch funktionieren (ohne die Zeitanpassung) wenn du
durch den besagten Baustein mit
Objekt ID
ersetzt und dieses aufWert
umstellst. dann beinhaltet es den Wert des Datenpunktes der den Trigger ausgelöst hat. -
p.s. Dein Skript teil kann theoretisch funktionieren (ohne die Zeitanpassung) wenn du
durch den besagten Baustein mit
Objekt ID
ersetzt und dieses aufWert
umstellst. dann beinhaltet es den Wert des Datenpunktes der den Trigger ausgelöst hat.Wieso theoretisch? Funktioniert doch :S
-
@asgothian sagte in Alexa Weckzeit bearbeiten:
Es gibt im "Trigger" Bereich einen Baustein "Objekt ID". Mit diesem greifst Du direkt auf die Objekteide des Datenpunktes zu der den Trigger ausgelöst hat.
Wenn du also einen Regex Trigger auf
alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.enabled
hast, und der Datenpunktalexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.Alarm1.enabled
den Trigger auslöst, dann beinhaltet dieser Baustein die ID des auslösenden DatenpunktesOkay, das verstehe ich inhaltlich. Das ja schonmal nicht schlecht
Du kannst also z.Bsp. so auf die anderen Datenpunkte zugreifen. (Hinweis: ich weiss nicht wie die Datenpunkte bei Alexa heissen - ich bin einfach davon ausgegangen das zu einen "...enabled" Datenpunkt auch ein "...time" Datenpunkt existiert. Das müsstest du ggf. anpassen.
Erst einmal, war richtig mit dem .time Datenpunkt
Pu, das mit den Listen ist komplett neu für mich.
Also FallsObjekt ist ja klar.
Dann hast du eine Variable geschaffen. Diese wird mit einer Liste beschrieben, aus dem Text von meinem Trigger (also alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.enabled)
->Was muss denn da bei Objekt ID rein? Ist das einfach nur die Variable in der Liste ID_als_Liste gespeichert wird?Da wird dann enabled weggenommen und dafür time eingesetzt.
Nun füttere ich eine 2. Variable mit dem Text aus der Liste (sprich alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.time)
Dann die 3. Variable die den Wert von der 2. Variable ausliest (also meine Weckzeit)
Ich hoffe jetzt wird klarer wie das funktionieren kann.
Nochmal vielen Dank für das erklären und die Hilfe. Langsam komme dahinter wie das mit den Listen laufen könnte. Hoffe ich hab das soweit alles richtig verstanden
-
@nick-the-bird-92 sagte in Alexa Weckzeit bearbeiten:
p.s. Dein Skript teil kann theoretisch funktionieren (ohne die Zeitanpassung) wenn du
durch den besagten Baustein mit
Objekt ID
ersetzt und dieses aufWert
umstellst. dann beinhaltet es den Wert des Datenpunktes der den Trigger ausgelöst hat.Wieso theoretisch? Funktioniert doch :S
Bedingt. Ich gehe davon aus das
immer dann wahr ist wenn mindestens einer der in der Regex vorhandenen Datenpunkte wahr ist.
A.
-
@nick-the-bird-92 sagte in Alexa Weckzeit bearbeiten:
@asgothian sagte in Alexa Weckzeit bearbeiten:
Es gibt im "Trigger" Bereich einen Baustein "Objekt ID". Mit diesem greifst Du direkt auf die Objekteide des Datenpunktes zu der den Trigger ausgelöst hat.
Wenn du also einen Regex Trigger auf
alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.enabled
hast, und der Datenpunktalexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.Alarm1.enabled
den Trigger auslöst, dann beinhaltet dieser Baustein die ID des auslösenden DatenpunktesOkay, das verstehe ich inhaltlich. Das ja schonmal nicht schlecht
Du kannst also z.Bsp. so auf die anderen Datenpunkte zugreifen. (Hinweis: ich weiss nicht wie die Datenpunkte bei Alexa heissen - ich bin einfach davon ausgegangen das zu einen "...enabled" Datenpunkt auch ein "...time" Datenpunkt existiert. Das müsstest du ggf. anpassen.
Erst einmal, war richtig mit dem .time Datenpunkt
Pu, das mit den Listen ist komplett neu für mich.
Also FallsObjekt ist ja klar.
Dann hast du eine Variable geschaffen. Diese wird mit einer Liste beschrieben, aus dem Text von meinem Trigger (also alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.enabled)
->Was muss denn da bei Objekt ID rein? Ist das einfach nur die Variable in der Liste ID_als_Liste gespeichert wird?Der Baustein Objekt ID liefert schon genau das was du benötigst - die ID des Bausteins der den Trigger ausgelöst hat. Also wenn
- die Regex 'alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.time' ist.
- die Kanäle Devices.G091EV12202406HS.MusicAlarm.Alarm_1, Devices.G091EV12202406HS.MusicAlarm.Alarm_2 und Devices.G091EV12202406HS.MusicAlarm.Alarm_3 existieren
- Der Datenpunkt Devices.G091EV12202406HS.MusicAlarm.Alarm_2.enabled auf Wahr aktualisiert wird
dann steht in dem Baustein
Objekt ID
der text 'Devices.G091EV12202406HS.MusicAlarm.Alarm_2.enabled'Da wird dann enabled weggenommen und dafür time eingesetzt.
Nun füttere ich eine 2. Variable mit dem Text aus der Liste (sprich alexa2.0.Echo-Devices.G091EV12202406HS.MusicAlarm.*.time)
In dem oben stehenden Beispiel steht da also 'Devices.G091EV12202406HS.MusicAlarm.Alarm_2.time' drin
Dann die 3. Variable die den Wert von der 2. Variable ausliest (also meine Weckzeit)
Ich hoffe jetzt wird klarer wie das funktionieren kann.
Nochmal vielen Dank für das erklären und die Hilfe. Langsam komme dahinter wie das mit den Listen laufen könnte. Hoffe ich hab das soweit alles richtig verstanden
-
-
@nick-the-bird-92 fast.. du hast bei dem Baustein "text aus liste" und "liste aus Text" das falsche Trennzeichen (Komma) statt dem korrekten (Punkt) eingetragen.
A.
-
und ich dachte es wäre Staub aufm Monitor, ich brauche wohl ne neue brille ^^
Geil funktioniert :D. Hab es noch ein wenig veredelt, damit er nur auslöst wenn der Wecker eingeschaltet wird.
Es wäre noch ein traum wenn mir noch sagen könntest mit was für einem Baustein oder Bausteingruppe ich die Weckzeit im Format hh:mm:ss weiterverabeiten kann, Tipp reicht, will ja auch ein wenig nachdenken
-
@asgothian
Kann man Object ID irgendwie auf falsch setzen?
Also Trigger wird aktiviert, weil Wecker gestellt wird - nach 10 Minuten soll dieser Wecker wieder deaktiviert werden.
(frag mich am Besten nicht nach dem tieferem Sinn - zeig euch am Ende dann mal meinen Wecker :))Vielen Dank im Voraus
-
-
@asgothian
geil, danke.hat mich auf jeden Fall wieder um einiges weiter gebracht