Wie kann ich in einem Advanced Flow einen Zufall programmieren? Es soll wenn ein Bewegungsmelder getriggert wird ein zufälliger Alexa ,Says‘ Befehl ausgeführt werden?
Klasse probiere ich gleich morgen aus
Und wenn ich mehr als zwei Argumente hinter der Logic habe?
Wieviele konkret?
Den Flow mit der Logikkarte Chance könnte man natürlich entsprechend erweitern, allerdings müsste es immer eine grade Zahl an Aktionskarten sein:
Eine beliebige Anzahl könnte u.A. so gelöst werden:
Als erstes müsste man eine numerische Logikvariable erstellen, in diesem Beispiel habe ich sie Zufall genannt. Wenn der Alarm vom BM jetzt ausgeht, wird immer eine zufällige Zahl zwischen 1 und 5 berechnet. Wird der BM jetzt aktiviert, wird überprüft welche Zufallszahl in der Variable Zufall hinterlegt ist und die entsprechende Aktionskarte wird ausgelöst.
Ob die Neuberechnung der Variable Zufall immer dann geschieht, wenn der BM ausgegangen ist, oder ob man alle x Minuten oder einen anderen Trigger nimmt, bleibt jedem selbst überlassen.
Danke ich habe es erstmal so wie im ersten Flow gelöst mit mehreren Verzweigungen das zweite Beispiel gefällt mir besser !
Danke
Wie bekomme ich bei dem ersten Flow einen Timer hin der den Flow nur alle x Minuten ausführt?
Ich find’s ein bisschen schwierig Deine Anforderungen zu verstehen, sorry.
Vermutlich willst Du nicht bei jeder BM Aktivierung einen Alexa-Spruch hören, oder?
Genau
Und welchen AF möchtest Du jetzt nutzen? Den mit den verschachtelten 50 % Chance Karten?
Ja genau den
Hm, da gibt’s unterschiedliche Wege:
- Man könnte den AF deaktivieren und mit einem separaten Flow z.B. alle x Minuten oder Stunden wieder aktivieren. Ein selbstständiges Aktivieren wie mit den SF funktioniert mit den AF nicht.
Das “Problem” bei dieser Variante ist, dass z.B. um 9:58 Uhr der Flow gestartet wurde und Alexa was gesagt hat. Danach wird der Flow deaktiviert. Wenn man bei dem separaten Flow aber z.B. “Alle 1 h Flow aktivieren” nutzt, wird der Alexa-Flow um 10 Uhr wieder aktiviert und Alexa sagt den nächsten Spruch, sobald der BM aktiviert wird. Das könnte also bereits kurz nach 10 Uhr sein. - Die 2. Möglichkeit die mir spontan einfällt, ist die Benutzung eines Timers.
Vorteil: Der Flow wird mindestens solange nicht getriggert, so lange der Timer läuft. Auch nach einem Homey Neustart läuft der Timer weiter. Außerdem wird nur ein AF benötigt.
Nachteil: Eine Timer App ist notwendig
Dass der Timer evtl. rel. häufig läuft, sollte aus eigener Erfahrung kein Homey-Performance-Problem darstellen.
It’s your choice…
Es kann allerdings durchaus sein, dass es noch andere vlt. auch bessere Lösungen gibt.
EDIT
Hab einfach mal die für mich favorisierte 2. Möglichkeit erstellt:
Ich mach das so ähnlich wie Dirk.
Allerdings schalten so bei mir verschiedene Lichter, wenn mal längere Zeit niemand zuhause ist.
Teste das mal mit der Chronograph App. Muss erstmal meinen Flow umsortieren ist etwas chaotisch geworden.
Danke
Funktioniert super mit der Chronohraph App
Danke
@DirkG : sehr elegant gelöst.
hättest du für folgendes szenario auch eine elegante lösung mit advanced flows?
Ob die elegant ist weis ich nicht aber hier…
PS: mir ist gerade aufgefallen das du den Chronographen gar nicht brauchst.
Das erste Beispiel kannst Du löschen. Der Chronograph Timer läuft ins “leere” und die AF Verzögerung bezieht die Temperatur nicht mit ein, ist also mit der falschen Karte verbunden.
Das 2. Beispiel ist mMn gut gelöst. Man sollte allerdings im Hinterkopf behalten, dass die AF Verzögerung bei einem Homey Neustart gelöscht wird, ein App Timer, z.B. mit der Chronograph App, läuft nach einem Homey Neustart weiter.