Bugreport: "Die perfekte Lichtsteuerung"

Moin Moin,

nach einigen Tagen/Wochen im Einsatz habe ich folgenden Bug in der “perfekten” Lichtsteuerung gefunden.
Szenario: Wechselt der SleepState und/oder der PresentState - also eine der überwachten globalen Variablen - bei eingeschaltetem Licht durch die Steuerung so bricht das Skript mit einem Fehler ab.
Grund: Beim ändern des Licht Szenarios in der Funktion UpdateLightValues (Zeile 574) wird der Name des Devices nicht ausgelesen und ins Array gelegt. Da das übrige Skript diesen Namen aber ausgibt kommt es zu einem Fehler.

Bugfix: Folgenden Code in die Zeile 577 einfügen
item.name = tostring(fibaro:getName(item.id));

Hier die ganze - geänderete - Funktion:

function UpdateLightValues( currentArray )
  for i = 1,#currentArray do
    item = currentArray[i];
	item.name = tostring(fibaro:getName(item.id));
	newValue = fibaro:getValue(item.id, "value");
	item.currentValue = tonumber(newValue) ~= nil and tonumber(newValue) or ( newValue == "true" and 1 or 0 );
    if ( item.lightType == "com.fibaro.RGBW" )then
         color = fibaro:getValue(item.id, "color");
         c = {R="0", G="0", B="0", W="0", brg="0" }
         c.R, c.G, c.B, c.W = color:match("([^,]+),([^,]+),([^,]+),([^,]+)");
         c.brg = fibaro:getValue(item.id, "brightness"); 
         item.currentValue = c;
       end
  end
end

Danach sollte alles problemlos funktionieren.

Gruß
Neospin