Oppdatert - 29. desember 2022
En belastningsavhengig koblingsterskel skal unngå overbelastning av linjen som forsyner landstrømmen. Med utgangspunkt i den maksimalt tillatte effekten, som her er antatt å være 3100 W, og ALDEs maksimale elektriske varmeeffekt på 1500 W (trinn I -> 1000 W, trinn II -Y 500 W), gir dette en margin på ca. 1600 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);
}
Utdataene fra skriptet (hvis linjene WriteLine(" ... ") er ikke kommentert ut):
Pwr.
1882.919998
ikke_oppvarming
falsk
P > 1 < 2201
Skriptet evaluerer systemvariabelen HG_LM_POWER fra forrige skript, samt statusen til kanal 1 i Homematic 4-fold relémodul som kobler til varmepumpen.
Hvis det er tilstrekkelig effektreserve, f.eks. mindre enn 2 301 W, vises pumpens status 1 derfor systemvariabelen ikke_oppvarming = falskså, i henhold til hvis-Avdelingsnivå I og II er slått på.
Hvis for eksempel kaffemaskinen nå er aktivert, kreves det ytterligere 800 W. Den tidligere effekten på 2131,7 W blir til 2931,7 W.
Som et resultat ble den andre elsehvis-gren og trinn I er slått av.
Når kaffemaskinen slås av igjen, reduseres effektbehovet til det forrige nivået, og nivå I slås på igjen.
De andre scenariene fungerer på samme måte.