Corrently Current

Um die Daten von smarten Geräte ohne Schwierigkeiten auf einer Ansicht zu vereinen, bietet Corrently Current ein Webinterface (Browser/APP/PWA), welches im Hintergrund auf die unterschiedlichsten Datenquellen und Protokolle der Geräte zugreifen kann.

Aufbau von Corrently Current

Corrently Current ist ein System, das aus mehreren Komponenten besteht und es ermöglicht, Messwerte von verschiedenen Geräten und Herstellern in einer Benutzeroberfläche zusammenzufassen. Im Folgenden wird der Aufbau dieses Systems technisch beschreiben.

Die zentrale Komponente von Corrently Current ist das Webinterface, das über die Webseite current.corrently.cloud aufgerufen werden kann oder auf einem beliebigen Webserver bereitgestellt werden kann. Der notwendige Quellcode hierfür liegt im GIT-Repository. Wenn der Webserver über HTTPS verfügt, kann das Webinterface auch als Progressive Web App (PWA) auf Endgeräten genutzt werden. Das Webinterface stellt die Benutzeroberfläche dar, über die der Benutzer mit dem System interagieren kann. Es merkt sich auch ein Großteil der für die Anzeige notwendigen Einstellungen.

#Progressive Web App (PWA), Verbindung zu MQTT-Datenquellen, Echtzeitaktualisierung

Das Webinterface verbindet sich mit einem Server, der als Vermittler dient und Verbindungen zu MQTT-Datenquellen, auch bekannt als MQTT Broker, aufbaut. MQTT ist ein Protokoll für die Kommunikation zwischen Geräten in einem Internet of Things (IoT)-Netzwerk. Durch die Verbindung mit den MQTT Brokern kann das Webinterface in Echtzeit auf Datenänderungen reagieren und die Anzeige entsprechend aktualisieren. Das Webinterface benötigt hierdurch keine Kenntnisse über die eigentlichen Protokolle oder Mechanismen, mit denen auf die Geräte zugegriffen wird. 

#Corrently Edge: Services auf lokalem Mini-Rechner (z.B. Raspberry Pi)

Um eine möglichst breite Unterstützung von IoT Geräten und Smart Home-Lösungen zu gewährleisten, gibt es eine Komponente namens "Corrently Edge". Corrently Edge besteht aus einer Reihe von Diensten, die auf einem lokalen Mini-Rechner wie einem Raspberry Pi installiert werden können. Einer dieser Dienste ist ein MQTT Broker, der es dem Webinterface von Corrently Current ermöglicht, sich damit zu verbinden und Daten auszutauschen.

Ein weiterer Dienst von Corrently Edge ist eine Node-RED-Instanz. Node-RED ist ein Flow-basierter Programmierungseditor, der den Zugriff auf Geräte ermöglicht, die nicht über MQTT ausgelesen werden können. Dies erweitert die Kompatibilität des Systems, indem es eine Vielzahl von Geräten und Protokollen integrieren kann.

#Cloud Bridge: Übertragung von Messwerten an Cloud-Server

Zusätzlich bietet Corrently Edge einen Dienst namens Cloud Bridge an. Wenn die Cloud Bridge aktiviert ist, werden alle abgerufenen Messwerte an einen Cloud-Server übertragen. Dadurch können die Messwerte auch dann abgerufen werden, wenn sich der Benutzer nicht im selben Netzwerk wie Corrently Edge befindet. Der Zugriff auf die Cloud Bridge erfolgt beispielsweise über die URL https://current.corrently.cloud/.

In Kombination bilden der Cloud-Server, die Progressive Web App Corrently Current und die Dienste von Corrently Edge eine Einheit, um Messwerte wie die aktuelle Leistungsaufnahme (in Watt) von unterschiedlichen Geräten und Herstellern in einer einzigen Anzeige zusammenzufassen. Der Benutzer kann über das Webinterface auf diese Anzeige zugreifen und die Daten in Echtzeit verfolgen.

mainscreen_corrently-current.png

#Wizards: Konfiguration von geräteabhängigen Einstellungen

Sogenannte Wizards spielen eine wichtige Rolle bei der Konfiguration von Corrently Current. Diese Wizards sind eigenständige Webseiten, die nicht direkt zu Corrently Current gehören, sondern dazu dienen, geräteabhängige Einstellungen zu erfassen. Auf Grundlage dieser Einstellungen werden die Datenpunkte in Corrently Current konfiguriert und gegebenenfalls die erforderlichen Flows in Node-RED erstellt.

Die Wizards bieten eine benutzerfreundliche Möglichkeit, Geräte mit Corrently Current zu verbinden. Im einfachsten Fall genügt die Eingabe der IP-Adresse eines Geräts, um automatisch die relevanten Datenpunkte für die Leistungsaufnahme in Corrently Current anzuzeigen. Zudem werden die Datenabrufe durch Node-RED ermöglicht und über die Cloud Bridge kann der Benutzer auch mobil darauf zugreifen. Durch diese Konfiguration können die Daten in Echtzeit aktualisiert werden. Mit relativ geringen Programmierkenntnissen ist es möglich, neue Wizards für Corrently Current zu erstellen. Dadurch besteht die Möglichkeit, dass in Zukunft eine Vielzahl weiterer Geräte unterstützt werden kann.

Es ist wichtig zu beachten, dass Corrently Current darauf ausgelegt ist, aktuelle Daten von den verbundenen Geräten abzurufen. Das System speichert keine historischen Daten und ermöglicht auch keine direkten Schaltbefehle an die Geräte.

Diese Erweiterung der Beschreibung fügt weitere Details hinzu, wie die Wizards zur Konfiguration von geräteabhängigen Einstellungen dienen und wie die Unterstützung für eine Vielzahl von Geräten durch die Möglichkeit der Erstellung neuer Wizards ermöglicht wird. Zusätzlich wird klargestellt, dass Corrently Current auf die Erfassung aktueller Daten und nicht auf die Speicherung historischer Daten oder das Senden von Schaltbefehlen ausgelegt ist.

IoT Geräte

IoT Geräte

Grid Frequency (ENTSOe)

Anzeige der aktuellen Netzfrequenz im europäischen Verbundnetz. Aktualisierung ca. 5 Sekunden.

Zugriff: Direkt
EDGE: nicht benötigt

Datenpunkt

image.png

Konfiguration

image.png

 

IoT Geräte

Ecoflow

Zugriff auf die Leistungsdaten der Ecoflow Powerstations über den vom Anbieter bereitgestellten MQTT Broker. 

Zugriff: Direkt
EDGE: nicht benötigt

Datenpunkt

image.png

Konfiguration

image.png


Anwendungsfälle - UI

Beschreibung von einzelnen Verfahren

Anwendungsfälle - UI

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:

 

Anwendungsfälle - UI

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

 

 

Anwendungsfälle - UI

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)