[vz-users] vzlogger-Problem mit sml-Protokoll und HTTP-Server

Andreas Goetz cpuidle at gmail.com
Sun Nov 3 13:16:18 CET 2019


Laut Issue werden “duplicates” für “sml” über “httpd” ausgegeben. Ich verstehe das Problem nicht so ganz. Da der httpd ja aktiv abgeholt werden muss- was spricht a) dagegen die Duplikate dort anzuzeigen und b) was hat das Ganze mit sml zu tun?

Viele Grüße, Andreas


> On 3. Nov 2019, at 10:14, Winfried Peters <winfried.peters at gmail.com> wrote:
> 
> Ich werde ein Issue aufmachen - und wenn ich schon mal dabei bin, auch eins für den Parameter "duplicates", der auch nicht funktioniert.
> 
> Viele Grüße
> 
> Am Sa., 2. Nov. 2019 um 22:52 Uhr schrieb Andreas Götz <cpuidle at gmail.com <mailto:cpuidle at gmail.com>>:
> Machst Du ein Issue auf? Das sollte so nicht sein...
> 
> Viele Grüße,
> Andreas
> 
>> Am 02.11.2019 um 21:11 schrieb Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>>:
>> 
>> 
>> Das war's. Mit voll qualifiziertem Identifier "1-0:1.8.0" funktioniert es, mit "1.8.0" oder den Alias "Counter" nicht. ts=0 war nicht die Ursache. Es geht auch ohne Timestamp.
>> 
>> Anscheinend sind die Protokolle D0 und sml für HTTPd etwas unterschiedlich implementiert: Bei "D0" funktioniert "1.8.0", bei sml nicht. Ebenso funktionieren bei sml die Aliase nicht, obwohl das die vzlogger-Hilfe sagt und in den Beispiel-Konfiguration auch angegeben ist.
>> 
>> Nochmal vielen Dank für den entscheidenden Tipp.
>> 
>> Viele Grüße
>> 
>> Am Sa., 2. Nov. 2019 um 17:52 Uhr schrieb Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com>>:
>> Hast du's (nochmal) mit vollständigen Identifiern (z.B. "1-0:1.8.0") versucht? Ansonsten sieht die Config für mich gut aus.
>> 
>> Grüße
>> Frank
>> 
>> Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>> schrieb am Sa., 2. Nov. 2019, 17:26:
>> So, ich bin jetzt ein paar Schritte weiter gekommen, aber immer noch ohne Erfolg. Die von vzlogger geparsten sml-Daten werden immer noch nicht über den HTTPd-Server ausgegeben.
>> 
>> Ich habe über die PIN meines DWS74-Zählers auf den erweiterten Datensatz umgestellt.
>> Ich habe vzlogger mit der aktuellen Version 0.8.0 compiliert, installiert, für meinen sml-Zähler konfiguriert und gestartet.
>> Die sml-Daten meines Zählers kommen in vzlogger an. Im verbose 15-Log sehe ich die geparsten Werte des Zählers als Readings, jetzt auch mit Timestamp ts, der über den Parameter "use_local_time" geliefert wird.
>> Mir fehlen im Log  die Hinweise, dass für jeden der Channel ein Logging-Thread gestartet wurde (Start logging thread for null-api. Running as daemon: yes) und die Readings auf die Queue gestellt wurden (Adding reading to queue..).
>> Sonst ist das Log aus meiner Sicht unauffällig.
>> 
>> So sehe ich im Browser die Daten des HTTPD-Servers:
>>  { "version": "0.8.0", "generator": "vzlogger", "data": [ { "uuid": "180a", "last": 0, "interval": -1, "protocol": "sml" }, { "uuid": "180b", "last": 0, "interval": -1, "protocol": "sml" }, { "uuid": "180c", "last": 0, "interval": -1, "protocol": "sml" } ] }
>> Die Readings müssten dort für jeden Channel als Tupel mit Timestamp und Value erscheinen. Es sind aber keine Tupel da.
>> 
>> Hier der Logauszug:
>> [Nov 02 15:55:39][main] vzlogger v0.8.0 based on heads/master-0-g3c4ef603cb from Sun, 18 Aug 2019 09:36:53 +0200 started.
>> [Nov 02 15:55:39][mtr0] Creating new meter with protocol sml.
>> [Nov 02 15:55:39][mtr0] Meter configured, enabled.
>> [Nov 02 15:55:39]       New meter initialized (protocol=sml)
>> [Nov 02 15:55:39]       Configure channel.
>> [Nov 02 15:55:39][chn0] New channel initialized (uuid=... api=null id=1.8.0)
>> [Nov 02 15:55:39]       Configure channel.
>> [Nov 02 15:55:39][chn1] New channel initialized (uuid=... api=null id=1.25)
>> [Nov 02 15:55:39]       Configure channel.
>> [Nov 02 15:55:39][chn2] New channel initialized (uuid=... api=null id=2.8.0)
>> [Nov 02 15:55:39]       Have 1 meters.
>> [Nov 02 15:55:39][main] log level is 15
>> [Nov 02 15:55:39][main] daemon=1, local=1
>> [Nov 02 15:55:39]       Daemonize process...
>> [Nov 02 15:55:39]       Opened logfile /var/log/vzlogger.log
>> [Nov 02 15:55:39][push] No pushDataServer defined.
>> [Nov 02 15:55:39][]     ===> Start meters
>> [Nov 02 15:55:39][mtr0] Meter connection established
>> [Nov 02 15:55:39][mtr0] Meter thread started
>> [Nov 02 15:55:39][mtr0] Meter is opened. Starting channels.
>> [Nov 02 15:55:39][chn0] Logging thread started
>> [Nov 02 15:55:39][chn1] Logging thread started
>> [Nov 02 15:55:39][chn2] Logging thread started
>> [Nov 02 15:55:39][http] Starting local interface HTTPd on port 8080
>> [Nov 02 15:55:39][]     Startup done.
>> [Nov 02 15:55:39][chn1] Start logging thread for null-api. Running as daemon: yes
>> [Nov 02 15:55:39][chn1] Using null api- meter data available via local httpd if enabled.
>> [Nov 02 15:55:39][chn2] Start logging thread for null-api. Running as daemon: yes
>> [Nov 02 15:55:39][chn2] Using null api- meter data available via local httpd if enabled.
>> [Nov 02 15:55:39][mtr0] Number of readers: 32
>> [Nov 02 15:55:39][mtr0] Config.daemon: 1
>> [Nov 02 15:55:39][mtr0] Config.local: 1
>> [Nov 02 15:55:39][chn0] Start logging thread for null-api. Running as daemon: yes
>> [Nov 02 15:55:39][chn0] Using null api- meter data available via local httpd if enabled.
>> [Nov 02 15:55:40][mtr0] Got 3 new readings from meter:
>> [Nov 02 15:55:40][mtr0] Reading: id=1-0:1.8.0*255/ObisIdentifier:1-0:1.8.0*255 value=87463.90 ts=1572706540671
>> [Nov 02 15:55:40][mtr0] Reading: id=1-0:2.8.0*255/ObisIdentifier:1-0:2.8.0*255 value=20243.10 ts=1572706540671
>> [Nov 02 15:55:40][mtr0] Reading: id=1-0:16.7.0*255/ObisIdentifier:1-0:16.7.0*255 value=341.01 ts=1572706540671
>> [Nov 02 15:55:41][mtr0] Got 3 new readings from meter:
>> [Nov 02 15:55:41][mtr0] Reading: id=1-0:1.8.0*255/ObisIdentifier:1-0:1.8.0*255 value=87464.00 ts=1572706541683
>> [Nov 02 15:55:41][mtr0] Reading: id=1-0:2.8.0*255/ObisIdentifier:1-0:2.8.0*255 value=20243.10 ts=1572706541683
>> [Nov 02 15:55:41][mtr0] Reading: id=1-0:16.7.0*255/ObisIdentifier:1-0:16.7.0*255 value=343.63 ts=1572706541683
>> [Nov 02 15:55:42][mtr0] Got 3 new readings from meter:
>> [Nov 02 15:55:42][mtr0] Reading: id=1-0:1.8.0*255/ObisIdentifier:1-0:1.8.0*255 value=87464.10 ts=1572706542691
>> [Nov 02 15:55:42][mtr0] Reading: id=1-0:2.8.0*255/ObisIdentifier:1-0:2.8.0*255 value=20243.10 ts=1572706542691
>> [Nov 02 15:55:42][mtr0] Reading: id=1-0:16.7.0*255/ObisIdentifier:1-0:16.7.0*255 value=337.48 ts=1572706542691
>> ....
>> 
>> Hier meine vzlogger-sml-conf:
>> // vzlogger.conf with sml (Strom)
>> {
>>   "daemon": true,
>>   "verbosity": 15,
>>   "log": "/var/log/vzlogger.log",
>>   "retry": 30,                        // http retry delay in seconds
>>   // Build-in HTTP server
>>   "local": {
>>     "enabled": true,
>>     "port": 8080,
>>     "index": true,
>>     "timeout": 30,
>>     "buffer": 3600
>>   },
>>   // Meter configuration
>>   "meters": [
>>     // sml meter (Strom)
>>     {
>>       "enabled": true,
>>       "protocol": "sml",
>>       "device": "/dev/ttyUSB0",
>>       "baudrate": 9600,
>>       "parity": "8n1",
>>  "use_local_time": true,
>>       "skip": false,
>>       "channels": [
>>        {
>>           "uuid": "180a",
>>           "identifier": "counter",         // 1.8.1 Zaehlerstand Wirkleistung 1-0:1.8.255*255
>>           "api": "null",
>>           "duplicates": 0
>>        },
>>        {
>>           "uuid": "180b",
>>           "identifier": "1.25",            // 1.25 Momentanleistung
>>           "api": "null",
>>           "duplicates": 0
>>        },
>>        {
>>           "uuid": "180c",
>>           "identifier": "counter-out",     // 2.8.1 Zaehlerstand Lieferg. 1-0:2.8.255*255
>>           "api": "null",
>>           "duplicates": 0
>>        }
>>       ]
>>     }
>>   ]
>> }
>> 
>> Hat jemand noch eine Idee, was falsch sein könnte?
>> 
>> Viele Grüße
>> 
>> 
>> Am Mi., 30. Okt. 2019 um 14:43 Uhr schrieb Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>>:
>> Die PIN wird mir vom Netzbetreiber zugeschickt. Dann hoffe ich mal, dass mit der hohen Auflösung der Timestamp mitkommt.
>> 
>> Viele Grüße
>> 
>> Am Mi., 30. Okt. 2019 um 11:32 Uhr schrieb Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com>>:
>> Aus Zählerständen in ganzen kWh lässt sich die Leistung auch nicht sinnvoll ableiten, deswegen würde ich mich zuallererst mal um die Beschaffung der PIN und die Freischaltung der höheren Auflösung kümmern.
>> 
>> DZG ist glaub ich schonmal mit einer problematischen SML-Implementierung aufgefallen.
>> 
>> Grüße
>> Frank
>> 
>> Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>> schrieb am Mi., 30. Okt. 2019, 10:44:
>> Es ist ein Zähler von DZG vom Typ DWS7412.2T. Er pusht periodisch jede Sekunde ein Telegramm in SML 1.05-SML-frame Version 1, 9600 Bd, 8-N-1.
>> Über die DZG Software "DZG Meter View" kann ich die Daten auslesen. Das Programm kann auch die Leistungen über die Zeit in einem Diagramm darstellen. Das Diagramm bleibt aber leer. Was zu der Vermutung führt, dass keine Zeitstempel übertragen werden, so wie es vzlogger ja auch ausweist. Ich habe eine Anfrage an DZG gestellt, ob das ein Fehler in der verbauten Firmware ist.
>> 
>> Viele Grüße
>> 
>> 
>> Am Di., 29. Okt. 2019 um 23:02 Uhr schrieb Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com>>:
>> Von welchem Zählertyp reden wir eigentlich?
>> 
>> Grüße
>> Frank
>> 
>> Am Di., 29. Okt. 2019 um 21:17 Uhr schrieb Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>>:
>> Ich habe Daniels Konfigurationsvorschläge (identfier 1.8.0 und 2.8.0 ) getestet , mit dem gleichen (negativen) Ergebnis.
>> count und count-out sind übrigens von vzlogger unterstützte OBIS-Aliase, die funktionieren (siehe vzlogger -h).
>> use_local_time kann ich leider in meiner alten vzlogger-Version nicht nutzen.
>> Konfigurationsfehler sehe ich bisher nicht und meine These, bei ts=0 keine Werte-Tupelübergabe an HTTPd, hat bisher auch noch keiner widerlegt.
>> 
>> Viele Grüße
>> 
>> Am Di., 29. Okt. 2019 um 20:41 Uhr schrieb Stefan Bauer <spam at stefan-bauer.net <mailto:spam at stefan-bauer.net>>:
>> Nein, am Timestamp Wirtes nich liegen, sondern an der falschen Konfiguration, wie Daniel schon in seinem ersten Post geschrieben hat...
>> 
>> Stefan
>> 
>> Von meinem iPad gesendet
>> 
>>> Am 29.10.2019 um 20:39 schrieb Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>>:
>>> 
>>> 
>>> Ich brauch den Timestamp nicht, aber vielleicht HTTPd. Mein Problem ist, dass keine SML-Werte-Tupel an HTTPd übergeben werden und ich sie demnach nicht abfragen kann.
>>> Ich stelle nur Vermutungen über mögliche Ursachen an. Mir fällt im Log auf, dass Werte mit Timestamp an HTTPd übergeben werden, Werte mit ts=0 nicht.
>>> Also könnte der fehlende Timestamp eine Ursache sein, die ich leider nicht mit dem use_local_time überprüfen kann.
>>> 
>>> Viele Grüße
>>> 
>>> Am Di., 29. Okt. 2019 um 19:57 Uhr schrieb Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com>>:
>>> Brauchst du den Timestamp denn unbedingt, wenn du die Daten eh nur vom httpd abholst?
>>> 
>>> Am Di., 29. Okt. 2019 um 19:37 Uhr schrieb Winfried Peters <winfried.peters at gmail.com <mailto:winfried.peters at gmail.com>>:
>>> Ojeh, gerade das wollte ich mir nicht antun. Ich hatte vor einigen Monaten schon mal einen Anlauf gemacht, ein Cross-Compile für Udo's YPORT+-Logger durchzuführen. Habe den Versuch aber aufgegeben (es ist mir nicht gelungen Dependencies, z.B. zu libsml, aufzulösen). Udo hatte mir vor ein paar Jahren schon mal mit einem neuen Image aus der Patsche geholfen. Ich hatte Udo angeschrieben. Aber er scheint nicht mehr aktiv zu sein.
>>> 
>>> use_local_time funktioniert nicht, hatte ich gerade getestet. Jetzt weiss ich auch warum.
>>> 
>>> Dann bleiben mir noch zwei Optionen:
>>> - ich schaffe mir einen Rasberry Pi an und bringe dort die aktuelle vzlogger-Version drauf
>>> - oder ich versuche mich nochmal am Cross-Compile.
>>> 
>>> Viele Grüße
>>> 
>>> Am Di., 29. Okt. 2019 um 19:02 Uhr schrieb Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com>>:
>>> Hi,
>>> 
>>> Am Di., 29. Okt. 2019 um 14:06 Uhr schrieb Daniel Lauckner <vz at jahp.de <mailto:vz at jahp.de>>:
>>> Und für SML-Zähler die beim timestamp murksen gibts die Option
>>> "use_local_time"
>>> https://wiki.volkszaehler.org/software/controller/vzlogger/vzlogger_conf_parameter?s[]=use_local_time#sml <https://wiki.volkszaehler.org/software/controller/vzlogger/vzlogger_conf_parameter?s[]=use_local_time#sml>
>>> 
>>> allerdings noch nicht in 0.6.0. Da wirst du neu compilieren müssen.
>>> 
>>> Grüße
>>> Frank

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20191103/2435215c/attachment-0001.html>


More information about the volkszaehler-users mailing list