hydraold hat geschrieben:Hi
habe den zuvor nicht mit gesendet aber hier ist er
Vielen Dank erst einmal für deine BemühungenCode: Alles auswählen
!--------Steuerung Fussbodenheizung !----- RaumreglerKira und Aktor identifizieren string RaumreglerKira = "BidCos-RF.NEQ0936187"; string AktorKira = "BidCos-RF.NEQ0193946"; string AktorkanalKira ="4"; !----Ausführintervall Script und diverses festlegen dom.GetObject("SicherheitsheizzeitKira").State(240.000); !---- Heizzeit, falls errechnete Heizzeit im Minus dom.GetObject("SchaltschwelleniedertempKira").State(190.000); !--- Sofern errechnete Schaltzeit kleiner, dann nicht einschalten dom.GetObject("SchaltschwellehochtempKira").State(190.000); !---- Sofern errechnete Schaltzeit kleiner, dann nicht einschalten dom.GetObject("ScriptwiederholungKiramax").State(5.0); !-----------Wiederholung des Scripts bis Wärmeerhaltung dom.GetObject("ScriptwiederholungKiraHeizzeit").State(241.0); !---- Heizzeit bei Wärmeerhaltung !----- Temperaturen feststellen dom.GetObject("isttemperaturKira").State((0.0000 + dom.GetObject(RaumreglerKira#":2.ACTUAL_TEMPERATURE").Value())); dom.GetObject("solltemperaturKira").State((0.0000 + dom.GetObject(RaumreglerKira#":2.SET_TEMPERATURE").Value())); var schaltzustandKira = dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").Value(); !------ GrenzTemperaturen berechnen dom.GetObject("hochtempKira").State((0.000 + dom.GetObject("solltemperaturKira").Value() + 0.5)); dom.GetObject("toleranzniederKira").State(1.0); dom.GetObject("niedertempKira").State((0.000 + dom.GetObject("solltemperaturKira").Value() - dom.GetObject("toleranzniederKira").Value())); dom.GetObject("hochstillKira").State((0.000 + dom.GetObject("solltemperaturKira").Value() + 0.1)); dom.GetObject("niederstillKira").State((0.000 + dom.GetObject("solltemperaturKira").Value() - 0.2)); dom.GetObject("toleranzKira").State((0.000 + dom.GetObject("hochtempKira").Value() - dom.GetObject("niedertempKira").Value())); dom.GetObject("KiraFBTempDiff2").State(dom.GetObject("KiraFBTempDiff").Value()); if ((dom.GetObject("KiraFBTempDiff").Value()) <= 0.000) { dom.GetObject("KiraFBTempDiff").State(0.010); WriteLine("TempDiff kleiner gleich 0"); WriteLine(dom.GetObject("KiraFBTempDiff").Value()); } else { WriteLine ("TempfDiff größer 0"); WriteLine(dom.GetObject("KiraFBTempDiff").Value()); } !---------------------- Einschaltzeit berechnen ----------------- if ((dom.GetObject("isttemperaturKira").Value()) <= (dom.GetObject("solltemperaturKira").Value())) { WriteLine("Isttemperatur kleinergleich solltemperatur"); dom.GetObject("heizleistungKira").State((0.0000 + ((((dom.GetObject("solltemperaturKira").Value() + 0.2000) - dom.GetObject("isttemperaturKira").Value()) / dom.GetObject("toleranzKira").Value()) * 100.0000))); dom.GetObject("heizzeit1Kira").State((0.0000 + ((dom.GetObject("ScriptintervallKira").Value() * dom.GetObject("heizleistungKira").Value()) / 100.0000))); dom.GetObject("einschaltzeitvergleichtempKira").State((0.0000 + ((dom.GetObject("KiraFBTempDiff").Value() * dom.GetObject("heizzeit1Kira").Value()) / dom.GetObject("KiraDiffStartEndHeizzeit").Value()))) dom.GetObject("OrigHeizKira").State(dom.GetObject("heizzeit1Kira").Value()); if (((dom.GetObject("toleranzKira").Value() * dom.GetObject("heizleistungKira").Value()) / 100.0000) >= dom.GetObject("einschaltzeitvergleichtempKira").Value()) { WriteLine("heizzeit im original übernommen"); dom.GetObject("heizzeitKira").State((dom.GetObject("heizzeit1Kira").Value() * 60.0000)); } else { WriteLine("reduzierte heizzeit übernommen"); dom.GetObject("tempdifferenzkalkrealKira").State((0.0000 + (dom.GetObject("einschaltzeitvergleichtempKira").Value() - ((dom.GetObject("toleranzKira").Value() * dom.GetObject("heizleistungKira").Value()) / 100.0000)))); dom.GetObject("reduzierungszeitKira").State(0.0000 + ((dom.GetObject("tempdifferenzkalkrealKira").Value() * dom.GetObject("KiraDiffStartEndHeizzeit").Value()) / dom.GetObject("KiraFBTempDiff").Value())); dom.GetObject("neueheizzeitKira").State((0.0000 + (dom.GetObject("heizzeit1Kira").Value() - dom.GetObject("reduzierungszeitKira").Value()))); if (dom.GetObject("neueheizzeitKira").Value() <= 0.0000) { dom.GetObject("heizzeitKira").State((0.0000 + dom.GetObject("SicherheitsheizzeitKira").Value())); WriteLine("sicherheitshalber 4 Minuten heizen"); } else { dom.GetObject("heizzeitKira").State((0.0000 + (dom.GetObject("neueheizzeitKira").Value() * 60.0000))); WriteLine("neueheizzeit übernommen"); } } } else { WriteLine("Isttemperatur größer solltemperatur"); dom.GetObject("heizleistungKira").State((0.0000 + (((dom.GetObject("hochtempKira").Value() - dom.GetObject("isttemperaturKira").Value()) / dom.GetObject("toleranzKira").Value()) * 100.0000))); dom.GetObject("heizzeit1Kira").State((0.0000 + ((dom.GetObject("ScriptintervallKira").Value() * dom.GetObject("heizleistungKira").Value()) / 100.0000))); dom.GetObject("einschaltzeitvergleichtempKira").State((0.0000 + (dom.GetObject("KiraFBTempDiff").Value() * dom.GetObject("heizzeit1Kira").Value() / dom.GetObject("KiraDiffStartEndHeizzeit").Value()))); dom.GetObject("OrigHeizKira").State(dom.GetObject("heizzeit1Kira").Value()); if (((dom.GetObject("toleranzKira").Value() * dom.GetObject("heizleistungKira").Value()) / 100.0000) >= dom.GetObject("einschaltzeitvergleichtempKira").Value()) { WriteLine("heizzeit im original übernommen"); dom.GetObject("heizzeitKira").State((dom.GetObject("heizzeit1Kira").Value() * 60)); } else { WriteLine("reduzierte heizzeit übernommen"); dom.GetObject("tempdifferenzkalkrealKira").State(0.0000 + (dom.GetObject("einschaltzeitvergleichtempKira").Value() - ((dom.GetObject("toleranzKira").Value() * dom.GetObject("heizleistungKira").Value()) / 100.0000))); dom.GetObject("reduzierungszeitKira").State(0.0000 + ((dom.GetObject("tempdifferenzkalkrealKira").Value() * dom.GetObject("KiraDiffStartEndHeizzeit").Value()) / dom.GetObject("KiraFBTempDiff").Value())); dom.GetObject("neueheizzeitKira").State(0.0000 + (dom.GetObject("heizzeit1Kira").Value() - dom.GetObject("reduzierungszeitKira").Value())); if (dom.GetObject("neueheizzeitKira").Value() <= 0.0000) { dom.GetObject("heizzeitKira").State(0.0000 + dom.GetObject("SicherheitsheizzeitKira").Value()); WriteLine("sicherheitshalber 4 Minuten heizen"); } else { dom.GetObject("heizzeitKira").State(0.0000 + (dom.GetObject("neueheizzeitKira").Value() * 60.0000)); WriteLine("neueheizzeit übernommen"); } } } !-----------------------Heizzeit in Systemvariable schreiben dom.GetObject("KiraFBEinschaltzeit").State(dom.GetObject("heizzeitKira").Value()); dom.GetObject("KiraFBeinschaltzeitvergleichtemp").State(dom.GetObject("einschaltzeitvergleichtempKira").Value()); !------------------- Künftige Temperatur bei doppelter Schaltzeit vorausrechnen dom.GetObject("tempvorausrechnungKira").State(0.0000 + ((dom.GetObject("KiraFBTempDiff2").Value() * (dom.GetObject("ScriptintervallKira").Value() * 2.000) / dom.GetObject("KiraDiffStartEndHeizzeit").Value()))); dom.GetObject("NeueisttemperaturKira").State(0.0000 + dom.GetObject("isttemperaturKira").Value() + dom.GetObject("tempvorausrechnungKira").Value()); !--------------TEST Temperaturen anzeigen !----- Schaltungen ausführen if ((dom.GetObject("isttemperaturKira").Value() < dom.GetObject("hochtempKira").Value()) && (dom.GetObject("isttemperaturKira").Value() > dom.GetObject("niedertempKira").Value())) { if ((dom.GetObject("KiraFBVergleichTemp").Value() == dom.GetObject("isttemperaturKira").Value()) && (dom.GetObject("isttemperaturKira").Value() > dom.GetObject("solltemperaturKira").Value())) { dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); WriteLine("Ist = Vergleichstemperatur"); if (schaltzustandKira == "true") { WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { WriteLine("innerhalb toleranz"); dom.GetObject("KiraFBTempIstinToleranz").State(true); if ((dom.GetObject("isttemperaturKira").Value() <= dom.GetObject("hochstillKira").Value()) && (dom.GetObject("isttemperaturKira").Value() >= dom.GetObject("niederstillKira").Value())) { WriteLine("innerhalb stille"); if (schaltzustandKira == "true") { WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { WriteLine("ausserhalb stille"); if (dom.GetObject("isttemperaturKira").Value() < dom.GetObject("niederstillKira").Value()) { if (dom.GetObject("heizzeitKira").Value() < dom.GetObject("SchaltschwelleniedertempKira").Value()) { WriteLine("Schaltzeit zu klein");dom.GetObject("KiraFBTempIstinToleranz").State(true); if (schaltzustandKira == "true") { WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { WriteLine("kleiner niederstill"); dom.GetObject(AktorKira#":"#AktorkanalKira#".ON_TIME").State(dom.GetObject("heizzeitKira").Value()); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(1); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { if (dom.GetObject("KiraFBVergleichTemp").Value() < dom.GetObject("isttemperaturKira").Value()) { dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); WriteLine("über hochstill gestiegen"); if (schaltzustandKira == "true") { WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { if (dom.GetObject("heizzeitKira").Value() < dom.GetObject("SchaltschwellehochtempKira").Value()) { WriteLine("Schaltzeit zu klein"); dom.GetObject("KiraFBTempIstinToleranz").State(true); if (schaltzustandKira == "true") { WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { WriteLine("größer als hochstill"); dom.GetObject(AktorKira#":"#AktorkanalKira#".ON_TIME").State(dom.GetObject("heizzeitKira").Value()); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(1); dom.GetObject("KiraFBTempIstinToleranz").State(true); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } } } } } else { if (dom.GetObject("isttemperaturKira").Value() >= dom.GetObject("hochtempKira").Value()) { WriteLine("Isttemperatur größer als hochtemp"); if (schaltzustandKira == "true") { if (dom.GetObject("NeueisttemperaturKira").Value() <= dom.GetObject("solltemperaturKira").Value()) { WriteLine("Neue Isttemp kleiner gleich Solltemperatur"); WriteLine("ist eingeschaltet und soll eingeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("Neue Isttemp grösser Solltemperatur"); WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { if (dom.GetObject("NeueisttemperaturKira").Value() <= dom.GetObject("solltemperaturKira").Value()) { WriteLine("Neue Isttemp kleiner gleich Solltemperatur"); WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".ON_TIME").State(36000); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(1); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); dom.GetObject("KiraFBEinschaltzeit").State(888); } else { WriteLine("Neue Isttemp grösser Solltemperatur"); WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } } else { if (dom.GetObject("isttemperaturKira").Value() == dom.GetObject("niedertempKira").Value()) { if (schaltzustandKira == "true") { if (dom.GetObject("NeueisttemperaturKira").Value() >= dom.GetObject("niederstillKira").Value()) { WriteLine("Neue Isttemp größer gleich Niederstill"); WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("Neue Isttemp kleiner Niederstill"); WriteLine("ist eingeschaltet und soll eingeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { if (dom.GetObject("NeueisttemperaturKira").Value() >= dom.GetObject("niederstillKira").Value()) { WriteLine("Neue Isttemp größer gleich Niederstill"); WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("Neue Isttemp kleiner Niederstill"); WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".ON_TIME").State(36000); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(1);dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); dom.GetObject("KiraFBEinschaltzeit").State(888); } } } else { WriteLine("Isttemperatur ist kleiner als niedertemp"); if (schaltzustandKira == "true") { if (dom.GetObject("NeueisttemperaturKira").Value() >= dom.GetObject("niederstillKira").Value()) { WriteLine("Neue Isttemp größer gleich Niederstill"); WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(0); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("Neue Isttemp kleiner Niederstill"); WriteLine("ist eingeschaltet und soll eingeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } } else { if (dom.GetObject("NeueisttemperaturKira").Value() >= dom.GetObject("niederstillKira").Value()) { WriteLine("Neue Isttemp größer gleich Niederstill"); WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); } else { WriteLine("Neue Isttemp kleiner Niederstill"); WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject(AktorKira#":"#AktorkanalKira#".ON_TIME").State(36000); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(1); dom.GetObject("KiraFBTempIstinToleranz").State(false); dom.GetObject("KiraFBVergleichTemp").State(dom.GetObject("isttemperaturKira").Value()); dom.GetObject("KiraFBEinschaltzeit").State(888); } } } } } if ((dom.GetObject("solltemperaturKira").Value() < 5.600) && (dom.GetObject("ScriptwiederholungKiramax").Value() == dom.GetObject("ScriptwiederholungKira").Value()) && (dom.GetObject("Aussentemp").Value() == 2.0)) { dom.GetObject(AktorKira#":"#AktorkanalKira#".ON_TIME").State(dom.GetObject("ScriptwiederholungKiraHeizzeit").Value()); dom.GetObject(AktorKira#":"#AktorkanalKira#".STATE").State(1); dom.GetObject("ScriptwiederholungKira").State(0.0); dom.GetObject("KiraFBEinschaltzeit").State(999); } else { WriteLine("nix"); dom.GetObject("ScriptwiederholungKira").State(dom.GetObject("ScriptwiederholungKira").Value() + 1.0); if (dom.GetObject("ScriptwiederholungKira").Value() > dom.GetObject("ScriptwiederholungKiramax").Value()) { dom.GetObject("ScriptwiederholungKira").State(0.0); } else { dom.GetObject("ScriptwiederholungKira").State(dom.GetObject("ScriptwiederholungKira").Value()); } } WriteLine("Ende");
Bitte auch dieses Script unter "Script Testen" durchlaufen lassen (es kann sein das das bis zu 2 Minuten dauert).
In der Ausgabe müsste dann so ein ähnlicher Text wie der hier erscheinen:
Und bitte diesen Post nicht übersehen:
viewtopic.php?f=31&t=24890&start=100#p395045
Und bitte auch dieses Script unter "Script testen" laufen lassen.
Es müsste ebenfalls mit Ausgabe "Ende" beenden.
Code: Alles auswählen
!---- StartHeizzeit in Systemvariable schreiben
!----- RaumreglerKira identifizieren
string RaumreglerKira = "BidCos-RF.NEQ0936187";
!---- StartHeizzeit für Tempvorausrechnung in Systemvariable schreiben
if ((dom.GetObject("KiraZahli").Value()) == 0.0)
{
WriteLine("Zaehler kleiner 1");
dom.GetObject("KiraStartHeizzeit").State((((system.Date("%H").ToInteger()) * 60) + (system.Date("%M").ToInteger())));
dom.GetObject("KiraZahli").State((dom.GetObject("KiraZahli").Value())+1.0);
WriteLine(dom.GetObject("KiraZahli").Value());
WriteLine(dom.GetObject("KiraStartHeizzeit").Value());
}
else
{
dom.GetObject("KiraZahli").State((dom.GetObject("KiraZahli").Value())+1.0);
if ((dom.GetObject("KiraZahli").Value()) > 2.0)
{
WriteLine("Zaehler groesser Max");
dom.GetObject("KiraZahli").State(0.0);
WriteLine("Zaehler null");
WriteLine(dom.GetObject("KiraZahli").Value());
}
else
{
WriteLine("nix");
WriteLine(dom.GetObject("KiraZahli").Value());
}
}
!---- StartHeizzeit1 für Scriptintervallberechnung in Systemvariable schreiben
dom.GetObject("KiraStartHeizzeit1").State((((system.Date("%H").ToInteger()) * 60) + (system.Date("%M").ToInteger())));
!--------- Startheiztemperatur in Systemvariable schreiben
!-----Aktion durchführen
if ((dom.GetObject("KiraZahli").Value()) == 0.0)
{
WriteLine("Zaehler kleiner null");
dom.GetObject("KiraFBStartTemperatur").State(dom.GetObject(RaumreglerKira#":2.ACTUAL_TEMPERATURE").Value());
WriteLine(dom.GetObject("KiraFBStartTemperatur").Value());
}
else
{
WriteLine("nix");
}
!---------- Differenz zur Einschaltzeit errechnen
if ((dom.GetObject("KiraEndHeizzeit").Value()) < (dom.GetObject("KiraletztesEIN").Value()))
{
dom.GetObject("KiraleEINDIFF").State(((1440 - (dom.GetObject("KiraletztesEIN").Value())) + (dom.GetObject("KiraEndHeizzeit").Value())));
}
else
{
dom.GetObject("KiraleEINDIFF").State(((dom.GetObject("KiraEndHeizzeit").Value()) - dom.GetObject("KiraletztesEIN").Value()));
}
WriteLine("ENDE");