[vz-users] Daten auf MQTT Topics verteilen

Frank Richter frank.richter83 at gmail.com
Thu Sep 20 18:29:09 CEST 2018


Hi Christian,

richtig verstanden.

Für MQTT ist die Payload einfach ein String, ob da nur der Wert, JSON oder
sonstwas drin steht, ist dem Broker egal.

Zählerstände gibt's über den Push-Server nicht. Entweder von vzlogger
direkt an Node-RED pushen lassen (siehe Wiki) oder von Node-RED bei der
Middleware abholen.

Grüße
Frank

Christian Wulff <christianwulff at gmx.de> schrieb am Do., 20. Sep. 2018,
14:11:

> Moin Frank,
>
>
>
> wenn ich dich richtig verstanden habe, wäre bei dem Design nicht
> sichergestellt, dass der timestamp auch wirklich zu dem value gehört,
> richtig?
>
> Okay, das verstehe ich, und hatte auch schon an diese potentielle
> Fehlermöglichkeit gedacht.
>
>
>
> Ich dachte ich hätte MQTT so verstanden, dass in den MQTT-Messages nur
> Werte, aber keine komplexeren Strukturen (z.B. Timestamp und Wert) richtig
> wären.
>
> Aber das scheint dann wohl egal zu sein?!
>
>
>
> Wenn ich jetzt den Wasserzähler einmal auf einen Topic mit timestamp und
> value und einmal nur den value publishe, dann habe ich halt einen Topic
> mehr. Ich denke das funktioniert auch.
>
> Bis jetzt fällt mir von meinen ganzen Sensoren auch eigentlich nur der
> Wasserzähler ein, bei dem ich den timestamp brauche, weil ich aus dem
> letzten timestamp und dem aktuellem timestamp die Durchflussrate berechne,
> und wenn der nächste timestamp ausbleibt will ich die Durchflussrate auch
> noch gen Null trimmen, je mehr Zeit verrinnt. (Ansonsten würde die
> Durchflussrate immer zwischem einem Wert und Null toggeln, wenn man den
> Wasserhahn langsam zudreht. Aber soweit bin ich noch nicht.
>
> Die Sache mit dem „Send_zero = true“ habe ich übrigends relativ schnell
> wieder gelassen, weil jede Sekunde eine „0“ gesendet wird, und so die
> Durchflussrate zwangsweise jede Sekunde zwischen einem Wert und Null
> toggelt.
>
>
>
> Wenn wir schon beim Thema MQTT sind:
>
> Wie kriege ich denn die Stromzählerstände und Wasserzählerstand auf MQTT?
>
> (bis jetzt kriege ich dort nur Momentanleistung raus)
>
>
>
> Lieben Gruß,
>
> Chris
>
>
>
> *Von:* Frank Richter [mailto:frank.richter83 at gmail.com]
> *Gesendet:* Donnerstag, 20. September 2018 00:26
> *An:* volkszaehler.org - users
> *Betreff:* Re: [vz-users] Daten auf MQTT Topics verteilen
>
>
>
> Hi Christian,
>
>
>
> value und timestamp auf unterschiedliche Topics zu verteilen ist IMHO kein
> gutes Design, weil damit die Korrelation des Tupels verloren geht. Wenn du
> MQTT-Topics mit und ohne timestamp brauchst, solltest du eben beide
> generieren und beim subscribe die jeweils passende wählen.
>
>
>
> Grüße
>
> Frank
>
>
>
> Christian Wulff <christianwulff at gmx.de> schrieb am Mi., 19. Sep. 2018,
> 23:39:
>
> Moin,
>
>
>
> ich habe jetzt schon ein paar Wochen MQTT am Laufen und bin begeistert.
>
> Der Push Server liefert Daten via websockets an Node-RED
>
> In Node-RED habe ich einen Flow, der die Daten konvertiert und an den MQTT
> Broker published.
>
> Und dann habe ich mir ein ESP8266 und ein Display genommen und subscribe
> den MQTT Broker, parse die MQTT Message und stelle sie auf dem Display dar.
>
> Das Funktioniert soweit.
>
> Zugegebenerweise ist der Flow im Node-RED nur zusammenkopiert und ich
> könnte den nicht selber schreiben. Egal, solange es funktioniert ist es ja
> schön und gut.
>
>
>
> Nun habe ich entdeckt, dass es auch MQTT Client Apps gibt, und da kommt
> dann schnell der Wunsch auf, auch dieses zu nutzen.
>
> Diese Apps brauchen die MQTT Nachrichten, allerdings in einem etwas
> anderem Format.
>
>
>
> Bisher hat die MQTT Message folgenden Inhalt: „timestamp=1537392772928
> value=2.5819666840232“
>
> Da wird in den Apps dann auch genau so dargestellt
> „timestamp=1537392772928 value=2.5819666840232“
>
> Das ist natürlich Quatsch, denn es soll dort ja nur „2.5819666840232“ zu
> sehen sein.
>
>
>
> Beispiel Stromzähler:
>
> Der Push Server liefert via websockets
> "{"version":"0.3","data":{"uuid":"xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx","tuples":[[1537387482345,479.24790029688,1]]}}"
>
> Da hätte ich jetzt gerne folgendes Format:
>
> Gesendet werden soll an den Topic
> „Haus/Strom/WärmepumpeHaupttarif/Timestamp“
>
> Der Inhalt der Nachricht soll „1537387482345“ sein.
>
> Gesendet werden soll an den Topic „Haus/Strom/WärmepumpeHaupttarif/Value“
>
> Der Inhalt der Nachricht soll „479.24790029688“ sein.
>
>
>
> Beispiel Temperatur:
>
> Der Push Server liefert via websockets
>  "{"version":"0.3","data":{"uuid":"xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx","tuples":[[1537387448162,22.187,1]]}}"
>
> Da hätte ich jetzt gerne folgendes Format:
>
> Gesendet werden soll an den Topic „Haus/Temperatur/T01Aussen/Timestamp“
>
> Der Inhalt der Nachricht soll „1537387448162“ sein.
>
> Gesendet werden soll an den Topic „Haus/Temperatur/T01Aussen/Value“
>
> Der Inhalt der Nachricht soll „22.187“ sein.
>
>
>
> Beispiel Wasser:
>
> Der Push Server liefert via websockets
>  "{"version":"0.3","data":{"uuid":"xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx","tuples":[[1537387660470,585.1755526658,1]]}}"
>
> Da hätte ich jetzt gerne folgendes Format:
>
> Gesendet werden soll an den Topic „Haus/Wasser/Timestamp“
>
> Der Inhalt der Nachricht soll „1537387660470“ sein.
>
> Gesendet werden soll an den Topic „Haus/Wasserverbrauch/Value“
>
> Der Inhalt der Nachricht soll „585.1755526658“ sein.
>
>
>
> Wie kriege ich jetzt den Node-RED Flow so zusammengebaut, dass er die
> Daten der einzelnen UUIDs auf die entsprechenden MQTT Topics verteilt?
>
>
>
> Lieben Dank und liebe Grüße,
>
> Chris
>
>
>
>
>
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20180920/bbe30cb6/attachment-0001.html>


More information about the volkszaehler-users mailing list