Über die Aussentemperatur gesteuerte Farben

Moin,

Ich benötige heute bitte die Hilfe der “flow-spezis” hier im Forum. Leider komme ich bei einer meiner dummen Ideen nicht weiter.

Ich habe mir flows gebastelt um je nach Aussentemperatur die Farben einiger Lampen einzustellen.

Leider funktioniert das nur halbweg und unzuverlässig. Immer wieder sind bei einzelnen Lampen die Farben falsch oder sie werden nicht geändert.

Die Lampen werden ubrigens zu unterschiedlichen Zeiten und Bedingungen durch andere flows eingeschaltet.

Muss ich tatsächlich für jede Lampe einen eigenen flow pro Temperaturbereich erstellen? Über die App group habe ich es auch schon versucht, allerdings mit dem Erfolg, dass alle Lampen -egal zu welcher Uhrzeit- einfach eingeschaltet werden. Dann allerdings tatsächlich mit der richtigen Farbe.

Ich hoffe das mit dem Einbinden von einem flow mache ich richtig. Dann sollte hier jetzt einer meiner flows als Beispiel erscheinen:

Ich würde das anders machen. Der Flow läuft alle 30 Minuten, obwohl er nicht muss.

Erstell eine Zahlenvariable “Temperatur outside”

Dann füttere die Variable mit der Außentemperatur

Wenn deine Lichter zur gleichen Zeit einschalten, genügt es, als Bedingung, nur eine Lampe zu nehmen.

Du wechselst die Farbe ganzen Lampen gleichzeitig. Ich würde da eine Verzögerung einbauen.

Wenn: Die Variable “Temperatur outside” hat sich geändert
Und: Kugellicht hinten ist an
Tag Variable ist größer als 1
Tag Variable ist kleiner als 10
Dann: Farbe Licht 1 blau
Farbe Licht 2 blau nach 1 Sekunde
Farbe Licht 3 blau nach 2 Sekunden usw.

Du kannst sogar Variablen für deine verschiedenen Umschalt-Temperaturen und Farben machen. Der Vorteil ist, dass du diese Variablen auch in anderen Flows verwenden kannst.

Z.B.
Wenn die Variable Temperatur outside geändert hat
Und: Tag Variable ist kleiner als 3
Dann: Push Glatteiswarnung

Wenn du noch nicht damit klar kommst, helfe ich gerne.

Dein Flow funktioniert ja nur dann, wenn bereits alle Lampen eingeschaltet sind. Wenn nur eine der 4 Lampen noch nicht eingeschaltet ist, dann wird die Farbe auch bei keiner der 4 Lampen gesetzt.
Außerdem kann es schon mal vorkommen, dass Homey beim gleichzeitigen Schalten oder Setzen von Farben Befehle “verschluckt”. Deshalb würde ich für das Setzen der Farbe eine Verzögerung mit einbauen, wie es @Undertaker ja auch schon beschrieben hat.

Wenn Du das nach Deinem Schema machst, dann schon. Aber das reicht noch nicht. Da die Lampen zu unterschiedlichen Zeiten eingeschaltet werden, musst Du nach Deinem Schema das sogar für jede Lampe machen.

Du schreibst, Deine Lampen werden durch andere Flows, vermutlich mit unterschiedlichen Bedingungen, eingeschaltet. Im ungünstigsten Fall wird eine Lampe beispielsweise um 16:31 Uhr eingeschaltet, mit welcher Farbe Du auch immer hinterlegt hast, und um 17:00 Uhr wird die Farbe erst entsprechend der Außentemperatur geändert. Ist das so gewollt?
Es wäre auch möglich die Lampen direkt mit der richtigen Farbe, also analog der Außentemperatur, einzuschalten. Wenn Du daran interessiert bist, dann einfach melden.

Er könnte das mit den Farben auch per Variable lösen, dann wäre es völlig egal, wann welche Lampe einschaltet. Man könnte zu einem festgelegten Zeitpunkt oder mit einer Bedingung die Variable abfragen, welche Farbe/Temperatur gerade aktuell ist und die Lampen würden entsprechend wechseln.

Vielen Dank Euch beiden für die schnelle Reaktion und die tollen Lösungsansätze!

Viel Input für mich, den ich erst einmal verarbeiten muss…

Mit Variablen habe ich bisher noch nicht gearbeitet.

Ich werde das alles ausprobieren und habe dann sicherlich noch Fragen. Kann aber durchaus ein paar Tage dauern, da ich immer nur Mal zwischendurch mich damit beschäftigen kann. Fragen werden kommen oder auf jeden Fall auch eine Meldung wenn’s funktioniert!

Die Farben auch über Variablen zu steuern würde mir gefallen, denke damit wäre ich flexibler.
Sanfte Übergänge sind mir nicht so wichtig.

Das homey Schwierigkeiten hat mehrere Befehle gleichzeitig zu senden habe ich in anderen flows auch festgestellt und dort schon Verzögerungen eingebaut.

Du brauchst eine Textvariable. z.B. Farbe1.

Mit folgenden Flows füttern:
Wenn: Außentemperatur hat dich geändert.
( entweder auf die Variable Außentemperatur oder
direkt auf dein Thermometer setzen)
Und: logic Temperatur ist kleiner als 10
Dann: setze Variable Farbe1 auf (text) blau

Wenn: Außentemperatur hat dich geändert.
(entweder auf die Variable Außentemperatur oder
direkt auf dein Thermometer setzen)
Und: logic Temperatur ist kleiner als 20
logic Temperatur ist größer als 10
Dann: setze Variable Farbe1 auf (text) grün

usw.

Dann den Schalt-Flow
Wenn: Variable Farbe 1 hat sich geändert
Und: Variable ist genau blau
( z.B.) Und die Zeit ist zwischen xx und xx
Dann: Lampe 1 blau
Lampe 2 blau nach 1 Sekunde
usw.
Den Flow oben kopierst du für alle Farben und brauchst dann nur noch den Text der Farbe und die Farbe der Lampen ändern.

Richtig, das ist der Lösungsansatz, den ich hiermit meinte.

Einschalten mit der richtigen Farbe, bzw. bei mir ist es nur die Farbtemperatur:

Anpassung der Farbtemperatur, wenn die Lampe bereits an ist und sich die Variable geändert hat:

Alle 5 Minuten erfolgt eine Anpassung der Variable. In meinem Fall durch ein Homey Skript:

Zum besseren Verständnis hätte ich aber extra passende Flows erstellt, das war mir aber zu viel Aufwand wenn es auf kein Interesse gestoßen wäre.

2 Likes

Habe heute ein wenig Zeit gefunden mich nochmal mit den Vorschlägen zu befassen. Leider habe ich noch Probleme bzw.stehe auf dem Schlauch…

Also:

  • Variable Temperatur funktioniert (Incl. Glatteiswarnung per Push! Vielen Dank dafür!!)
  • Variable Farbe funktioniert.

Aber:
Wo ich eine Erleichterung oder optimalere Schaltung meiner 4 Lampen habe, sehe ich im Moment nicht. Das mein flow nicht mit allen 4 Lampen gleichzeitig läuft (nur wenn alle 4 tatsächlich an sind) verstehe ich und müsste ich also einzeln machen. Da es insgesamt 7 Farben bzw. Temperaturbereiche sind also 28 Flows.

  • Wenn Lampe 1 an und Sensor Temperatur ist zwischen 0 und 10 dann Lampe1 Farbe blau
  • wenn Lampe 1 an und Sensor Temperatur ist zwischen 11 und 20 dann Lampe 1 Farbe grün
  • usw. usw für jede Lampe

Nach euren Vorschlägen komme ich auf mindestens genauso viele, plus welche um über die Variable Temperatur die Variable Farbe zu ermitteln.

  • wenn Lampe 1 an und Variable Farbe ist blau dann Lampe 1 Farbe blau
  • wenn Lampe 2 an und Variable Farbe ist grün dann Lampe 1 Farbe grün
  • usw usw für jede Lampe

Oder verstehe ich das falsch? Denn

  • wenn Variable Farbe ist blau dann Lampe 1 Farbe blau
    geht nicht, da damit die Lampe angeschaltet wird, wenn sie nicht eingeschaltet ist. Also müsste es noch eine Variable zum Status der Lampe 1 geben?
  • wenn Variable Status Lampe 1 ist an und Variable Farbe ist blau dann Lampe 1 Farbe blau?

Dicke ??? schweben über meinem Kopf. Wahrscheinlich habe ich mich gerade komplett verrannt.

Nochmal die Voraussetzungen:

-4 Leuchtmittel sollen, wenn sie eingeschaltet sind, die Aussentemperatur farblich darstellen.
-Sanfte Übergänge sind nicht erforderlich.
-Einschalten gleich mit der richtigen Farbe ist nicht unbedingt erforderlich. Schlimmstenfalls haben sie die Farbe vom Ausschalten vom Vortag.
-Die Leuchten werden ein- und ausgeschaltet durch andere Flows (2x im Aussenbereich mit anderen Leuchten abhängig vom Sonnenuntergang mit unterschiedlichen Einschalt- und Laufzeiten, 1x im Innenbereich auch abhängig vom Sonnenuntergang mit unterschiedlichen Einschalt-und Laufzeiten mit anderen Leuchten zusammen, 1x im Wohnzimmer nur wenn der TV und andere Geräte an sind.)

Tut mir echt leid, wenn ich nerve. Stehe aber -wie schon gesagt- ein bisschen auf dem Schlauch…

Nein, du hast dich nicht verrannt.
Je komplexer die Aufgaben werden, umso mehr Flows brauchst du, um entsprechende Abläufe darzustellen. Es ist zwar schön, manchmal nur wenige Flows zu brauchen, aber nicht immer möglich. Mir ging es schon oft so, dass ich erst nach Wochen eine Idee gehabt habe, wie es einfacher geht.

Bei dir ist die Problematik, dass deine 4 Lampen zu unterschiedlichen Zeiten einschalten, die auch nicht mit Uhrzeiten zu definieren sind. Das heißt letztlich, dass jede Lampe kurz nach dem Einschalten, die Variable Farbe abfragen muss, um richtig anzuzeigen.
Leider ist es nicht möglich, bei Lampen die Einstellung der Farbe, durch einen Tag zu regeln. Somit bleibt dir nichts anderes übrig, wie einige Flows zu erstellen.
Es mag richtig sein, dass du jetzt nicht viel Flows einsparen kannst, aber wer mit Variablen arbeitet, kann zukünftig viele Flows sparen, weil er die Variablen häufig auch in anderen Flows verwenden kann.
Bei mir sind im Moment über 50 Variablen aktiv, die fast 500 Flows füttern. Da ist ein Überblick nur noch mit der App Flow Checker möglich.
Ich habe auch einige Variablen, deren Grundlage wiederum andere Variablen sind. Ich berechne beispielsweise den Stromverbrauch pro Stunde und ob er sich im Vergleich zur Stunde vorher erhöht oder verringert hat. Das Ganze möchte ich dann auch noch in einer +/- Zahl dargestellt haben.
Für diesen Spaß sind insgesamt 7 Flows nötig, plus ein weiterer Flow, der das Ergebnis von Homey 1 zu Homey 2 schickt, der dann das Ergebnis mit zwei weiteren Flows visualisiert.
Du möchtest, dass die Temperatur mit einer Farbe kombiniert bzw. die Information, in welchem Bereich sich die Temperatur befindet. Ich denke jetzt mal laut, um dir vielleicht Ideen zu geben, wie das einfacher zu realisieren wäre.
Ist dein Homey im Sichtbereich von dir ? Wenn ja, kannst du seinen LED Ring für die farbliche Darstellung der Temperatur verwenden. Das könnte eine Lampe weniger und somit weniger Flows bedeuten, da der LED Ring unabhängig von an/aus der anderen Lampen arbeitet.
Brauchst du die Info der Temperatur wirklich auf 4 Lampen ?
Wenn du beispielsweise im Außenbereich eine weitere Lampe anbringst, die nur dafür zuständig ist, die Temperatur Information zu liefern, hättest du das auch von den normalen Lampen getrennt und und könntest unabhängig vom Einschaltstatus der anderen Lampen arbeiten.
Beschreib mal genau, wo die Lampen sind und in welcher Situation du die Info haben möchtest.
Für den Innenraum bist du aber ein LaMetric Kandidat. Dieses Gerät ist zwar etwas teuer, aber es kann dir “alle” gewünschten Informationen von Homey im Klartext darstellen.

1 Like

Du nervst nicht! Deine Anforderungen sind aber durchaus anspruchsvoll und man kann das nicht mit 3, 4 Flows umsetzen und mit ein paar Worten erklären.

Nenn mal bitte die genauen Temperaturbereiche und welche Farben dafür verwendet werden sollen. Die Infos zu den Farben findest Du auf der Developer Tools Seite unter Devices und dann bei der entsprechenden Lampe. Benötigt werden die Werte im Bereich Capabilities und der Spalte Value zu Hue (light_hue), Saturation (light_saturation), Temperature (light_temperature). Du musst die entsprechende Farbe an der Lampe also einstellen und dann die Werte notieren.

Das stimmt nicht (100%ig?), oder ich habe Dich falsch verstanden. Nichts Anderes mache ich ja bei dem oben gezeigten Beispiel. Ich setze mit der Variable CircadianTemp die Temperatur. Dasselbe funktioniert auch mit Farbton (Hue) und Sättigung (Saturation).
Was ich nicht weiß, deshalb oben auch (100%ig?), ob das mit allen RGB-Leuchtmitteln bzw. den dazugehörigen Apps funktioniert.
Ich habe Philips Hue und Innr im Einsatz (direkt mit Homey verbunden), und damit funktioniert es.

1 Like

Möchte mich mal zum grundlich lesen dieser Thema setzen. Habe eininge gledopto RGBW aussen-Armature da wäre sowas ganz cool :sunglasses:

Moin, gerne mehr Ideen und Input :smile:

Bin immernoch an dem Thema dran. Ist für mich leider noch nicht gelöst. Zuletzt habe ich angefangen mit der Lösung von fantross zu experimentieren.

Habe allerdings im Moment beruflich viel zu tun und andere Projekte (auch außerhalb homey) am laufen.

Wenn sich also zwischenzeitlich eine Lösung ergibt, schreiben! Wenn ich eine habe oder das Projekt aufgebe, melde ich mich auf jeden Fall.

Ich habe mal ein paar Infos zusammengestellt. Die Farben, die Temperaturbereiche und die Benennung der Variablen und Flows bleibt natürlich jedem selbst überlassen, aber irgendetwas musste ich ja als Grundlage nehmen.

Als Farbgrundlage habe ich die Homey Farbauswahl (ohne Lila) genommen:

SCR-20220214-egy

Die in Developer → Devices ermittelten Farbton- und Sättigungswerte habe ich dann folgenden Temperaturbereichen zugeordnet:

Farbe Farbton (HUE) Sättigung (SAT) Temperaturbereich
Blau 0.61 1.00 < -10 °C
Türkis 0.53 0.93 -10.0 °C bis -0.1 °C
Grün 0.36 0.88 0 °C bis 9.9 °C
Melone 0.20 0.74 10.0 °C bis 19.9 °C
Hellorange 0.12 0.79 20.0 °C bis 29.9 °C
Orange 0.06 0.86 30.0 °C bis 39.9 °C
Rot 0.00 1.00 > 39.9 °C

Damit die von der Temperatur abhängigen Farbwerte in den Flows gesetzt werden können, werden zwei numerische Variablen und in diesem Fall 7 Flows benötigt:

Variablen
– Temperatur_HUE
– Temperatur_SAT

Flows

Für die Farben Hellorange und Orange müssten natürlich auch noch Flows erstellt werden.

Tipp: Wenn man anstelle der Trigger-Karte Die Temperatur hat sich geändert die Karte Temperatur wird weniger/mehr wie in den Beispielen verwendet, dann werden die Flows nur dann getriggert, wenn die hinterlegte Temperatur unter- bzw. überschritten wird. Bei der Trigger-Karte Die Temperatur hat sich geändert würden bei jeder noch so kleinen Temperaturänderung jeder der 7 Flows getriggert werden, was zu einer höheren Rechenbelastung des Homeys führen würde.

Für die Lampen müssten dann noch folgende Flows erstellt werden, theoretisch je Lampe. Werden 2 oder mehr Lampen mit dem selben Trigger und unter identischen Bedingungen geschaltet, dann können diese in den Flows natürlich auch zusammengefasst werden.

Bei diesen Flows habe ich absichtlich die Aktions-Karte Dimmen auf anstelle von Einschalten und entsprechende Übergangsdauern bei allen Karten genutzt, um möglichst sanfte Übergänge zu erzielen. Zusätzlich habe ich beim Einschalten der Lampe den Farbton und die Sättigung verzögert gesetzt, damit Homey nicht alle Befehle gleichzeitig ausführen muss und sich dabei ggfs. “verschluckt”.

Wie, wann und unter welchen Bedingungen (Jemand zuhause oder nicht, Helligkeit, etc.) eine Lampe eingeschaltet werden soll, muss natürlich auch jeder für sich definieren.

Es gibt sicherlich auch andere, und vielleicht auch bessere Lösungswege, aber ich wollte einfach mal aufzeigen, wie ein mögliches Szenario aussehen könnte.

2 Likes

WOW! Wie kann man das nur so aus dem Ärmel schütteln! Respekt!

Erst einmal : tut mir leid wegen der späten Reaktion.

Aber ich habe das ganze am Wochenende mal nachgebaut. Läuft!

Vielen, vielen Dank fantross.

Vielleicht werde ich die Abstufung noch ändern von 10 auf 5 Grad, aber das ist ja problemlos möglich.

1 Like

Naja, aus dem Ärmel geschüttelt habe ich das auch nicht. Aber wenn man einmal das Prinzip verstanden hat, dann ist es eigentlich hauptsächlich Fleißarbeit. Viel Spaß damit!