Erklärung Variablen
@VALUE@
Der Platzhalter @VALUE@ wird verwendet um einen Wert aus dem Element weiterzugeben:
- AO:
Hier wird die Variable durch eine Ganze Zahl ersetzt (0,1,2,3,4, …) - DO:
Hier wird die Variable durch 0 oder 1 ersetzt (bei >1 wird eine 1 ausgegeben)
@VALUE:0[false],1[true]@
Dieser Platzhalter wird verwendet, um die Werte „true“ oder „false“ anstatt den standardmäßigen „0“ und „1“ zu verschicken:
- Wörtern:
@VALUE:0[false],1[true]@ Hier wird die Variable mit dem übergebenen Wert als AO oder DO als Text ersetzt. Bsp.:
Bei einer 0 wird false eingesetzt
Bei einer 1 wird true eingesetzt
TEXT@Parameter=@VALUE@
Diese Form wird vor Allem für das Einlesen von Werten als AI (analoger Input) verwendet. Der Platzhalter @VALUE@ ersetzt die Zahl nach dem Parameter/Text:
Bsp.: | Hka_Mw1.sWirkleistung=5,67 |
TEXT@Hka_Mw1.sWirkleistung=@VALUE@ |
JSON@VALUE
Dieser Parameter wird zum Suchen eines Wertes in einem JSON-Objekt verwendet. Der Platzhalter VALUE wird mit dem gewünschtem Suchobjekt ersetzt. Für eine detaillierte Beschreibung der auslesbaren JSON und die dazu benötigten Query API des Controllers konsultieren Sie das Handbuch zu „myGEKKO Query API“.
Bsp.: | JSON@twilight.status |
Der gefundene Wert wird umgewandelt, sodass dieser als AI verwendet werden kann. |
Bsp.: | JSON@item0.sumstate.value[0] JSON@temperatures[0].value JSON@lights.sumstate[3].value[0] |
Arrays (Felder an Werten) können mit eckigen Klammern [ ] abgerufen werden. Beachten Sie dass Array-Nummerierungen bei 0 starten. Arrays können auch ineinander verschaltelt sein. |
JSON@FIELD@VALUE
Diese Form dient dazu im JSON Objekt nach dem Feld „FIELD“ zu suchen und dessen Wert mit „VALUE“ zu vergleichen. Sofern der Wert übereinstimmt, so wird eine 1 zurückgegeben, ansonsten eine 0.
Bsp.: | JSON@status.effect@none |
Sucht in diesem Objekt nach dem Feld „status.effect“. Ist der Wert dieses Objektes „none“ so wird das Ergebnis auf 1 ansonsten auf 0 gesetzt.Der gefundene Wert wird umgewandelt, sodass dieser als AI verwendet werden kann. |
Beispiele
- TEXT@conn-state:
Wertet z.B. aus ob die Antwort aus dem Text conn_state besteht und setzt dementsprechend den Wert auf 1 bzw. auf 0. - JSON@twilight.status:
Nimmt als Antwort ein JSON Objekt und sucht in diesem Objekt nach dem Feld „twilight.status“ und wandelt diesen Wert um, sodass dieser als AI verwendet werden kann. Gültig sind sämtliche numerischen Werte sowie auch True/False. - JSON@temperatures[0].value:
Befindet sich im JSON-Objekt ein Array, kann dieser Ausdruck verwendet werden um ein spezifisches Feld auszulesen. - JSON@lights.item0.sumstate.value[1]:
Ein bestimmter Wert in einem Array kann so ausgelesen werden. - JSON@status.effect@none:
Nimmt als Antwort ein JSON Objekt und sucht in diesem Objekt nach dem Feld „status.effect“. Ist der Wert dieses Objektes „none“ so wird das Ergebnis auf 1 ansonsten auf 0 gesetzt. - TEXT@Hka_Mw1.sWirkleistung=@VALUE@:
Wertet die Zahl nach dem Parameter „Hka_Mw1.sWirkleistung=“ aus und wandelt diese entsprechend um und kann in einem AI genutzt werden. Bsp.: Hka_Mw1.sWirkleistung=5,67
Platzhalter Zeitwerte
Damit man bei GET INPUT z.b. einen bestimmten Zeitraum abfragen kann werden angebbare Zeiträume benötigt. Z.b. bei Abfrage von Tarifen (https://api.energy-charts.info/)
Die Platzhalter in der URL werden durch spezifische Zeitwerte ersetzt. Hier sind einige Beispiele für die Nutzung dieser Platzhalter:
- @TIME_UNIX@:
Dieser Platzhalter wird durch den aktuellen Unix-Zeitstempel ersetzt. Beispiel: http://example.com/api?timestamp=@TIME_UNIX@ könnte zu http://example.com/api?timestamp=1633024800 werden. - @TIME_ISO8601@:
Dieser Platzhalter wird durch das aktuelle Datum und die aktuelle Uhrzeit im ISO 8601-Format ersetzt. Beispiel: http://example.com/api?datetime=@TIME_ISO8601@ könnte zu http://example.com/api?datetime=2021-09-30T14:00:00Z werden. - @TIME_UNIX-<offset>@:
Dieser Platzhalter wird durch den Unix-Zeitstempel ersetzt, der um die angegebene Anzahl von Sekunden reduziert ist. Beispiel: http://example.com/api?timestamp=@TIME_UNIX-3600@ könnte zu http://example.com/api?timestamp=1633021200 werden (eine Stunde vorher). - @TIME_ISO8601-<offset>@:
Dieser Platzhalter wird durch das Datum und die Uhrzeit im ISO 8601-Format ersetzt, die um die angegebene Anzahl von Sekunden reduziert sind. Beispiel: http://example.com/api?datetime=@TIME_ISO8601-3600@ könnte zu http://example.com/api?datetime=2021-09-30T13:00:00Z werden (eine Stunde vorher). - @TIME_UNIX+<offset>@:
Dieser Platzhalter wird durch den Unix-Zeitstempel ersetzt, der um die angegebene Anzahl von Sekunden erhöht ist. Beispiel: http://example.com/api?timestamp=@TIME_UNIX+3600@ könnte zu http://example.com/api?timestamp=1633028400 werden (eine Stunde später). - @TIME_ISO8601+<offset>@:
Dieser Platzhalter wird durch das Datum und die Uhrzeit im ISO 8601-Format ersetzt, die um die angegebene Anzahl von Sekunden erhöht sind. Beispiel: http://example.com/api?datetime=@TIME_ISO8601+3600@ könnte zu http://example.com/api?datetime=2021-09-30T15:00:00Z werden (eine Stunde später).