Opdateret - 29. december 2022
En belastningsafhængig koblingstærskel er beregnet til at undgå overbelastning af den linje, der forsyner landstrømmen. Baseret på den maksimalt tilladte effekt, som her antages at være 3.100 W, og den maksimale ALDE-elvarmeeffekt på 1.500 W (trin I -> 1.000 W, trin II -Y 500 W), giver det en margin på ca. 1.600 W.
Programmet:

Koden:
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);
}
Scriptets output (hvis linjerne WriteLine(" ... ")
er ikke kommenteret ud):
Pwr.
1882.919998
ikke_opvarmning
falsk
P > 1 < 2201
Scriptet evaluerer systemvariablen HG_LM_POWER
fra det forrige script, samt status for kanal 1 i Homematic 4-fold relæmodulet, der skifter varmepumpen.
Hvis der er tilstrækkelig strømreserve, f.eks. mindre end 2.301 W, viser pumpens status 1
derfor er systemvariablen ikke_opvarmning
= falsk
så, i henhold til hvis
-Afdelingsniveau I og II er tændt.
Hvis f.eks. kaffemaskinen nu er aktiveret, kræves der yderligere 800 W. Den tidligere effekt på 2.131,7 W bliver til 2.931,7 W.
Som følge heraf er den anden elseif
-gren og trin I er slukket.
Når kaffemaskinen slukkes igen, reduceres effektbehovet til det tidligere niveau, og niveau I tændes igen.
De andre scenarier fungerer på samme måde.