[vz-users] vzlogger MQTT und vz push server

Andreas Goetz cpuidle at gmail.com
Do Jan 2 10:52:33 CET 2020


Moin Claas,

Frohes Neues Jahr!

> On 1. Jan 2020, at 22:31, Claas H. Köhler <claashk at web.de> wrote:
> 
> Hi Andreas,
> 
> Das Nutzerszenario ist kompliziert. Daher habe ich es soweit wie möglich abstrahiert. Wenn wir anfangen, in die Details zu gehen, dann finden wir so schnell kein Ende fürchte ich. Letztlich wird sich aber an der Problemstellung wahrscheinlich wenig ändern. Daher würde ich es zunächst gern dabei belassen.

Damit schwindet auch mein Interesse. Du möchtest Hilft, ich möchte gerne den Anwendungsfall verstehen um etwas zu lernen. Scheint als kämen wir da nicht zusammen- schade!

> Du schreibst, Ihr nutzt autobahn.js als Router. Ich dachte, der Autobahn Router wäre jetzt in crossbar.io ausgelagert. Nutzt Ihr eine ältere Version, in der der Router noch Teil von Autobahn war oder nutzt Ihr nur den Autobahn Client ? Wenn wir von WAMP sprechen, dann schon WAMP Version 2, oder ?

Wir nutzen WAMP v1 Pub/Sub. Und selbst das ist für den typischen Anwendungsfall 1 VZ, 1 Browser völlig overengineered.

> Du schreibst, WAMP für die Datenverteilung sei ungewöhnlich. Das verwirrt mich etwas. Ich dachte, genau das sei ein Anwendungsszenario, für das WAMP eingesetzt wird. Was wird denn für IoT Anwendungen aktuell in der Praxis vorzugsweise verwendet ?

Ich kenne jedenfalls kein Projekt das WAMP verwendet. Darüber hinaus ist der Lösungsraum endlos.

> Mir ist klar, dass ich hier möglicherweise Neuland betrete und u.U. experimentieren muss. Das finde ich ok und macht Spaß. Ich wollte nur nach Möglichkeit keine Experimente starten, von denen die Experten schon vorher wussten, dass sie in die Hose gehen, denn meine Zeit für solche Experimente ist momentan endlich. 

Ich weiss es nicht, da hilft nur ausprobieren.

> Ich habe gestern den Crossbar.io Router installiert. Der gefällt mir, weil er angeblich auch als MQTT-WAMP Bridge fungieren kann. Ich hoffe, in den nächsten Tagen den Versand von MQTT Nachrichten und den Empfang in einem kleinen WAMP Client zu testen. Wenn das geht, dann können wir weiterreden. Kann das VZ Frontend theoretisch Daten von jedem WAMP Router visualisieren ?

VZ visualisiert Daten der Middleware. WAMP kommt nur ins Spiel für “live” Daten die nicht in die Middleware geschrieben werden. Sozusagen das “rechte” Ende des Graphen.

> 
> Viele Grüße und ein frohes neues Jahr
> Claas

Viele Grüße, Andreas

> 
> -----Original Message-----
> From: volkszaehler-users [mailto:volkszaehler-users-bounces at demo.volkszaehler.org] On Behalf Of Andreas Goetz
> Sent: Tuesday, December 31, 2019 4:44 PM
> To: volkszaehler.org - users
> Subject: Re: [vz-users] vzlogger MQTT und vz push server
> 
> Hallo Claas,
> 
>> On 30. Dec 2019, at 20:26, Claas H. Köhler <claashk at web.de> wrote:
>> 
>> Hi Andreas,
>> 
>> Danke für Deine Geduld. Natürlich können wir diskutieren, ob die
>> Anforderungen an die Regelkreise wirklich so hoch sind, oder ob ich
>> nicht mit 10 Hz in die Datenbank schreiben kann. Ich fürchte, das führt
>> uns eher weiter weg von einer Lösung als zu ihr hin.
> 
> Mag sein. Was mich daran interessiert ist Dein Anwendungsfall. Welche Sensoren? Was für eine Regelung? Du möchtest hier Lösungshilfe, ich möchte gerne das Szenario verstehen. Vielleicht bekommen wir ja Beide was ;)
> 
>> Falls es für Dich ok ist, lass uns das Problem in folgender Form als
>> gegeben annehmen:
>> 
>> <snip>
>> 
>> Die Frage ist: Ist VZ ein geeignetes Werkzeug, um dieses Problem zu
>> lösen. Mein Eindruck ist, dass die Antwort auf diese Frage eindeutig ja
>> lautet. Siehst Du das auch so?
> 
> vzlogger ist für Datenerfassung, VZ Frontend für Visualisierung zuständig. Du möchtest das elegant “reusen”.
> 
>> Stellt sich also die Frage: wie mache ich das am besten ? Es gibt
>> sicher verschiedene Möglichkeiten, die unterschiedlich aufwendig
>> sind. Eine habe ich skizziert. Du scheinst in eine andere Richtung zu
> 
> Die fand ich durchaus elegant. Es wird sie aber niemand für Dich testen, das musst Du selber machen. Warum nicht einfach mal ausprobieren?
> 
>> tendieren. Da Du der VZ Experte bist, hat Deine Meinung natürlich
>> Gewicht. Ich habe aber noch nicht verstanden, wie Du genau an das
>> Problem herangehen würdest. Kannst Du einen Lösungsansatz grob umreißen
>> ?
> 
> Nein da ich Dein Szenario immer noch nicht kenne. WAMP für Datenverteilung ist jedenfalls relativ ungewöhnlich. Auch im Frontend würde ich das heute nicht mehr so machen da zuviel Overhead, in dem Fall an JS Code im Browser.
> 
> Ich würde nicht zwingend versuchen die Daten über vzlogger/pushserver zu schleusen. Was z.B. tun wenn Du mal die Visualisierung wechseln willst? Das wird aber einfacher wenn einzelne Requirements fallen. Warum z.B. ist es notwendig, die 100ms-Take zu aggregieren statt einfach Daten wegzulassen?
> 
>> Ich habe bisher ein wenig mit WAMP (Autobahn für Python) experimentiert
>> und fand das interessant und recht elegant implementiert. Daher könnte
>> ich mir vorstellen, in diese Richtung zu gehen, wenn es sinnvoll ist.
>> Einfach weil es geht. Mit MQTT habe ich noch nie gearbeitet. Da müsste
>> ich mich erst einlesen. Ist das soviel einfacher als Autobahn ?
> 
> Wenn Du eine WAMP Bibliothek hast sollte das gehen. MQTT ist anders, weiter verbreitet, hat in der Implementierung aber auch seine Tücken.
> 
>> Was ich bisher nicht verstehe, ist die VZ push Architektur. Ich
>> verstehe die Dokumentation so, dass das Frontend Daten vom push server
>> über WAMP empfängt. Funktioniert das über pub/sub oder RPC ? Was für
>> einen WAMP Router / Broker nutzt Ihr dafür ?
> 
> Pub/Sub mit autobahn.js.
> 
> Viele Grüße, 
> Andreas
> 
>> Viele Grüße
>> Claas
>> 
>> On Mon, 2019-12-30 at 10:09 +0100, Andreas Goetz wrote:
>>> Moin Claas,
>>> 
>>>> On 29. Dec 2019, at 22:04, Claas H. Köhler <claashk at web.de> wrote:
>>>> 
>>>> Hallo Andreas,
>>>> 
>>>> Ich würde gern
>>>> 1) den VZ push server (=WAMP router?) nutzen, um die Daten meines
>>>> Zählers an zwei weitere Geräte zu verteilen, idealerweise in
>>>> maximal
>>>> verfügbarer zeitlicher Auflösung.
>>> 
>>> Du fängst wieder mit der Lösung an, nicht dem Problem.
>>> 
>>> WAMP ist ein wirklich kompliziertes Protokoll- können Deine Geräte
>>> das? Falls nein such eine einfache Lösung, es gibt unendliche
>>> Varianten, z.B. mit MQTT oder nackten Web Sockets.
>>> 
>>>> 2) die VZ Middleware zur Speicherung der zeitlich gemittelten Daten
>>>> verwenden (der Ausdruck aggregiert war vermutlich falsch gewählt)
>>> 
>>> Ok. Siehe meine Frage nach weglassen. Brauchst Du wirklich gemittelte
>>> Daten? Was für ein Sensor ist das der so hohe Anforderungen an die
>>> Aufbereitung zur Speicherung stellt?
>>> 
>>>> Der vzlogger könnte die Kommunikation mit der Middleware und das
>>>> Mitteln der Daten übernehmen (Punkt 2). Diese Funktionalität ist ja
>>>> bereits implementiert. Ich würde sie ungern nochmal schlecht
>>>> implementieren, wenn jemand sich schon einmal die Mühe gemacht hat,
>>>> sie
>>>> schön zu implementieren. Dazu müsste ich allerdings die Daten, die
>>>> von
>>>> meinem Skript generiert werden, in geeigneter Form an den vzlogger
>>>> übergeben. Warum wäre eine WAMP subscriber Schnittstelle dafür eine
>>>> `krude` Lösung ? Was wäre ein besserer Ansatz ?
>>> 
>>> WAMP ist schlicht nicht implementiert und wie oben geschrieben
>>> komplex.
>>> 
>>>> Ich habe mir die file und exec Protokolle angesehen. Das exec
>>>> Protokoll
>>>> scheint mir eher nicht geeignet, weil es das Script wiederholt
>>>> aufruft.
>>> 
>>> Zum Speichern völlig ausreichend, Du brauchst ja keine Echtzeit.
>>> Vmtl. geht damit aber immer nur 1 Wert.
>>> 
>>>> In meinem Fall ist die Initialisierung zu Beginn etwas langwierig,
>>>> so
>>>> dass ich das Skript gern einmal aufrufen würde, und die Daten dann
>>>> in
>>>> einem Loop permanent ausgeben würde. Zum file Protokoll habe ich zu
>>>> wenig Dokumentation gefunden, um herauszufinden, was es genau
>>>> macht.
>>> 
>>> K.A. ob das jemals jemand benutzt hat- Recherche auf der ML und in
>>> den Code schauen wie’s implementiert ist. Könnte gehen, gute Idee!
>>> 
>>>> Um Punkt 1) lösen zu können, verstehe ich noch nicht ausreichend,
>>>> wie
>>>> ich Daten über den VZ push server publizieren kann (als WAMP
>>>> publisher), so dass das Frontend sie auch versteht und wie andere
>>>> Anwendungen diese Daten abbonieren können (als WAMP subscriber) ?
>>> 
>>> Solange Deine Clients kein WAMP können stellt sich die Frage nicht.
>>> Was für Clients sind das?
>>> 
>>>> Ich habe den Eindruck, dass ich das VZ Konzept noch nicht richtig
>>>> verstehe, daher in die falsche Richtung denke und nicht die
>>>> richtigen
>>>> Fragen stelle. Daher wäre ich für einen Stups in die richtige
>>>> Richtung
>>>> dankbar.
>>> 
>>> Ich glaube einfach dass Du zu sehr mit der Lösung anfängst als mit
>>> dem wirklich Notwenigen an Anforderungen. Aber der Weg ist das Ziel
>>> ;)
>>> 
>>>> 
>>>> Viele Grüße
>>>> Claas
>>> 
>>> Viele Grüße,
>>> Andreas
>>> 
>>>> 
>>>> 
>>>> On Sun, 2019-12-29 at 20:59 +0100, Andreas Goetz wrote:
>>>>> Hallo!
>>>>> 
>>>>>> On 29. Dec 2019, at 20:24, Claas H. Köhler <claashk at web.de>
>>>>>> wrote:
>>>>>> 
>>>>>> Hallo,
>>>>>> 
>>>>>> Hier also meine User Story:
>>>>>> 
>>>>>> Ich habe einen Zähler, für den es aktuell kein vzlogger
>>>>>> Protokoll
>>>>>> gibt.
>>>>>> Ich habe ein Programm, welches die Daten des Zählers auslesen
>>>>>> kann.
>>>>>> Die
>>>>>> Daten des Zählers werden mit einer Frequenz von ca 10 Hz
>>>>>> ausgelesen
>>>>>> und
>>>>>> werden von zwei anderen Geräten als Eingabe für einen
>>>>>> Regelkreis in
>>>>>> dieser Datenrate benötigt.
>>>>> 
>>>>> Ok- bis dahin hat das alles nix mit VZ zu tun.
>>>>> 
>>>>>> Zusätzlich würde ich die Daten des Zählers
>>>>>> gern mit einer Datenrate von 1-0.1 Hz in der VZ Datenbank
>>>>>> speichern.
>>>>> 
>>>>> Sportlich aber machbar. Musst Du die Datenrate irgendwie
>>>>> reduzieren.
>>>>> 
>>>>>> In einer idealen Welt könnte ich mein Skript so adaptieren,
>>>>>> dass es
>>>>>> die
>>>>>> Daten des Zählers in voller Datenrate über WAMP publiziert. Die
>>>>>> beiden
>>>>>> anderen Geräte und vzlogger könnten dann subscriben, vzlogger
>>>>>> würde
>>>>>> sich
>>>>>> um das Aggregieren und die Weiterleitung an den VZ Server
>>>>>> kümmern
>>>>>> und
>>>>>> der Fisch wäre geputzt.
>>>>> 
>>>>> Jetzt bist Du schon bei irgendeiner kruden Lösung. Für welches
>>>>> Problem? Vzlogger aggregiert Dir nichts und soll es auch nicht.
>>>>> Welches Problem willst Du jetzt konkret lösen?
>>>>> 
>>>>>> Natürlich leben wir nicht in einer idealen (=langweiligen)
>>>>>> Welt.
>>>>>> Was
>>>>>> würdet Ihr also vorschlagen ?
>>>>> 
>>>>> Wofür? Reduktion der Datenrate?
>>>>> 
>>>>>> Ich könnte das Skript so anpassen, dass es die Middleware API
>>>>>> nutzt.
>>>>>> Dann müsste ich mich um das Aggregieren selber kümmern, oder ?
>>>>>> Muss
>>>>>> ich
>>>>> 
>>>>> Was willst Du aggregieren? Wofür?
>>>>> 
>>>>>> dann noch eine extra Anbindung an den VZ push server
>>>>>> implementieren,
>>>>>> wenn ich den für die Verteilung der 10 Hz Daten nutzen möchte ?
>>>>>> 
>>>>>> Danke in jedem Fall für Eure Bereitschaft, sich mit meinen
>>>>>> Problemen zu
>>>>>> beschäftigen.
>>>>> 
>>>>> Möglicherweise brauchst Du ein Skript das:
>>>>> 
>>>>> a) Daten an Pushserver schickt (aber bitte nicht 10x pro Sekunde-
>>>>> das
>>>>> braucht kein Mensch)
>>>>> b) Datenrate für Speicherung weiter reduziert
>>>>> c) Diese dann über API an Middleware schickt
>>>>> 
>>>>> Hat alles mit vzlogger und irgendwelcher Aggregation nicht zu
>>>>> tun.
>>>>> Vmtl wäre es sogar völlig opk einfach nur jeden 10. Wert Deines
>>>>> Gerätes zu nehmen und statistisch wäre auch alles i.o.
>>>>> 
>>>>> My 2ct...
>>>>> 
>>>>> Viele Grüße,
>>>>> Andreas
>>>>> 
>>>>>> 
>>>>>> Gruß
>>>>>> Claas
>>>>>> 
>>>>>> On 12/29/19 7:12 PM, Andreas Goetz wrote:
>>>>>>> Hallo Claas,
>>>>>>> 
>>>>>>> ich verstehe Deine Fragen nicht so richtig. Welches Problem
>>>>>>> versuchst Du denn hier konkret zu lösen oder was willst Du
>>>>>>> besser
>>>>>>> machen? Es wäre einfacher damit anzufangen und dann die
>>>>>>> Lösung
>>>>>>> dazu zu suchen ;)
>>>>>>> 
>>>>>>> Viele Grüße, Andreas
>>>>>>> 
>>>>>>> 
>>>>>>>> On 29. Dec 2019, at 16:53, Claas H. Köhler <claashk at web.de>
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Hallo,
>>>>>>>> 
>>>>>>>> Danke für die sehr schnelle Antwort. Ein paar Kommentare
>>>>>>>> und
>>>>>>>> Rückfragen
>>>>>>>> habe ich unten eingefügt. Könntest Du noch etwas zur
>>>>>>>> subscriber
>>>>>>>> Funktionalität für den vzlogger sagen, die z.B. hier
>>>>>>>> schonmal
>>>>>>>> diskutiert
>>>>>>>> wurde:
>>>>>>>> 
>>>>>>>> https://github.com/volkszaehler/vzlogger/issues/238
>>>>>>>> 
>>>>>>>> Würde eine WAMP oder MQTT Schnittstelle als Meter nicht die
>>>>>>>> Integration
>>>>>>>> neuer Protokolle in vzlogger deutlich vereinfachen ? Ich
>>>>>>>> könnte
>>>>>>>> dann für
>>>>>>>> jedes Meter einen Prozess/Service laufen lassen, der die
>>>>>>>> Messdaten nur
>>>>>>>> noch in MQTT oder WAMP übersetzt und vzlogger übernimmt den
>>>>>>>> Rest der Arbeit.
>>>>>>>> 
>>>>>>>> On 12/29/19 4:00 PM, Daniel Lauckner wrote:
>>>>>>>> 
>>>>>>>>>> Gibt es zum vzlogger MQTT Interface eine Dokumentation
>>>>>>>>>> ?  >
>>>>>>>>>> Nicht von mir, verstehe das nämlich auch nur halb.
>>>>>>>>>> Schade.
>>>>>>>>>> Falls ich
>>>>>>>> 
>>>>>>>> es jemals verstehe, kann ich dazu vielleicht etwas
>>>>>>>> aufschreiben.
>>>>>>>> 
>>>>>>>>>> Ich verstehe bisher nicht ganz, was der Unterschied
>>>>>>>>>> zwischen dem  >> MQTT Client im vzlogger und dem
>>>>>>>>>> volkszähler push server ist. Beide
>>>>>>>>>> publizieren aktuelle Meswerte über WAMP, oder ? > Nein.
>>>>>>>>>> WAMP läuft
>>>>>>>> 
>>>>>>>> über WebSocket, wie HTTP auf Port 80. >
>>>>>>>> https://en.wikipedia.org/wiki/Web_Application_Messaging_Pro
>>>>>>>> toco
>>>>>>>> l > >
>>>>>>>> MQTT hat seine eigenen Ports und nutz einen (nicht VZ)
>>>>>>>> Broker
>>>>>>>> als >
>>>>>>>> zentrale Stelle. https://de.wikipedia.org/wiki/MQTT
>>>>>>>> 
>>>>>>>> Verstehe. Der VZ push server nutzt Autobahn (bzw jetzt
>>>>>>>> crossbar.io?) als
>>>>>>>> WAMP Router oder ? Der könnte soweit ich verstehe WAMP und
>>>>>>>> MQTT
>>>>>>>> Clients
>>>>>>>> miteinander verbinden. Ich glaube, dann ist der VZ WAMP
>>>>>>>> Server
>>>>>>>> eher das
>>>>>>>> was ich nutzen möchte. Gibt es eine Dokumentation des WAMP
>>>>>>>> Interfaces
>>>>>>>> für den VZ push server ?
>>>>>>>> 
>>>>>>>>>> Kann einer von beiden in höherer Frequenz publizieren,
>>>>>>>>>> als
>>>>>>>>>> die  >> Daten in der Datenbank gespeichert werden ? > >
>>>>>>>>>> Vom
>>>>>>>>>> Grundsatz her
>>>>>>>> 
>>>>>>>> werden Daten die von den Zählern eintreffen in die >
>>>>>>>> Datenbank
>>>>>>>> gebracht.
>>>>>>>> Erst wenn im vzlogger bewusst aggregiert wird > unterlaufen
>>>>>>>> wir
>>>>>>>> das. Ist
>>>>>>>> das irgendwo dokumentiert, bzw kannst Du das für den Laien
>>>>>>>> etwas
>>>>>>>> ausführen ? Ich aggregiere mit vzlogger für meinen Zähler.
>>>>>>>> Heisst das,
>>>>>>>> der push server würde nicht nur die aggregierten Daten
>>>>>>>> liefern,
>>>>>>>> sondern
>>>>>>>> auch die Einzelmessungen ? Das würde viele meiner Probleme
>>>>>>>> lösen
>>>>>>>> 
>>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
> 
> 



More information about the volkszaehler-users mailing list