Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Dieser Selektor dient dazu, einen spezifischen Wert, der in einem verschachtelten JSON enthalten ist, entsprechend der Position in der Datenstruktur zu selektieren (= adressieren), damit der Timberwolf Server diesen Wert mit einem einzelnen TWS Objekt verknüpfen kann.

Für die selbe JSON Struktur Datenstruktur können mehrere Eintragungen (= Transaktionen) angelegt werden. Auf diese Weise können die Positionen mehrerer spezifischen Werte spezifischer Elemente in einer JSON Dateistruktur definiert und mit jeweils einem TWS Objekt verknüpft werden.

Info

Hinweis zu TWS-Objekt und JSON-Objekt

JSON Datenstrukturen ermöglichen verschachtelte Dateninhalte. Diejenige Struktur, die in geschweiften Klammern {} eingeschlossen ist, wird in der JSON Syntax als ‘Objekt’ bezeichnet. Der Inhalt eines solchen JSON Objektes wird als Liste von ‘Eigenschaften’ bezeichnet. Bitte verwechseln Sie die JSON-Objekte nicht mit dem Objekten des Timberwolf Servers in der folgenden Beschreibung.

Senderichtung beachten: Bitte beachten Sie, dass Selektoren sowohl in eingehender als auch in ausgehender Richtung (von / zum externen Gerät) genutzt werden können.

Das bedeutet bei ausgehender Richtung, dass aus den Objektverknüpfungen und den angegebenen Selektoren eine JSON-Dateistruktur erzeugt wird, die an das entfernte Gerät gesandt wird. Beachten Sie hierzu unbedingt die entsprechenden Einstellungen für den Trigger (bei “gemeinsamen Trigger” Auslöser. Bei “gemeinsamen Auslöser” werden alle Transaktionen zusammen ausgeführt, damit eine zusammenhängende JSON Datenstruktur erzeugt und diese komplett an das entfernte Gerät gesendet).

Info

NEU! Unterstützung für JSON Arrays als Startelemente bei der Abfrage
Bis Firmware V 4.0 IP 5 wurden als Startobjekte in der JSON Struktur nur einzelne Objekte unterstützt.

Ab Firmware V 4.0 IP 5 darf ein Selektor auch mit [ beginnen. Die eckigen Klammern können eine Zahl für den Array Index oder für einen Filter (siehe unten) enthalten.

Senden von JSON Arrays
Bis Firmware V 4.0 IP 5 können Selektoren, die ein Array erzeugen, nicht zum Erzeugen einer JSON Struktur beim Senden von Daten genutzt werden. Ab Firmware V 4.0 IP 5 ist dies nun möglich.

Übersicht

Inhalt
minLevel1
maxLevel6
outlinefalse
typelist
printablefalse

...

In diesem Beispiel befinden sich alle Eigenschaften (Elemente in dem JSON Objekt als Schlüssel-Werte Paare) auf einer Ebene und die diese JSON Datenstruktur besteht nur aus einem JSON Objekt, welches durch { } gekennzeichnet ist.

...

Status
colourGreen
titleBeispiel
Möchte man auf den Helligkeitswert, der in der oben dargestellten JSON Datenstruktur mit dem Schlüssel brightness definiert ist, zugreifen, muss nur brightness im Feld Selektor eingetragen werden.

Status
colourPurple
titleNEU (IP4 V4)
Beinhaltet der Schlüssel andere Zeichen als Buchstaben, Zahlen, Unterstrich und Minus-Zeichen (z.B. einen Doppelpunkt), dann ist der dieser Schlüssel in Anführungszeichen in das Feld Selektor einzutragen. Beispiel: "test: 3"

...

Hier soll auf das erste Ereignis (der Wert ‘sleep’ mit dem Schlüssel eventaus dem ersten Element in dem Array events) zugriffen werden.

Codeblock
languagejson
{
  "src": "shellyplusht-c049ef8ad9c8",
  "dst": "shellyplusht-c049ef8ad9c8/events",
  "method": "NotifyEvent",
  "params": {
    "ts": 1677071174.05,
    "events": [
      {
        "component": "sys",
        "event": "sleep",
        "ts": 1677071174.05
      }
    ]
  }
}

...

Im vorigen Beispiel ist beschrieben, wie ein Element aus einem JSON-Array über den Index (Zahl entsprechend der Position in der Auflistung im Array, beginnend mit 0) ausgewählt werden kann. Häufig ist die Position von Daten einer JSON Datenstruktur nicht fix und kann sich seitens des fremden Gerätes verändern.

Status
colourGreen
titleBeispiel
In dieser JSON Datenstruktur befindet sich ein JSON-Array mit zwei Elementen. Insofern die Reihenfolge der Elemente durch das sendende Gerät nicht sicher ist, kann man das richtige Element auch anhand des Wertes eines der Werte der enthaltenen Elemente eine in der Selektierung angeben. Hier

In diesem Beispiel wollen wir dasjenige Element aus dem JSON-Array auswählen, das den Wert sys im Schlüssel component enthält.

...