Lua scene verwarming
Ik heb hieronder mijn lua scene voor mijn verwarming, deze code is nog niet af maar ben al ver heen. Doormiddel van deze code kan ik elk vertrek apart van elkaar verwarmen en heeft dus zijn eigen temperatuur instellingen.
--[[
%% properties
%% events
%% globals
--]]
-- Voorkom starten 2de scene
if (fibaro:countScenes()>1) then fibaro:abort()
fibaro:debug("2de scene word gestopt")
end
-- Zet kleuren voor debug
function Info(color, message)
fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
end
-- wis debug screen
api.delete("/scenes/" .. __fibaroSceneId .. "/debugMessages")
-----------------------------------------------------------
-- Algehele informatie
local BuitenTemp = tonumber(api.get('/weather')['Temperature'])
Info("yellow", "Algehele informatie:")
Info("white", "Buitentemperatuur is ".. BuitenTemp.." °C")
-----------------------------------------------------------
-- Slaapkamer Reinhold en Agnes
local TempRA = fibaro:getValue(617, "value")
local SetRA = fibaro:getGlobalValue("Ver_SL_RA")
local RegRA = {654,655} -- Groepen 1 en 2
local TermosRA = 637 -- Virtual device
Info("yellow", "Informatie Slaapkamer Reinhold en Agnes:")
Info("white", "Huidige temperatuur is ".. TempRA.." °C")
Info("white", "Ingestelde temperatuur is ".. SetRA.." °C")
function VerwarmingRA_Controle()
for i=1, #RegRA do
if(tonumber(fibaro:getValue(RegRA[i], "value")) > 0) then
fibaro:call(TermosRA, "setProperty", "ui.Veris.value","Verwarming is aan")
else
fibaro:call(TermosRA, "setProperty", "ui.Veris.value","Verwarming is uit")
end
end
end
VerwarmingRA_Controle()
-----------------------------------------------------------
-- Badkamer begane grond
local TempBadBG = fibaro:getValue(618, "value")
local SetBadBG = fibaro:getGlobalValue("Ver_Bad_BG")
local RegBadBG = 660 -- Groep 3
local TermosBadBG = 676 -- Virtual device
Info("yellow", "Informatie badkamer begane grond:")
Info("white", "Huidige temperatuur is ".. TempBadBG.." °C")
Info("white", "Ingestelde temperatuur is ".. SetBadBG.." °C")
if(tonumber(fibaro:getValue(RegBadBG, "value")) > 0) then
fibaro:call(TermosBadBG, "setProperty", "ui.Veris.value","Verwarming is aan")
else
fibaro:call(TermosBadBG, "setProperty", "ui.Veris.value","Verwarming is uit")
end
-----------------------------------------------------------
-- Bijkeuken
local TempBij = fibaro:getValue(619, "value")
local SetBij = fibaro:getGlobalValue("Ver_Bkeuk")
local RegBij = 642 -- Groep 8
local TermosBij = 675 -- Virtual device
local ZomerBij = 5
Info("yellow", "Informatie bijkeuken:")
Info("white", "Huidige temperatuur is ".. TempBij.." °C")
Info("white", "Ingestelde temperatuur is ".. SetBij.." °C")
if (tonumber(fibaro:getValue(RegBij, "value")) > 0) then
fibaro:call(TermosBij, "setProperty", "ui.Veris.value","Verwarming is aan")
else
fibaro:call(TermosBij, "setProperty", "ui.Veris.value","Verwarming is uit")
end
-----------------------------------------------------------
-- Slaapkamer Iris
local TempI = fibaro:getValue(699, "value")
local SetI = fibaro:getGlobalValue("Ver_SL_Ir")
local RegI = 642 -- Radiator
local TermosI = 705 -- Virtual device
Info("yellow", "Informatie slaapkamer Iris:")
Info("white", "Huidige temperatuur is ".. TempI.." °C")
Info("white", "Ingestelde temperatuur is ".. SetI.." °C")
if(tonumber(fibaro:getValue(RegI, "value")) > 0) then
fibaro:call(TermosI, "setProperty", "ui.Veris.value","Verwarming is aan")
else
fibaro:call(TermosI, "setProperty", "ui.Veris.value","Verwarming is uit")
end
-----------------------------------------------------------
-- CV Ketel aan of uit zetten
local Aan = 0.4
local Uit = 0.2
local CVKetel = 690 -- Schakelaar CV ketel
local Groepen = {654,655,660,661,666,667,672,642,643,648,649} -- Groepen schakelaars
local Groepen_AU = 0 -- Groepen Aan Uit controle
local Virtual = {675,676,637,605} -- Virtual devices
---------------------------------------------------------
-- CV ketel aan of uit
function Groepen_Controle()
for i=1, #Groepen do
if(tonumber(fibaro:getValue(Groepen[i], "value")) > 0) then
Groepen_AU = 1
end
end
end
function Berichten()
if (Groepen_AU == 1) then
Info("green", "Warmte vraag voor:")
for k,v in pairs(Groepen) do
if tonumber(fibaro:getValue(v, "value")) ~= 0 then
Info("green","Verwarming aan voor: ".. fibaro:getRoomNameByDeviceID(v) .. " - " ..fibaro:getName(v))
fibaro:call(CVKetel, "turnOn")
end
end
elseif (Groepen_AU == 0) then
Info("green"," Geen warmte vraag meer")
fibaro:call(CVKetel, "turnOff")
end
end
Groepen_Controle()
Berichten()
if tonumber(fibaro:getValue(CVKetel, "value")) > 0 then
Info("green", "CV ketel is ingeschakeld") else
Info("Green", "CV ketel is uitgeschakeld")
end
-----------------------------------------------------------
-- Bediening slaapkamer verwarming Agnes en Reinhold
if tonumber(TempRA) < (SetRA - Aan) then
fibaro:call(654, "turnOn")
fibaro:call(655, "turnOn")
elseif tonumber(TempRA) > (SetRA - Uit) then
fibaro:call(654, "turnOff")
fibaro:call(655, "turnOff")
end
fibaro:call(TermosRA, "setProperty", "ui.Tempis.value","Huidige temperatuur "..(TempRA).." °C")
fibaro:call(TermosRA, "setProperty", "ui.TempSet.value","Ingestelde temperatuur "..(SetRA).." °C")
-----------------------------------------------------------
-- Bediening badkamer begane grond
if tonumber(TempBadBG) < (SetBadBG - Aan) then
fibaro:call(660, "turnOn")
elseif tonumber(TempBadBG) > (SetBadBG - Uit) then
fibaro:call(660, "turnOff")
end
fibaro:call(TermosBadBG, "setProperty", "ui.Tempis.value","Huidige temperatuur "..(TempBadBG).." °C")
fibaro:call(TermosBadBG, "setProperty", "ui.TempSet.value","Ingestelde temperatuur "..(SetBadBG).." °C")
-----------------------------------------------------------
-- Bediening bijkeuken
if (tonumber(TempBij) < (SetBij - Aan)) then
fibaro:call(642, "turnOn")
elseif (tonumber(TempBij) > (SetBij - Uit)) then
fibaro:call(642, "turnOff")
end
fibaro:call(TermosBij, "setProperty", "ui.Tempis.value","Huidige temperatuur "..(TempBij).." °C")
fibaro:call(TermosBij, "setProperty", "ui.TempSet.value","Ingestelde temperatuur "..(SetBij).." °C")
-----------------------------------------------------------
-- Bediening slaapkamer Iris
fibaro:call(TermosI, "setProperty", "ui.Tempis.value","Huidige temperatuur "..(TempI).." °C")
fibaro:call(TermosI, "setProperty", "ui.TempSet.value","Ingestelde temperatuur "..(SetI).." °C")