Atualizado – 29 de dezembro de 2022
Um limite de comutação dependente da carga destina-se a evitar sobrecarga da linha que fornece energia de cais. Com base na potência máxima permitida, 3.100 W assumida aqui, e na potência máxima de aquecimento elétrico ALDE de 1.500 W (nível I -> 1.000 W, nível II -Y 500 W), há cerca de 1.600 W de flexibilidade.
O programa:
O código:
real pwr = dom.GetObject("HG_LM_POWER").Value(); WriteLine("Pwr.");WriteLine(pwr);
var not_heating = dom.GetObject("SV_IT").Value(); WriteLine("não_aquecimento");WriteLine(não_aquecimento);
if ((pwr > 1) && (pwr <2201) && (not_heat == falso))
{
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 == falso))
{
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 == falso))
{
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 == falso))
{
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 == verdadeiro)
{
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);
}
A saída do script (se as linhas WriteLinha("...")
não estão comentados):
Pwr.
1882.919998
não_aqueça
falso.falso
P > 1 < 2201
O script avalia a variável do sistema HG_LM_POWER
do script anterior, bem como o estado do canal 1 do módulo relé de 4 vias Homematic que comuta a bomba de aquecimento.
Se houver reserva de energia suficiente, por exemplo, menos de 2.301 W, o status da bomba 1
, ou seja, a variável do sistema não_aqueça
= falso.falso
, então de acordo com se
-Estágios de ramificação I e II ativados.
Por exemplo, se a máquina de café estiver agora activada, são necessários 800 W adicionais. A produção anterior de 2.131,7 W passa a ser 2.931,7 W.
O segundo então entra em vigor senão
-Ramo e Estágio I estão desligados.
Assim que a máquina de café for novamente desligada, a necessidade de potência é reduzida para o nível anterior e o nível I é novamente ligado.
Os outros cenários funcionam da mesma maneira.