Trigger auf Uhrzeit aber im Vergleich mit einer Variablen

Ziel: bestimmte Uhrzeiten in Variablen ablegen, damit sie überall verfügbar sind.
Wie kann ich dann einen Trigger bekommen im Sinne
Wenn Uhrzeit = Variable
??
Danke

Die Variable muss eine Text Variable sein. D.h. die Uhrzeit wird im Format hh:mm gespeichert.
Damit der Flow aber zu jeweiligen Uhrzeit ausgelöst wird muss dieser jeder Minute gestartet werden.

Ok, hatte ich befürchtet.
Hat das irgendwelche Performance Auswirkungen seitens Homey?
Aktuell habe ich noch den normalen aber der Pro ist im Zulauf.

Das kann ich dir nicht beantworten, ich würde aber vermeiden duzende solcher flows einzusetzen.

Darf ich fragen, welchen use case Du damit abbilden willst?

Ich versuche mich an meine Programmierzeit zu erinnern und da hätte ich Uhrzeiten die gewissen Fixpunkte darstellen in Konfigurationsparameter ausgelagert, damit man sie nur an einer Stelle ändern muss.

Ich kann mit aber behelfen, indem ich einen virtuellen Button zu der Zeit setze und das dann als trigger nehme.

Ist aber ehrlich gesagt eher eine akademische Übung.

Was halt fehlt ist ein Überblick wann was passiert, da kann man schon den Überblick verlieren.
Daher nutze ich simplelog immer

Vielleicht kannst du auch einen Alarm als trigger verwenden. Kannst diesen ja individuell einstellen.
Und auch mehrere verwenden. Vorher aber die Lautstärke runter drehen. Dann ist es mehr oder weniger ein stiller Alarm.

Bin mir nicht sicher, ob ich Deine Anforderung genau verstehe, aber Du kannst doch die Uhrzeit nutzen um eine Variable von „Nein“ auf „Ja“ zu ändern. Die Variable kannst Du dann doch als Trigger für x Flows verwenden. Also brauchst Du auch nur eine Uhrzeit zu ändern um sämtliche verknüpfte Flows anzupassen.

WENN

  • Uhrzeit ist XX:XX

DANN

  • Eine Ja/Nein-Variable auf „Ja“ setzen
  • Eine Ja/Nein-Variable auf „Nein“ setzen nach X Sekunden/Minuten Verzögerung

Damit die verknüpften Flows zu der gewünschten Uhrzeit starten:

WENN

  • Eine Variable hat sich geändert

UND

  • Variable X ist „Ja“
  • eventuell noch weitere Bedingungen hinzufügen

DANN

1 Like

ja, so gehts.
danke

Wenn es das gewesen ist was @fantross vorgeschlagen hat. Dann habe ich Deine Frage falsch verstanden, sorry.
Ich dachte es geht Dir darum eine Variable Uhrzeit vorzugeben ohne jedes Mal den Flow anzufassen.

So wie es @fantross vorgeschlagen hat, geht es ja darum eine Feste Uhrzeit Zentral für mehrere Flows zu verwenden. Anstatt mit einer Variable könntest Du auch einen virtuellen Button verwenden. Vorteil, den brauchst Du nicht zurück zu setzen und brauchst in den verknüpften Flows keine Bedingungen abfragen.

Ich klinke mich hier mal ein, ich hoffe das ist ok. Ich habe nämlich ein ähnliches Problem, für das ich noch keine schöne Lösung gefunden habe.

Und zwar möchte ich ebenfalls täglich einen Flow starten, zu sich täglich verändernden Uhrzeiten. Hierzu habe ich ein virtuelles Gerät (welches Wetterdaten enthält) und würden dann gerne daraus einen Flow triggern, wenn die aktuelle Uhrzeit der Tageshöchstemperatur-Uhrzeit entspricht.

Quasi: Wenn aktuelle Uhrzeit ist gleich Uhrzeit der Tageshöchstemperatur, dann starte Flow. Die Uhrzeit der Hôchstemperatur ist im virtuellen Gerät abgeifbar.

Müsste ich das dann auch mit einem minütlichen Flow machen um die zu vergleichen? Ich hatte es bereits mit einem “Wenn Uhrzeit ist größer als Uhrzeit in Variable, dann starte Flow”. Allerdings funktioniert das nicht. Hat vielleicht jemand eine schicke Idee?

Einfacher als mit der Urzeit müsste doch der Vergleich der Temperaturen sein, oder?

Wenn aktuelle Temperatur sich ändert
Und aktuelle Temperatur = Tageshöchsttemperatur
Dann XY

Danke für den Vorschlag, dass muss ich mal probieren. Das Problem könnte da nur sein, dass die tatsächlicheTemperatur nicht immer die Tageshöchstemperatur erreicht und dann nicht getriggert wird.

Zum Hintergrund, ich wollte die Warmwasserzubereitung bei mir möglichst immer dann starten, wenn die Temperatur am höchsten ist (Luft-Wärmepumpe). Ich werde da wahrscheinlich noch ein wenig tüfteln müssen. :slight_smile:

Da würde ich auf jedenfall mit einer Toleranz von 2-3 grad arbeiten.

Du könntest aber auch die Temperaturänderung dazu verwenden. Also Änderung der Temperatur pro Zeit. Sobald die Kurve flach wird ist das Maximum erreicht oder wird bald erreicht, bevor der Scheitelpunkt erreicht ist und die Temperatur wieder sinkt.

Also nichts anders als die Steigungen berechnen.
Positive Steigung = Temperatur steigt. Steigung = 0 = Temperatur bleibt konstant. Und negative Steigung = Temperatur sinkt.

Die Idee mit der Temperaturänderung ist perfekt. Das ich da nicht selbst drauf gekommen bin, danke. :slight_smile:
Ich habe es jetzt mal so eingebaut und bin gespannt wie es im Alltag funktioniert.

1 Like