Mise à jour – 29 décembre 2022
Un seuil de commutation dépendant de la charge vise à éviter une surcharge de la ligne fournissant l'alimentation à quai. Sur la base de la puissance maximale autorisée, ici supposée 3 100 W, et de la puissance maximale de chauffage électrique ALDE de 1 500 W (niveau I -> 1 000 W, niveau II -Y 500 W), on obtient environ 1 600 W de flexibilité.
Le programme :

Le code :
réel pwr = dom.GetObject("HG_LM_POWER").Value(); WriteLine("Pwr.");WriteLine(pwr);
var not_heating = dom.GetObject("SV_IT").Value(); WriteLine("not_heating");WriteLine(not_heating);
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);
varP = "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);
varP = "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);
varP = "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);
! varP = "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);
varP = "P > 3100" ; dom.GetObject("Current_Load").State(P);WriteLine(P);
}
elseif (not_heat == vrai)
{
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 sortie du script (si les lignes ÉcrireLigne(" ... ")
ne sont pas commentés) :
Pwr.
1882.919998
ne_chauffez pas
faux.faux
P > 1 < 2201
Le script évalue la variable système HG_LM_POWER
du script précédent, ainsi que l'état du canal 1 du module relais 4 voies Homematic qui commute la pompe à chaleur.
Si la réserve de puissance est suffisante, par exemple inférieure à 2 301 W, l'état de la pompe 1
, c'est-à-dire la variable système ne_chauffez pas
= faux.faux
, alors selon si
-Étages de dérivation I et II allumés.
Par exemple, si la machine à café est activée, 800 W supplémentaires sont nécessaires. La puissance précédente de 2 131,7 W devient 2 931,7 W.
Le second prend alors effet sinon
-La branche et l'étape I sont désactivées.
Une fois la machine à café éteinte, la demande de puissance est réduite au niveau précédent et le niveau I est à nouveau activé.
Les autres scénarios fonctionnent de la même manière.