,

JSON für HomeServer

Kostenlos

Den richtigen Wert aus dem JSON holen.

Liest bis zu 10 Werte per JSONPath aus einem JSON-Text und gibt sie als Text und Zahl aus. Praktisch für Schnittstellen, die mehr liefern, als du brauchst.

In Entwicklung – noch nicht erhältlich. Du möchtest den Baustein vorab testen und uns Rückmeldung geben? Melde dich als Beta-Tester, wir schreiben dir, sobald eine Testversion bereitsteht.

Bald verfügbar

Artikelnummer: smo-json-smolabs-homeserver Kategorien: , Schlagwort:

Beschreibung

Logikbaustein, der Werte per JSONPath aus einem JSON-Text liest. Der JSON-Text kommt von einem anderen Baustein (Web-Request, MQTT Subscribe, Datei) an den Eingang. Der Baustein behandelt auch Sonderfälle sauber: null, Schlüssel aus Ziffern ("12101"), Zahlen als Text, Listen (Arrays) und Schlüssel mit Punkt.

Gerät
Gira HomeServer
Version
0.1.0
Lizenz
Ein Schlüssel je HomeServer (MAC-Adresse), dauerhaft nutzbar
Thema
Kommunikation

Anleitung

Besonderheiten beim HomeServer

  • Fest 10 Pfade statt 1 bis 20 einstellbarer. Es gibt keinen Parameter „Anzahl Pfade“, ein leerer Pfad wird ignoriert.
  • Der Text wird als UTF-8 gelesen (sonst als ISO-8859-15) und mit Umlauten im Zeichensatz des HomeServers ausgegeben, nicht darstellbare Zeichen werden zu ?.
  • Statt Parametern gibt es Eingänge mit Startwert. Auswahllisten des X1 sind Zahlen, Ja/Nein-Werte sind 0 und 1.
  • Der Lizenzschlüssel ist der letzte Text-Eingang. Ein neuer Wert an diesem Eingang wird sofort geprüft.
  • Eine Prüfung des Schlüssels im Editor und eine Simulation gibt es nicht, der HomeServer prüft immer.

Funktionen und Anschlüsse

Logikbaustein von SMoLabs, der Werte per JSONPath aus einem JSON-Text liest. Der Text kommt von einem anderen Baustein (Web-Request, MQTT Subscribe, Datei) an E1. Der Baustein behandelt auch Sonderfälle sauber: null, Schlüssel aus Ziffern („12101“), Zahlen als Text, Listen und Schlüssel mit Punkt. Bis zu 10 Pfade.

Bei keinem Treffer bleiben „Text“ und „Zahl“ auf dem letzten Wert, „Treffer“ wird 0. Ist das JSON ungültig, bleiben alle Ausgänge stehen, „JSON gültig“ wird 0 und „Debug“ nennt die Stelle.

Ausgabe je JSON-Wert: Zeichenkette = Inhalt als Text und Zahl, wenn sie wie eine aussieht; Zahl = wie im JSON geschrieben als Text und der Wert als Zahl (zu große Zahlen wie 1e999 haben keinen Zahlenwert); true/false = Text true/false und Zahl 1/0; null = leerer Text, keine Zahl; Objekt/Liste = JSON-Text dieses Teils, keine Zahl.

JSONPath: $ ist die Wurzel, $.main.temp der Schlüssel temp im Objekt main. Ohne $ gilt der Pfad ab der Wurzel. $[‚a.b‘] oder $[„a.b“] für Punkt oder Leerzeichen im Namen. $.12101 Schlüssel aus Ziffern. $.list[0] und $.list[-1] Element einer Liste (-1 = letztes). $.list[] und $.obj. alle Elemente bzw. Werte („Treffer“ zählt sie, „Text“/„Zahl“ nennen den ersten). $..id den Schlüssel id auf jeder Ebene. $.list[?(@.id==801)].main Filter mit == != < <= > >= gegen Text in ‚…‘, Zahl, true, false oder null. [?(@.main)] prüft nur, ob das Feld da ist.

Nicht unterstützt sind Bereiche ([1:3]), mehrere Elemente in einer Klammer ([0,1]), Funktionen und mehrere Bedingungen in einem Filter (liefert 0 Treffer). Textvergleiche unterscheiden Groß- und Kleinschreibung. Gelesen werden bis zu 64 Ebenen. Eine Byte-Order-Mark am Textanfang ist erlaubt.

Beispiel: {„main“:{„temp“:12.5},“weather“:[{„id“:500,“main“:“Rain“},{„id“:801,“main“:“Clouds“}],“rain“:null}: $.main.temp ergibt 12.5, $.weather[1].main ergibt Clouds, $.weather[?(@.id>=800)].main ergibt Clouds, $.weather[*].id ergibt 500 bei 2 Treffern.

Eingänge
Nr. Name Init Bedeutung
1 E1 JSON „“ Der JSON-Text. Jeder neue Text wird gelesen und alle Pfade werden ausgewertet.
2 E2 Pfad 1 (JSONPath) „$.wert“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
3 E3 Pfad 2 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
4 E4 Pfad 3 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
5 E5 Pfad 4 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
6 E6 Pfad 5 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
7 E7 Pfad 6 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
8 E8 Pfad 7 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
9 E9 Pfad 8 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
10 E10 Pfad 9 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
11 E11 Pfad 10 (JSONPath) „“ JSONPath-Ausdruck, siehe Beschreibung. Ein leerer Pfad wird ignoriert. Eine Änderung des Pfads wertet das letzte JSON neu aus.
12 E12 Lizenzschlüssel „“ Lizenzschlüssel für diesen HomeServer (von smolabs.de). Ohne gültigen Schlüssel bleibt der Baustein untätig.
Ausgänge
Nr. Name Init Bedeutung
1 A1 JSON gültig 0 1, wenn der letzte Text gelesen werden konnte.
2 A2 Text 1 „“ Wert des ersten Treffers von Pfad 1 als Text.
3 A3 Text 2 „“ Wert des ersten Treffers von Pfad 2 als Text.
4 A4 Text 3 „“ Wert des ersten Treffers von Pfad 3 als Text.
5 A5 Text 4 „“ Wert des ersten Treffers von Pfad 4 als Text.
6 A6 Text 5 „“ Wert des ersten Treffers von Pfad 5 als Text.
7 A7 Text 6 „“ Wert des ersten Treffers von Pfad 6 als Text.
8 A8 Text 7 „“ Wert des ersten Treffers von Pfad 7 als Text.
9 A9 Text 8 „“ Wert des ersten Treffers von Pfad 8 als Text.
10 A10 Text 9 „“ Wert des ersten Treffers von Pfad 9 als Text.
11 A11 Text 10 „“ Wert des ersten Treffers von Pfad 10 als Text.
12 A12 Zahl 1 0 Wert des ersten Treffers von Pfad 1 als Zahl, wenn er eine hat.
13 A13 Zahl 2 0 Wert des ersten Treffers von Pfad 2 als Zahl, wenn er eine hat.
14 A14 Zahl 3 0 Wert des ersten Treffers von Pfad 3 als Zahl, wenn er eine hat.
15 A15 Zahl 4 0 Wert des ersten Treffers von Pfad 4 als Zahl, wenn er eine hat.
16 A16 Zahl 5 0 Wert des ersten Treffers von Pfad 5 als Zahl, wenn er eine hat.
17 A17 Zahl 6 0 Wert des ersten Treffers von Pfad 6 als Zahl, wenn er eine hat.
18 A18 Zahl 7 0 Wert des ersten Treffers von Pfad 7 als Zahl, wenn er eine hat.
19 A19 Zahl 8 0 Wert des ersten Treffers von Pfad 8 als Zahl, wenn er eine hat.
20 A20 Zahl 9 0 Wert des ersten Treffers von Pfad 9 als Zahl, wenn er eine hat.
21 A21 Zahl 10 0 Wert des ersten Treffers von Pfad 10 als Zahl, wenn er eine hat.
22 A22 Treffer 1 0 Anzahl der Treffer von Pfad 1, 0 = nicht gefunden.
23 A23 Treffer 2 0 Anzahl der Treffer von Pfad 2, 0 = nicht gefunden.
24 A24 Treffer 3 0 Anzahl der Treffer von Pfad 3, 0 = nicht gefunden.
25 A25 Treffer 4 0 Anzahl der Treffer von Pfad 4, 0 = nicht gefunden.
26 A26 Treffer 5 0 Anzahl der Treffer von Pfad 5, 0 = nicht gefunden.
27 A27 Treffer 6 0 Anzahl der Treffer von Pfad 6, 0 = nicht gefunden.
28 A28 Treffer 7 0 Anzahl der Treffer von Pfad 7, 0 = nicht gefunden.
29 A29 Treffer 8 0 Anzahl der Treffer von Pfad 8, 0 = nicht gefunden.
30 A30 Treffer 9 0 Anzahl der Treffer von Pfad 9, 0 = nicht gefunden.
31 A31 Treffer 10 0 Anzahl der Treffer von Pfad 10, 0 = nicht gefunden.
32 A32 Lizenzstatus „“ Ergebnis der Lizenzprüfung, z. B. „Lizenz gültig (2026-000123)“.
33 A33 Debug „“ Fehler im JSON (z. B. „JSON ungültig: … (Zeichen 17)“) oder in einem Pfad, sonst leer.

Lizenz

Der Lizenzschlüssel wird am letzten Text-Eingang des Bausteins eingetragen. Der Baustein prüft ihn auf dem HomeServer, offline und gebunden an die MAC-Adresse des HomeServers. Der Ausgang „Lizenzstatus“ zeigt das Ergebnis, bei einem Schlüssel für ein anderes Gerät auch die MAC-Adresse dieses HomeServers. Ohne gültigen Schlüssel bleibt der Baustein untätig. Den Schlüssel erhältst du beim Kauf über smolabs.de. Ein Schlüssel für den X1 schaltet keinen HomeServer-Baustein frei und umgekehrt.

Changelog

Version 0.1.0
  • Erste Version für den HomeServer auf Basis der X1-Bausteine | SMoLabs.

Kompatibilität mit Gira X1 und Gira HomeServer

Die Funktion ist nur für die hier genannten Firmwarestände zugesichert. Vor einem Firmware-Update des Geräts bitte diese Tabelle prüfen.

Baustein-VersionGerät und FirmwareStatus
0.1.0Gira HomeServer, Gira Experte 4.13Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.12.0Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.11.3Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.11.2Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.11.1Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.11.0Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.10.1Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.10.0Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.9.0Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.8.1Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.8.0Kompatibel
0.1.0Gira HomeServer, Gira Experte 4.7.0Kompatibel

Rezensionen

Es gibt noch keine Rezensionen.

Schreibe die erste Rezension für „JSON für HomeServer“

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen