Homey (nicht pro) und Hue Lampe als "Wenn"

Hallo zusammen.

Ich habe mich nun schon seit ein paar Tagen eingearbeitet und mir mit Homey einen Traum erfüllt.

Um es kurz zu machen, um mit meinen Tagesrhythmus besser zurecht zu kommen, besonders auch im Winter, und weil unsere Dachgeschosswohnung aus den 60er Jahren zu dunkel ist, habe ich mir abhängig von der Tageszeit einen automatischen Farbtemperaturwechsler programmiert.

Das Ganze hatte ich schon mal in der Hue programmiert, bin da aber irgendwann an Grenzen der Möglichkeiten gestoßen.

Mit Homey bin ich damit aber völlig frei.
Abhängig davon, welche Tageszeit es ist, werden eingeschaltet Lampen automatisch immer auf die jeweilige Farbtemperatur gesetzt.
Dafür gibt es eine Zeitscheibe die jede Stunde gestartet wird.
Alle Flows für die Räume/Zonen sind so aufgebaut, dass sie, gesteuert von Variablen, den Zustand des Lichtes “wechseln”.
“Alexa starte Wohnzimmerlicht” wechselt den Zustand von “An” nach “Aus” und umgekehrt. Wie ein Taster.

Aber das ist nicht nur ungewöhnlich für den Benutzer, sondern es führt bei Unbedachtheit auch zu Programmstörungen. Wenn also der Benutzer nur sagt “Alexa, Licht an” wird nur ds Licht mit der letzten eingestellten Farbtemperatur gestartet. also auch mit der Mittagsfarbtemperatur (und Helligkeit) um eine Uhr nachts.
Und da die Variable nicht gesetzt war, wird as Licht weder geändert noch mit dem Start des Flows richtig gewechselt etc.

Nun konnte ich mich erinnern, dass ich bei der “Und”-Anweisung die Karte “Ja/Nein ist gleich ‘ja’” gesehen hatte, die auch Lampen als boolesche Werte akzeptiert.

Also wollte ich das als Trigger benutzen. Nur, als “Wenn”-Anweisung gibt es das nicht. Dort gibt es nur die Hue-Lampen und die Homey-Zonen als Trigger.

Nun habe ich im Forum schon über Verzögerungen gelesen. Die paar Sekunden wären schon OK. Aber Tatsache ist num mal leider, dass nichts Verzögert wird, sonder gar nicht ausgeführt wird.

Eigentlich ganz einfach.
“Alexa, Licht an” schaltet das Licht an und wenn (geplant: alle Lampen des Raums/Zone als Triger mit “any” verknüpft) der Trigger ausgelöst wird, wird zuerst die Steuervariable auf “An” gesetzt (durch das direkte Anschalten mit Alexa kann mein Flow sonst den Status nicht verfolgen) und dann wird der Flow "Zeitscheibe gestartet (der auch einen “Start”-Trigger hat) und dann werden alle angeschalteten Lampen in der Wohnung auf die tageszeitlich abgestimmte Farbtemperatur geschaltet, also auch die gerade neu mit Alexa eingeschalteten Lampen.

So weit so gut, schalte ich mit Alexa das Licht z.B. als “violett” ein, und starte den Flow manuell, wird ohne Fehler brav sofort auf die richtige Farbtemperatur umgeschaltet.

Nur automatisch geht das nicht, auch nach mehreren Minuten nicht.

Hat vielleicht jemand eine Idee?

Circadian ist das Wort, hier Dirk hat eine Menge von Informationen geteilt:

1 Like

Genau die Idee hatte ich ja. Wenn die entsprechende Lampe (oder Zone) den Status ändert, dass lass einen anderen Flow laufen.

Per Hand funktioniert das alles einwandfrei, nur der automatische Start anhand einer Statusänderung, der funktioniert nicht.

Und Script kann ich als nicht-pro-Benutzerin nicht verwenden.

Hi, kannst du uns bitte noch ein paar Infos geben zu

  • du verwendest Homey-Cloud?
  • mit oder ohne Bridge?
  • sind die Hue-Lampen als Zigbee über die Bridge oder über HueCloud angebunden?

Hue über die CloudAPI wird keine Trigger liefern. M.W. kann man damit nur Aktionen auslösen, bekommt aber keine Events zurück.
Daher wundert es mich, dass du einen Trigger für “an” hast.

Genau.
Cloud, keine Bridge.

Hue ist in der Cloud eingebunden. Als nicht mit Zigbee sondern über die Hue Bridge/Hue Cloud.

Und ja. Diese Zustandsabfrage wird mir in Homey Cloud angeboten.

Hallo Mia,
könntest Du mal bitte einen Screenshot von dem Flow posten, der die Farbtemperatur und die Helligkeit ändert?

Leider habe ich keine Ahnung welche Funktionen und Möglichkeiten mit Homey (Cloud) möglich sind, deshalb könnte dieser Ansatz falsch sein.
Aber ich würde eigentlich genauso vorgehen, wie in dem von Peter verlinkten Topic. Voraussetzung sind zwei selbst erstellte numerische Variablen, eine für die Temperatur, und eine für die Helligkeit:

– Ein Flow, der alle x Minuten automatisch gestartet wird und die beiden Variablen mit den aktuellen Werten für Temperatur und Helligkeit füllt:


In diesem Beispiel werden die Variablen mit Daten aus einer App gefüllt, die nicht mit Homey (Cloud) kompatibel ist. Du müsstest also Werte im Format 0.00 - 1.00 eintragen lassen.

– Ein Flow, der die Temperatur- und Helligkeitswerte aus den Variablen setzt, wenn die Lampe eingeschaltet wird:

– Jeweils ein Flow, der die Temperatur bzw. Helligkeit anpasst, wenn sich die Variablen geändert haben und die Lampe eingeschaltet ist:

Sollte die Möglichkeit bestehen die Temperatur- und Helligkeitsänderung über eine Dauer ändern zu lassen, dann bekommt man von der Änderung auch nichts mit:
image

1 Like

Also, das kann ich gerne machen, aber der Teil funktioniert einwandfrei.
Ich benutze in allen Räumen fest eingestellte Szenen in der Hue. Ich wechsel in Homey nur die jeweilige Szene.

Wenn der Flow startet, wird, abhängig von der gesetzten Statusvariable, das Licht “gewechselt” und dann die Variable neu gesetzt.

Steht die Statusvariable auf “Nein” wird das Licht, abhängig von der Uhrzeit auf eine bestimmte Szene gesetzt und dann die Variable auf “Ja” gesetzt.
Steht der Status auf “Ja”, wird einfach der ganze Hue-Raum ausgeschaltet und der Status auf “Nein” gesetzt.
Jede Stunde läuft die Zeitscheibe durch und testet das Licht. Dazu setzt die der Flow Zeitscheibe die Variable und verhindert so, dass der Status vom Licht gewechselt wird. Stattdessen bleibt der Status erhalten und nur die neue gültige Szene wird in der Hue aktiviert.

Das habe ich so gemacht, da das Ganze noch nicht fertig ist.
Hier der Flow für die Zeitcheibe:

Die Zeitscheibe setzt die Variable, damit der gestartete Flow nicht umschaltet (Eben von z.B. An nach aus), startet den Flow für jeden Raum und setzt die Variable zurück.

Alle Raum-Licht-Flows und die Zeitscheibe sind Favoriten und sind in Alexa ansprechbar.
Ein “Alexa, starte Küchenlicht” schaltet das Licht an oder aus.

Bis hier hin funktioniert alles einwandfrei und fehlerlos.

In Alexa habe ich alle Räume als Gruppen angelegt und alle Echos und Sonstigen Geräte als Standort zugewiesen. Natürlich auch Licht. (Alle Lampen sind nicht per Hue-Skill sondern über Homey-Skill in Alexa, ich bevorzuge zur Fehlervermeidung eine Single Chain.)

Wenn man also in der Küche nicht “Alexa starte Küchenlicht” sondern “Alexa, Licht an” sagt, dann gibt Alexa an die Homey Lampen den Befehl, diese anzuschalten. Homey senden den Befehl an die Hue und die Hue macht das Licht an.
Und weil es die Hue ist, macht die Hue das Licht so an, wie es beim letzten Mal war. Ganz egal welche Szene jetzt dran wäre. Und die Statusvariable ist damit natürlich auch nicht gesetzt.

Und genau dafür wollte ich den neuen Flow:

Wenn der Status der Lampe (das hier ist nur zum Testen, am Ende wäre das etwas ausführlicher) auch “An” wechselt, soll die Statusvariable auf “Nein” gesetzt werden und der Flow zum Einstellen der richtigen Szene gestartet werden. (Der Flow stellt dann die Variable auf “Ja”)

Nur, dieser erste Teil funktioniert eben nicht. Das Abfragen vom Status.
Aber wenn das halt in der Cloud nicht geht (wozu ist es denn dann da?) dann ist genau das das Problem und ich habe wenigstens nichts übersehen.

Oder mache ich da einen Fehler?

(Ach ja, der Flow für die Wohnecke ist natürlich identisch zum Flow für die Küche, außer dass andere Szenen, Räume und Statusvariablen benutzt werden.)

Edit: Am Ende will ich auch von den voreingestellten Szenen weg, aber das kommt erst noch.

Puh, da steckt sicherlich viel Gehirnschmalz drin, deshalb verstehe ich das Konzept vielleicht auch nicht.
Was ich z.B. nicht verstehe, ist der Sinn der Variablen. Auch die Funktion der Zeitscheibe in Kombination der 7 Flows für die unterschiedlichen Räume/Lichter nicht.
Warum wird jede volle Stunde die Variable Var_Zeitscheibe_Bool auf Ja gesetzt, dann 7 verschiedene Flows gestartet und danach die Var_Zeitscheibe_Bool wieder auf Nein gesetzt. Wie sehen die 7 Flows aus?

Würde so etwas nicht funktionieren?

Das ist natürlich ein Flow nur für eine Lampe zum Ein-/Ausschalten.

Und damit sich die Farbe und die Helligkeit entsprechend stündlich ändert, könnte man eventuell so einen Flow nutzen:

Aber wie bereits erwähnt, ich habe keine Ahnung von Homey (Cloud), Alexa und Philips Hue inkl. Bridge und den eingeschränkten Möglichkeiten, wenn diese über die Cloud angesteuert wird.

Also, der Lichtsteuerflow schaltet Licht von “An” nach “Aus” und umgekehrt.

Aber jede Stunde lässt nun die Zeitscheibe jeden Lichtsteuerflow einmal laufen.
Ohne weitere Vorkehrungen würde nun die Zeitscheibe jedes Licht, das “An” ist, auschalten und jedes Licht das “Aus” ist, anschalten.

Darum setzt die Zeitscheibe eine Variable, dass es eben die Zeitscheibe ist, die den Lichtsteuerflow startet. Die Variable wird im Lichtsteuerflow abgefragt. Wenn diese Variable auf “Ja” gesetzt ist, wird das Licht nicht umgeschaltet (also von An auf Aus und umgekehrt) sondern es wird lediglich bei jedem Licht das An ist, eine neue Hue-Szene aktiviert. Und Lichter die Aus sind, bleiben einfach aus.

Dann wird die Variable zurückgesetzt und die Lichtsteuerflows haben wieder das normale Verhalten, also das Wechseln zwischen An und Aus.

Die 7 Flows sind alle Identisch bis auf die Tatsache, dass sie für unterschiedliche Räume sind. Also Beispiel ist oben der Flow für das Küchenlicht angefügt.

Ich versuche immer, gewisse Probleme zu kapseln und dann als "Unterprogramme laufen zu lassen. Im Moment experimentiere ich noch, aber ich will ja auf Dauer auch die Helligkeit und die Farbtemperatur direkt steuern, und dann will ich nicht jeden Flow immer wieder einzeln anpassen müssen.
Derzeit ist in einem Lichtsteuerflow zwar die zeitliche Anpassung mit drin, das fliegt aber dann raus, dann ist der Flow nur zum Ein- und Ausschalten da. Die anderen Werte und ein Überblenden soll dann per Variablen und anderen Flows gesteuert werden.

Der Teil ist für mich alles recht klar und wie gesagt, der Teil funktioniert ja auch. Nur wenn das Licht mit dem falschen Befehl eingeschaltet wird, das habe ich noch nicht berücksichtigt.

Außerdem sollen auch Außnahmebehandlungen rein, so wie Spieleabend, man arbeitet länger in der Küche, es ist Besuch im Haus, es ist Wochenende oder Feiertag.

Darum wäre eine Statusabfrage gut gewesen. Aber wenn das nicht geht, muss ich mr etwas anderes überlegen.

Welche Statusabfrage meinst Du denn genau? Ob das Licht an oder aus ist?