Power percentage increase
Posted: Wednesday 19 April 2023 18:01
Hi all,
I would like to increase my power supply to my heat storage with an percentage (with an selector switch I think) depending on this given percentage I want to increase the power to my heating elements in the boilers.
So during the first couple of months of the year I would like to add more power from the grid as my solar-panels are giving less power then during the summer, and adding an percentage of power from the grid is cheaper then heating on gas.
currently I use a simple script that I managed to get together and working, but I can't figure out how to add an percentage to it.
Maybe there is even a better way to compile this script, so if you have some tips and help, that would be appreciated
I would like to increase my power supply to my heat storage with an percentage (with an selector switch I think) depending on this given percentage I want to increase the power to my heating elements in the boilers.
So during the first couple of months of the year I would like to add more power from the grid as my solar-panels are giving less power then during the summer, and adding an percentage of power from the grid is cheaper then heating on gas.
currently I use a simple script that I managed to get together and working, but I can't figure out how to add an percentage to it.
Maybe there is even a better way to compile this script, so if you have some tips and help, that would be appreciated
Code: Select all
return {
on = {
devices = { 311
},
timer = { 'every 10 minutes'
},
},
logging = {
level = domoticz.LOG_INFO,
marker = "Boiler verwarming"
},
execute = function(domoticz, devices)
local Inverter = domoticz.devices(166) --277 = actuall inverter. Shelly3EM =166
local Kwh = Inverter.actualWatt
local Boiler_tempL = domoticz.devices(248) -- gem temp boiler links
local Temp_BL = Boiler_tempL.temperature
local Boiler_tempR = domoticz.devices(249) -- gem temp boiler rechts
local Temp_BR = Boiler_tempR.temperature
local Boiler_tempT = domoticz.devices(250) -- gem temp boiler totaal
local Temp_BT = Boiler_tempT.temperature
local Boostselector = domoticz.devices(311) --(boiler verwarming)
local Boil1 = domoticz.devices(219) --2000watt links
local Boil2 = domoticz.devices(220) --2000watt links
local Boil3 = domoticz.devices(221) --1500watt links
local Boil4 = domoticz.devices(222) --1500watt links
local Boil5 = domoticz.devices(223) --1500watt rechts
local Boil6 = domoticz.devices(224) --1500watt rechts
local Boil7 = domoticz.devices(225) --2000watt rechts
local Boil8 = domoticz.devices(226) --2000watt rechts
if Temp_BT >= 85 or Temp_BR >= 85 or Kwh <= 750 and Boostselector.state == 'Off' then
Boil1.switchOff()
Boil2.switchOff()
Boil3.switchOff()
Boil4.switchOff()
Boil5.switchOff()
Boil6.switchOff()
Boil7.switchOff()
Boil8.switchOff()
elseif (Kwh >= 500 and Kwh <= 1000) and Temp_BT <= 85 then --1
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 1000 and Kwh <= 1500) and Temp_BT <= 85 then --2
Boil1.switchOff().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOff().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 1500 and Kwh <= 2000) and Temp_BT <= 85 then --3
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOn().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 2000 and Kwh <= 3000) and Temp_BT <= 85 then --4
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst()
Boil4.switchOff().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 3000 and Kwh <= 3500) and Temp_BT <= 85 then --5
Boil1.switchOn().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOff().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst()
elseif (Kwh >= 3500 and Kwh <= 4000) and Temp_BT <= 85 then --6
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOn().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 4000 and Kwh <= 5000) and Temp_BT <= 85 then --7
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst()
elseif (Kwh >= 5000 and Kwh <= 6000) and Temp_BT <= 85 then --8
Boil1.switchOff().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOff().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst()
elseif (Kwh >= 6000 and Kwh <= 6500) and Temp_BT <= 85 then --9
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOn().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 6500 and Kwh <= 7000) and Temp_BT <= 85 then --10
Boil1.switchOff().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 7000 and Kwh <= 7500) and Temp_BT <= 85 then --11
Boil1.switchOff().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOn().checkFirst()
Boil4.switchOff().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 7500 and Kwh <= 8000) and Temp_BT <= 85 then --12
Boil1.switchOff().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOn().checkFirst()
elseif (Kwh >= 8000 and Kwh <= 8500) and Temp_BT <= 85 then --13
Boil1.switchOn().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOff().checkFirst()
Boil5.switchOff().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOn().checkFirst()
elseif (Kwh >= 8500 and Kwh <= 9000) and Temp_BT <= 85 then --14
Boil1.switchOff().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOn().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 9000 and Kwh <= 10000) and Temp_BT <= 85 then --15
Boil1.switchOn().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOff().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOn().checkFirst()
Boil6.switchOff().checkFirst()
Boil7.switchOn().checkFirst()
Boil8.switchOff().checkFirst()
elseif (Kwh >= 10000 and Kwh <= 12000) and Temp_BT <= 85 then --16
Boil1.switchOff().checkFirst()
Boil2.switchOn().checkFirst()
Boil3.switchOn().checkFirst()
Boil4.switchOn().checkFirst()
Boil5.switchOn().checkFirst()
Boil6.switchOn().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst()
end
--************************************************************************************
if Boostselector.state == 'Boost 30' and Kwh <= 750 then
Boil1.switchOn().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst().afterSec(4)
Boil4.switchOff().checkFirst()
Boil5.switchOn().checkFirst().afterSec(7)
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst().afterSec(10)
elseif Boostselector.state == 'Boost 60' and Kwh <= 750 then
Boil1.switchOn().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst().afterSec(4)
Boil4.switchOff().checkFirst()
Boil5.switchOn().checkFirst().afterSec(7)
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst().afterSec(10)
elseif Boostselector.state == 'Boost 60' and Kwh <= 750 then
Boil1.switchOn().checkFirst()
Boil2.switchOff().checkFirst()
Boil3.switchOn().checkFirst().afterSec(4)
Boil4.switchOff().checkFirst()
Boil5.switchOn().checkFirst().afterSec(7)
Boil6.switchOff().checkFirst()
Boil7.switchOff().checkFirst()
Boil8.switchOn().checkFirst().afterSec(10)
end
end
}