Güncellendi - 29 Aralık 2022
Yüke bağlı bir anahtarlama eşiği, kıyı gücünü besleyen hattın aşırı yüklenmesini önlemek için tasarlanmıştır. Burada 3.100 W olduğu varsayılan izin verilen maksimum çıkış ve 1.500 W'lık maksimum ALDE elektrikli ısıtma çıkışı (aşama I -> 1.000 W, aşama II -Y 500 W) temel alındığında, bu yaklaşık 1.600 W'lık bir marj ile sonuçlanır.
Program:

Kod:
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);
}
Komut dosyasının çıktısı (eğer satırlar WriteLine(" ... ")
yorumlanmamıştır):
Pwr.
1882.919998
not_heating
Yanlış
P > 1 < 2201
Kod, sistem değişkenini değerlendirir HG_LM_POWER
önceki komut dosyasından ve ayrıca ısıtma pompasını anahtarlayan Homematic 4 katlı röle modülünün 1. kanalının durumu.
Yeterli güç rezervi varsa, örneğin 2.301 W'tan az, pompanın durumu 1
bu nedenle sistem değişkeni not_heating
= Yanlış
o zaman, göre Eğer
-Şube Seviye I ve II açıldı.
Örneğin, kahve makinesi şimdi etkinleştirilirse, ek 800 W gerekir. Önceki 2.131,7 W'lık güç 2.931,7 W olur.
Sonuç olarak, ikinci elseif
-dalı ve I. aşama kapatılır.
Kahve makinesi tekrar kapatıldığında, güç gereksinimi önceki seviyeye düşürülür ve seviye I tekrar açılır.
Diğer senaryolar da benzer şekilde çalışır.