Weekprofile

Aus FHEMWiki
Version vom 14. Januar 2016, 14:34 Uhr von Reibuehl (Diskussion | Beiträge) (Beschreibung der JSON Syntax für weekprofile)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Allgemeines

Das Modul 98_weekprofile.pm stellt Funktionen zur Verwaltung von Wochenprofilen für Heizkörperthermostate zur Verfügung. Momentan werden die folgenden Systeme unterstützt:

Momentan ist es möglich, verschiedene Wochenprofile anzulegen, zu kopieren, zu ändern und zu löschen. Außerdem können die erstellten Profile den entsprechenden Devices zugewiesen werden. Ein Import bestehender Profile aus den Devices ist momentan noch nicht möglich.

Eingabeformat für Wochenprofile

Die Wochenprofile werden mit dem Befehl set <name> profile_data <profilename> <json data> angelegt. Die eigentlichen Daten liegen dabei in einer JSON Datenstruktur, die wie folgt aussieht:

{
  "Sun": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  },
  "Sat": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  },
  "Thu": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  },
  "Fri": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  },
  "Tue": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  },
  "Wed": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  },
  "Mon": {
    "time": [
      "06:00",
      "22:00",
      "24:00"
    ],
    "temp": [
      "20.0",
      "22.0",
      "20.0"
    ]
  }
}

Es handelt sich dabei um eine unsortierte Liste von "Tages-Objekten", die wiederum eine unsortierte Liste von Schlüssel - Werte-Liste Paaren enthält. Die beiden verwendeten Schlüssel "time" und "temp" für Zeit und Temperatur verweisen jeweils auf eine sortierte Liste mit Werten.

Der Schlüssel "time" enthält die Liste die gewünschten Zeitpunkte, zu denen ein Temperaturwechsel stattfinden soll. Die Zeitangaben müssen im Format "hh:mm" angegeben werden. Falls für den ganzen Tag nur eine Temperatur verwendet werden soll, so ist als Zeitpunkt "24:00" anzugeben.

Der Schlüssel "temp" enthält die Temperaturen, die zu den in "time" hinterlegten Schaltzeitpunkten eingestellt werden sollen. Dabei entspricht die Reihenfolge der Temperaturen der Reihenfolge der Zeitpunkte in "time".

Zur Übergabe an FHEM sollte die JSON Struktur um sämtliche Formatierungen (Zeilenumbrüche, Tabs, überflüssige Leerzeichen) bereinigt werden, so dass ein einzeiliger String entsteht. Für das oben angegebene Beispiel würde das dann so aussehen:

{{"Sun":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]},"Sat":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]},"Thu":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]},"Fri":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]},"Tue":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]},"Wed":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]},"Mon":{"time":["06:00","22:00","24:00"],"temp":["20.0","22.0","20.0"]}}