REST API metadata Response

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
drevil75
Beiträge: 12
Registriert: 2. Apr 2020 02:01
Answers: 0

REST API metadata Response

Beitrag von drevil75 »

Hallo zusammen,

Für ein neues Projekt habe ich einem Text-Item diverse Metadaten angefügt. Diese will ich mit dem GET wieder auslesen.
Das funktioniert auch soweit.

Wenn ich das Item mit dem u.g. Request auslese, kommen im Response sämtliche Eigenschaften des Items zurück.
Von den Metadaten kommt nur die eine Key-Value-Pair zurück, das ich im Request angefragt habe.

Frage: Lässt sich der Request so gestalten, dass nur das angefragte Key-Value-Pair oder wenigsten nur alle Metadaten responded wird/werden?
Hintergrund: Der Request läuft auf einem ESP8266-Chip. Dort ist Speicher rar und der Response kann i.M. fast beliebig groß werden.
Das würde ich gerne optimieren.

So sieht meine Konfig aus:
OH2.5.9

Text Item-Eigenschaften inkl. aller Metadaten:
Item:

Code: Alles auswählen

Number WasserZisterne "Zisterne [%s %%]" <battery> (RRD4J)

Code: Alles auswählen

{
  "link": "http://192.168.0.100:18080/rest/items/WasserZisterne",
  "state": "128",
  "stateDescription": {
    "pattern": "%s %%",
    "readOnly": false,
    "options": []
  },
  "metadata": {
    "distmin": {"value": "41"},
    "distmax": {"value": "185"}
    "refreshInterval": {"value": "60"}
  },
  "editable": false,
  "type": "Number",
  "name": "WasserZisterne",
  "label": "Zisterne",
  "category": "battery",
  "tags": [],
  "groupNames": [
    "RRD4J"
  ]
}

In meinem konkreten Beispiel sieht der Request wie folgt aus:

Code: Alles auswählen

http://192.168.0.100:18080/rest/items/WasserZisterne?metadata=distmin

Und so sieht der (für meinen Geschmack unnötig große) Response aus.

Code: Alles auswählen

{
  "link": "http://192.168.0.100:18080/rest/items/WasserZisterne",
  "state": "128",
  "stateDescription": {
    "pattern": "%s %%",
    "readOnly": false,
    "options": []
  },
  "metadata": {
    "distmin": {"value": "41"}
  },
  "editable": false,
  "type": "Number",
  "name": "WasserZisterne",
  "label": "Zisterne",
  "category": "battery",
  "tags": [],
  "groupNames": [
    "RRD4J"
  ]
}

drevil75
Beiträge: 12
Registriert: 2. Apr 2020 02:01
Answers: 0

Re: REST API metadata Response

Beitrag von drevil75 »

...zur ergänzenden Erläuterung:

Mein Wunsch-Response sieht wie folgt aus.

Code: Alles auswählen

{"metadata": {"distmin": {"value": "41"}}}
oder so ist natürlich auch ok

Code: Alles auswählen

{metadata": {
    "distmin": {"value": "41"},
    "distmax": {"value": "185"},
    "refreshInterval": {"value": "60"}
  }}

Antworten