Vielen Dank für diese Idee...
Basierend darauf habe ich das Skript angepasst und es funktioniert.
Aber du kannst ja mal rüber gucken, ob man das verbessern kann.
Ich bin dir jedenfalls MEGA Dankbar. das hätte ich alleine nicht hin bekommen.
Code: Alles auswählen
!die WriteLine-Statements können im Live-Betrieb weg.
!Daten vom Geräte holen
var DaikinKind2 = "http://192.168.99.36/aircon/get_day_power_ex";
var DaikinKind1 = "http://192.168.99.33/aircon/get_day_power_ex";
var DaikinEltern = "http://192.168.99.28/aircon/get_day_power_ex";
var DaikinWZ = "http://192.168.99.27/aircon/get_day_power_ex";
var DaikinWG = "http://192.168.99.35/aircon/get_day_power_ex";
string stdout;
string stderr;
system.Exec("wget --no-check-certificate -q -O - '" # DaikinWG # "'", & stdout, & stderr);
! folgende Zeile muss im Echtbetrieb weg.
!stdout ="ret=OK,curr_day_heat=0/0/0/0/0/4/3/2/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0,prev_1day_heat=0/0/0/0/0/6/4/3/1/0/0/0/0/0/1/0/0/0/0/0/0/0/0/0,curr_day_cool=0/0/0/0/0/0/0/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0/0/0,prev_1day_cool=0/0/0/0/0/0/0/0/0/1/1/0/1/1/0/0/0/0/0/0/0/0/0/0";
!WriteLine(stdout);
!WriteLine(stderr);
!Empangene Daten verarbeiten / aufsummieren
if (stdout.StartsWith("ret=OK")) {
string elems1;
string days1;
string monthval1;
real days1val1 = 0;
foreach(elems1, stdout.Split(",")) {
!WriteLine(elems1.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems1.StrValueByIndex("=", 0) == "curr_day_heat") {
days1 = elems1.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days1);
foreach(monthval1, days1.Split("/")) {
days1val1 = days1val1 + monthval1.ToFloat();
}
}
};
foreach(elems1, stdout.Split(",")) {
!WriteLine(elems1.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems1.StrValueByIndex("=", 0) == "curr_day_cool") {
days1 = elems1.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days1);
foreach(monthval1, days1.Split("/")) {
days1val1 = (days1val1 + (monthval1.ToFloat())/10);
}
}
};
days1val1 = (days1val1*100);
WriteLine("Tagesgesamtverbrauch Daikin Wintergarten in Watt: " # days1val1);
var varname1 = "Tagesgesamtverbrauch Daikin WinterGarten in Watt";
!Variable als Zahl angelegt
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname1).State(days1val1);
!Schreiben über Variablen für Systemvariablennamen und neuem Wert
string SysVarName1 = "Tagesgesamtverbrauch_1";
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName1);
if (SVObj) {
SVObj.State(days1val1);
}
}
!die WriteLine-Statements können im Live-Betrieb weg.
string stdout;
string stderr;
system.Exec("wget --no-check-certificate -q -O - '" # DaikinWZ # "'", & stdout, & stderr);
!WriteLine(stdout);
!WriteLine(stderr);
!Empangene Daten verarbeiten / aufsummieren
if (stdout.StartsWith("ret=OK")) {
string elems2;
string days2;
string monthval2;
real days2val2 = 0;
foreach(elems2, stdout.Split(",")) {
!WriteLine(elems2.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems2.StrValueByIndex("=", 0) == "curr_day_heat") {
days2 = elems2.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days2);
foreach(monthval2, days2.Split("/")) {
days2val2 = days2val2 + monthval2.ToFloat();
}
}
};
foreach(elems2, stdout.Split(",")) {
! WriteLine(elems2.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems2.StrValueByIndex("=", 0) == "curr_day_cool") {
days2 = elems2.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
! WriteLine(days2);
foreach(monthval2, days2.Split("/")) {
days2val2 = (days2val2 + (monthval2.ToFloat())/10);
}
}
};
days2val2 = (days2val2*100);
WriteLine("Tagesgesamtverbrauch Daikin Wohnzimmer in Watt: " # days2val2);
var varname2 = "Tagesgesamtverbrauch Daikin Wohnzimmer in Watt";
!Variable als Zahl angelegt
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname2).State(days2val2);
!Schreiben über Variablen für Systemvariablennamen und neuem Wert
string SysVarName2 = "Tagesgesamtverbrauch_1";
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName2);
if (SVObj) {
SVObj.State(days2val2);
}
}
string stdout;
string stderr;
system.Exec("wget --no-check-certificate -q -O - '" # DaikinEltern # "'", & stdout, & stderr);
!WriteLine(stdout);
!WriteLine(stderr);
!Empangene Daten verarbeiten / aufsummieren
if (stdout.StartsWith("ret=OK")) {
string elems3;
string days3;
string monthval3;
real days3val3 = 0;
foreach(elems3, stdout.Split(",")) {
!WriteLine(elems3.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems3.StrValueByIndex("=", 0) == "curr_day_heat") {
days3 = elems3.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days3);
foreach(monthval3, days3.Split("/")) {
days3val3 = days3val3 + monthval3.ToFloat();
}
}
};
foreach(elems3, stdout.Split(",")) {
!WriteLine(elems3.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems3.StrValueByIndex("=", 0) == "curr_day_cool") {
days3 = elems3.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
! WriteLine(days3);
foreach(monthval3, days3.Split("/")) {
days3val3 = (days3val3 + (monthval3.ToFloat())/10);
}
}
};
days3val3 = (days3val3*100);
WriteLine("Tagesgesamtverbrauch Daikin Elternschlafzimmer in Watt: " # days3val3);
var varname3 = "Tagesgesamtverbrauch Daikin DaikinEltern in Watt";
!Variable als Zahl angelegt
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname3).State(days3val3);
!Schreiben über Variablen für Systemvariablennamen und neuem Wert
string SysVarName3 = "Tagesgesamtverbrauch_3";
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName3);
if (SVObj) {
SVObj.State(days3val3);
}
}
string stdout;
string stderr;
system.Exec("wget --no-check-certificate -q -O - '" # DaikinKind1 # "'", & stdout, & stderr);
! folgende Zeile muss im Echtbetrieb weg.
!stdout ="ret=OK,curr_day_heat=0/0/0/0/0/13/9/8/2/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0,prev_1day_heat=0/0/0/0/0/19/14/11/5/0/0/0/0/0/0/0/0/0/0/0/0/3/7/0,curr_day_cool=2/2/2/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0,prev_1day_cool=0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0";
!WriteLine(stdout);
!WriteLine(stderr);
!Empangene Daten verarbeiten / aufsummieren
if (stdout.StartsWith("ret=OK")) {
string elems4;
string days4;
string monthval4;
real days4val4 = 0;
foreach(elems4, stdout.Split(",")) {
!WriteLine(elems4.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems4.StrValueByIndex("=", 0) == "curr_day_heat") {
days4 = elems4.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days4);
foreach(monthval4, days4.Split("/")) {
days4val4 = days4val4 + monthval4.ToFloat();
}
}
};
foreach(elems4, stdout.Split(",")) {
!WriteLine(elems4.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems4.StrValueByIndex("=", 0) == "curr_day_cool") {
days4 = elems4.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days4);
foreach(monthval4, days4.Split("/")) {
days4val4 = (days4val4 + (monthval4.ToFloat())/10);
}
}
};
days4val4 = (days4val4*100);
WriteLine("Tagesgesamtverbrauch Kind1in Watt: " # days4val4);
var varname4 = "Tagesgesamtverbrauch Daikin Kind1in Watt";
!Variable als Zahl angelegt
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname4).State(days4val4);
!Schreiben über Variablen für Systemvariablennamen und neuem Wert
string SysVarName4 = "Tagesgesamtverbrauch_1";
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName4);
if (SVObj) {
SVObj.State(days4val4);
}
}
string stdout;
string stderr;
system.Exec("wget --no-check-certificate -q -O - '" # DaikinKind2 # "'", & stdout, & stderr);
! folgende Zeile muss im Echtbetrieb weg.
!stdout ="ret=OK,curr_day_heat=0/0/0/0/0/13/9/8/2/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0,prev_1day_heat=0/0/0/0/0/19/14/11/5/0/0/0/0/0/0/0/0/0/0/0/0/3/7/0,curr_day_cool=2/2/2/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0,prev_1day_cool=0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0";
!WriteLine(stdout);
!WriteLine(stderr);
!Empangene Daten verarbeiten / aufsummieren
if (stdout.StartsWith("ret=OK")) {
string elems5;
string days5;
string monthval5;
real days5val5 = 0;
foreach(elems5, stdout.Split(",")) {
!WriteLine(elems5.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems5.StrValueByIndex("=", 0) == "curr_day_heat") {
days5 = elems5.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days5);
foreach(monthval5, days5.Split("/")) {
days5val5 = days5val5 + monthval5.ToFloat();
}
}
};
foreach(elems5, stdout.Split(",")) {
!WriteLine(elems5.StrValueByIndex("=", 0)); ! links vom Gleichheitszeichen
if (elems5.StrValueByIndex("=", 0) == "curr_day_cool") {
days5 = elems5.StrValueByIndex("=", 1); ! rechts vom Gleichheitszeichen
!WriteLine(days5);
foreach(monthval5, days5.Split("/")) {
days5val5 = (days5val5 + (monthval5.ToFloat())/10);
}
}
};
days5val5 = (days5val5*100);
WriteLine("Tagesgesamtverbrauch Daikin Kind2 in Watt: " # days5val5);
var varname5 = "Tagesgesamtverbrauch Daikin Kind2 in Watt";
!Variable als Zahl angelegt
dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname5).State(days5val5);
!Schreiben über Variablen für Systemvariablennamen und neuem Wert
string SysVarName5 = "Tagesgesamtverbrauch_1";
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName5);
if (SVObj) {
SVObj.State(days5val5);
}
}