Actualizado – 29 de diciembre de 2022
Un umbral de conmutación en función de la carga tiene por objeto evitar la sobrecarga de la línea que suministra la corriente de tierra. Tomando como base la potencia máxima permitida, que aquí se supone de 3.100 W, y la potencia máxima de la calefacción eléctrica ALDE de 1.500 W (etapa I -> 1.000 W, etapa II -Y 500 W), se obtiene un margen de unos 1.600 W.
El programa:

El código:
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);
}
La salida del script (si las líneas Línea de escritura("... ")
no están comentados):
Pwr.
1882.919998
no_calentamiento
falso
P > 1 < 2201
El script evalúa la variable de sistema HG_LM_POWER
del script anterior, así como el estado del canal 1 del módulo de relé cuádruple Homematic que conmuta la bomba de calefacción.
Si hay suficiente reserva de potencia, por ejemplo, menos de 2.301 W, el estado de la bomba 1
por lo tanto, la variable del sistema no_calentamiento
= falso
entonces, según la si
-Rama Nivel I y II encendida.
Si, por ejemplo, ahora se activa la cafetera, se necesitan 800 W adicionales. La potencia anterior de 2.131,7 W se convierte en 2.931,7 W.
Como resultado, el segundo si no
-rama y la etapa I está apagada.
Cuando la cafetera se apaga de nuevo, la demanda de energía se reduce al nivel anterior y el nivel I se conecta de nuevo.
Los demás escenarios funcionan de forma similar.