CloudMatic complete - Diagramme

In der SmartHome-Oberfläche haben Sie die Möglichkeit eigene Diagramme zu erstellen und anzeigen zu lassen. Auf diese Weise können Sie verschiedene Daten Ihrer Zentrale aufzeichnen und haben einen bequemen Überblick über die zeitliche Entwicklung dieser. Dies können Sie beispielsweise für Ihre Heizkörper anwenden, um einen Temperaturverlauf einsehen zu können. Die Diagramme lassen sich mit dem Großteil der Daten Ihrer Zentrale verknüpfen.

Einrichtung auf der CCU

Um ein Diagramm in der SmartHome-Oberfläche anlegen zu können, müssen Sie zunächst auf der Zentrale ein Programm sowie eine Systemvariable anlegen. Das Programm erstellen Sie auf der WebUI Ihrer Zentrale unter "Programme und Verknüpfungen" > "Programme & Zentralenverknüpfung" > "Neu". Es muss wie folgt aussehen:

Die Bezeichnung des Programmes muss _CM_diagram_logger_ lauten. In der WENN-Bedingung legen Sie ein Zeitmodul an, welches ganztägig in einem Zeitintervall von 5 Minuten ausgeführt wird:

In der DANN-Aktivität fügen Sie das folgende Skript ein:

!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);
        }
      }
    }
  }
}


Speichern Sie das Programm mit einem Klick auf "Einstellungen als neues Programm speichern". Als nächstes navigieren Sie auf der WebUI Ihrer Zentrale zu "Einstellungen" > "Systemvariable" und legen über die Schaltfläche "Neu" eine neue Variable _CM_diagrams_ vom Typ "Zeichenkette" an.

Nun legen Sie für jeden Datenpunkt, den Sie in einem Diagramm festhalten möchten, eine separate Systemvariable vom Typ "Zeichenkette" an. Möchten Sie beispielsweise die Temperatur sowie die Ventilstellung eines Heizkörperthermostaten erfassen, legen Sie zwei separate Systemvariablen vom Typ "Zeichenkette" an. Eine mit der Bezeichnung "Temperatur" und eine mit der Bezeichnung "Ventilstellung". Damit sind die Vorbereitungen auf der Zentrale abgeschlossen.

Einrichtung in der SmartHome-Oberfläche

Die Diagramme können jetzt erstellt werden. Wechseln Sie dazu in die SmartHome-Oberfläche. Öffnen Sie die Einstellungen über das Zahnrad in der oberen rechten Ecke und wählen Sie den Menüpunkt "Diagrammaufzeichnungen" aus. Wählen Sie die Zentrale aus, auf welcher Sie zuvor das Programm und die Variablen angelegt haben. Über den Button "Hinzufügen" können Sie ein neues Diagramm erstellen.

Es erscheint das Konfigurationsfenster für das Erstellen des Diagramms:

Hier geben Sie an, ob das Diagramm aktiv oder inaktiv sein soll. Unter "Beschreibung" vergeben Sie einen Namen für das Diagramm. Als "Datenpunkt" wählen Sie den im Diagramm zu erfassenden Datenpunkt aus (beispielsweise den Datenpunkt "VALVE_STATE" eines Heizkörperthermostaten). Mit der "Log-Variable" legen Sie fest, in welcher Variable der Datenpunkt erfasst werden soll (hier wählen Sie beispielsweise die Variable "Ventilstellung"). Des Weiteren legen Sie fest, wie viele Dezimalstellen erfasst werden sollen und in welchem Zeitintervall die Daten ausgelesen und gespeichert werden sollen. Mit einem Klick auf "Speichern" werden die Einstellungen für das Diagramm gespeichert und es wird Ihnen in der tabellarischen Übersicht über Ihre Diagramme angezeigt.

Damit ist die Einrichtung des Diagramms abgeschlossen.

Anzeige des Diagramms

Sie können es nun in der SmartHome-Oberfläche anzeigen lassen. Dazu navigieren Sie in das Menü der SmartHome-Oberfläche und wählen den Punkt "Views" aus. Hier öffnen Sie eine bereits bestehende View oder legen eine neue View an, der ein Diagramm hinzugefügt werden soll. Wählen Sie nach einem Klick auf "+Hinzufügen" als Kanaltyp "Spezielle Kanäle" aus. Aus den Kanälen wählen Sie "Diagramm" aus.

Speichern Sie die Ansicht mit einem Klick auf "Speichern" und öffnen diese anschließend erneut, damit Sie das Diagramm in der View bearbeiten können. Erweitern Sie den Kanal des Diagramms und legen fest, welche Variable (bzw. welche Diagrammeinstellung) verwendet werden soll.

Mit einem Klick auf "Speichern" oder "Speichern und anzeigen" können Sie nun Ihr fertiges Diagramm einsehen. Bitte beachten Sie, dass für die Anzeige eines Diagramms zuerst einige Werte ausgelesen werden müssen. Dies kann je nach konfiguriertem Intervall einige Zeit in Anspruch nehmen.

Haben Sie Diagramme für die Aufzeichnung der aktuellen Temperatur und der Ventilstellung eines Heizkörperthermostaten erstellt, könnten diese nach einiger Zeit beispielsweise so aussehen: