Websocket support?


#1

Momentan kann man die API nur über einzelne HTTPS Requests abfragen. Das ist extrem teuer sowohl auf dem Server als auch auf dem Client vor allem, wenn der Client die Verbindung nicht offen hält (bzw. offen halten kann), da hier jedesmal ein neuer SSL Handshake, Zertifikatsabfrage etc. stattfindet.
Meine Implementierung für eine ESP8266 MCU braucht für eine Zählerstandabfrage ca. 5s.
Hierfür würden sich Websockets wesentlich besser eignen und auch auf der Serverseite die Last beträglich senken.
Ist so etwas in Planung?


#2

Die Wahl auf eine reine HTTPS Unterstützung ist bei uns gefallen, da der REST Standard hier eindeutig definiert ist und die meisten Laufzeitumgebungen mittlerweile die Verbindung halten können. Websockets hat den Nachteil, dass eine TCP Verbindung zwangsweise gehalten werden muss und somit nicht bei Bedarf getrennt werden kann. Dies schränkt die maximale Anzahl der Clients je Server IP wegen der möglichen Ports sehr stark ein. Websockets wird daher auf absehbare Zeit von der API nicht unterstützt.


#3

Ok, danke für die Information. Ich glaube ehrlich gesagt nicht, dass die begrenzte Anzahl der Ports auf absehbare Zeit eine Limitierung der Nutzung der Schnittstelle darstellen wird. Es kommt natürlich auf die Implementierung an, aber es lassen sich relativ problemlos mehrere hunderttausend, gleichzeitige TCP Verbindungen pro Server/AWS Instanz realisieren. Da fliegt einem normalerweise vorher etwas anderes um die Ohren, gerade, wenn es sich wie bei Discovergy um individuelle Daten handelt auf die zugegriffen wird.
Der Tod für einen Server sind nicht viele Clients, sondern langsame Clients und das Risiko, das man diese hat oder bekommen wird ist bei der derzeitigen Schnittstelle hoch.
Alternativ wäre natürlich auch eine Anbindung per MQTT vielleicht noch besser. Langfristig wird Discovergy allerdings nicht um eine lokale Schnittstelle rumkommen, wenn man die Zählerdaten wirklich zur Gerätesteuerung einsetzen möchte.

Mit der oben genannten Logik gehe ich davon aus, dass auch die Zähler selber per HTTPS REST Schnittstelle angebunden sind. Wobei REST kein Standard ist und auf keinen Fall eindeutig definiert ist :wink:


#4

Ich frage mich seit Anfang an, aus welchem Grund die Abfrage nur über den Discovergy Server/API geht. Wieso wird hier künstlich Traffic und Serverlast produziert. Eine lokale Abfrage im Netzwerk wäre für alle einfacher. Aus welchem Grund habt ihr euch bei Discovergy für diesen Weg entschieden? Wenn es um Support geht, so könnte man die lokale Schnittstelle ja ohne Support anbieten. Eine Schnittstellenbeschreibung vorausgesetzt.


#5

Hier muss man etwas die Historie bedenken. Erst mit dem Smart Meter Gateway kam/kommt eine Definition, wie eine sichere “interne” Schnittstelle aussehen soll und wird mit der HAN Schnittstelle auch von uns unterstützt.

Bei Heimnetzwerken ist das Problem, dass hier die Absicherung der Messwerte vor unberechtigtem Zugriff deurlich schwieriger ist. Ich denke, es ist bekannt, dass ungesicherte Websockets oder http-server im LAN relativ einfach auch aus dem Internet abgerufen werden können. Dieser Gefahr konnten wir uns nicht aussetzen.


#6

Danke für die Info. Wird der Zugriff auf die HAN Schnittstelle bei bestehenden Installationen nachgereicht? Ab wann werden SmartMeterGateways nach der neuen Zertifizierung und mit Zugriff auf HAN ausgeliefert? Werden die neuen SmartMeterGateways nach wie vor Daten in echtzeit liefern, oder nur in 15 min. Intervallen?


#7

“Jein” - wenn es sich um ein SMGW mit einer HAN Schnittstelle handelt, dann ja. Da es im Feld allerdings viele Gateways ohne diese Schnittstelle gibt, ist dort ein Hardwareumbau notwendig.

Die Echtzeitdaten sollen bleiben, die 15 Minuten Intervalle sind eigentlich nur für die Abrechnung über die Marktkommunikation von Bedeutung.


#8

Für ein “echtes” SmartMeterGateway kann ich das nachvollziehen. Aber warum nicht bei den Meteoriten?

Und die Zähler habt Ihr die ja blöderweise auch noch so konfguriert, dass man im Display jedesmal die PIN per Tashenampe eingeben muss, um Daten zu sehen. Und nach 2 Minuten geht auch das wieder nicht. Gemeinerweise steht das nicht im Prospekt. Das merkt man erst, wenn es zu spät ist.

Da könnte man glatt vermuten, das D. sich mittels des Portals unentbehrlich beim Kunden machen möchte, wenn der seine eigenen Daten sehen will. Lokal geht da nichts.


#9

Ich würde ebenfalls gerne die Zähler direkt abfragen, allerdings nicht über das Internet,
sondern per Direktzugriff über das lokale Intranet - also das heimische Netzwerk.
Ein http-Request auf die direkte IP des Zählers ( http://192.168.xxx.xxx/ ) via PHP.

Ich denke, dass es etliche Interessenten für diese Art der Abfrage gibt, und dass
ein Gedanken-Anschubser an Discovergy helfen könnte, dieses Thema nochmals
zu überdenken.

Danke & Gruß,

Volker