NEWS
Alexa Routinen aktivieren und deaktivieren
-
Hallo
Ich bin auf der Suche nach einer Lösung um Alexa Routinen zu aktivieren und deaktivieren.
Im Alexa2 Adapter besteht zwar über die Echo Devices eingerichtete Routinen zu starten (State von false auf true, oder auch um gekehrt) Aber nicht, die Routine aktiv und inaktiv zu machen.
In meinem Fallbeispiel geht es um eine Wecker-Routine, bei der zu einer bestimmten Uhrzeit Alex mir den Wetterbericht vorliest, anschließend die Rollos hoch fährt, das LED-Band hinterm Bett einschaltet und Musik abspielt. Nach einer vorgegebenen Zeit, schaltet sich Licht und Musik dann wieder aus.
Gerne würde ich eine solche Routine unter anderem über meine VIS deaktivieren können, wenn ich beispielsweise Urlaub habe.
Andere Beispiele sind natürlich auch möglich, bei denen es Sinn macht, eine Routine zu aktivieren oder deaktivieren, ohne das in Alexa App machen zu müssen -
@iced112 Warum so kompliziert? Pack die Aktionen in ein Script in ioBroker und starte das per CRON zur gewünschten Zeit. Im Script fragst Du als erstes einen selbst angelegten Datenpunkt ab (der über die VIS schaltbar ist), ob etwas gemacht werden soll oder eben nicht.
-
@ahnungsbefreit
Ja, da fangen meine Probleme mit meine Fähigkeiten schon an. Mit Script habe ich noch garnichts gemacht und habe da noch gar kein Backgroundwissen zu, wie ich das machen könnte. -
@iced112
Schau Dir Blockly doch mal an. Das ist eigentlich fast selbsterklärend. Zum Einstieg musst nur das Grundprinzip verstanden haben und das besagt folgendes:
Um eine Aktion zu starten braucht man ein Trigger, welcher das ist kommt drauf an und erklärt sich wenn man die Trigger mal anschaut.
In den Trigger kommt dann das eigentliche Script das dann das tut was man will. Hier sind alle Blöcke für den Anfang mal aus dem Bereich System und Logik interessant und lösen meist schon fast alles was man will.Es wurde ja auch schon angemerkt, dass manuell erdtellte DPs hier sehr einfach für weitere Aktionen genutzt/ausgewertet werden können.
Ich poste später mal wenn ich am PC bin auch mal die Möglichkeit wie man das richtig smart über den iCal Adapter lösten kann. Ist einfacher als Du wohl vermutest
-
Hahahahahaha, auf das iCal Ding haste nen Patent oder?
-
@jan1
OkidokiIch werde mir dann beides mal anschauen, wenn du deine Erklärung gegeben hast. An der Stelle schonmal vielen dank bis hier her...
-
@haselchen
Das ist eben alles sehr einfach damit, da man den Kalender auch bequem vom Handy aus bedienen kann und somit Einfluss auf Scripte im IOBroker, ohne den überhaupt anfassen zu müssen. Die meisten Leute tragen da alles mögliche ein, somit hast das nach Wunsch auch gleich als Steuermögichkeit im IOBroket und dazu noch sehr einfach. Also ein Traum für jeden Einsteiger, der ein Kalender bedienen kann, aber kein Plan vom IOBroker hat -
Musste nur eben lachen, weil du in anderen Threads die iCal Geschichte auch schon angesprochen hattest
Ich warte auch mal bis Du am PC bist und lausche Deinen Ausführungen..... -
@haselchen
Das hier ist die gewünschte direkte Fortführung des anderen Threads, somit selbes Thema -
@ahnungsbefreit
Vielleicht ist es an der Stelle schon zu früh für ein Veto, hab mal bisschen rein geblocklyt
Aber wenn ich das richtig verstanden habe: Also die Routine kann ich über den Datenpunkt eigentlich nur starten oder es wird angezeigt, dass die Routine halt nicht läuft. Wenn ich diesen Datenpunkt nehme und in den Blockly einbaue, kann ich doch nur sagen, dass die Routine zu einer bestimmten Bedingung ausgeführt wird, allerdings nicht, dass sich "nicht" aussgeführt werden soll, oder bin ich da auf dem Holzweg?
Auf den ersten Blick sehe ich über Blockly nur die Möglichkeit, dass ich all das was ich "eigentlich" in der Alexa-Routine steuere, über Blockly steuern kann. Unterm Strich - Ich lösche die Routine in Alexa und bau die Routine im ioBroker selber? -
@iced112
Dann wollen wir mal anfangen
Also als erstes mal mein Wecker Script, das Deinem von der Funktion recht ähnlich ist, allerdings eben als Blockly Script in IOBroker und nicht als Routine in Alexa. Warum in IOBroker und nicht direkt in Alexa, weil ich das einfacher finde und schneller umgebaut habe als ne Routine in Alexa, wo man alles erst mal in etlichen unter Gruppen zusammen zu suchen:
Da siehst auch schon in der Falls oben einige Bedingungen die zum größten Teil aus aus dem Kalender stammen, den ich mit iCal abfrage.
Der Trigger hier ist ein Cron und macht folgendes:
Das wird aber nur ausgeführt, wenn die Bedingungen in der FALLS erfüllt sind und schon habe ich ein recht smarten Wecker, der nur los legt, wenn ich Frühdienst habe es kein freier Tag, WE oder Urlaub ist, ohne dass ich manuell noch eingreifen muss.
Dazu brauchst natürlich ein iCal Kalender den man sehr einfach bei Google einrichten kann. Meiner sieht so aus:
Da siehst auch gleich die Stichwörter die im Script mit auftauchen (für Feiertage habe ich noch zusätzlich den Feiertag Adapter, weil für Google das nie so ganz gestimmt hat, was hier in fertigen Kalendern für die einzelnen Bundesländer eingetragen war).
Das ganze wird dann eben sehr einfach mit dem iCAL in den IOBroker geholt und sieht bei mir so aus:
Hier siehst auch gleich, dass ich zwei Kalender abfrage, Schichtplan und Urlaub. Ob Du alle Termine in einen einträgst oder mehrere Kalender dafür anlegst ist Dir und Deiner Ordnung überlassen.
Nun werden die Kalender im Adapter einfach noch nach gewünschten Stichworten durchsucht:
Die dann als DP zur weiteren Verfügung im IOBroker angelegt werden:
Das ist schon im groben der ganze Zauber wie man das machen kann und wenn Du manuell für VIS noch ein Schalter haben willst um den Wecker an und aus zu schalten, generierst Dir einfach ein DP den Du in VIS einbindest und mit in die FALLS als UND Bedienung packst.
Dürfte nun viel Stoff für den Anfang sein, aber eine super Möglichkeit und eigentlich recht einfach mit Blockly Scripten warm zu werden. Also nur Mut und einfach mal anfangen.Welche Links man im Googel Adapter braucht um sie in den Adapter einzufügen steht auch in der Adapter Doku, aber hier mal kurz wo die sind:
Hinter jedem Kalender gibts die Punkte (Menü), dort "Einstellungen und Freigabe" dann fast ganz unten der Link bei "Privatadresse im iCal-Format"Viel Spaß beim Basteln
-
@jan1
Puh!!! Ok, das Prinzip ist verstanden. Finde deine Variante in sofern super, da sich alles halt anhand des Kalender automatisch regelt. Das hat halt zur Folge, dass eben auch der Kalender konsequent geführt werden muss. Ein Google Kalender besteht zwar, aber für meinen Fall würde ich ja dann quasi anfangen, Termine zu pflegen die ich vorher nicht eingetragen habe (Urlaub oder andere Bedingungen, die dazu beitragen sollen, dass die Routine morgen früh nicht auslösen soll)
Was meinen täglichen Gewöhungsapparat betrifft, und ich denke das macht für jeden sein Smart-Home ja so individuell, wäre eine Widget in meiner VIS, bei dem ich die Routine einfach deaktivere, wenn sie morgen früh nicht ablaufen soll, das einfachste, da meist ein letzter Blick vor dem Schlafengehen auf ein Tablet im Wohnzimmer erfolgt, ob alles aus ist. So schaut zumindest mein "Konzept" ausAaaber, nochmal: deine Automation finde ich toll. Macht ja auch Sinn, wenn man Schichtdienst arbeitet und dafür ohnehin einen Kalender pflegt
-
@iced112
Der Kalender pflegt sich ja automatisch, da sich in meinem Fall der Schichtplan nicht ändert und man den einträgt und dann eben die wiederholen Funktion nutzt, so wird der auf Jahre im voraus schon eingetragen. Dasselbe gilt für die Wochenenden, einmal eintragen und ein Leben lang Ruhe. Die Feiertage macht der Feiertag Adapter, also auch ne einmalige Geschichte. Somit trage ich lediglich mein Urlaub ein, mehr nicht.
Ich hatte da auch schon die Möglichkeit mit eingebaut, dass ich die Uhrzeit über Alexa für den Wecker per Sprachbefehl eingebe. Hat aber nicht z 100% funktioniert. Somit bin ich bei der Funktion Wecker an oder aus geblieben und muss mir nie Gedanken machen, ob der nun a ist oder nicht. Der weiß ja wann er an sein soll. Wenn ich mal krank sein sollte, schalte ich den per Sprachbefehl einfach ausDein Wunsch mit VIS, hatte ich berücksichtigt und das löst über einen manuell erstellten DP den Du in VIS visualisieren und schalten kannst. Der DP dient dann wie bei mir der Kalender lediglich der FALLs Freigabe des Wecker.
Also die iCAL Geschichte ist nur ein Beispiel wie man es machen könnte und ist für die Routine kein muss. -
@jan1
Klingt für deinen Fall auch einleuchtend. Ich bin grade dabei, eine Routine selbst zu bauen und frage mich an deinem Beispiel:
Das Blockly "steure MH...." Das er da die Farbe ansteuert hab ich verstanden, aber setzt es auch den "PowerState" von false auf true?
-
@iced112
Ja, bei den Dingern reicht es den RGB Wert anzugeben, da das die Helligkeit ja beinhaltet um die gewünschte Farbe und Helligkeit zu erreichen. Da siehst auch, dass ich die Helligkeit langsam erhöhen, will ja nicht erschreckt sondern geweckt werden -
@jan1 Und eine Verzögerung... bezieht sich die dann auch alle folgenden Blocklys oder gilt die Verzögerung nur auf diesen Block
-
@iced112
Nur auf den Block an dem sie aktiv ist.
Nimm beim Trigger besser ein Cron und kein Zeitplan. Sollte zwar auch laufen, hab damit aber schon seltsame Probleme gehabt. -
@jan1
Den cron müsste ich ja dann für jede Objekt ID verwenden? Oder kann ich denn auch so einsetzen dass ich damit das ganze so schalte wie ich es jetzt im Zeitplan habe? -
Und mit DP meinst du sicher einen Datenpunkt? Mit dem ich stelle ich von True auf false, also Skript starten oder stoppen?
Wo erstelle ich den? -
@iced112
Den Trigger einfach als Cron nicht als Zeitplan.
Eigene DPs sollten unter 0.userdata erstellt werden. Einfach da rein und oben auf das +. Einfach mal machen, dann verstehst das am schnellsten.