Hank RGB Bulb Warmweiß / Kaltweiß mit HC2 ansteuern

Ich habe mir 2 Hank RGB Bulbs gekauft. Nun versuche ich diese anständig mit meiner Fibaro HC2 anzusteuern.
Und ich bin wohl nicht der einzige, der damit Probleme hat:
https://www.siio.de/z-wave-rgbw-leuchten-vergleichstest/ => Komentare
Ansteuerung der Farben funktioniert mit dem folgenden Script ohne Probleme (Es war schon schwer genug hierzu die richtigen Informationen zu finden):


–[[
%% properties
%% events
%% globals
–]]
local HankBulbID = 134

– Allows us to set the colour from a string like ‘r,g,b,w’
function setTheColour (deviceID, colourString)
local RGBWTable= {}
local i = 1

for value in string.gmatch(colourString,"(%d+)") do
RGBWTable[i] = value
i = i + 1
end

fibaro:call(deviceID, “setColor”, RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
end

fibaro:call(HankBulbID, “turnOn”)
fibaro:call(HankBulbID, “setValue”, “255”)
setTheColour(HankBulbID,‘255, 100, 100,0’);
fibaro:sleep(101000)
setTheColour(HankBulbID,‘255, 147, 41,0’);
fibaro:sleep(10
1000)
setTheColour(HankBulbID,‘0, 0, 0, 255’);
fibaro:sleep(10*1000)
fibaro:call(HankBulbID, “turnOff”)

Allerdings soll die Lampe Warmweiß unterstützen und ich bekomme ein Weiß mit folgendem Code hin:

setTheColour(HankBulbID,‘0, 0, 0, 255’);

Dieses ist aber eher sehr Kalt als irgendwie Warm.
Fibaro hat wie üblich kein Template für die HC2 und der Hersteller Hank keine weitere Anleitung.

Vielleicht kriegen wir gemeinsam etwas mehr raus.
Im Vergleichtstest: https://www.siio.de/z-wave-rgbw-leuchten-vergleichstest/
wird ja klar der Warmweiß Wert miteinander verglichen. Vielleicht hilft der Autor “Grueff” uns hier etwas auf die Sprünge.

Hallo davids,

danke, super Arbeit! Sehr freundlich dass Du meinen Hilferuf auf notebooksbilliger so schnell beantwortet hast.
Bei meinen Versuchen war ich davon ausgegangen, dass der W-Parameter im RGBW die Helligkeit der Farben regelt. Dem ist nicht so.
Wenn W einen Wert > 0 hat, wird immer nur mehr oder weniger helles Weiß angezeigt.

Daher habe ich jetzt folgendes Skript erstellt, dass den Farbraum der Lampe einmal durchnudelt, wobei der W-Parameter aus besagtem Grund keine Rolle spielt und in den Farbdefinitionen einfach weggelassen wird.


local HankBulbID = 346

local farben = {
 -- ROT,GRÜN,BLAU
  { 255,   0,   0 }, -- rot 
  {   0, 255,   0 }, -- grün
  {   0,   0, 255 }, -- blau
  { 255, 255,   0 }, -- gelb
  {   0, 255, 255 }, -- cyan
  { 255,   0, 255 }, -- magenta
  { 255, 255, 255 }, -- neutralweiß gemäß den Vorstellungen des Herstellers
  { 150, 200, 255 }, -- kaltweiß (nach Geschmack ROT  und GRÜN reduzieren)
  { 255, 200, 100 }, -- warmweiß (nach Geschmack GRÜN und BLAU reduzieren)
}

-- Demo starten:
fibaro:call(HankBulbID, 'turnOn')
fibaro:call(HankBulbID, 'setValue', '255')

for i,v in ipairs(farben) do
  fibaro:call(HankBulbID, 'setColor', v[1], v[2], v[3], 0)
  fibaro:sleep(5 * 1000)
end

fibaro:call(HankBulbID, 'turnOff')

Was ich nicht “weiß”: ob in der Hank-Lampe für RGB, Kalt- und Warmweiß jeweils verschiede LED-Gruppen eingebaut sind, wie das bei den Philps Hue der Fall ist. Ich vermute aber stark, die Weißtöne werden bei der Hank nur mit den RGBs emuliert, wie in meinem obigen Beispiel. Ich freue mich inzwischen, die Lampen gekauft zu haben, denn ich möchte sie nur als Signallampen verwenden zB. für “bin auf dem Heimweg”, “Briefkasten wurde geöffnet”, und dafür brauche ich kräftige Farben :slight_smile:

Was mich wieder mal ärgert ist, wenn ein eigentlich leistungsfähiges Produkt mit aufwändig gestaltetem Karton auf den Markt kommt und ausgerechnet dort wo es am wenigsten kostet - nämlich bei der Dokumentation - am meisten gespart wurde.

Hier bin ich mit der Leuchtstärke soweit runter gegangen wie möglich. Wenn man weniger als 50 für den Lux-Wert wählt, dann werden Kaltweiß und Warmweiß durch die Multiplikation der Farbkanäle mit Faktoren < 1 nicht mehr dargestellt. Vielleicht auch ein Problem in der Firmware 1.0.

Durch Ändern von lux auf Werte zwischen 50 und 255 kann man die Lampe jetzt mit verschiedenen Helligkeiten testen.
Gut finde ich, dass die Lampe wirklich schnell reagiert (man beachte die kurzen Schwarzpausen von einer Viertelsekunde).


local HankBulbID = 346
local lux = 50 -- minimal 50, maximal 255

local farben = {
  { lux,   0,   0 }, -- rot 
  {   0, lux,   0 }, -- grün
  {   0,   0, lux }, -- blau
  { lux, lux,   0 }, -- gelb
  {   0, lux, lux }, -- cyan
  { lux,   0, lux }, -- magenta
  { lux, lux, lux }, -- neutralweiß
  { lux*.6, lux*.78, lux    }, -- kaltweiß
  { lux   , lux*.78, lux*.4 }, -- warmweiß
}

fibaro:call(HankBulbID, 'turnOn')

while true do
  for i,v in ipairs(farben) do
    fibaro:call(HankBulbID, 'setColor', v[1], v[2], v[3], 0)
    fibaro:sleep(1 * 1000)
    fibaro:call(HankBulbID, 'setColor', 0, 0, 0, 0)
    fibaro:sleep(.25 * 1000)
  end
end

Schön, dass man hier zueinander gefunden hat. Es ist verblüffend, dass man nirgendwo tiefere Infos zu dieser Lampe erfahren konnte.
Ich werde das mit dem Warmweiß asap testen.

Allerdings habe ich auch raus gefunden, dass man die Helligkeit mittels SetValue ändern kann (das mit den lux Werten muss ich mir auch nochmal ansehen):


-- Sehr hell
fibaro:call(HankBulbID, „setValue“, „255“)

-- Sehr dunkel
fibaro:call(HankBulbID, „setValue“, „1“)


Der nächste Schritt wäre herauszufinden, ob der W-Wert in fibaro:call(ID, "setColor", R, G, B, W) exakt das gleiche bewirkt wie ein fibaro:call(ID, "setValue", W) für W > 0, und ob die Lampe bei R+G+B+W == 0 die LEDs wirklich vollständig ausschaltet. Dann könnte man alle Aktionen mit dieser Lampe auf den setColor abstützen. Vielleicht bekommt man so auch das Farbflackern im Demo-Skript in den Griff, wenn die Lampe eingeschaltet wird (sie scheint sich ja ihren letzten Farbwert beim Ausschalten zu merken). Dazu werde ich aber erst nächstes Wochenende kommen.

Laut meinem Test ist das wärmste Weiß mit fibaro:call(ID, "setColor", 0, 0, 0, 255) zu erreichen. Dieses warme Weiß finde ich viel zu kalt für eine angenehme Wohnzimmer Beleuchtung. Alle anderen Optionen mit RGB Werten erreichen nicht annähernd ein befriedigendes Ergebnis und sind auch nicht so hell wie die oben genannte Option.

R+G+B+W == 0 scheint die Lampe wirklich komplett zu deaktivieren.
Zumindest zeigt mein HC2 eine Lampe an, die immer an und aus geht.

Leider hat der Hersteller auch nicht geantwortet, ob noch extra warmweiße LEDs verbaut sind.

Wie versprochen: hier ein Demo-Skript, welches seit heute bei mir läuft und bisher alles richtig macht.
Dazu richte ich zunächst im HC2 eine globale Variable namens “zRGB1” ein (Namen sind Schall und Rauch, so heißt halt meine LED).

Nun kann ich in beliebigen LUA-Skripten diesen Wert wie folgt setzen:


fibaro:setGlobal('zRGB1', 'off')        -- schaltet die Lampe aus
fibaro:setGlobal('zRGB1', 'RT')         -- schaltet die Lampe in Rot ein 
fibaro:setGlobal('zRGB1', 'GN')         -- schaltet die Lampe in Grün ein (etc., siehe Farbtabelle im Skript, erweiterbar auf sonstige Lieblingsfarben)
-- ...
fibaro:setGlobal('zRGB1', 'WS')         -- schaltet die Lampe in Weiß ein
fibaro:setGlobal('zRGB1', '127,36,49')  -- schaltet die Lampe in ebendieser bestimmten Farbe ein

und hier das Skript, das auf diese Änderungen der globalen Variablen “zRGB1” reagiert:


--[[
%% autostart
%% globals
zRGB1
--]]

function g(n)return fibaro:getGlobal(n)or''end
function s(n,v)if(g(n)~=(v or''))then fibaro:setGlobal(n,v or'')end end
function split(s,c)local t={} local i=1 for str in string.gmatch(s,"([^"..(c or'%s').."]+)")do t[i]=str i=i+1 end return t end

local gvar = 'zRGB1'
local f = g(gvar);
if f == '' then fibaro:abort() end

local zRGB1 = 344 -- meine Modul-ID der Lampe

if f == 'off' then
  fibaro:call(zRGB1, 'setColor', 0,0,0,0)
  fibaro:call(zRGB1, 'turnOff')

else -- eine bestimmte Farbe einschalten:

-- Umwandeln in RGB für bestimmte feste Farbnamen:
	f = (
	      (f == 'RT' and '255,0,0'   or
	      (f == 'GN' and '0,255,0'   or
	      (f == 'BU' and '0,0,255'   or
	      (f == 'GB' and '255,255,0' or
	      (f == 'WS' and '0,0,0,255'
	      )))))
      ) or f

	local RGBW = split(f, ',')
	fibaro:call(zRGB1, 'setColor', RGBW[1], RGBW[2], RGBW[3], RGBW[4] or 0)
	fibaro:call(zRGB1, 'turnOn')	
end
s(gvar, '')

Anregungen immer gerne.

Gruß,
Andreas

Dank soweit.
Ich habe leider beide Lampen zurück senden müssen.

  1. Lampe viel nach wenigen Stunden komplett aus und ging nicht mehr an. Es ging garnichts mehr und ich musste die Lampe zurück schicken.
  2. Lampe funktionierte mit allen Tests und ich wollte gerade die Weiß töne mit RGB Farben erstellen, da gingen die RGB Leuchten komplett aus.
    Und die RGB Leuchten blieben aus. Exkludieren und Inkludieren half nicht. Ich konnte nur noch Weiß Heller und Dunkler stellen.

Ich bin nun Hank Lampen frei.
Viel Spass also beim weiteren Testen.
Ich bin Raus!

uups…
Mist!

Die Lampe scheint ja wohl wirklich noch sehr unausgereift zu sein. Ich habe drei Stück zu je 34,95 Euro gekauft, die bisher aber sehr wenig gelaufen sind und (noch) funktionieren.

Bin mal gespannt :frowning:

und tschüss

P.S.
Hing der Ausfall der Lampen möglicherweise mit dem Starten eines LUA-Skriptes zusammen? Worauf ich hinaus will ist, dass die Firmware 1.0 eventuell die eigene Elektronik in die Ewigen Jagdgründe schickt, je nachdem welche Werte man sendet - nur eine Vermutung, aber es wäre nicht das erste Gerät das sich selbst zerstört.

Eine der drei Lampen ist bei mir nun ebenfalls tot.