Aggiornato – 29 dicembre 2022
Una soglia di commutazione dipendente dal carico ha lo scopo di evitare di sovraccaricare la linea che fornisce l'alimentazione da terra. Considerando la potenza massima consentita, qui assunta 3.100 W, e la potenza massima del riscaldamento elettrico ALDE di 1.500 W (livello I -> 1.000 W, livello II -Y 500 W), si ottiene una flessibilità di circa 1.600 W.
Il programma:

Il codice:
real pwr = dom.GetObject("HG_LM_POWER").Valore(); WriteLine("Pwr.");WriteLine(pwr);
var not_heating = dom.GetObject("SV_IT").Value(); WriteLine("non_riscaldamento");WriteLine(non_riscaldamento);
if ((pwr > 1) && (pwr < 2201) && (not_heat == 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_heat == 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_heat == 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_heat == 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_heat == 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);
}
L'output dello script (se le righe ScriviLine(" ... ")
non sono commentati):
Pwr.
1882.919998
non_riscaldare
false.false
P > 1 < 2201
Lo script valuta la variabile di sistema HG_LM_POWER
dallo script precedente, nonché lo stato del canale 1 del modulo relè Homematic a 4 vie che commuta la pompa di riscaldamento.
Se la riserva di potenza è sufficiente, ad es. inferiore a 2.301 W, lo stato della pompa 1
, ovvero la variabile di sistema non_riscaldare
= false.false
, quindi secondo Se
-Stadi di diramazione I e II attivati.
Se ad esempio la macchina del caffè è ora attivata, saranno necessari ulteriori 800 W. La potenza precedente di 2.131,7 W diventa 2.931,7 W.
Successivamente entrerà in vigore il secondo altrimenti
-Il ramo e lo stadio I sono disattivati.
Quando la macchina per il caffè viene nuovamente spenta, la potenza richiesta viene ridotta al livello precedente e il livello I viene riattivato.
Gli altri scenari funzionano allo stesso modo.