Weekprofile: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Infobox eingefügt + diverse kleine Korrekturen)
Zeile 1: Zeile 1:
== Allgemeines ==
{{SEITENTITEL:weekprofile}}
 
{{Infobox Modul
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:
|ModPurpose=Verwaltung von Wochenprofilen für Heizungssteuerung
|ModType=d
|ModForumArea=Frontends
|ModCmdRef=weekprofile
|ModTechName=98_weekprofile.pm
|ModOwner={{Link2FU|7869|Risiko}}
}}


Das Modul [[weekprofile]] stellt Funktionen zur Verwaltung von Wochenprofilen für Heizkörperthermostate zur Verfügung und unterstützt die folgenden Systeme:
* [[MAX]]
* [[MAX]]
* [[HomeMatic]]
* [[HomeMatic]]


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.
Es ist 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 nicht möglich.


== Eingabeformat für Wochenprofile ==
== Eingabeformat für Wochenprofile ==
Die Wochenprofile werden mit dem Befehl
:<code>set <name> profile_data <profilename> <json data></code>
angelegt. Die eigentlichen Daten liegen dabei in einer [https://de.wikipedia.org/wiki/JavaScript_Object_Notation JSON] Datenstruktur, die wie folgt aussieht:


Die Wochenprofile werden mit dem Befehl <code>set <name> profile_data <profilename> <json data></code> angelegt. Die eigentlichen Daten liegen dabei in einer [https://de.wikipedia.org/wiki/JavaScript_Object_Notation JSON] Datenstruktur, die wie folgt aussieht:
<pre  style="width:300px;">{
 
<pre>{
   "Sun": {
   "Sun": {
     "time": [
     "time": [
Zeile 100: Zeile 108:
</pre>
</pre>


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.  
Es handelt sich dabei um eine unsortierte Liste von "Tages-Objekten", die wiederum eine unsortierte Liste von Schlüssel-Werte 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 "time" enthält die Liste der 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".
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:
Zur Übergabe an FHEM sollte die JSON Struktur von sämtlichen 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:


<code><nowiki>{"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"]}}</nowiki></code>
<code><nowiki>{"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"]}}</nowiki></code>


Für eine einfache Bearbeitung der JSON Daten empfiehlt sich ein JSON-Editor wie z.B. [http://www.jsoneditoronline.org/].
Für eine einfache Bearbeitung der JSON Daten empfiehlt sich ein JSON-Editor wie z.B. [http://www.jsoneditoronline.org/].

Version vom 15. Januar 2016, 11:54 Uhr


weekprofile
Zweck / Funktion
Verwaltung von Wochenprofilen für Heizungssteuerung
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Frontends
Modulname 98_weekprofile.pm
Ersteller Risiko
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Modul weekprofile stellt Funktionen zur Verwaltung von Wochenprofilen für Heizkörperthermostate zur Verfügung und unterstützt die folgenden Systeme:

Es ist 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 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 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 der 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 von sämtlichen 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"]}}

Für eine einfache Bearbeitung der JSON Daten empfiehlt sich ein JSON-Editor wie z.B. [1].