JSON API

Mit dieser Logik können beliebige JSON APIs abgefragt werden.

Über dieses API werden Daten im JSON Format ausgegeben. Dieses Format wird von der Logik ausgewertet und die Daten an den Ausgängen ausgegeben.

Für unterschiedliche Geräte sind jeweils unterschiedliche Abfrage Links erforderlich, diese finden Sie in der Beschreibung des JSON API.
Sie können diesen Link im Browser eingeben und erhalten dann die Daten im JSON Format, diese sehen dann folgendermaßen aus:

{
"Body" : {
"Data" : {
"Controller" : {
"Capacity_Maximum" : 9600,
"Current_DC" : 3.3099999260157347,
"DesignedCapacity" : 9600,
"Details" : {
"Manufacturer" : "Fronius International",
"Model" : "Fronius Solar Battery",
"Serial" : "26261713"
},
"Enable" : 1,
"StateOfCharge_Relative" : 81,
"Temperature_Cell" : 31.650004541873955,
"TimeStamp" : 1531737054,
"Voltage_DC" : 431.00000642240047,

Die Logik interpretiert nun die Daten, welche im Parameter Daten angegeben werden. Diese Daten werden an den Ausgängen ausgegeben. Um beispielsweise die Variable "Current_DC" auszugeben, muss folgender Eintrag erstellt werden: "Body:Data:Controller:Current_DC". Die einzelnen Bereiche werden hierzu durch Doppelpunkt getrennt angegeben. Bei Zugriffen auf eine Liste wird zuerst der Listenname angegeben und als nächster Parameter die Stelle auf die man zugreifen möchte.
Ein komplettes Beispiel sieht folgendermaßen aus:



Die Anzahl bestimmt gleichzeitig auch die Anzahl der Ausgänge, beim Generieren der Variablen werden diese Einträge auch als Kommentar verwendet, diese können nachträglich auch geändert werden ohne dass die Funktion dadurch beeinflusst wird.

Wichtig: Die Namen müssen exakt so wie in der Antwort im Browser angegeben werden, es wird zwischen Groß- Kleinschreibung unterschieden.





Eingänge

FG Freigabe
Optionale Freigabe. Ist hier kein Wert verknüpft, wird das Auslesen automatisch freigegeben.
TR Trigger
Je nach Einstellung im Parameter Trigger wird die Anfrage ausgeführt.


Ausgänge

Wert 1-x
Je nach in dem Parameter Rückmeldung eingestellte Anzahl der Ausgänge werden diese mit den Werten aus den JSON Daten belegt.


Parameter

Trigger
  • Steigende Flanke: Befehl wird bei steigender Flanke 0-1 am Eingang gestartet.
  • Fallende Flanke: Befehl wird bei fallender Flanke 1-0 am Eingang gestartet.
  • Bei Änderung: Befehl wird bei Änderung am Eingang ausgeführt.
  • Bei jedem Telegramm: Befehl wird bei jedem Telegramm am Eingang ausgeführt.
  • Intervall: Befehl wird in einem fixen Intervall ausgeführt, welcher mit dem Parameter Intervall s eingestellt wird.
Intervall s Hier wird der Intervall für den Trigger Intervall in Sekunden eingestellt. Wichtig: Der Intervall sollte immer so groß wie möglich gewählt werden, zu kleine Intervalle können zu Timeouts und Fehler bei der Abfrage führen.
Vorlage Hier finden Sie eine Auswahl an vorkonfigurierten JSON APIs.
IP Adresse IP Adresse des JSON APIs
URL
Hier wird die URL der Daten angegeben, welche abgefragt werden sollen. Die URL wird hierbei ohne die IP Adresse angegeben.
Body Hier können zusätzliche Body Informationen für die JSON API übergeben werden.
Daten
Klicken Sie auf den Button um die Dateneinträge zu bearbeiten, siehe oben.
Authentifizierung
Hier wird die Authentifizierung für die API eingetragen, falls eine benötigt wird. Diese hat das Format Username:Passwort. Wichtig: Wenn keine Authentifizierung notwendig ist, wird der Standardwert Name:Password gesetzt.
Timeout Abfrage s
Hier kann der Timeout für die API Anfrage gesetzt werden.
Debug Level
Hier kann ein Debug Level angegeben werden. Bei Level 1 werden die empfangenen Daten als String im Diagnose Fenster ausgegeben, bei 2 zusätzlich auch in hexadezimalen Zahlen. Wichtig: Dieser Parameter sollte nur für Diagnosezwecke aktiviert und wenn dieser nicht mehr benötigt wird wieder auf 0 zurück gestellt werden, da die Debug Ausgabe die Steuerung verlangsamt.
Adressen generieren
Mit diesem Button werden die Adressen für die Ausgänge erzeugt und verknüpft. Als Kommentar werden die Namen aus dem Parameter Daten verwendet, diese können nachträglich an der Variable geändert werden, auf die Abfrage hat das keine Auswirkungen. Wichtig: Wenn keine Vorlage ausgewählt ist werden alle Adressen mit dem Datentyp EIS17 generiert. Falls ein anderer Datentyp gewünscht wird muss dieser nachträglich geändert werden.


Hinweise