<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hallo zusammen,<br>
    <br>
    ich habe meine ersten Schritte mit volkszaehler gemacht und
    erfolgreich einen IR - Lesekopf an einem Stromzähler in Betrieb
    genommen.<br>
    <br>
    Aufgrund eines Kontaktproblems kam es für ca. 4 Minuten zu einer
    Unterbrechung der Datenaufnahme.<br>
    <br>
    Im Frontend hat sich das dann als hoher Spike (23.3kW) im Kanal für
    die Leistung bemerkbar gemacht.<br>
    Ich habe den fehlerhaften Wert in der Datenbank gepatched, um eine
    vernünftige Skalierung im Frontend zu erhalten.<br>
    <br>
    In der Stundenskalierung der Zeitachse erhalte ich aus das
    gewünschte Ergebnis (Anlage: volkszaehler.org-web
    frontend-zoom_in.jpg), in der Tagesskalierung bleibt der hohe Peak
    bestehen und macht die Skalierung kaputt. Das gleiche passiert, wenn
    ich in der Stundenskalierung herauszoome (Anlage:
    volkszaehler.org-web frontend-zoom_out.jpg).<br>
    <br>
    Ich vermute, dass eine Umrechung der Daten auf das gröbere
    Zeitraster der Datenpunkte (13sec) des Zoom-out erfolgt und dabei
    der Peak künstlich erzeugt wird. Allerdings ist mir unklar welches
    der naheliegenden Interpolations- oder Mittelungsverfahren zu so
    einer starker Erhöhung führen kann (Ist: 450W, Frontend: Ansteigend
    von 400W auf 23.3 kW). <br>
    Generell weichen die Daten in der Zoum-out Darstellung mitunter bis
    zu 20% von der Werten der Datenbank ab, selbst wenn der wirkliche
    Wert ins Darstellungszeitraster passt.<br>
    <br>
    Hat jemand eine Idee? Kann mir jemand helfen?<br>
    <br>
    Folgende Daten mit Firefox und RESTclient PlugIn von der Middleware
    abgerufen (csv format) - stimmen mit den Datenbankwerten überein:<br>
    <br>
    .....<br>
    <br>
    2022-05-05 10:18:02;497;1<br>
    2022-05-05 10:18:03;494;1<br>
    2022-05-05 10:18:05;496;1<br>
    2022-05-05 10:18:06;490;1<br>
    2022-05-05 10:18:08;489;1<br>
    2022-05-05 10:18:09;493;1<br>
    2022-05-05 10:18:11;494;1<br>
    2022-05-05 10:18:12;491;1<br>
    2022-05-05 10:18:14;487;1<br>
    2022-05-05 10:18:15;489;1<br>
    2022-05-05 10:18:17;489;1<br>
    2022-05-05 10:18:18;490;1<br>
    2022-05-05 10:18:19;491;1<br>
    2022-05-05 10:18:21;490;1<br>
    2022-05-05 10:18:22;491;1<br>
    2022-05-05 10:18:24;493;1<br>
    2022-05-05 10:18:25;490;1<br>
    2022-05-05 10:18:27;488;1<br>
    2022-05-05 10:18:28;491;1<br>
    2022-05-05 10:18:30;490;1<br>
    2022-05-05 10:18:31;487;1<br>
    2022-05-05 10:18:33;503;1<br>
    2022-05-05 10:18:34;487;1<br>
    2022-05-05 10:18:36;487;1<br>
    2022-05-05 10:18:37;493;1<br>
    2022-05-05 10:18:38;496;1<br>
    2022-05-05 10:18:40;491;1<br>
    2022-05-05 10:18:41;491;1<br>
    2022-05-05 10:18:43;497;1<br>
    2022-05-05 10:18:44;495;1<br>
    2022-05-05 10:18:46;499;1<br>
    2022-05-05 10:18:47;490;1<br>
    2022-05-05 10:18:49;494;1<br>
    2022-05-05 10:18:50;491;1<br>
    2022-05-05 10:18:52;494;1<br>
    2022-05-05 10:18:53;491;1<br>
    2022-05-05 10:18:55;494;1<br>
    2022-05-05 10:18:56;503;1<br>
    2022-05-05 10:18:57;494;1<br>
    2022-05-05 10:18:59;493;1<br>
    2022-05-05 10:19:00;491;1<br>
    2022-05-05 10:19:02;496;1<br>
    2022-05-05 10:19:03;490;1<br>
    2022-05-05 10:19:05;495;1<br>
    2022-05-05 10:19:06;494;1<br>
    2022-05-05 10:19:08;490;1<br>
    2022-05-05 10:19:09;495;1<br>
    2022-05-05 10:19:11;490;1<br>
    2022-05-05 10:19:12;493;1  <---------------<br>
    2022-05-05 10:23:20;450;1 Datenlücke. Zeitstempel und Wert in der
    Datenbank gepatched, um Sprung zu vermeiden.<br>
    2022-05-05 10:27:07;410;1 <----------------<br>
    2022-05-05 10:27:15;370;1<br>
    2022-05-05 10:27:16;329;1<br>
    2022-05-05 10:27:17;322;1<br>
    2022-05-05 10:27:28;330;1<br>
    2022-05-05 10:27:29;322;1<br>
    2022-05-05 10:27:30;321;1<br>
    2022-05-05 10:27:31;324;1<br>
    2022-05-05 10:27:32;324;1<br>
    2022-05-05 10:27:33;323;1<br>
    2022-05-05 10:27:35;333;1<br>
    2022-05-05 10:27:36;322;1<br>
    2022-05-05 10:27:37;320;1<br>
    2022-05-05 10:27:38;323;1<br>
    2022-05-05 10:27:39;322;1<br>
    2022-05-05 10:27:40;322;1<br>
    2022-05-05 10:27:41;321;1<br>
    2022-05-05 10:27:42;321;1<br>
    2022-05-05 10:27:43;322;1<br>
    2022-05-05 10:27:45;323;1<br>
    2022-05-05 10:27:46;322;1<br>
    2022-05-05 10:27:47;321;1<br>
    2022-05-05 10:27:50;342;1<br>
    2022-05-05 10:27:51;321;1<br>
    2022-05-05 10:27:52;320;1<br>
    2022-05-05 10:27:53;325;1<br>
    2022-05-05 10:27:55;320;1<br>
    2022-05-05 10:27:56;322;1<br>
    2022-05-05 10:27:57;324;1<br>
    2022-05-05 10:27:58;319;1<br>
    2022-05-05 10:27:59;323;1<br>
    2022-05-05 10:28:00;323;1<br>
    .....<br>
    <br>
    Verwendete Version: Image 2022-04-20-volkszaehler.img für Raspi 4B,
    vzlogger Version 0.8.1<br>
    <br>
    vzlogger.conf:<br>
    <br>
    {<br>
        // General settings<br>
        "verbosity": 5,         // log verbosity (0=log_alert,
    1=log_error, 3=log_warning, 5=log_info, 10=log_debug, 15=log_finest)<br>
        "log": "/var/log/vzlogger/vzlogger.log", // log file, optional<br>
        "retry": 30,            // http retry delay in seconds<br>
    <br>
        // Build-in HTTP server<br>
        "local": {<br>
            "enabled": false,   // enable local HTTPd for serving live
    readings<br>
            "port": 8080,       // TCP port for local HTTPd<br>
            "index": true,      // provide index listing of available
    channels if no UUID was requested<br>
            "timeout": 30,      // timeout for long polling comet
    requests in seconds (0 disables comet)<br>
            "buffer": -1        // HTTPd buffer configuration for
    serving readings, default -1<br>
                                //   >0: number of seconds of
    readings to serve<br>
                                //   <0: number of tuples to server
    per channel (e.g. -3 will serve 3 tuples)<br>
        },<br>
    <br>
        // realtime notification settings<br>
    //    "push": [<br>
    //        {<br>
    //            "url": <a class="moz-txt-link-rfc2396E" href="http://127.0.0.1:5582">"http://127.0.0.1:5582"</a>  // notification
    destination, e.g. frontend push-server<br>
    //        }<br>
    //    ],<br>
    <br>
    <br>
    <br>
        // Meter configuration<br>
        "meters": [<br>
            {<br>
                // S0 meter - gas<br>
    <br>
                "enabled": false,               // disabled meters will
    be ignored (default)<br>
                "allowskip": false,                  // errors when
    opening meter may be ignored if enabled<br>
                "aggtime": -1,                 // aggregate meter
    readings and send middleware update after <aggtime> seconds<br>
                "aggfixedinterval": true,       // round timestamps to
    nearest <aggtime> before sending to middleware<br>
                "protocol": "s0",               // meter protocol, see
    'vzlogger -h' for full list<br>
    //            "device": "/dev/ttyAMA0",       // meter device<br>
                "gpio": 18,                 // verwende raspi gpio18
    (pin 12)<br>
                "gpio_dir": -1,<br>
                "configureGPIO": true,<br>
                "resolution": 1,<br>
                "send_zero": false,<br>
                "debounce_delay": 30,<br>
                "nonblocking_delay": 10000,<br>
    <br>
    <br>
                "channel": {<br>
                    "identifier": "Impulse",    // s0 meter knows
    "Impulse" and "Power"<br>
                    "uuid": "712d3800-c8a4-11ec-ad5c-eb32d8bd8683",<br>
                    "api": "volkszaehler",      // middleware api,
    default volkszaehler<br>
                    "middleware": <a class="moz-txt-link-rfc2396E" href="http://localhost/middleware.php">"http://localhost/middleware.php"</a>,<br>
                    "aggmode": "SUM"            // aggregation mode:
    aggregate meter readings during <aggtime> interval<br>
                                                //   "SUM": add readings
    (use for s0 impulses)<br>
                                                //   "MAX": maximum
    value (use for meters sending absolute readings)<br>
                                                //   "AVG": average
    value (use for meters sending current usage)<br>
                }<br>
            },<br>
            {<br>
                // Example SML meter<br>
    <br>
                "enabled": true,               // disabled meters will
    be ignored (default)<br>
                "allowskip": false,                  // errors when
    opening meter may be ignored if enabled<br>
                "protocol": "sml",              // meter protocol, see
    'vzlogger -h' for full list<br>
                "interval": -1,<br>
                "pullseq": "",<br>
                "parity": "8N1",<br>
                "baudrate": 9600,<br>
                "use_local_time": false,<br>
                "device": "/dev/ttyAMA0",       // meter device<br>
    <br>
                "aggtime": 1,                  // aggregate meter
    readings and send middleware update after <aggtime> seconds<br>
                "aggfixedinterval": true,       // round timestamps to
    nearest <aggtime> before sending to middleware<br>
    <br>
    <br>
    <br>
                "channels": [{<br>
                    "api": "volkszaehler",      // middleware api,
    default volkszaehler<br>
                    "uuid": "f46df0d0-cbbd-11ec-a796-170eaa4275d9",<br>
                    "middleware": <a class="moz-txt-link-rfc2396E" href="http://localhost/middleware.php">"http://localhost/middleware.php"</a>,<br>
                    "identifier": "1-0:16.7.0",    // OBIS identifier
    Wirkleistung in W<br>
    //                "duplicates": 10,            // duplicate
    handling, default 0 (send duplicate values)<br>
                                                //   >0: send
    duplicate values only each <duplicates> seconds<br>
                                                // Activate only for
    abs. counter values (Zaehlerstaende) and not for impulses<br>
                    "aggmode": "AVG"            // aggregation mode:
    aggregate meter readings during <aggtime> interval<br>
                                                //   "SUM": add readings
    (use for s0 impulses)<br>
                                                //   "MAX": maximum
    value (use for meters sending absolute readings)<br>
                                                //   "AVG": average
    value (use for meters sending current usage)<br>
    <br>
                }, {<br>
                    "api": "volkszaehler",      // middleware api,
    default volkszaehler<br>
                    "uuid": "82eee1e0-cbbe-11ec-aa77-99a6a520661b",<br>
                    "middleware": <a class="moz-txt-link-rfc2396E" href="http://localhost/middleware.php">"http://localhost/middleware.php"</a>,<br>
                    "identifier": "1-0:1.8.0",   // OBIS identifier
    Wirkenergie in Wh<br>
                    "aggmode": "MAX"            // aggregation mode:
    aggregate meter readings during <aggtime> interval<br>
                                                //   "SUM": add readings
    (use for s0 impulses)<br>
                                                //   "MAX": maximum
    value (use for meters sending absolute readings)<br>
                                                //   "AVG": average
    value (use for meters sending current usage)<br>
    <br>
                }]<br>
            }<br>
        ]<br>
    }<br>
    <br>
    Gruss Manfred<br>
  </body>
</html>