Hallo Winfried, Dein Request ist also “duplicates” für den httpd zu implemetieren? Oder willst Du sagen dass er *nur* für SML nicht funktioniert?
Viele Grüße, Andreas > On 3. Nov 2019, at 14:40, Winfried Peters <winfried.pet...@gmail.com> wrote: > > Mein vzlogger loggt S0-Impulsdaten von Gas- und Wasser-Zähler und sml-Daten > vom Stromzähler. Ich puffere die Daten für eine Stunde in HTTPd, um > gelegentliche Ausfälle meiner Hostanwendung für die Datenauswertung zu > kompensieren. Das ist für die Impulsdaten besonders wichtig. Der > buffer-Parameter gilt für die gesamte vzlogger-Instanz. Meine PV-Anlage > liefert bei Dunkelheit keine Energie. Ich bekomme sekündlich einen Datensatz > in den Puffer gestellt, bei dem sich in diesem Fall nichts ändert als der > Timestamp. Das macht dann 3.600 Tupels für diesen Channel. Der > HTTPd-JSON-String wird periodisch von meinem Hostprogramm abgefragt. Die > Länge des Puffers wird bei mehreren sml-Werten sehr unhandlich und mein > kleiner Beaglebone-Rechner kommt dann schon ins Schwitzen. Ein > funktionierender Parameter "duplicate" würde die Verarbeitung wesentlich > effizienter machen. > > Ein Workaround wäre wahrscheinlich eine zweite vzlogger-Instanz nur für > sml-Zählerdaten (mit "buffer": -1), die die Daten über einen anderen > HTTPd-Port zur Verfügung stellt. Es ist allerdings nicht so elegant, als wenn > alles in einer Instanz/Config erledigt werden kann. > > Viele Grüße > > Am So., 3. Nov. 2019 um 13:16 Uhr schrieb Andreas Goetz <cpui...@gmail.com > <mailto:cpui...@gmail.com>>: > 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.pet...@gmail.com >> <mailto:winfried.pet...@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 <cpui...@gmail.com >> <mailto:cpui...@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.pet...@gmail.com >>> <mailto:winfried.pet...@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.richte...@gmail.com <mailto:frank.richte...@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.pet...@gmail.com >>> <mailto:winfried.pet...@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.pet...@gmail.com <mailto:winfried.pet...@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.richte...@gmail.com <mailto:frank.richte...@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.pet...@gmail.com >>> <mailto:winfried.pet...@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.richte...@gmail.com <mailto:frank.richte...@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.pet...@gmail.com <mailto:winfried.pet...@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 >>> <s...@stefan-bauer.net <mailto:s...@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.pet...@gmail.com >>>> <mailto:winfried.pet...@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.richte...@gmail.com <mailto:frank.richte...@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.pet...@gmail.com <mailto:winfried.pet...@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.richte...@gmail.com <mailto:frank.richte...@gmail.com>>: >>>> Hi, >>>> >>>> Am Di., 29. Okt. 2019 um 14:06 Uhr schrieb Daniel Lauckner <v...@jahp.de >>>> <mailto:v...@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 >