Homegramm setzt Farbtemperatur falsch

Core 2.11.4 (4610af2 rc3)
WebApp 2.11.5 (20b77ec)
WebApp 2.11.6 (afd2e5f) | beta
Android App 2.11.3 beta

Hallo,

ich habe 2 Homegramme geschrieben, welche die Farbtemperatur meiner Hue Deckenlampe (Zigbee) regeln.
Beispiel:
HG1: Wenn Schalter 1 gedrückt wird - und Farbtemperatur der Lampe ist auf 3500 - dann setze die Farbtemperatur der Lampe auf 4502.
HG2: Wenn Schalter 1 gedrückt wird - und Farbtemperatur der Lampe ist auf 4502 - dann setze die Farbtemperatur der Lampe auf 3500.

Immer wenn ich den Schalter drücke ändert sich so die Farbtemperatur.
Das ganze funktioniert auch eine ganze Zeit lang.

Problem: Irgendwann steht die Farbtemperatur plötzlich aber nicht mehr auf 4502 sondern auf 4504. Damit funktioniert dann logischerweise mein Homeegramm nicht mehr.

Wie kann sich der Wert für die Farbtemperatur von selbst von 4502 auf 4504 ändern ?
Wenn ich jetzt einen Wert von 4600 setzte ändert sich auch dieser irgendwann von selbst auf 4602.

Woran kann das liegen ?

Hi Mikle,
Gif. So.
2 neue HGs.

Nr.1 Wenn Farbtemperatur > 4502 dann setze Farbtemperatur auf 4502

Nr.2: Wenn Farbtemperatur < 4502 dann setze Farbtemperatur auf 3500.

Damit normierst Du die Farbtemperatur.
Ggf. gibt’s Probleme, da das HG2 bei 3500 trotzdem ständig auslöst ohne ersichtliche Änderung.

Gruß
Andreas

Hallo,

ich kann euch das Phänomen erklären:

Der ZigBee Standard definiert die Farbtemperatur wie folgt:

The ColorTemperature attribute contains a scaled inverse of the current value of the color temperature. It is updated as fast as practical during commands that change the color.

The color temperature value in Kelvins shall be related to the ColorTemperature attribute by the relationship:

Color temperature = 1,000,000 / ColorTemperature in the range 1 to 65279 inclusive, giving a color temperature range from 1,000,000 Kelvins to 15.32 Kelvins).

Wenn wir also eine Farbtemperatur von 4502 versenden wollen müssen wir in Wirklichkeit 222,1235006664 schicken. Gebrochene Zahlen können nur bedingt genau digital übertragen werden, das bedeutet es wird gerundet. Auf der Seite von homee wird gerundet und auf der Seite der Lampe ebenfalls. Daher kann es dazu kommen dass es da kleine Unterschiede gibt. Wenn homee also im Heartbeat irgendwann mal den Zustand der Lampe abfragt, kann ein minimal anderer Wert dabei zustande kommen. Die Homeegramme funktionieren so dann natürlich richtigerweise nicht. Da müsstest du dir etwas anderes überlegen. In Zukunft wird es noch die “ist nicht” Bedingung geben, vielleicht kann man damit etwas clevereres machen.