NEWS
Hilfe beim Skript erweiterung
-
LIebe Community. Darf ich Euch um Hilfe bitten. Zurzeit steuere ich mein Umwalzpumpe Schaltung anhand der Ventilwerte alle Thermostaten.
Da ich nun ein Kacheloffen in EG installiert habe, verfälscht der neuen Heizung die duchschnitliche Ventilwerte über der gesamten Haus. Daher schaltet der Umwalzpumpe frühseitig aus.
Meine Idee ist folgendes:
ein Filter in diese Skript einbauen, wo die Heizkörper pro Stockwerk gelistet werden, und in mein Blockly ein "OR" einbauen.zB - Wenn die EG Ventilwert < 20% OR Wenn die OG1 Ventilwert < 20% or Wenn die OG2 Ventilwert < 20%, dann der Umwalzpumpe einschalten.
Hier der bestehenden Skript - der bis jetzt sehr gut funktioniert hat.
Vielen Dank für eure Hilfe !
############
string itemID;
object i = (dom.GetObject(ID_FUNCTIONS)).Get("Heating");integer test = 0; !Berrechnung der ges. Ventilöffnung string s_device; object o_device; integer i_devices = 0; integer i_cdevices = 0; string s_channel; object o_channel; integer i_channels = 0; integer i_cchannels = 0; string s_typelist = ""; string s_temp; foreach(itemID, i.EnumUsedIDs()) { var ch = dom.GetObject(ID_CHANNELS).Get(itemID); if (ch.TypeName() == "CHANNEL") { ! Sicherheitsabfrage, verhindert Absturz, falls ein falsches Gerät im Gewerk ist ! Datenpunkt für Ventilstellung ermitteln var dp = ch.DPByHssDP("LEVEL"); if (dp) { ! Sicherheitsabfrage, verhindert Absturz, falls ein falsches Gerät im Gewerk "Heizung" ist var name = ch.Name(); WriteLine(name); ! Ventilstellung ermitteln var vent = dp.Value(); var conv = vent*100; WriteLine(conv); test = test + conv; i_channels = i_channels + 1; } } } WriteLine("****************************************************"); WriteLine(name); WriteLine(conv); WriteLine(i_channels); WriteLine(test); var diff = test / i_channels; WriteLine(diff); dom.GetObject("Ventilwert").State(diff); if(diff > 20.0){WriteLine("Bedingung erfüllt"); dom.GetObject("Heizungspumpe").State(1);} else {WriteLine("Bedingung nicht erfüllt"); dom.GetObject("Heizungspumpe").State(0);} -
LIebe Community. Darf ich Euch um Hilfe bitten. Zurzeit steuere ich mein Umwalzpumpe Schaltung anhand der Ventilwerte alle Thermostaten.
Da ich nun ein Kacheloffen in EG installiert habe, verfälscht der neuen Heizung die duchschnitliche Ventilwerte über der gesamten Haus. Daher schaltet der Umwalzpumpe frühseitig aus.
Meine Idee ist folgendes:
ein Filter in diese Skript einbauen, wo die Heizkörper pro Stockwerk gelistet werden, und in mein Blockly ein "OR" einbauen.zB - Wenn die EG Ventilwert < 20% OR Wenn die OG1 Ventilwert < 20% or Wenn die OG2 Ventilwert < 20%, dann der Umwalzpumpe einschalten.
Hier der bestehenden Skript - der bis jetzt sehr gut funktioniert hat.
Vielen Dank für eure Hilfe !
############
string itemID;
object i = (dom.GetObject(ID_FUNCTIONS)).Get("Heating");integer test = 0; !Berrechnung der ges. Ventilöffnung string s_device; object o_device; integer i_devices = 0; integer i_cdevices = 0; string s_channel; object o_channel; integer i_channels = 0; integer i_cchannels = 0; string s_typelist = ""; string s_temp; foreach(itemID, i.EnumUsedIDs()) { var ch = dom.GetObject(ID_CHANNELS).Get(itemID); if (ch.TypeName() == "CHANNEL") { ! Sicherheitsabfrage, verhindert Absturz, falls ein falsches Gerät im Gewerk ist ! Datenpunkt für Ventilstellung ermitteln var dp = ch.DPByHssDP("LEVEL"); if (dp) { ! Sicherheitsabfrage, verhindert Absturz, falls ein falsches Gerät im Gewerk "Heizung" ist var name = ch.Name(); WriteLine(name); ! Ventilstellung ermitteln var vent = dp.Value(); var conv = vent*100; WriteLine(conv); test = test + conv; i_channels = i_channels + 1; } } } WriteLine("****************************************************"); WriteLine(name); WriteLine(conv); WriteLine(i_channels); WriteLine(test); var diff = test / i_channels; WriteLine(diff); dom.GetObject("Ventilwert").State(diff); if(diff > 20.0){WriteLine("Bedingung erfüllt"); dom.GetObject("Heizungspumpe").State(1);} else {WriteLine("Bedingung nicht erfüllt"); dom.GetObject("Heizungspumpe").State(0);}