[vz-users] vzlogger MQTT und vz push server

Claas H. Köhler claashk at web.de
Mo Dez 30 20:26:57 CET 2019


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.

Falls es für Dich ok ist, lass uns das Problem in folgender Form als
gegeben annehmen:

1) Es gibt einen Sensor der mit hoher zeitlicher Auflösung (10 Hz)
misst und Daten über MQTT publizieren kann.
2) Die Daten des Sensors sollen echtzeit-nah an zwei weitere Geräte
verteilt werden. Beide Geräte können als WAMP subscriber Daten
empfangen.
3) Die Daten des Sensors sollen in einer Datenbank gespeichert werden.
Dafür reicht eine schlechtere zeitliche Auflösung als die native.
4) Ich würde die Daten des Sensors gern visualisieren können.
5) Sensor und zu steuernde Geräte sind bereits in ein Ethernet
integriert, in dem VZ seit ca einem Jahr VZ erfolgreich eingesetzt
wird, um die Daten eines anderen Sensors zu loggen.

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 ?

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
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
?

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 ?

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 ?

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