Leider funktioneren die Diagramme noch nicht.....
Ich habe die Einstellungen auf der CCU2 so vorgenommen wie es in der Anleitung steht.
Das Programm _CM_diagram_logger_ fehlt
Dies ist notwendig für das Mitschreiben der im Diagramm anzuzeigenden Daten. Bitte legen Sie dazu ein Programm mit dem Namen _CM_diagram_logger_ auf Ihrer CCU mit den Einstellungen wie im Folgenden dargestellt an und kopieren den untenstehenden Programmcode unverändert hinein. Danach diese Seite neu laden.
Code: Alles auswählen
!V1.0
!CloudMatic Diagrammlogger
!(c) EASY SmartHome GmbH
object logVar = dom.GetObject("_CM_diagrams_");
if (logVar)
{
string logValues = logVar.Value();
integer maxEntries = 365;
time now = system.Date("%Y-%m-%d %H:%M:%S").ToTime();
real nowSeconds = now.ToInteger();
string logVal;
foreach(logVal, logValues.Split(";"))
{
string stringDP = logVal.StrValueByIndex(",", 0);
string valueStringName = logVal.StrValueByIndex(",", 1);
real digits = logVal.StrValueByIndex(",", 2);
string diffMinutes = logVal.StrValueByIndex(",", 3);
integer active = logVal.StrValueByIndex(",", 4);
if (active != 0)
{
real timeDiffSeconds = -1;
if (diffMinutes != "d")
{
timeDiffSeconds = diffMinutes.ToInteger() * 60;
}
string valueDP = dom.GetObject(stringDP).Value().ToString(digits);
var valueString = dom.GetObject(valueStringName);
real timeDiagram = valueString.Timestamp().ToInteger();
boolean doLog = false;
if ((timeDiffSeconds >= 0) && ((nowSeconds - timeDiagram) > (timeDiffSeconds - 30))) { doLog = true; }
if ((timeDiffSeconds == -1) && (now.Hour() == 23) && (now.Minute() >= 54)) { doLog = true; }
if (doLog)
{
string newEntryString = "," # now.ToString() # "," # valueDP;
if ((valueString.Variable() == "???") || (valueString.Variable() == ""))
{
string initString = "2" # newEntryString;
valueString.State(initString);
}
else
{
string valueStringV = valueString.Variable();
string valueStringBuf = valueStringV.Substr(valueStringV.Find(",")+1,valueStringV.Length()-valueStringV.Find(","));
integer lastEntry = valueStringV.StrValueByIndex(",",0).ToInteger();
integer nextEntry = lastEntry +1;
if (nextEntry > maxEntries) {nextEntry = 1;}
string value;
integer valueCounter = 0;
integer rowCounter = 1;
string valueStringNew = nextEntry.ToString();
string entryString = "";
foreach (value,valueStringBuf.Split(","))
{
valueCounter = valueCounter + 1;
entryString = entryString # "," # value;
if (valueCounter == 2)
{
if ( rowCounter == nextEntry ) {entryString = newEntryString;}
valueStringNew = valueStringNew # entryString;
entryString = "";
valueCounter = 0;
rowCounter = rowCounter + 1;
}
}
if (rowCounter < nextEntry)
{
valueStringNew = valueStringNew # newEntryString;
}
valueString.State(valueStringNew);
}
}
}
}
}
Bitte legen Sie die Variable in der WebUI als Zeichenkette an und laden danach diese Seite neu.