Hallo Henning!
Die Szene ist nicht von mir, sondern hier aus dem Forum!
Ich hatte sie bei mir, nach dem Posten hier, nochmals angepasst. Probiere es jetzt mal…
--[[
%% properties
535 value
%% globals
--]]
local co2ID = 535 -- ID des netatmo co2-Sensor
local rgbwID = 611
local co2 = tonumber(fibaro:getValue(co2ID, "value"))
local startSource = fibaro:getSourceTrigger()
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
end
-- Funktion RGBW
function setRGBW (rgbw_option, rgbwID, colourString)
local RGBWTable= {}
local i = 1
for value in string.gmatch(colourString,"(%d+)") do
RGBWTable[i] = value
i = i + 1
end
if (tonumber(fibaro:getValue(rgbwID, "brightness")) ~= 0) then
fibaro:call(rgbwID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
else
fibaro:debug('Funktion aufgerufen; RGBW ist aus')
end
end
if (startSource['type'] == 'other') then
Debug('white', "netatmo co2-Check 1.0 gestartet. Szene manuell gestartet")
else
Debug('green', "netatmo co2-Check 1.0 gestartet. Szene durch CO2-Wert gestartet")
end
if (co2 < 1000) then
Debug( "green", "co2-Wert von " .. co2 .. " ppm ist ok.")
setRGBW(rgbw_opt, rgbwID, '0,0,255,255')
elseif (co2 >= 1000 and co2 <= 1050) then
Debug( "orange", "co2-Wert von " .. co2 .. " ppm liegt leicht über dem empfohlenen Wert von 1000 ppm.")
setRGBW(rgbw, rgbwID, '255,232,0,0')
elseif (co2 >= 1050 and co2 <= 1100) then
Debug( "orange", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1050 ppm. Es sollte gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,209,0,0')
elseif (co2 >= 1100 and co2 <= 1150) then
Debug( "orange", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1100 ppm. Es sollte gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,186,0,0')
elseif (co2 >= 1150 and co2 <= 1200) then
Debug( "orange", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1150 ppm. Es sollte dringend gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,163,0,0')
elseif (co2 >= 1200 and co2 <= 1250) then
Debug( "orange", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1200 ppm. Es sollte dringend gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,140,0,0')
elseif (co2 >= 1250 and co2 <= 1300) then
Debug( "red", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1250 ppm. Es sollte DRINGEND gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,117,0,0')
elseif (co2 >= 1300 and co2 <= 1350) then
Debug( "red", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1300 ppm. Es sollte DRINGEND gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,94,0,0')
elseif (co2 >= 1350 and co2 <= 1400) then
Debug( "red", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1350 ppm. Es sollte DRINGEND gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,71,0,0')
elseif (co2 >= 1400 and co2 <= 1450) then
Debug( "red", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1400 ppm. Es sollte DRINGEND gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,48,0,0')
elseif (co2 >= 1450 and co2 <= 1500) then
Debug( "red", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1450 ppm. Es sollte DRINGEND gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,25,0,0')
elseif (co2 >= 1500) then
Debug( "red", "co2-Wert von " .. co2 .. " ppm liegt liegt über 1500 ppm. Es sollte DRINGEND gelüftet werden.")
setRGBW(rgbw_opt, rgbwID, '255,0,0,0')
end
Viele Grüße
Christian