Opgedateer – 29 Desember 2022
'n Lasafhanklike skakeldrempel is bedoel om oorbelasting van die lyn wat walkrag voorsien, te voorkom. Gebaseer op die maksimum toegelate krag, wat hier as 3 100 W aangeneem word, en die maksimum ALDE elektriese verwarmingsuitset van 1 500 W (Vlak I -> 1 000 W, Vlak II -Y 500 W), lei dit tot 'n marge van ongeveer 1 600 W.
Die program:

Die kode:
werklike krag = dom.GetObject("HG_LM_POWER").Waarde(); SkryfLyn("Krag."); SkryfLyn(krag);
var nicht_heizen = dom.GetObject("SV_IT").Value(); WriteLine("nicht_heizen");WriteLine(nicht_heizen);
as ((krag > 1) && (krag < 2201) && (nie_verhitting == vals))
{
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("Huidige_Laai").State(P);WriteLine(P);
}
anders as ((krag > 2200) && (krag < 2601) && (nie_verhitting == vals))
{
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("Huidige_Laai").State(P);WriteLine(P);
}
anders as ((krag > 2600) && (krag < 2801) && (nie_verhitting == vals))
{
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("Huidige_Laai").State(P);WriteLine(P);
}
anders as ((krag > 2800) && (krag < 3101) && (nie_verhitting == vals))
{
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("Huidige_Laai").State(P);WriteLine(P);
}
anders as (krag > 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("Huidige_Laai").State(P);WriteLine(P);
}
andersas (nie_verhitting == waar)
{
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);
}
Die uitvoer van die skrip (as die lyne SkryfLyn(" ... ") word nie uitgekommentaar nie):
Krag.
1882.919998
nie_hitte
vals
P > 1 < 2201
Die skrip evalueer die stelselveranderlike HG_LM_POWER van die vorige skrip, sowel as die status van kanaal 1 van die Homematic 4-weg relaismodule, wat die verwarmingspomp skakel.
Indien daar voldoende kragreserwe is, bv. minder as 2 301 W, die status van die pomp 1 , vandaar die stelselveranderlike nie_hitte = vals, dan volgens as-Takvlak I en II aangeskakel.
As die koffiemasjien byvoorbeeld nou geaktiveer is, word 'n bykomende 800 W benodig. Die vorige krag van 2 131,7 W word 2 931,7 W.
Die tweede anders as-Tak en stadium I is afgeskakel.
Wanneer die koffiemasjien weer afgeskakel word, word die kragbehoefte verminder na die vorige vlak en vlak I word weer aangeskakel.
Die ander scenario's werk op 'n soortgelyke manier.