Zum Inhalt springen

HG_LM – Lastabhängige Schaltschwellen festlegen

Lesedauer 2 Minuten

Aktualisiert – Dezember 29, 2022

Eine lastabhängige Schaltschwelle soll eine Überlastung der den Landstrom zuführenden Leitung vermeiden. Ausgehend von der maximal erlaubten Leistung, hier angenommene 3.100 W, sowie der maximalen ALDE Elektro-Heizleistung von 1.500 W (Stufe I -> 1.000 W, Stufe II -Y 500 W) ergeben sich rund 1.600 W Spielraum.

Das Programm:

Programm – HG_LM – Leistungsmessung und leistungsgerechtes Schalten

Der Code:

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) && (nicht_heizen == 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("Aktuelle_Last").State(P);WriteLine(P);
}

elseif ((pwr > 2200) && (pwr < 2601) && (nicht_heizen == 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("Aktuelle_Last").State(P);WriteLine(P);
}

elseif ((pwr > 2600) && (pwr < 2801) && (nicht_heizen == 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("Aktuelle_Last").State(P);WriteLine(P);
}

elseif ((pwr > 2800) && (pwr < 3101) && (nicht_heizen == 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("Aktuelle_Last").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("Aktuelle_Last").State(P);WriteLine(P);
}

elseif (nicht_heizen == 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);
}

Die Ausgabe des Skriptes (wenn die Zeilen WriteLine(" ... ") nicht auskommentiert sind):

Pwr.
1882.919998
nicht_heizen
false
P > 1 < 2201

Das Skript wertet die Systemvariable HG_LM_POWER aus dem vorhergehendem Skript, sowie den Status des die Heizungspumpe schaltenden Kanals 1 des Homematic 4-fach Relais-Moduls aus.

Ist ausreichend Leistungsreserve gegeben, z.B. kleiner 2.301 W, der Status der Pumpe 1 , mithin die Systemvariable nicht_heizen = false, dann werden lt. if-Zweig Stufe I und II eingeschaltet.

Wird nun z.B. die Kaffeemaschine aktiviert, werden zusätzliche 800 W abgefordert. Aus der bisherigen Leistung von 2.131,7 W werden so 2.931,7 W.

Es greift in Folge der zweite elseif-Zweig und Stufe I wird ausgeschaltet.

Ist die Kaffeemaschine wieder aus, reduziert sich der Leistungsbedarf auf das vorherige Niveau und Stufe I wird wieder eingeschaltet.

Analog arbeiten die übrigen Szenarien.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEDeutsch