[vz-users] vzlogger: Fehler in der Aggregation

Maik Weidemann m+vz at weidemann.online
Sat Dec 14 00:19:03 CET 2019


Hallo Daniel,

vielen Dank für deine Antwort.

> Was mich etwas stutzig macht (von github):
>> aggtime = 120
>> aggfixedinterval = true
>> aggmode = max
> Klinkt bissl als hättest du alle Kanäle so konfiguriert. Aggmode muss
> aber zum Kanaltyp passen. Womöglich hast du Leistungssprünge weil du
> Leistungkanäle mit "max" aggregierst statt "avg".
Nein, das passt schon. Das max verwende ich nur bei den Channels, wo die
Zählerstände ausgelesen werden. Ich habe mal die Konfig mit angehängt.

>> [Dec 11 17:02:08][chn1] compare: 1576079880000 1576080120000
> Hm. Das sind keine 2 Minuten sondern 4.
>
Ja, das ist ja eigentlich genau mein Problem, dass manchmal eine
Übertragung ausgesetzt wird, weil der vzlogger der Meinung ist, dass
keine Daten vorhanden sind.

Häufig macht er die 2 Minuten intervalle.
Aber ab und zu wird ein Übertragungsintervall übersprungen, obwohl ja
neue Zählerstände angekommen sind.
Ich habe diese Stellen mal mit ??? markiert.
[Dec 11 16:23:50][chn1] JSON request body: [ [ 1576077720000,
409596.20000000001 ] ]
[Dec 11 16:25:51][chn1] JSON request body: [ [ 1576077840000,
409616.20000000001 ] ]
[Dec 11 16:27:50][chn1] JSON request body: [ [ 1576077960000,
409635.90000000002 ] ]
[Dec 11 16:29:50][chn1] JSON request body: [ [ 1576078080000,
409655.60000000003 ] ]
[Dec 11 16:31:50][chn1] JSON request body: [ [ 1576078200000,
409674.40000000002 ] ]
[Dec 11 16:33:51][chn1] JSON request body: [ [ 1576078320000,
409693.60000000003 ] ]
[Dec 11 16:35:50][chn1] JSON request body: [ [ 1576078440000,
409711.80000000005 ] ]
[Dec 11 16:37:50][chn1] JSON request body: [ [ 1576078560000,
409728.60000000003 ] ]
[Dec 11 16:39:50][chn1] JSON request body: [ [ 1576078680000,
409745.30000000005 ] ]
[Dec 11 16:41:50][chn1] JSON request body: [ [ 1576078800000,
409764.40000000002 ] ]
???
[Dec 11 16:44:10][chn1] JSON request body: [ [ 1576079040000,
409788.70000000001 ] ]
[Dec 11 16:45:50][chn1] JSON request body is null. Nothing to send now.
[Dec 11 16:47:50][chn1] JSON request body: [ [ 1576079160000, 409827.5 ] ]
[Dec 11 16:49:51][chn1] JSON request body: [ [ 1576079280000,
409850.20000000001 ] ]
[Dec 11 16:51:50][chn1] JSON request body: [ [ 1576079400000,
409875.80000000005 ] ]
[Dec 11 16:53:50][chn1] JSON request body: [ [ 1576079520000,
409902.20000000001 ] ]
[Dec 11 16:57:50][chn1] JSON request body is null. Nothing to send now.
???
[Dec 11 16:59:50][chn1] JSON request body: [ [ 1576079880000,
409979.70000000001 ] ]
???
[Dec 11 17:02:08][chn1] JSON request body: [ [ 1576080120000, 410009.5 ] ]
[Dec 11 17:03:50][chn1] JSON request body is null. Nothing to send now.
[Dec 11 17:05:50][chn1] JSON request body: [ [ 1576080240000,
410057.10000000003 ] ]
???
[Dec 11 17:08:09][chn1] JSON request body: [ [ 1576080480000,
410086.90000000002 ] ]


Im Frontend sieht es dann so aus:


Die orangene Linie ist die Leistung vom Zähler. Die rote Linie, die
Leistung, die sich aus den Zählerständen ergibt. Wenn die Zählerstände
alle 2 Min. an übertragen werden, dann approximiert die rote Linie sich
der Orangen. Wenn aber ein Intervall fehlt, dann kommen diese Türme
zustande. Mittags, wenn von der PV Anlage hohe Ströme kommen, dass sieht
das unschön aus...

Bleibt die Frage, warum klappt das nicht mit alle 2 Minuten einen Wert?
Vom Zähler kommen genügend oft die Werte.

Hast du eine Idee?

Gruß
Maik





Am 13.12.19 um 09:33 schrieb Daniel Lauckner:
> Hallo,
>
>
> mit deinem Logfile kann ich nicht viel anfangen, das ist schlicht und
> ergreifend zu groß.
>
> am Donnerstag, 12. Dezember 2019 um 23:55 hat Maik Weidemann geschrieben:
>> [Dec 11 17:02:08][chn1] compare: 1576079880000 1576080120000
> Hm. Das sind keine 2 Minuten sondern 4.
>
>> [Dec 11 17:03:50][chn1] compare: 1576080120000 1576080120000
> Klar, wenn man identische Zeitstempel vergleicht gibts auch keine
> Unterschiede. Wobei der letzte Vergleich noch keine 2 Minuten her ist,
> von daher bin ich geneigt zu sagen: ist okay.
>
>> [Dec 11 17:03:50][chn1] ==> number of tuples: 1[Dec 11 17:03:50][MAX]  550754.000000 @ 1576080131516
> Fehlende Zeilenumbrüche sind mir auch schon aufgefallen.
> Bin aber auch der Meinung das die Reihenfolge im Log keinen
> Zusammenhang wiederspiegelt. Also nur weil ein [MAX] nach [chn1] kommt
> heißt das nach meinem Verständnis nicht das die zusammen gehören.
>
> Kann man aber auch aus den Timestmaps ablesen.
> Die 550754 sind von 17:02:11. Kein Zusammenhang zu den Timestamps von
> [chn1] wo der aktuelle Zählerstand von 17:03:50 und der letzte
> gesendete von 17:02:08 stammt.
>
>
> Was mich etwas stutzig macht (von github):
>> aggtime = 120
>> aggfixedinterval = true
>> aggmode = max
> Klinkt bissl als hättest du alle Kanäle so konfiguriert. Aggmode muss
> aber zum Kanaltyp passen. Womöglich hast du Leistungssprünge weil du
> Leistungkanäle mit "max" aggregierst statt "avg".
>
>
> mfg Daniel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20191214/80097076/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: alfjgkjblbocndca.png
Type: image/png
Size: 39690 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20191214/80097076/attachment-0001.png>
-------------- next part --------------
{
"retry" : 60, /* how long to sleep between failed requests, in seconds */
"daemon": true, /* run periodically */
"verbosity" : 15, /* between 0 and 15 */
//"log" : "/var/log/vzlogger.log", /* path to logfile, optional */
"log" : "/net/dagobert/log/vzlogger.log", /* path to logfile, optional */

"local" : {
"enabled" : true, /* should we start the local HTTPd for serving live readings? */
"port" : 8086, /* the TCP port for the local HTTPd */
"index" : true, /* should we provide a index listing of available channels if no UUID was requested? */
"timeout" : 30, /* timeout for long polling comet requests, 0 disables comet, in seconds */
"buffer" : 300 /* how long to buffer readings for the local interface, in seconds */
},

"meters" : [{
	// Netz-Zähler
    "enabled" : true, /* disabled meters will be ignored */
    "protocol" : "sml", /* see 'vzlogger -h' for list of available prot$ */
    "use_local_time": true,
    "device" : "/dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_015AE018-if00-port0",
    "aggtime": 120,
    "aggfixedinterval": true,
    "channels": [{
	"api": "volkszaehler",
         "uuid" : "38d3d680-5a14-11e8-af69-e70a9475f5fe",
         "middleware" : "http://vz.dagobert.home/middleware.php",
         "identifier" : "1-0:16.7.0", /* Leistung */
      }, {
	"api": "volkszaehler",
        "uuid" : "dd683f90-0059-11ea-bea4-fb19fd70ffa3",
        "middleware" : "http://vz.dagobert.home/middleware.php",
        "duplicates": 600,          // duplicate handling, default 0 (send duplicate values)
                                     //   >0: send duplicate values only each <duplicates> seconds
                                     // Activate only for abs. counter values (Zaehlerstaende) and not for impulses
        "aggmode": "max",
        "identifier" : "1-0:1.8.2" /* Wirkarbeit Bezug +A */
      }, {
	"api": "volkszaehler",        
	"uuid" : "77a0d310-005a-11ea-b04b-95f96964a27c",
        "middleware" : "http://vz.dagobert.home/middleware.php",
        "duplicates": 600,          // duplicate handling, default 0 (send duplicate values)
                                     //   >0: send duplicate values only each <duplicates> seconds
                                     // Activate only for abs. counter values (Zaehlerstaende) and not for impulses
         "aggmode": "max",
         "identifier" : "1-0:2.8.0" /* Wirkarbeit Lieferung -A */
         },
	{
		"api": "volkszaehler",
		"uuid" : "e0446b50-0a46-11ea-8be7-459bc4c3777c",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:14.7.0", /* Frequenz */
	},
	{
		"api": "volkszaehler",
		"uuid" : "704e7da0-0a48-11ea-91d4-cf6274a250eb",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:32.7.0", /* Spannung L1 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "802697f0-0a48-11ea-931f-d336e8a38b41",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:52.7.0", /* Spannung L2 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "9417fd90-0a48-11ea-aa9c-bf9836906fb6",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:72.7.0", /* Spannung L3 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "16ed5530-0a48-11ea-927f-a3d98f9396e1",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:31.7.0", /* Strom L1 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "3def3ce0-0a48-11ea-884d-1d8b1048c812",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:51.7.0", /* Strom L2 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "50d59f80-0a48-11ea-9992-d74b05f1177f",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:71.7.0", /* Strom L3 */
	}]
      }, {
	// PV-Zähler
         "enabled" : true,
         "protocol" : "sml",
         "device" : "/dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_015AD1E6-if00-port0",
         "use_local_time": true,
	 "aggtime": 120,
	 "aggfixedinterval": true,
         "channels" :[{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:16.7.0", /* Leistung Erzeugung */
	}, 
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"duplicates": 600,          // duplicate handling, default 0 (send duplicate values)
                                     //   >0: send duplicate values only each <duplicates> seconds
                                     // Activate only for abs. counter values (Zaehlerstaende) and not for impulses
		"aggmode": "max",
		"identifier" : "1-0:1.8.2" /* Wirkarbeit Erzeugung -A */
          }, 
	{
 		"api": "null",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"identifier" : "1-0:2.8.0" /* Wirkarbeit Verbrauch +A */
          },
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:14.7.0", /* Frequenz */
	},
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:32.7.0", /* Spannung L1 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:52.7.0", /* Spannung L2 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:72.7.0", /* Spannung L3 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:31.7.0", /* Strom L1 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:51.7.0", /* Strom L2 */
	},
	{
		"api": "volkszaehler",
		"uuid" : "xxxx-xxxx-xxxx-xxxx-xxxxxxx",
		"middleware" : "http://vz.dagobert.home/middleware.php",
		"identifier" : "1-0:71.7.0", /* Strom L3 */
	} 
	]
      }
    
]}


More information about the volkszaehler-users mailing list