Anwendungsfälle - UI

Beschreibung von einzelnen Verfahren

Hinzufügen von Datenpunkten

Mit dem "+" am Ende der Datenpunktliste können neue Datenpunkte mit Energiedaten hinzugefügt werden.

image.png

Es erscheint ein Pop-Up, welches die Möglichkeit bietet, entweder einen Helper zu wählen oder Datenpunkte direkt über MQTT hinzuzufügen.

image.png

Architektur

Corrently-Current nutzt MQTT im Hintergrund. Dies bedeutet, dass es für jeden Datenpunkt eine Abfolge gibt, welche zunächst das Holen der Daten vom Gerät (Ablauf und Konnektivität), die Aufbereitung der Daten und Übermittlung an einen MQTT Broker, sowie die Anzeige (Visualisierung) beinhaltet. 

Nutzung der Helper (Wizards)

Bei den Helper/Wizards handelt es sich um Webseiten, die in der Lage sind eine vollständige Konfiguration für einen bestimmten Typ von Geräte bereitzustellen. Jede Art von Gerät benötigt spezifische Schritte und Parameter, welche im Rahmen des Helper/Wizards abgefragt werden und in einem abschließenden Schritt zum Dashboard hinzugefügt werden.

Je nach Art und Leistungsumfang des hinzugefügten Gerätes werden Konfigurationen erstellt für:

 

Verwendung von JSONPath bei den Datenpunkten

Einige unterstützte Geräte, wie zum Beispiel EcoFlow, nutzen JSON Dokumente in den Datenpunkten anstelle dedizierte Topics je Wert. Für diese Geräte kann JSON Path genutzt werden, um die Werte aus dem JSON Dokument zu extrahieren.

Beispiel ECOFlow Powerstation

image.png

Die 38 lässt sich mit dem JSONPath folgendem Ausdruck extrahieren: $.params['bms_emsStatus.lcdShowSoc'] 

Dieser Ausdruck kann mit dem Identifier "jsonpath:" als Renderer eingetragen werden:

image.png

 

 

Verwendung von Javascript zur Aufbereitung für die Anzeige

Als Renderer kann eine Javascript Funktion genutzt werden. Diese wird unmittelbar in als neue Wertzuweisung der Anzeigevariable mit dem prefix "javascript:" eingetragen.

Beispiel

Die AVM Fritz DECT 220 Stecker geben Leistungswerte mit einer Nachkommastelle aus. Zur Anzeige sollen diese gerundet werden (Javascript Math.round() ) der Renderer würde dann lauten: javascript:value=Math.round(value)

image.png