ich gucke ja immer wieder sporadisch durch /var/log/messages.
Zufällig viel mir unten stehende folgende Meldung auf.
Kann mir da jemand etwas zu sagen? Warum macht der ReGaHss das? Bei mir ist Zeile 34 eine Leerzeile
Code: Alles auswählen
Mar 31 19:08:47 ccu3 local0.err ReGaHss: ERROR: SyntaxError: Error 1 at row 34 col 787 near ^ --no-check-certificate -q -O - '" # url # "'", & stdout, & stderr); !folg^M [SyntaxError():iseESP.cpp:1149]
Mar 31 19:08:47 ccu3 local0.err ReGaHss: ERROR: SyntaxError: --no-check-certificate -q -O - '" # url # "'", & 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); !Empfangene Daten verarbeiten / aufsummieren if (stdout.StartsWith("ret=OK")) { string elems; string day; string hourval; real day_total = 0; foreach(elems, stdout.Split(",")) { !WriteLine(elems.StrValueByIndex("=", 0)); !links vom Gleichheitszeichen if ((elems.StrValueByIndex("=", 0) == "curr_day_cool") || (elems.StrValueByIndex("=", 0) == "curr_day_heat")) { day = elems.StrValueByIndex("=", 1); !rechts vom Gl
Anbei das komplette Script:
Code: Alles auswählen
!Script zu Abfrage des Stromverbrauchs einer Daikin Klimaanlage
!2.Version
!Daikin Stromverbrauchszahlen
string url_cmd = "/aircon/get_day_power_ex";
string url_beg = "http://192.168.99.";
!IP-Adressen und in der selben Reihenfolge - Semikolon getrennt
string ip_arr = "36;33;28;27;35;187;185";
string room_arr = "Lara;Greta;Eltern;Wohnzimmer;Wintergarten;Wintergarten2;Flur";
!SystemVariablenname setzt sich zusammen aus SysVar_beg + room + SysVar_end
string SysVar_beg ="Tagesverbrauch ";
string SysVar_end ="";
string SysVarTotal ="Tagesgesamtverbrauch Daikin Total"; !
!**********************************************
!ab hier nichts mehr zu ändern
!**********************************************
integer Tagesgesamtverbrauch=0;
string url = "";
string SysVarName="";
string index;
string stdout;
string stderr;
integer divisor;
string sysVarNameLara = "Tagesverbrauch Lara";
string sysVarNameGreta = "Tagesverbrauch Greta";
string sysVarNameEltern = "Tagesverbrauch Eltern";
string sysVarNameWohnzimmer = "Tagesverbrauch Wohnzimmer";
string sysVarNameWintergarten = "Tagesverbrauch Wintergarten";
string sysVarNameWintergarten2 = "Tagesverbrauch Wintergarten2";
string sysVarNameFlur = "Tagesverbrauch Flur";
string sysVarNameTagesgesamtverbrauch = "Tagesgesamtverbrauch Daikin Total";
!IP - Adressen nacheinander verarbeiten
foreach(index, (system.GenerateEnum(0, web.webGetValueListCount(ip_arr) - 1))) {
url = url_beg # web.webGetValueFromList(ip_arr, index) # url_cmd;
!WriteLine(url);
SysVarName = SysVar_beg # web.webGetValueFromList(room_arr, index) # SysVar_end;
!WriteLine(SysVarName);
system.Exec("wget --no-check-certificate -q -O - '" # url # "'", & 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);
!Empfangene Daten verarbeiten / aufsummieren
if (stdout.StartsWith("ret=OK")) {
string elems;
string day;
string hourval;
real day_total = 0;
foreach(elems, stdout.Split(",")) {
!WriteLine(elems.StrValueByIndex("=", 0));
!links vom Gleichheitszeichen
if ((elems.StrValueByIndex("=", 0) == "curr_day_cool") || (elems.StrValueByIndex("=", 0) == "curr_day_heat")) {
day = elems.StrValueByIndex("=", 1);
!rechts vom Gleichheitszeichen
divisor = (web.webGetValueFromList("1;10", (elems.StrValueByIndex("=", 0) == "curr_day_cool").ToInteger())).ToInteger();
!WriteLine(day);
foreach(hourval, day.Split("/")) {
! day_total = (day_total + (hourval.ToFloat()) / divisor);
day_total = (day_total + hourval);
}
}
};
day_total = (day_total * 100);
Tagesgesamtverbrauch = Tagesgesamtverbrauch + day_total;
WriteLine(SysVarName # ": " # day_total);
}
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName);
if (SVObj) {
SVObj.State(day_total);
} else {
WriteLine('Variablenname "'#SysVarName #'" ist falsch oder Systemvariable nicht angelegt ');
}
}
!zum Schluss die Summe aller Verbräuche ausgeben
WriteLine(SysVarTotal # ": " # Tagesgesamtverbrauch);
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarTotal);
if (SVObj) {
SVObj.State(Tagesgesamtverbrauch);
} else {
WriteLine('Variablenname "'#SysVarTotal #'" ist falsch oder Systemvariable nicht angelegt ');
}
object o = dom.GetObject(sysVarNameLara);
object p = dom.GetObject(sysVarNameGreta);
object q = dom.GetObject(sysVarNameEltern);
object r = dom.GetObject(sysVarNameWohnzimmer);
object s = dom.GetObject(sysVarNameWintergarten);
object t = dom.GetObject(sysVarNameWintergarten2);
object u = dom.GetObject(sysVarNameFlur);
object v = dom.GetObject(sysVarNameTagesgesamtverbrauch);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(p.Name()#";"#p.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(q.Name()#";"#q.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(r.Name()#";"#r.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(s.Name()#";"#s.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(t.Name()#";"#t.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(u.Name()#";"#u.Value());
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(v.Name()#";"#v.Value());