Inhalt Variabel Büro
Code: Alles auswählen
50;2013-04-04 15:34:02,0.0,0.0,0.000000,17;2013-04-04 15:36:02,0.0,0.0,0.000000,17;2013-04-04 15:38:02,0.0,0.0,0.000000,17;2013-04-04 15:40:31,0.0,0.0,0.000000,17;2013-04-04 15:42:01,0.0,0.0,0.000000,17;2013-04-04 15:44:02,0.0,0.0,0.000000,17;2013-04-04 15:46:01,0.0,0.0,0.000000,17;2013-04-04 15:47:14,0.0,0.0,0.000000,17;2013-04-04 15:50:18,0.0,0.0,0.000000,17;2013-04-04 15:55:22,0.0,0.0,0.000000,17;2013-04-04 16:00:27,0.0,0.0,0.000000,17;2013-04-04 16:05:19,0.0,0.0,0.000000,17;2013-04-04 16:11:22,0.0,0.0,0.000000,17;2013-04-04 16:15:28,0.0,0.0,0.000000,17;2013-04-04 16:20:37,0.0,0.0,0.000000,17;2013-04-04 16:25:40,0.0,0.0,0.000000,17;2013-04-04 16:30:40,0.0,0.0,0.000000,17;2013-04-04 16:35:18,0.0,0.0,0.000000,11;2013-04-04 16:40:10,0.0,0.0,0.000000,11;2013-04-04 16:45:10,0.0,0.0,0.000000,11;2013-04-04 16:50:10,0.0,0.0,0.000000,11;2013-04-04 16:55:45,0.0,0.0,0.000000,0;2013-04-04 17:00:20,0.0,0.0,0.000000,0;2013-04-04 17:05:19,0.0,0.0,0.000000,0;2013-04-04 17:10:23,0.0,0.0,0.000000,0;2013-04-04 17:12:49,0.0,0.0,0.000000,0;2013-04-04 17:15:18,0.0,0.0,0.000000,0;2013-04-04 17:20:17,0.0,0.0,0.000000,0;2013-04-04 17:25:10,0.0,0.0,0.000000,19;2013-04-04 17:30:10,0.0,0.0,0.000000,21;2013-04-04 17:35:10,0.0,0.0,0.000000,21;2013-04-04 17:40:10,0.0,0.0,0.000000,21;2013-04-04 17:45:10,0.0,0.0,0.000000,17;2013-04-04 17:50:10,0.0,0.0,0.000000,16;2013-04-04 17:55:10,0.0,0.0,0.000000,16;2013-04-04 18:00:10,0.0,0.0,0.000000,16;2013-04-04 18:05:09,0.0,0.0,0.000000,16;2013-04-04 18:10:10,0.0,0.0,0.000000,16;2013-04-04 18:15:10,0.0,0.0,0.000000,16;2013-04-04 18:20:09,0.0,0.0,0.000000,16;2013-04-04 18:25:10,0.0,0.0,0.000000,15;2013-04-04 18:30:17,0.0,0.0,0.000000,17;2013-04-04 18:35:18,0.0,0.0,0.000000,19;2013-04-04 18:40:10,0.0,0.0,0.000000,21;2013-04-04 18:45:09,0.0,0.0,0.000000,21;2013-04-04 18:50:10,0.0,0.0,0.000000,19;2013-04-04 18:55:09,0.0,0.0,0.000000,17;2013-04-04 19:00:10,0.0,0.0,0.000000,16;2013-04-04 19:05:17,0.0,0.0,0.000000,16;2013-04-04 19:10:19,0.0,0.0,0.000000,16
Inhalt Variable Bad
Code: Alles auswählen
64;2013-04-04 15:01:07,19.0,19.8,44,19;2013-04-04 15:02:02,19.0,19.8,44,19;2013-04-04 15:04:01,19.0,19.9,44,19;2013-04-04 15:06:06,19.0,19.9,44,19;2013-04-04 15:08:03,19.0,19.9,44,19;2013-04-04 15:10:37,19.0,19.9,44,19;2013-04-04 15:12:01,19.0,20.0,44,19;2013-04-04 15:14:02,19.0,20.0,44,13;2013-04-04 15:16:50,19.0,20.0,44,13;2013-04-04 15:18:01,19.0,20.0,44,13;2013-04-04 15:20:42,19.0,20.0,44,13;2013-04-04 15:22:07,19.0,20.0,44,13;2013-04-04 15:34:02,19.0,20.1,44,13;2013-04-04 15:36:02,19.0,20.2,44,13;2013-04-04 15:38:02,19.0,20.2,44,13;2013-04-04 15:40:31,19.0,20.2,44,13;2013-04-04 15:42:01,19.0,20.2,44,13;2013-04-04 15:44:02,19.0,20.2,44,7;2013-04-04 15:46:01,19.0,20.2,44,7;2013-04-04 15:47:10,19.0,20.2,44,7;2013-04-04 15:48:02,19.0,20.2,44,7;2013-04-04 15:50:18,19.0,20.2,44,8;2013-04-04 15:55:23,19.0,20.2,44,8;2013-04-04 16:00:28,19.0,20.2,43,8;2013-04-04 16:05:19,19.0,20.3,43,8;2013-04-04 16:11:25,19.0,20.3,43,8;2013-04-04 16:15:28,19.0,20.3,43,2;2013-04-04 16:20:37,19.0,20.4,43,2;2013-04-04 16:25:40,19.0,20.4,43,2;2013-04-04 16:30:41,19.0,20.4,43,2;2013-04-04 16:35:19,19.0,20.4,43,0;2013-04-04 16:40:10,19.0,20.4,43,0;2013-04-04 16:45:10,19.0,20.4,43,0;2013-04-04 16:50:10,21.0,20.4,43,0;2013-04-04 16:55:45,21.0,20.4,43,36;2013-04-04 17:00:21,21.0,20.4,44,36;2013-04-04 17:05:19,21.0,20.4,44,36;2013-04-04 17:10:24,21.0,20.5,44,36;2013-04-04 17:12:49,21.0,20.5,44,36;2013-04-04 17:15:18,21.0,20.5,44,36;2013-04-04 17:20:17,21.0,20.6,45,36;2013-04-04 17:25:10,21.0,20.6,45,36;2013-04-04 17:30:10,21.0,20.6,45,36;2013-04-04 17:35:10,21.0,20.7,45,36;2013-04-04 17:40:10,21.0,20.7,45,36;2013-04-04 17:45:10,21.0,20.7,45,36;2013-04-04 17:50:10,21.0,20.7,45,36;2013-04-04 17:55:10,21.0,20.7,45,30;2013-04-04 18:00:10,21.0,20.8,45,30;2013-04-04 18:05:09,21.0,20.8,45,30;2013-04-04 18:10:10,21.0,20.7,44,30;2013-04-04 18:15:10,21.0,20.8,44,29;2013-04-04 18:20:09,21.0,20.8,44,29;2013-04-04 18:25:10,21.0,20.8,44,29;2013-04-04 18:30:17,21.0,20.8,44,29;2013-04-04 18:35:18,21.0,20.8,45,29;2013-04-04 18:40:10,21.0,20.8,45,29;2013-04-04 18:45:09,21.0,20.8,45,29;2013-04-04 18:50:10,21.0,20.8,46,29;2013-04-04 18:55:09,21.0,21.0,49,30;2013-04-04 19:00:10,21.0,21.1,53,29;2013-04-04 19:05:17,21.0,21.4,57,27;2013-04-04 19:10:19,21.0,21.7,59,24;2013-04-04 19:15:24,21.0,21.8,56,24
So wird es in Webmatic angezeigt
Bad:
Buero:
Die Variablen werden so "gefüllt"
So sind die Variablen im WebUI angelget
Bad:
Büro:
Das Programm das das ganze füllt
und das Zeitmodul des Programms
und zu guter Letzt noch die beiden Thermostat
Bad
Buero
Script
Code: Alles auswählen
!Diagrammverlauf Heizung
!Skript zum protokollieren der Heizungsdate eines Raums. Je Raum darf dabei nur ein
!Regler vorhanden sein und die an diesen Regler angelernten Stellantriebe müssen
!auch diesem Raum zugeordnet sein. Skript ist vorbereitet auf die max. vier Stellantriebe,
!ich glaube aber, dass die eh alle gleich geregelt werden, weshalb nur einer aktiv ist.
!Liste von Räumen mit Thermostatreglern und Stellantrieben zum Protokollieren
string logRooms = "Buero;Bad";
!Name der Systemvariablen ist prefix<raumname>
string prefix = "Heizung_";
integer maxEntries = 288; ! max Eintraege im Umlaufpuffer festlegen. z.B. alle 5 Minuten für 24h = 288.
!----------------------------------------------------------------------------------------------------------------------------
time now = system.Date("%Y-%m-%d %H:%M:%S").ToTime();
! Zum durchhangeln durch die Kanäle eines Raums
string chn_s;
var chn;
! dito für die Datenpunkte des Kanals
string dp_s;
var dp;
string logVal;
foreach(logVal, logRooms.Split(";"))
{
! Die zu protokollierenden Datenpunkte initialisieren
string vvs1 = "";
string vvs2 = "";
string vvs3 = "";
string vvs4 = "";
string setp = "";
string temp = "";
string hmdt = "";
! Die Systemvariable, wohin gespeichert wird ermitteln
var sysVar = dom.GetObject(prefix # logVal);
var room = dom.GetObject(logVal);
!Alle Räume durchklappern
foreach(chn_s, room.EnumUsedIDs()) {
chn = dom.GetObject(chn_s);
!und innerhalb eines Raums alle Kanäle
foreach(dp_s, chn.DPs()){
dp = dom.GetObject(dp_s);
if(dp.HssType() == "VALVE_STATE"){
if(vvs1 == ""){
vvs1 = dp.Value().ToString();}
else{
if(vvs2 == ""){vvs2 = dp.Value().ToString();}
else{
if(vvs3 == ""){vvs3 = dp.Value().ToString();}
else{
if(vvs4 == ""){vvs4 = dp.Value().ToString();}
}
}
}
}
if(dp.HssType() == "SETPOINT"){
setp = dp.Value().ToString();
!Kürzen auf eine Nachkommastelle
setp = setp.Substr(0, setp.Find(".")+2);
}
if(dp.HssType() == "TEMPERATURE"){
temp = dp.Value().ToString();
!Kürzen auf eine Nachkommastelle
temp = temp.Substr(0, temp.Find(".")+2);
}
if(dp.HssType() == "HUMIDITY"){
hmdt = dp.Value();
}
}
}
!Nicht gefundene Stellregler mit 0 initialisieren
if(vvs1 == ""){vvs1="0";}
if(vvs2 == ""){vvs2="0";}
if(vvs3 == ""){vvs3="0";}
if(vvs4 == ""){vvs4="0";}
!Hier wird der neue Eintrag zusammengebastelt
string newEntry = now.ToString() # "," # setp # "," # temp # "," # hmdt # "," # vvs1;
string newString;
string clpString;
string oldString = sysVar.Variable();
if(sysVar.Variable() == "???"){
newString = "1;"#newEntry;
}
else{
! erstes Feld enthält den Zähler aktuell
integer cnt = oldString.StrValueByIndex(";",0).ToInteger();
! cnt entfernen: alles ab dem ersten ";"
integer i = oldString.Find(";");
integer l = oldString.Length();
clpString = oldString.Substr(i+1,l-i+1);
if(cnt < maxEntries){
cnt = cnt + 1;
}
else{
!Umlaufpuffer voll, erstes Element entfernen
i = clpString.Find(";");
l = clpString.Length();
clpString = clpString.Substr(i+1,l-i+1);
}
!neues Element hinten dranhängen
newString = cnt # ";" # clpString # ";" # newEntry;
}
! WriteLine(newString);
sysVar.State(newString);
}
ich hoffe das "erschlägt" jetzt nicht
Aber ich finde einfach keinen "Fehler"