Posodobljeno - december 29, 2022
Namen preklopnega praga, odvisnega od obremenitve, je preprečiti preobremenitev linije, ki napaja obalno napajanje. Na podlagi največje dovoljene moči, ki je tukaj predvidena v višini 3 100 W, in največje moči električnega ogrevanja ALDE v višini 1 500 W (stopnja I -> 1 000 W, stopnja II -Y 500 W), to pomeni rezervo približno 1 600 W.
Program:

Koda:
real pwr = dom.GetObject("HG_LM_POWER").Value(); WriteLine("Pwr.");WriteLine(pwr);
var nicht_heizen = dom.GetObject("SV_IT").Value(); WriteLine("nicht_heizen");WriteLine(nicht_heizen);
if ((pwr > 1) && (pwr < 2201) && (not_heating == false))
{
dom.GetObject("BidCos-RF.IEQ0101895:1.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:2.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:3.STATE").State(1);
dom.GetObject("BidCos-RF.SEQ3114635:1.STATE").State(1);
var P = "P > 1 < 2201"; dom.GetObject("Current_Load").State(P);WriteLine(P);
}
elseif ((pwr > 2200) && (pwr < 2601) && (not_heating == false))
{
dom.GetObject("BidCos-RF.IEQ0101895:1.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:2.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:3.STATE").State(0);
dom.GetObject("BidCos-RF.SEQ3114635:1.STATE").State(1);
var P = "P > 2200 < 2601"; dom.GetObject("Current_Load").State(P);WriteLine(P);
}
elseif ((pwr > 2600) && (pwr < 2801) && (not_heating == false))
{
dom.GetObject("BidCos-RF.IEQ0101895:1.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:2.STATE").State(0);
dom.GetObject("BidCos-RF.IEQ0101895:3.STATE").State(1);
dom.GetObject("BidCos-RF.SEQ3114635:1.STATE").State(1);
var P = "P > 2600 < 2801"; dom.GetObject("Current_Load").State(P);WriteLine(P);
}
elseif ((pwr > 2800) && (pwr < 3101) && (not_heating == false))
{
dom.GetObject("BidCos-RF.IEQ0101895:1.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:2.STATE").State(0);
dom.GetObject("BidCos-RF.IEQ0101895:3.STATE").State(1);
dom.GetObject("BidCos-RF.SEQ3114635:1.STATE").State(0);
! var P = "P > 2800 < 3101"; dom.GetObject("Current_Load").State(P);WriteLine(P);
}
elseif (pwr > 3100)
{dom.GetObject("BidCos-RF.IEQ0101895:1.STATE").State(1);
dom.GetObject("BidCos-RF.IEQ0101895:2.STATE").State(0);
dom.GetObject("BidCos-RF.IEQ0101895:3.STATE").State(0);
dom.GetObject("BidCos-RF.SEQ3114635:1.STATE").State(0);
var P = "P > 3100"; dom.GetObject("Current_Load").State(P);WriteLine(P);
}
elseif (not_heating == true)
{
dom.GetObject("BidCos-RF.IEQ0101895:1.STATE").State(0);
dom.GetObject("BidCos-RF.IEQ0101895:2.STATE").State(0);
dom.GetObject("BidCos-RF.IEQ0101895:3.STATE").State(0);
dom.GetObject("BidCos-RF.SEQ3114635:1.STATE").State(1);
}
Izpis scenarija (če so vrstice WriteLine(" ... ")
niso komentirani):
Pwr.
1882.919998
not_heating
lažno
P > 1 < 2201
Skripta ovrednoti sistemsko spremenljivko HG_LM_POWER
iz prejšnjega scenarija in stanje kanala 1 4-kratnega relejnega modula Homematic, ki preklaplja ogrevalno črpalko.
Če je na voljo zadostna rezerva moči, npr. manj kot 2.301 W, se stanje črpalke 1
zato je sistemska spremenljivka not_heating
= lažno
potem je v skladu z če
-Vklopljena sta I. in II. stopnja.
Če je zdaj na primer vključen aparat za kavo, je potrebnih dodatnih 800 W. Prejšnja moč 2 131,7 W postane 2 931,7 W.
Zaradi tega je drugi elseif
-odcep in faza I je izklopljena.
Ko je aparat za kavo ponovno izklopljen, se poraba energije zmanjša na prejšnjo stopnjo in ponovno se vklopi stopnja I.
Drugi scenariji delujejo na podoben način.