FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: optimizer am 05 September 2015, 23:53:59

Titel: neues Modul: VZLOGGER
Beitrag von: optimizer am 05 September 2015, 23:53:59
Hallo,

für alle VOLKSZAEHLER (http://www.volkszaehler.org/) Freunde habe ich das Modul VZLOGGER geschrieben, um ohne die VZ-Middleware Daten in FHEM speichern zu können. Da ich keine feine Auflösung brauche, habe ich die SQL-Datenbank für Volkszähler nicht installiert.
Das Linux Programm vzlogger (http://wiki.volkszaehler.org/software/controller/vzlogger) unterstützt mittlerweile sehr viele Stromzähler (d0, SML, S0-Impulse ...) und sendet diese normalerweise an die VZ-Datenbank. vzlogger kann aber auch einen kleinen HTTP-Daemon (local > enabled = true, meters > channels > api = NULL) starten und die Rohdaten dort ausgeben. Diese Funktion nutze ich zum Auslesen des Zählerstands meines L&G d0-Zählers.

Falls Du vzlogger (http://wiki.volkszaehler.org/software/controller/vzlogger) nicht selber compilieren möchtest, kannst du das Programm (für RaspberryPi Debian compiliert) hier  (https://github.com/gitka/vzlogger-compiled) herunterladen.

In der vzlogger.conf anbei sind die Minimalparameter eingetragen. Diese musst Du noch an deinen Zähler anpassen. Beachte folgendes:
In der Konfigurationsdatei vzloggerd0.conf findest du ein Beispiel für einen D0-Zähler, in vzloggerS0.conf für S0-Impulszähler.

Verwendung in FHEM:
Installier vorher den perl JSON-parser:
$ sudo cpan JSON


define <name> VZLOGGER <IP-Adresse von vzlogger> <Port> <Channel / UUID>
z.B.: define Strombezug VZLOGGER localhost 8080 180
oder: define Zaehlerstand VZLOGGER 192.168.x.y 8080 1.8.1

Wähle einen passenden Verarbeitungsmodus mit VZLOGGER_modus.
Das Ergebnis wird in die readings energy und energy_current und energy_avg geschrieben. Wenn Du das statistics Modul verwendest, werden damit sowohl delta als auch MIN/MAX Werte zum einfacheneren loggen erzeugt.
Bei Leistungswerten wird ein virtueller Zählerstand in "energy" aufsummiert. Den Offset/Aufsetzpunkt dazu kannst du mit dem Attribut VZLOGGER_offset bestimmen. Zur Info wird unter Internals das letzte Offset-setzen-Datum angezeigt.

Attribute:

Als userReadings können folgende Hilfsfunktionen verwendet werden:
- Berechnung des (Solar)Eigenverbrauchs als virtueller Zählerstand: SolarEigenverbrauch (Zählerstand Einspeisung,Zählerstand Erzeugung,Zählerstand Eigenverbrauch)
- Berechnung des Gesamtverbrauchs als virtueller Zählerstand: StromGesamtverbrauch (Zählerstand Einspeisung,Zählerstand Erzeugung,Zählerstand Bezug,Zählerstand Gesamtverbrauch)
z.B. attrib userReadings EnergyGesamtverbrauch {StromGesamtverbrauch(ReadingsVal("vz280","energy",0),ReadingsVal("Solaranlage","Total.Energy",0),ReadingsVal("vz180","energy",0),ReadingsVal("vz180","EnergyGesamtverbrauch",0))}

Hilfe bei der Fehlersuche:
1. Einstellungen in vzlogger.conf korrekt? buffer groß genug (600)? siehe auch Wiki unter VOLKSZAEHLER (http://www.volkszaehler.org/)
2. Zeigt der http-daemon vom Linux Programm vzlogger sinnvolle Werte an? z.B. http://raspberrypi:8080/
3. Richtige Modul Definition in fhem? Stimmt host, port, uuid?
...


Änderungen:
13.10.15 Version 0.2: Unterstützung S0 Impulszähler, besseres Fehlerhandling
28.10.15 Version 0.3: Offset für s0 und Leistungswerte. Verarbeitungswahl über Attribut VZLOGGER_modus. energy_avg
06.11.15 Version 0.4: neuer Parameter f. Korrekturfaktor
13.11.15 Version 0.5: neue Hilfsfunktionen für PV-Besitzer: SolarEigenverbrauch, StromGesamtverbrauch
15.03.16 Version 0.6: bessere Durchschnittsberechnung, neues state-Format, neuer Parameter VZLOGGER_show0avg
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 07 September 2015, 19:49:04
Hi,

dass liest sich doch sehr gut.
Meinst Du das klappt performancetechnisch auf meinem fhem RPi?
Hast du die github  version von vzlogger verwendet?

Danke & Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 08 September 2015, 22:41:44
Hallo Tobi,

bei mir läuft alles (FHEM + 1wire + 2x vzlogger) auf dem Raspi. Ich habe jedoch den Verdacht, dass vzlogger mit zunehmender uptime immer mehr CPU/Speicher braucht. Aber da findet sich bestimmt eine Lösung.

vzlogger hole ich immer aus github - zur Zeit Version 0.4.4 bei mir.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 30 September 2015, 09:13:21
Hallo optimizer
Deine Lösungsidee hat mich begeistert
Ich habe versucht sie wie vorgeschlagen zu konfigurieren aber ich bekomme keine Daten:
"empty reading 0" siehe auch FHEM screenshot

Meine vzlogger.conf für meinen EasyMeter Q3C sieht wie folgt aus.
Und gestartet habe ich sie mit vzlogger -c  /etc/vzlogger4FHEMvzlogger.conf

{
// vzlogger.conf with minimal settings without middleware
"retry" : 30,           /* 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" : "/home/pi/vzlogger.log",  /* path to logfile, optional */

"local" : {
    "enabled" : true,   /* should we start the local HTTPd for serving live readings? */
    "port" : 8080,   /* 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" : 30   /* default=600 how long to buffer readings for the local interface, in seconds */
    "buffer" : 600   /* negative values: how many readings for the local interface */

},

"meters" : [
    {
    "enabled" : true ,                // true, Beginn EasyMeter Q3C Zähler
    "protocol" : "sml",
    "baudrate" : 9600,
    "device" : "/dev/ttyUSB0",
    "parity" : "8N1",
    "pullseq" : "2f3f210d0a",        // HEX Darstellung der Pullsequenz
    "interval" : 60,                 // Wartezeit bis zum nächsten Pull
   "channels": [{
       "api" : "NULL" ,         // ohne middleware
       "uuid" : "180",          // virtuelle UUID / Channel für FHEM
            "identifier" : "1-1:1.8.0",  // /* Wirkarbeit Bezug +A T0*/
        }]

    }]
}

Die Abfrage http://192.168.178.37:8080/  ergibt:
{ "version": "0.4.2", "generator": "vzlogger", "data": [ { "uuid": "180", "last": 0, "interval": 60, "protocol": "sml" } ] }


was ist an der Konfiguration anzupassen, damit ich Daten bekomme
Gruß Oswald
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 03 Oktober 2015, 23:20:33
Hallo Oswald,

freut mich, dass dir mein Lösungsansatz gefällt.

Das Auslesen funktioniert laut log-Datei schon mal. Probier mal ob "1-1:1.8.0*255" als identifier. Es könnte aber auch an "alten" Version liegen, da es mittlerweile 0.4.5 gibt.

Gruß
optimizer
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 04 Oktober 2015, 13:24:16
Hallo optimizer,
der Tipp mit Update auf 0.4.5 bringt die Lösung, *255 hat keine Veränderung erbracht

nach einem reboot klappen dann auch mehrere Kanäle
danke für die Unterstützung
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 13 Oktober 2015, 16:30:56
Nachdem man mit vzlogger auch S0 Impulse loggen kann, habe ich mein Modul nun etwas angepasst (Version 0.2): Man kann nun einen größeren Puffer (z.B. local>buffer:240 ) in der vzlogger.conf mit kürzeren Leseabständen in FHEM nutzen, um keine Daten zu verlieren. Bereits verarbeitete Zeitstempel werden einfach "überlesen". Bin noch am überlegen, ob ich noch eine Durchschnittsberechnung einbaue, oder die Funktion in vzlogger nutze.

Bitte vzlogger ab Version vzlogger v0.4.6 based on heads/master-0-gf5e1c4158d verwenden. Darin wurden buffer-overflow Probleme in der NULL-api beseitigt.

vzlogger.conf für S0 mit NULL-Api :

{
"retry" : 30,                   /* how long to sleep between failed requests, in
"daemon": false ,               // run periodically
"verbosity" : 15,               /* between 0 and 15 */
//"log" : "/var/log/vzlogger.log",/* path to logfile, optional */
//"log" : "/home/pi/vzloggers0.log",/* path to logfile, optional */

"local" : {
    "enabled" : true,   /* should we start the local HTTPd for serving live read
    "port" : 8080,              /* the TCP port for the local HTTPd */
    "index" : true,             /* should we provide a index listing of availabl
    "timeout" : 30,             /* timeout for long polling comet requests, 0 di
    "buffer" : 240 /* default=600 how long to buffer readings for the local inte

},

"meters" : [
{
    "enabled" : true , // 11.9. nach http://wiki.volkszaehler.org/hardware/contr
    "allowskip": false,
    "protocol" : "s0",
    "resolution": 2000, // Resolution of your meter
    "gpio": 18,         // GPIO Pin of your Raspi
    "configureGPIO": true,
    "debounce_delay": 0,
    "interval": -1,
//    "aggtime": 10,  // auf meter-level: aggregate all signals and give one upd
    "channels": [{
            "api" : "NULL" ,
            "uuid" : "e18", // virtuelle uuid. nur Buchstaben von a - f u. Zahle
            "identifier" : "Power", // "Power" oder "Impulse" für Impulszähler
            "type": "device",
            "scaler": 1,
//          "aggmode": "AVG",   
            "aggmode": "none", 
            "duplicates": 0     // neu
            }]
    }]
}




Gruß
optimizer
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 17 Oktober 2015, 15:25:00
Hi,

also nachdem ich heute doch ziemlich oft falsche Parameter gesetzt habe, aktualisiere ich hier noch mal den Status.

vzlogger startet inzwischen und ich erhalte folgendes log:
[Oct 17 22:41:03][]     Startup done.
[Oct 17 22:41:05][mtr0] Got 4 new readings from meter:
[Oct 17 22:41:05][mtr0] Reading: id=1-0:1.8.0*255/ObisItentifier:1-0:1.8.0*255 value=5603362.10 ts=1445114465850
[Oct 17 22:41:05][mtr0] Reading: id=1-0:1.8.1*255/ObisItentifier:1-0:1.8.1*255 value=5603362.10 ts=1445114465850
[Oct 17 22:41:05][mtr0] Reading: id=1-0:1.8.2*255/ObisItentifier:1-0:1.8.2*255 value=0.00 ts=1445114465850
[Oct 17 22:41:05][mtr0] Reading: id=1-0:16.7.0*255/ObisItentifier:1-0:16.7.0*255 value=332.90 ts=1445114465850
[Oct 17 22:41:05][sml]  sending pullsequenz send (len:5 is:5).


Allerdings kann ich trotz
    "local": {
        "enabled": true,   // enable local HTTPd for serving live readings
        "port": 8080,       // TCP port for local HTTPd
        "index": true,      // provide index listing of available channels if no UUID was requested
        "timeout": 30,      // timeout for long polling comet requests in seconds (0 disables comet)
        "buffer": -1        // HTTPd buffer configuration for serving readings, default -1
                            //   >0: number of seconds of readings to serve
                            //   <0: number of tuples to server per channel (e.g. -3 will serve 3 tuples)
    },
keine Daten auf port 8080 abrufen...
Auf port 8080 läuft nichts.
Hat da noch wer eine Idee?

Danke & Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 18 Oktober 2015, 15:48:23
Hallo Tobi,

du hast hoffentlich beim rumprobieren jedesmal vzlogger gekillt.
Erscheint im log der Start von HTTPd?: [http] Starting local interface HTTPd on port 8081
Alternativ würd ich einen anderen port (z.B. 8081 ) probieren.

Titel: Antw:neues Modul: VZLOGGER
Beitrag von: pejonp am 18 Oktober 2015, 16:42:03
Zitat von: optimizer am 05 September 2015, 23:53:59
Hallo,

für alle VOLKSZAEHLER (http://www.volkszaehler.org/) Freunde habe ich das Modul VZLOGGER geschrieben, um ohne die VZ-Middleware Daten in FHEM speichern zu können.
..............
Hallo optimizer,

ich wollte meinen Hauszähler Siemens TD3511 auch erst über den VZLOGGER anbinden, bin aber damit nicht zu rande gekommen. Ich habe die Einbindung über ein Perscript in FHEM realisiert. In diesem wird auch von 300 Baud auf 19200 umgeschalten.

define TD3511 at +*00:01:00 {fhem "trigger TD3511 ".`FHEM/td3511.pm &`}
attr TD3511 room HausZaehler
attr TD3511 verbose 1
define FileLog_TD3511 FileLog ./log/TD3511Log-%Y-%m.log TD3511
attr FileLog_TD3511 room HausZaehler
define SVG_FileLog_TD3511_1 SVG FileLog_TD3511:SVG_FileLog_TD3511_1:CURRENT
attr SVG_FileLog_TD3511_1 room HausZaehler

Jörg
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 18 Oktober 2015, 19:13:32
Zitat von: optimizer am 18 Oktober 2015, 15:48:23
du hast hoffentlich beim rumprobieren jedesmal vzlogger gekillt.
jawohl.
Zitat
Erscheint im log der Start von HTTPd?: [http] Starting local interface HTTPd on port 8081
Alternativ würd ich einen anderen port (z.B. 8081 ) probieren.
Ich hatte in der Tat das Problem, dass ich scheinbar den httpd nicht mit installiert habe bis heute Mittag über die install.sh.
Seitdem bekomme ich auch folgendes im log:
[Oct 18 19:06:50][http] Starting local interface HTTPd on port 8080
[Oct 18 19:06:50][sml]  sending pullsequenz send (len:5 is:5).
[Oct 18 19:06:50][chn0] Start logging thread for NULL-api. Running as daemon: yes
[Oct 18 19:06:50][]     Startup done.
[Oct 18 19:06:50]       Opened logfile /var/log/vzlogger.log
[Oct 18 19:06:50][push] No pushDataServer defined.
[Oct 18 19:06:50][]     ===> Start meters
[Oct 18 19:06:50][mtr0] Meter connection established
[Oct 18 19:06:50][mtr0] Meter thread started
[Oct 18 19:06:50][mtr0] Meter is opened. Starting channels.
[Oct 18 19:06:50][mtr0] Number of readers: 32
[Oct 18 19:06:50][chn0] Logging thread started
[Oct 18 19:06:50][chn0] Start logging thread for NULL-api. Running as daemon: yes
[Oct 18 19:06:50]       Opened logfile /var/log/vzlogger.log
[Oct 18 19:06:50][push] No pushDataServer defined.
[Oct 18 19:06:50][]     ===> Start meters
[Oct 18 19:06:50][mtr0] Meter connection established
[Oct 18 19:06:50][mtr0] Meter thread started
[Oct 18 19:06:50][mtr0] Meter is opened. Starting channels.
[Oct 18 19:06:50][mtr0] Number of readers: 32
[Oct 18 19:06:50][chn0] Logging thread started
[Oct 18 19:06:50][http] Starting local interface HTTPd on port 8080
[Oct 18 19:06:50][chn0] Start logging thread for NULL-api. Running as daemon: yes
[Oct 18 19:06:50][]     Startup done.

Es beibt allerdings dabei, dass auf port 8080 nichts horcht. Port ändern bringt auch nichts...

pi@raspberrypi ~ $ nmap localhost

Starting Nmap 6.00 ( http://nmap.org ) at 2015-10-18 19:12 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0019s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 991 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
25/tcp    open  smtp
111/tcp   open  rpcbind
587/tcp   open  submission
1234/tcp  open  hotline
8083/tcp  open  us-srv
8084/tcp  open  unknown
8085/tcp  open  unknown

Noch eine Idee?

Update:
Ich werd verrückt. Wenn ich vzlogger einfach mit -l starte, klappts...
Aber wieso stand vorher auch im log, dass der httpd gestartet wurde?
Noch eine andere Frage, mein Zählerstand wir din Watt ausgegeben, wie passe ich das ma Besten in kWh an?

Gruß & Danke,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 19 Oktober 2015, 19:03:52
Hallo Tobi,
eine Version mit dem Volkszähler Image läuft bei mir, lediglich alle paar Tage gibt es über httpd keine Daten mehr, den vzlogger neu gestartet und alles ist für ein paar Tage wieder ok.

Aus diesem Grund wollte ich ein schlankere Implementierung installieren und habe auf ein Image mit FHEM die vzlogger Installation hinterhergeschoben, aber dabei bin ich in die gleiche Situation gekommen:
keine httpd Verbindung wird hergestellt!

Was fehlt an der Installation?

Gruß osid-timo
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 19 Oktober 2015, 22:00:24
Hi,
hast Du mal ein vzlogger -l probiert?

Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 20 Oktober 2015, 19:24:29
Hallo Tobi,
vzlogger -l bringt bei mir keinen Unterschied
bei mir bleibt der Port 8080 nicht verfügbar

wer hat eine Idee um die Installation doch noch komplett durchzuführen

Gruß osid-timo
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 20 Oktober 2015, 21:30:52
Hi osid,

gehe mal davon aus, dass Du via git installiert hast?
Du findest da im VZ dann eine install.sh, füre die mal als root aus.

Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 20 Oktober 2015, 23:28:07
Hallo Jörg,

Zitat von: pejonp am 18 Oktober 2015, 16:42:03
ich wollte meinen Hauszähler Siemens TD3511 auch erst über den VZLOGGER anbinden, bin aber damit nicht zu rande gekommen.

unter http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/siemens_td3511  findest du noch weiter Infos zu deinem Zähler. Vom TD3511 gibt es mehrere Versionen und damit unterschiedliche vzlogger.conf. Hast du in der Mailing-Liste nichts passendes gefunden?
Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 20 Oktober 2015, 23:54:35
Hallo Tobi, hallo osid-timo,

prüft bitte mal, welche vzlogger-Version ihr einsetzt (vzlogger -V). Auch mit dem aktuellen Image, solltet ihr die aktuellste Version aus git ziehen, also mind. 0.4.6. Darin sind buffer-overflow Probleme, die erst nach einigen Tagen auftauchen, behoben.
Wenn die config passt, sollte man verbosity auf 0 setzen (zvlogger neu starten), sonst wird die Log-Datei zu groß.

Ich kann mir nicht vorstellen, dass trotz anderem Port (z.B. 8081) in vzlogger.conf, der httpd nicht startet.
Gib mal die vzlogger.conf als Parameter mit (z.B. vzlogger -c /home/pi/vzloggers0.conf )

Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 21 Oktober 2015, 07:23:40
Hi,

bei.Mir geht es ja inzwischen.
Ist aber definitiv so. Man muss aber dazu sagen, dass ich nicht das vz image verwende, sondern das raspbian und dazu dann vzlogger in Version 0.4.6.
Aber das kriegen wir bei osid auch schon noch hin.
Hast Du noch einen Tipp bezügl. Darstellung des Zählerstandes in kWh?
Bezüglich der Delta Berechnung, wie gehe ich denn da vor, wenn ich das Delta zw. aktuellem und letztem Messwert haben will, um z.B. herauszubekommen ob der Trockner noch läuft.
Wenn ich das statistics Modul verwende, kriege ich ja nur die letzte Std. angezeigt, wenn ich das richtig verstanden habe.

Danke & Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: pejonp am 21 Oktober 2015, 15:08:21
Zitat von: optimizer am 20 Oktober 2015, 23:28:07
...
unter http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/siemens_td3511  findest du noch weiter Infos zu deinem Zähler...
Hallo Karlheinz,

von dieser Seite habe ich mir das Grundgesrüst geholt und mein eigens Perlscript zum auslesen des TD 3511 gebaut. Es läuft ohne Probleme. Mit VZLogger usw. habe ich mich mal etwas beschäftigt, fand es aber für meine Anwendung und Einbinung in FHEM zu überdimensioniert. Und es sind noch zu viele Schnittstellen und Abhänigkeiten zu berücksichtigen. Da ich alle meine Geräte, Sensoren, Wechselrichter und Batterie usw. in FHEM habe und diese Anbindung läuft, ist es für mich so ok.

Ich wollte nur meine Lösung vorstellen falls jemand etwas ganz einfaches sucht. Das Script kann ja auch für andere Zähler angepaßt werden, die die Schnittstelle von Udo (USB-Volkszähler) nutzen.

Jörg.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 21 Oktober 2015, 20:37:07
Hallo,
ja ich habe über .git installiert,  soeben nochmal mittels sudo ./install.sh die Installation nochmals durchgeführt
Es ist Version 0.4.6 installiert
Aber kein Erfolg ob ich den vzlogger -l oder vzlogger -c /etc/vzlogger.conf starte, httpd bleibt tot, der vzlogger läuft und liefert folgende Einträge:
[Oct 21 20:25:52]       Opened logfile /home/pi/vzlogger.log
[Oct 21 20:25:52][push] No pushDataServer defined.
[Oct 21 20:25:52][]     ===> Start meters
[Oct 21 20:25:52][mtr0] Meter connection established
[Oct 21 20:25:52][mtr0] Meter thread started
[Oct 21 20:25:52][mtr0] Meter is opened. Starting channels.
[Oct 21 20:25:52][chn0] Logging thread not started
[Oct 21 20:25:52][chn1] Logging thread not started
[Oct 21 20:25:52][chn2] Logging thread not started
[Oct 21 20:25:52][]     Startup done.
[Oct 21 20:25:52][mtr0] Number of readers: 32
[Oct 21 20:25:52][mtr0] Config.daemon: 0
[Oct 21 20:25:52][mtr0] Config.local: 1
[Oct 21 20:25:52][sml]  sending pullsequenz send (len:5 is:5).
[Oct 21 20:25:53][mtr0] Got 15 new readings from meter:
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.0*255/ObisItentifier:1-1:1.8.0*255 value=3325416.76 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-2:2.8.0*255/ObisItentifier:1-2:2.8.0*255 value=3702227.23 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.1*255/ObisItentifier:1-1:1.8.1*255 value=3319660.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.2*255/ObisItentifier:1-1:1.8.2*255 value=1120.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.3*255/ObisItentifier:1-1:1.8.3*255 value=1130.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.4*255/ObisItentifier:1-1:1.8.4*255 value=1130.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.5*255/ObisItentifier:1-1:1.8.5*255 value=1130.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-1:1.8.6*255/ObisItentifier:1-1:1.8.6*255 value=1240.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-2:2.8.7*255/ObisItentifier:1-2:2.8.7*255 value=3701100.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-2:2.8.8*255/ObisItentifier:1-2:2.8.8*255 value=1120.00 ts=60441688000
[Oct 21 20:25:53][mtr0] Reading: id=1-0:1.7.0*255/ObisItentifier:1-0:1.7.0*255 value=508.08 ts=1445451953973
[Oct 21 20:25:53][mtr0] Reading: id=1-0:21.7.0*255/ObisItentifier:1-0:21.7.0*255 value=314.04 ts=1445451953973
[Oct 21 20:25:53][mtr0] Reading: id=1-0:41.7.0*255/ObisItentifier:1-0:41.7.0*255 value=11.65 ts=1445451953973
[Oct 21 20:25:53][mtr0] Reading: id=1-0:61.7.0*255/ObisItentifier:1-0:61.7.0*255 value=182.39 ts=1445451953973
[Oct 21 20:25:53][mtr0] Reading: id=1-0:96.5.5*255/ObisItentifier:1-0:96.5.5*255 value=167840.00 ts=1445451953973
[Oct 21 20:25:53][chn0] Adding reading to queue (value=508.08 ts=1445451953973)
[Oct 21 20:25:53][chn1] Adding reading to queue (value=3325416.76 ts=60441688000)
[Oct 21 20:25:53][chn2] Adding reading to queue (value=3702227.23 ts=60441688000)
[Oct 21 20:25:53][chn0] Buffer dump (size=1): {508.0800,}
[Oct 21 20:25:53][chn1] Buffer dump (size=1): {3325416.7595,}
[Oct 21 20:25:53][chn2] Buffer dump (size=1): {3702227.2313,}
[Oct 21 20:25:53][mtr0] Next reading in 60 seconds
[Oct 21 20:26:53][sml]  sending pullsequenz send (len:5 is:5).
[Oct 21 20:26:53][mtr0] Got 15 new readings from meter:
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.0*255/ObisItentifier:1-1:1.8.0*255 value=3325417.04 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-2:2.8.0*255/ObisItentifier:1-2:2.8.0*255 value=3702227.23 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.1*255/ObisItentifier:1-1:1.8.1*255 value=3319660.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.2*255/ObisItentifier:1-1:1.8.2*255 value=1120.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.3*255/ObisItentifier:1-1:1.8.3*255 value=1130.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.4*255/ObisItentifier:1-1:1.8.4*255 value=1130.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.5*255/ObisItentifier:1-1:1.8.5*255 value=1130.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-1:1.8.6*255/ObisItentifier:1-1:1.8.6*255 value=1240.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-2:2.8.7*255/ObisItentifier:1-2:2.8.7*255 value=3701100.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-2:2.8.8*255/ObisItentifier:1-2:2.8.8*255 value=1120.00 ts=60441690000
[Oct 21 20:26:53][mtr0] Reading: id=1-0:1.7.0*255/ObisItentifier:1-0:1.7.0*255 value=507.72 ts=1445452013987
[Oct 21 20:26:53][mtr0] Reading: id=1-0:21.7.0*255/ObisItentifier:1-0:21.7.0*255 value=313.66 ts=1445452013987
[Oct 21 20:26:53][mtr0] Reading: id=1-0:41.7.0*255/ObisItentifier:1-0:41.7.0*255 value=11.62 ts=1445452013987
[Oct 21 20:26:53][mtr0] Reading: id=1-0:61.7.0*255/ObisItentifier:1-0:61.7.0*255 value=182.44 ts=1445452013987
[Oct 21 20:26:53][mtr0] Reading: id=1-0:96.5.5*255/ObisItentifier:1-0:96.5.5*255 value=167840.00 ts=1445452013987
[Oct 21 20:26:53][chn0] Adding reading to queue (value=507.72 ts=1445452013987)
[Oct 21 20:26:53][chn1] Adding reading to queue (value=3325417.04 ts=60441690000)
[Oct 21 20:26:53][chn2] Adding reading to queue (value=3702227.23 ts=60441690000)
[Oct 21 20:26:53][chn0] Buffer dump (size=1): {507.7200,}
[Oct 21 20:26:53][chn1] Buffer dump (size=1): {3325417.0416,}
[Oct 21 20:26:53][chn2] Buffer dump (size=1): {3702227.2313,}
[Oct 21 20:26:53][mtr0] Next reading in 60 seconds
[Oct 21 20:27:53][sml]  sending pullsequenz send (len:5 is:5).



Das vzlogger-Configfile ist identisch mit meinem Volkszaehler-Image
Hat jemand eine Idee was ich noch tun kann/muss?

Gruß Oswald
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 21 Oktober 2015, 20:42:02
Hi Oswald,

schau mal ob Du libmicrohttpd-dev installiert hast.

Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 21 Oktober 2015, 20:56:16
Halo Oswald,

setz mal "daemon": false  u. kill/starte vzlogger neu.
Wenn das auch nicht klappt, poste nochmal deine vzlogger.conf falls sie sich seit 30.9. verändert hat.

Gruß
Karlheinz

Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 21 Oktober 2015, 21:06:20
Hallo,
libmicrohttpd-dev war nicht installiert, habe ich jetzt nachgeholt
demon steht auf false
der Erfolg hat sich immer noch nicht eingestellt.

{
// vzlogger.conf with minimal settings without middleware 4FHEM 20151005
"retry" : 30, /* how long to sleep between failed requests, in seconds */
"daemon": false , /* run periodically */
"verbosity" : 15, /* between 0 and 15 */
//"log" : "/var/log/vzlogger.log",/* path to logfile, optional */
"log" : "/home/pi/vzlogger.log", /* path to logfile, optional */
"local" : {
    "enabled" : true, /* should we start the local HTTPd for serving live readings? */
    "port" : 8080, /* 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" : 30 /* default=600 how long to buffer readings for the local interface, in seconds */
    "buffer" : -3 /* negative values: how many readings for the local interface */
},
"meters" : [
    {
    "enabled" : true , // true, Beginn EasyMeter Q3C Zähler
    "protocol" : "sml",
    "baudrate" : 9600,
    "device" : "/dev/ttyUSB0",
    "parity" : "8N1",
    "pullseq" : "2f3f210d0a", // HEX Darstellung der Pullsequenz
    "interval" : 60, // Wartezeit bis zum nächsten Pull
"channels": [{
    "api" : "NULL" , // ohne middleware
    "uuid" : "170", // virtuelle UUID / Channel für FHEM
            "identifier" : "1-0:1.7.0", /*Aktuelle Leistung */
},
{
    "api" : "NULL" , // ohne middleware
    "uuid" : "180", // virtuelle UUID / Channel für FHEM
            "identifier" : "1-1:1.8.0", // /* Wirkarbeit Bezug +A T0*/
        },
{
    "api" : "NULL" , // ohne middleware
    "uuid" : "280", // virtuelle UUID / Channel für FHEM
            "identifier" : "1-2:2.8.0", // /* Wirkarbeit Bezug -A T0*/
        }]
    }]
}


Gruß Oswald
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 22 Oktober 2015, 19:45:53
Hallo,
nachdem ich heute alle Pakete aktualisiert und alle Abhängigkeiten erneuert habe klappt auch der Zugriff über Port 8080

war eine schwere Geburt, aber danke für die Hilfe

Gruß Oswald
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 24 Oktober 2015, 08:24:51
Hat denn noch jemand einen Tipp für mich bezüglich Einheiten und delta Berechnung?
So wie es aussieht berechnet das statistics Modul ja nur delta für eine stunde usw, aber nicht für kürzere Intervalle.

Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 25 Oktober 2015, 18:11:28
Hallo Tobi,

welches Intervall möchtest du?
Falls dein Zähler die Momentanleistung nicht ausgibt, könnte ich ein weiteres reading als Durchschnittsleistung zur letzten Messung anbieten.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 25 Oktober 2015, 21:13:04
Hi Karlheinz,

vielen Dank für deine Antwort.
Ich bekomme die momentane Leistung angezeigt, würde aber im Prinzip gerne die Differenz zum vorherigen Wert haben.
Hintergrund ist, dass ich so ziemlich genau bestimmen könnte, wann die Waschmaschine fertig ist, bzw der Trockner in den Knittermodus wechselt.

Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 26 Oktober 2015, 17:57:32
Hallo Tobi.
ich mache mir das mit userReadings, mit dem delay bestimme ich die Auflösung in meinem Beispiel 1h

define Strombezug VZLOGGER 192.168.178.37 8080 180
attr Strombezug VZLOGGER_unit Wh
attr Strombezug connectTimeout 7
attr Strombezug delay 3600
attr Strombezug room Volkszaehler
attr Strombezug userReadings BezugLeistungdT difference { ReadingsVal("Strombezug","energy",0)*1}


Gruß Oswald
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 28 Oktober 2015, 22:35:57
Hallo Tobi,

das neue reading energy_avg ist jetzt aktiv. Ich fürchte jedoch, dass der Wert sehr ungenau ist, da die genaue Änderungszeit und damit Zeitdifferenz für die Umrechnung von Leistung auf Arbeit nicht bekannt ist. Das hängt natürlich auch von deinem Leseintervall ab.
Für die stündliche/tägliche/monatliche Auswertung verwende ich auch das statistics Modul.

Wie willst du feststellen wann die Waschmaschine fertig ist? Dazu braucht man meiner Meinung nach, sehr genaue Impuls- oder Leistundswerte. Auf deine Auswertelogik bin ich mal gespannt  8) .

Darüber hinaus gibt es einige Änderungen. Siehe dazu meinen ersten Beitrag.
- VZLOGGER_modus muss nun ausgewählt werden.
- VZLOGGER_offset für Leistungswerte u. Impuls.
...

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 31 Oktober 2015, 10:47:17
Hi Karlheinz,

erst einmal vielen Dank für Deine Unterstützung.
Kannst Du mir verraten, wie genau der avg Wert berechnet wird?
Mein Plan war eigtl. folgender (vielleicht habe ich das nicht gut genug beschrieben):
Es kommt ein aktueller Verbrauchswert, der z.B. bei 381 Watt liegt. (s. auch log)
Bei der nächsten Messung liegt der Wert bei knapp 2200 Watt. Die Differenz wäre für mich dann erst mal das Indiz, dass der Trockner angemacht wurde, verringert der Wert sich dann um 1500 Watt hat der Trockner in den Knittermodus gewechselt.
Klar die 100 % sind das nicht, aber ich denke ich komme so ziemlich nah dran.

Aktuell werden mir aber in den avg Werten Größen angezeigt, die ich mir nicht erklären kann (s. fett markiert):
2015-10-31_10:23:49 Verbrauch_aktuell energy_current: 391.6
2015-10-31_10:23:49 Verbrauch_aktuell energy_avg: -816.35
2015-10-31_10:23:49 Verbrauch_aktuell statEnergy: Hour: 98.9 Day: 143.4 Month: 202.0 Year: 202.0 (since: 2015-10-22 )
2015-10-31_10:25:49 Verbrauch_aktuell 2192.1 kWh ( 2015-10-31 10:25:42 )
2015-10-31_10:25:49 Verbrauch_aktuell energy: 2192.1
2015-10-31_10:25:49 Verbrauch_aktuell energy_current: 2192.1
2015-10-31_10:25:49 Verbrauch_aktuell energy_avg: [b]54438.26[/b]
2015-10-31_10:25:49 Verbrauch_aktuell statEnergy: Hour: 1899.4 Day: 1943.9 Month: 2002.5 Year: 2002.5 (since: 2015-10-22 )
2015-10-31_10:29:49 Verbrauch_aktuell energy: 2193.2
2015-10-31_10:29:49 Verbrauch_aktuell energy_current: 2193.2
2015-10-31_10:29:49 Verbrauch_aktuell energy_avg: 2227.51


Außerdem habe ich aktuell noch das Problem, dass mir der Zählerstand nicht korrekt angezeigt wird. Er soll natürlich in kWh angegeben werden (wird er auch), aber ich müsste da den Wert dann eigtl. durch 1000 teilen. Wie mache ich das am besten? Direkt in VZlogger?

Gruß & ein schönes Wochenende,
Tobias
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 31 Oktober 2015, 13:45:24
Hallo Tobi,

die (avg) Berechnung hängt vom neuen Parameter VZLOGGER_modus ab - Bitte prüfen.
Im Falle von "Zählerstand" wird der Zeitpunkt der letzten Datenänderung zwischengespeichert und bei Änderung über die errechnete Zeitdifferenz und Wertunterschied auf eine Stunde hochgerechnet.
Bei "Leistung" wird avg nur mit den im Puffer (vzlogger.conf > "local" > "buffer") übertragenen Werten ermittelt.
Je größer das Leseintervall in FHEM u. vzlogger, desto ungenauer ist der Durchschnitt. Der Parameter VZLOGGER_unit ist nur ein Vorschlagswert für das state-reading.
Schick mal ein list von deinem Modul und die vzlogger.conf

Loggst du einen Zählerstand oder Leistungswert? Loggst du etwa jede Sekunde  :o ?

Gruß
Karlheinz


Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 31 Oktober 2015, 21:27:44
Hi Karlheinz,

danke für Deine Unterstützung,

list Verbrauch aktuell:
Internals:
   CFGFN      FHEM/strom.cfg
   DEF        localhost 8080 167
   NAME       Verbrauch_aktuell
   NR         447
   STATE      291.9 W ( 2015-10-31 21:23:44 )
   TYPE       VZLOGGER
   VERSION    0.3
   vzlogger_protocol sml
   vzlogger_version 0.4.6
   Readings:
     2015-10-31 21:23:53   energy          2091.90000
     2015-10-31 21:23:53   energy_avg      0
     2015-10-31 21:23:53   energy_current  291.9
     2015-10-31 21:23:53   statEnergy      Hour: 0.00000 Day: 1843.70000 Month: 1902.30000 Year: 1902.30000 (since: 2015-10-22 )
     2015-10-31 20:59:55   statEnergyLast  Hour: 0.00000 Day: 20.9 Month: - Year: -
     2015-10-31 21:23:53   statEnergy_currentDay Min: 183.1 Avg: 632.6 Max: 4951.9
     2015-10-30 23:59:55   statEnergy_currentDayLast Min: 189.3 Avg: 476.0 Max: 2609.7
     2015-10-31 21:23:53   statEnergy_currentMonth Min: 140.4 Avg: 608.1 Max: 4951.9 (since: 2015-10-21_11:10:27 )
     2015-10-31 21:23:53   statEnergy_currentYear Min: 140.4 Avg: 608.1 Max: 4951.9 (since: 2015-10-21_11:10:27 )
     2015-10-31 21:23:53   state           291.9 W ( 2015-10-31 21:23:44 )
   Helper:
     Channel    167
     Host       localhost
     HostPort   8080
     TimerInterval 120
     TimerStatus Verbrauch_aktuell.STATUS
     _98_statistics statisticsVerbrauch
     delayCounter 0
     last_change 1446284142977
     time_offset 1446323024265
Attributes:
   VZLOGGER_modus Leistung
   VZLOGGER_unit W
   connectTimeout 7
   delay      120
   group      Strom
   room       Volkszaehler


list Zaehlerstand:
Internals:
   CFGFN      FHEM/strom.cfg
   DEF        localhost 8080 180
   NAME       Zaehlerstand
   NR         451
   STATE      5777280.1 kWh ( 2015-10-31 21:25:44 )
   TYPE       VZLOGGER
   VERSION    0.3
   vzlogger_protocol sml
   vzlogger_version 0.4.6
   Readings:
     2015-10-31 21:25:53   energy          5777280.1
     2015-10-31 21:25:53   energy_avg      294.13
     2015-10-31 21:25:53   energy_current  5777280.1
     2015-10-31 21:25:53   state           5777280.1 kWh ( 2015-10-31 21:25:44 )
   Helper:
     Channel    180
     Host       localhost
     HostPort   8080
     TimerInterval 120
     TimerStatus Zaehlerstand.STATUS
     delayCounter 0
     last_change 1446323144214
     time_offset 1446323144214
Attributes:
   VZLOGGER_modus Zählerstand
   VZLOGGER_unit kWh
   connectTimeout 7
   delay      120
   group      Strom
   room       Volkszaehler


vzlogger.conf s. Anhang

Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 01 November 2015, 18:52:10
Hallo Tobi,

zur vzlogger.conf:
bei Zählerstand-Lesung ist buffer: -1 OK, doch wenn du auch Leistungswerte willst, würde ich hier einen höhern positiven buffer, für die letzten x Sekunden setzen, z.B. 240. Dann kommt avg u. energy auch nicht ins stottern.

Du benutzt aggtime ohne aggmode - das kannst du also auskommentieren.
resolution macht imho bei SML auch keinen Sinn - auskommentieren.

zu FHEM config:
Du liest alle 120 Sekunden (Parameter delay) den vzlogger-output. Wenn Du Leistungsunterschiede genauer messen willst, musst Du den Leseabstand verkürzen. Dadurch wächst aber das Log-Volumen drastisch.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 01 November 2015, 19:38:15
Hi Karlheinz,

danke. Das waren noch teilw. werte zum testen.
Hab das aber nun mal wieder angepasst/rausgenommen.
Hast Du noch eine Idee bezüglich der Einheiten?

Danke & Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 01 November 2015, 21:10:41
Hallo Tobi,

welche Einheit meinst du genau? Der falsche Wert (manchmal negativ) unter Verbrauch_aktuell > energy_avg sollte durch die buffer-Änderung auch behoben sein. Wenn nicht, setz verbosity auf 4 und sende den entsprechenden Teil aus dem fhem-log.
Der Zählerstand wird 1:1 übernommen. Wenn Zählerstand 5777280.1 um Faktor 1000 zu viel ist, würde ich VZLOGGER_unit einfach Wh einsetzen  :) .

Vielleicht gibt es in der nächsten Version einen Korrekturfaktor.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 04 November 2015, 18:05:20
Hi Karlheinz,

Zitat von: optimizer am 01 November 2015, 21:10:41
welche Einheit meinst du genau? Der falsche Wert (manchmal negativ) unter Verbrauch_aktuell > energy_avg sollte durch die buffer-Änderung auch behoben sein. Wenn nicht, setz verbosity auf 4 und sende den entsprechenden Teil aus dem fhem-log.
Sieht an sich besser aus, muss ich aber ncoh genau prüfen.
Zitat
Der Zählerstand wird 1:1 übernommen. Wenn Zählerstand 5777280.1 um Faktor 1000 zu viel ist, würde ich VZLOGGER_unit einfach Wh einsetzen  :) .
Das scheint leider nicht zu klappen (s. Anhang)
Vielleicht gibt es in der nächsten Version einen Korrekturfaktor.

Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 06 November 2015, 20:32:14
Hallo Tobi,

5777280.1 Wh scheint wohl zu stimmen - Du willst aber eine Anzeige in kWh.
Probier mal die neue Version mit Korrekturfaktor.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 07 November 2015, 09:10:10
Hi Karlheinz,

ich hoffe Du hast dich aufgrund meines Beitrages nciht genötigt gefühlt...
Habe gesehen, dass ich bei meinem letzten Beitrag ein Zitat von Dir stehen lassen habe, bezügl. Korrekturfaktor...Sorry dafür, war keine Absicht.
Habe die neue Version drin, bei energy zeigt er es auch korrekt an, für energy_current und state scheint das dann aber nicht zu gelten?
Übrigens hattest Du Recht, habe meine Logs noch mal gecheckt, auch wenn mein Zähler selbst in kWh ausgibt, im log wird es via Wh angezeigt.

Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: deune am 08 November 2015, 21:12:36
Hallo Optimizer,

vielen Dank für die Idee und Entwicklung, dieser vzlogger Schnittstelle.

So habe ich auf dem raspberry keine "Bewegungsdaten" und hoffe, dass so die SD Karte ein wenig länger hält.

Zwei Dinge möchte ich gerne erfragen:
- Die Verwendung des Korrekturfaktors ? Fülle ich das Attribut mit "1000" bleibt alles unverändert
- Die beiden Zählerstände Bezug 1.8.0 und Lieferung 2.8.0 werden nicht automatisiert eingelesen.
Manuell kann ich dem einen Schubs geben, dann funktioniert es, automatisch aber nicht.

Bis hierhin bin ich jedoch richtig glücklich über die neuen Daten in meiner Haussteuerung.

Herzliche Grüße aus der Eifel

Holger
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 08 November 2015, 21:18:49
Hi Holger,

der Korrekturfaktor müsste 0.001 sein, sofern ich das richtig verstanden habe.

Zur 2. Frage:
Wie sieht denn deine fhem definition und dürre vzlogger.Conf aus?

Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: deune am 08 November 2015, 21:34:04
Hallo Tobi,

vielen Dank - da hätte ich Dussel auch mal drauf kommen können - in die andere Richtung zu denken - das mit dem Korrekturfaktor hat funktioniert.

Meine vzlogger.conf habe ich als Bild eingebunden, vielleicht findest Du etwas, Grundlage ist eine Konfig aus dieser Diskussion und es funktioniert ja auch aber eben nur manuell. Das Attribut delay ist bei den Zählerständen bei mir wirkungslos.

Herzliche Grüße
Holger
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: deune am 08 November 2015, 21:56:22
Hallo Zusammen,

scheint alles zu funktionieren, habe alle Attribute neu gesetzt und ein "rereadcfg" -
leichte Schläge auf den Hinterkopf scheinen auch bei Haussteuerungen zu funktionieren!  ;-)

Herzliche Grüße

Holger
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: deune am 09 November 2015, 11:07:38
Hallo Zusammen,

da bin ich noch einmal, gibt es eigentlich einen smarten Trick den über Tag verbrauchten Strom abzuleiten,
ähnlich einer Auswertung der über den Tag erstellten Stromes bei Solaranlagen?

Den Zählerstand um 0:00 Uhr übernehmen und dann mit dem aktuellen Zählerstand saldieren ?

Herzliche Grüße

Holger
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 10 November 2015, 00:18:16
Hi Tobi,

Zitatich hoffe Du hast dich aufgrund meines Beitrages nciht genötigt gefühlt...
Im Gegenteil: bin für jeden guten Vorschlag dankbar. Auch bei S0-Impulsen finde ich den Korrekturfaktor hilfreich, wenn der Zähler abweichend misst.
Zitatfür energy_current und state scheint das dann aber nicht zu gelten?
Stimmt, den hab ich übersehen - schon geändert.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 10 November 2015, 00:44:16
Hallo Holger,

freut mich, dass Dir mein Modul gefällt  ;D
Tobi, hat schon erste Hilfe geleistet.

einige Anmerkungen hab ich noch:
In deinem ersten Screenshot sehe ich Wirkenergie_Bezug im Modus "Leistung". Das sollte doch eher "Zählerstand" sein.
ZitatDas Attribut delay ist bei den Zählerständen bei mir wirkungslos.
Stell den buffer (unter vzlogger.conf local) besser auf das 3-fache deiner fhem-delay. z.B. 240
Zitatgibt es eigentlich einen smarten Trick den über Tag verbrauchten Strom abzuleiten,
Ich benutze noch das Modul statistics, dann sehen die Statistiken f. statEnergy* u. statEnergy_current wie im Screenshot anbei aus.
EnergyGesamtverbrauch ist ein userreading, das einen virtuellen Zählerstand (Bezug + Erzeugung -  Einspeisung) errechnet und damit auch über über das statistics Modul erfasst werden kann.
Die Funktion f. EnergyGesamtverbrauch könnte ich bei Interesse auch in mein Modul übernehmen.
Mit Tagesverbrauch, Tageseinspeisung, Tagessolarerzeugung u. Eigenverbrauch kann man dann leicht ein Balkendiagramm erzeugen.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 13 November 2015, 22:42:35
In Version 0.5 stehen zwei zusätzliche Hilfsfunktionen für Solaranlagen-Besitzer im userReadings zur Verfügung.

- Berechnung des (Solar)Eigenverbrauchs als virtueller Zählerstand: SolarEigenverbrauch (Zählerstand Einspeisung,Zählerstand Erzeugung,Zählerstand Eigenverbrauch)
- Berechnung des Gesamtverbrauchs als virtueller Zählerstand: StromGesamtverbrauch (Zählerstand Einspeisung,Zählerstand Erzeugung,Zählerstand Bezug,Zählerstand Gesamtverbrauch)

Beispiel zum Erzeugen des Readings "EnergyGesamtverbrauch:
userReadings EnergyGesamtverbrauch {StromGesamtverbrauch(ReadingsVal("vz280","energy",0),ReadingsVal("Solaranlage","Total.Energy",0),ReadingsVal("vz180","energy",0),ReadingsVal("vz180","EnergyGesamtverbrauch",0))}

Ich benutze diese Funktionen um virtuelle Zählerstände zu erzeugen und mit dem statistics Modul Stunden-/Tages-/Monats-genau Statistiken zu erzeugen/mitzuloggen und schliesslich in einem Diagramm zu visualisiern.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 14 Dezember 2015, 00:26:45
Hallo,

ich habe heute vzlogger auf meinem Log-Device konfiguriert und in Fhem VZLOGGER installiert. Ich bekomme leider keine Verbindung zum Logger:

http://192.168.178.37:8080/

liefert "Unable to connect" bzw. Fhem sagt: "ERROR while requesting: 192.168.178.37: Connection refused".

Hier meine vzlogger.conf:
// vzlogger.conf with minimal settings without middleware
{
// General settings
"daemon": true,
"verbosity": 15,
"log": "/var/log/vzlogger.log",
"retry": 30,

// Build-in HTTP server
"local": {
"enabled": true,
"port": 8080,
"index": true,
"timeout": 30,
"buffer": 240
},

// Meter configuration
"meters": [
{
// D0 meter EMH ITZ
"enabled": true,
"protocol": "d0",
"device": "/dev/ttyUSB0", // meter device
"parity": "7E1", // Serial parity, 7E1 or 8N1
"baudrate": 300, // Serial baud rate, typically 9600 or 300
"dump_file": "/var/log/d0.txt", // detailed log file for all received/transmitted data (optional)

"channel":
{
"uuid": "180",
"identifier": "1-0:1.8.1", // OBIS identifier
"api": "NULL" // without middleware
}
}
  ]
}


Der vzlogger läuft:
root@OpenWrt:/etc# vzlogger -c vzlogger4fhem.conf
[Dec 14 00:04:52][main] vzlogger v0.4.6 based on heads/master-0-g11364f0d0d from Sat, 22 Aug 2015 09:23:50 -0700 started.
[Dec 14 00:04:52][mtr0] Creating new meter with protocol d0.
[Dec 14 00:04:52][mtr0] Meter configured, enabled.
[Dec 14 00:04:52]       New meter initialized (protocol=d0)
[Dec 14 00:04:52]       Configure channel.
[Dec 14 00:04:52][chn0] New channel initialized (uuid=... api=NULL id=1-0:1.8.1)
[Dec 14 00:04:52]       Have 1 meters.
[Dec 14 00:04:52][main] log level is 15
[Dec 14 00:04:52][main] daemon=1, local=1
[Dec 14 00:04:52]       Daemonize process...


Ich würde mich freuen, wenn mir jemand auf die Sprünge helfen kann.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 15 Dezember 2015, 22:33:03
Hallo,

zur Info: mein Verbindungsproblem konnte ich jetzt lösen. vzlogger muss mit der Option -l gestartet werden. Dann klappt das auch mit der Verbindung. Das wurde auch vorne im Thread mal erwähnt. Ich war aber erst auf einer falschen Fährte...  :'(

Viele Grüße
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 29 Dezember 2015, 10:17:42
Hallo,

ich möchte S0-Daten von vzlogger für die Auswertung über VZLOGGER aufbereiten. Nach diversen Versuchen und Tests komme ich jetzt aber nicht mehr weiter.

Ich möchte meinen Gaszähler über ein Relais auslesen und in Fhem darstellen. Meine Vorgehensweise:
Probleme habe ich mit den Punkten 5 und 6. Meineserachtens werden nicht alle Sensorimpulse von VZLOGGER erfasst, wenn innerhalb des Fhem-Lesezyklus "delay"von 60 Sekunden mehrere Impulse eingehen. Es wird immer nur der letzte Impulswert übernommen.

Das VZLOGGER-Modul sollte buffer < delay seit Version 0.2 unterstützen.  Hinzu kommt, dass ich im FileLog das Reading "state" nicht über das Regex "state:.*" erfassen kann.

Mein Testfall: Drei Impulse innerhalb der delay-Phase.
vzlogger HTTPd liefert dazu folgende Rohdaten:
{ "version": "0.4.6", "generator": "vzlogger", "data": [ { "uuid": "120", "last": 1451378978096, "interval": -1, "protocol": "s0", "tuples": [ [ 1451378970095, 2 ], [ 1451378974096, 2 ], [ 1451378978096, 2 ] ] } ] }

VZLOGGER.state zeigt nur den letzten Wert an: "state 1.0 ( 2015-12-29 09:49:38 )"

Das zugehörige FileLog ist so definiert, dass alls Readings erfasst werden. Hier der Auszug aus dem FileLog über die Bufferperiode von 240 Sekunden:
(Der vzlogger-Wert 2 wurde mit dem Attribut VZLOGGER_corrF 0.5 auf 1 korroigiert)
2015-12-29_09:49:49 Gaszaehler 1.0  ( 2015-12-29 09:49:38 )
2015-12-29_09:49:49 Gaszaehler energy: 3.01071
2015-12-29_09:49:49 Gaszaehler energy_current: 1.0
2015-12-29_09:50:49 Gaszaehler 1.0  ( 2015-12-29 09:49:38 )
2015-12-29_09:50:49 Gaszaehler energy: 3.01071
2015-12-29_09:50:49 Gaszaehler energy_current: 1.0
2015-12-29_09:51:49 Gaszaehler 1.0  ( 2015-12-29 09:49:38 )
2015-12-29_09:51:49 Gaszaehler energy: 3.01071
2015-12-29_09:51:49 Gaszaehler energy_current: 1.0
2015-12-29_09:52:50 Gaszaehler 1.0  ( 2015-12-29 09:49:38 )
2015-12-29_09:52:50 Gaszaehler energy: 3.01071
2015-12-29_09:52:50 Gaszaehler energy_current: 1.0
2015-12-29_09:53:50 Gaszaehler no data for 120


Mein erstes Problem: Wie man sieht, wird immer nur der letzte Wert geloggt. Die beiden ersten Werte sind nicht geloggt und damit verloren.

Mein zweites Problem: Im Gegensatz zu den readings "energy" und "energy_current" wird im FileLog das reading "state" nicht aufgeführt, sondern nur der zugehörige Wert. Das mag der Grund sein, warum das state-Reading nicht mit Regexp state:.* erfasst werden kann. Ich kann nicht beurteilen, ob das ein VZLOGGER- oder ein generelles FileLog-Problem ist.

Aber vielleicht interpretiere ich die Konfigurationsparameter auch falsch.

Ich hoffe, mir kann jemand einen entscheidenden Tipp geben, wie ich S0-Impulse verlustfrei in Fhem auswerten kann.

Viele Grüße


Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 29 Dezember 2015, 23:51:04
Hallo,

gut, dass zwischen den Tagen auch Freizeit für mein Hobby bleibt. Ich habe mich mit der Zähllogik des VZLOGGER-Moduls beschäftigt. Ausgangspunkt ist folgender Fall mit 5 Impulsen (3 + 2) innerhalb zwei delay-Phasen:

1: vzlogger-buffer-periode |------------------------240 s--------------|--------------
2: Fhem-VZLOGGER-delay     |---60 s---|
---60 s---|---60 s---|---60 s---|---60 s---|
3: Impuls i                |--i-i-i---|--i-i-----|----------|----------|----------|
4: Wert state alt                     1          1          1          1          no data
5: Wert state neu                     3          2          no new reading ...    no data

VZLOGGER liefert  über den dargestellten Zeitraum in jeder delay-Perionde, unabhängig von der Anzahl Impulse, immer nur einen Zählwert. Das ist falsch.
Im VZLOGGER-Code musste ich folgende Zeilen ändern, um das korrekte Ergebnis der Zeile 5 oben zu bekommen:

Zeile 357 alt: if ($time_offset <= $f->[0]) {
Zeile 357 neu: if ($time_offset < $f->[0]) {

Zeile 421 alt:  $value = ($value * $corrF);
Zeile 421 neu: $value = ($value_sum_imp * $corrF);


Desweiteren habe ich mir das reading "energy" etwas genauer angeschaut. Laut Beschreibung wird in "energy" ein virtueller Zählerstand aufsummiert. Code-Zeile 420 soll nach meinem Verständnis einen durchschnittlichen Zählerwert pro Stunde berechnen, der dann später aufsummiert wird.
Ich habe die Zeile so geändert, dass Zählerimpulse mit der Zählerauflösung zu einem Zählerwert berechnet werden, der dann später zum korrekten Zählerstand aufsummiert wird.

Zeile 420 alt:  $counter = ($value_sum_imp / $resolution /  $time_diff / 3600 * $corrF) # Durchschnittswert kWh
Zeile 420 neu: $counter = ($value_sum_imp / $resolution * $corrF) ; # Zaehler fuer kWh, m³ etc.


Hiermit bekomme ich einen korrekten Zählerstand im reading "energy" angezeigt. Ich finde allerdings die Bezeichnung "counter" für "energy" treffender, z.B. wenn ich Wasser oder Gas in der Einheit m³ messe.

Meine Änderungen habe ich für VZLOGGER_modus "Impuls" und "Zählerstand" gestestet. So kann ich S0-Zählimpulse sauber in Fhem verarbeiten.
Die Auswirkungen auf die anderen Funktionen bzw. Modi kann ich (noch) nicht beurteilen.

@optimizer: Bitte prüfe meine Änderungen bzw. Korrekturen und übernimm bei Bedarf die Änderungen im Code. Ansonsten ist VZLOGGER ein sehr nützliches Modul.

Viele Grüße
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 02 Januar 2016, 14:32:32
Hi Karlheinz,

frohes neues Jahr erst mal!
Sag mal, dein Balkendiagramm sieht ziemlich cool aus, dürfte man doch auch für den Zählerstand erstellen können, oder?

Muss ich da zwingend das Statistics Modul verwenden?
Prinzipiell stehen die Werte ja entsprechend in den Logs (als energy) und es würde reichen, wenn ich die Differenz zum vorherigen Monat berechne.
Oder gibt es da noch andere Vorteile, die ich gerade nicht sehe? Wenn ich das statistics Modul noch nicht laufen hatte, könnte ich trotzdem die vergangenen Werte eintragen?

Danke & Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: micomat am 05 Januar 2016, 23:01:02
Hi,
ist geplant das Modul irgendwann einzuchecken, sodass es via "Update" verteilt wird?

Gruß
Markus
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 06 Januar 2016, 23:17:39
Ich wünsch euch einen guten Start ins neue Jahr.
Sorry für das späte Antworten, aber mich beschäftigen zur Zeit meine neuen ESP8266 Module und ein defekter Computer.

@Romoker
Zitat von: Romoker am 29 Dezember 2015, 23:51:04
VZLOGGER liefert über den dargestellten Zeitraum in jeder delay-Perionde, unabhängig von der Anzahl Impulse, immer nur einen Zählwert. Das ist falsch.
das wäre sicher ein Fehler.  Ist denn VZLOGGER_modus auf "Impuls" und VZLOGGER_resolution richtig gewählt?

Deine weiteren Programmvorschläge schaue ich mir noch an.

Ich würde dir empfehlen mit dem Volkszähler-vzlogger Leistung anstatt Impulse auszugeben. Dazu müsstest du unter "channel" > "identifier" : "Power" in die vzlogger.conf eintragen. Zusätzlich hab ich noch einen 10-Sekundendurchschnitt mit channel > aggmode: "AVG" u. aggtime: 10 eingestellt.

@Tobi
Zitat von: onkel-tobi am 02 Januar 2016, 14:32:32
Sag mal, dein Balkendiagramm sieht ziemlich cool aus, dürfte man doch auch für den Zählerstand erstellen können, oder?

Muss ich da zwingend das Statistics Modul verwenden?
Prinzipiell stehen die Werte ja entsprechend in den Logs (als energy) und es würde reichen, wenn ich die Differenz zum vorherigen Monat berechne.
Ja, die Differenz jeden Monat ist ausreichend, aber ich kenne keinen einfacheren Weg als über das statistics Modul und ein FileLog auf die statistik Werte (statEnergyMonthLast). In die erzeugte Textdatei habe ich auch ältere Werte manuell nachgetragen (eventuell FHEM herunterfahren). Hast Du einen einfacheren Weg?

@Markus
Zitat von: micomat am 05 Januar 2016, 23:01:02
ist geplant das Modul irgendwann einzuchecken, sodass es via "Update" verteilt wird?
SVN hat mich bisher etwas abgeschreckt. Da suche ich noch den richtigen Einstieg.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: osid-timo am 07 Januar 2016, 21:31:27
Hallo vzlogger Nutzer,
es kommt bei mir in unregelmässigen Abständen vor, dass ich keine Werte über httpd kommen. Im vzlogger Logfile sind alle Werte vorhanden.
Nach einem Neustart des vzlogger klappt alles normal.

Ab und zu werden aber auch keine Zählerstände (uuid 180 & 280) übertragen, die Leistung (uuid 170) geht.

aktuell läuft FHEM vzlogger 0.5 und vzlogger 0.4.6

Warum, was muss ich tun? Wer kann mir einen Tipp geben?

Gruß Osid-timo
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 09 Januar 2016, 21:43:57
@osid-timo: Ich tippe als Ursache auf das vzlogger-Modul vom Volkszählerprojekt. vzlogger ist nicht ganz fehlerfrei. Ich empfehle auf die aktuellste Version (0.5.x) upzudaten.

@optimizer:
ZitatIst denn VZLOGGER_modus auf "Impuls" und VZLOGGER_resolution richtig gewählt?
Ja, alle Tests wurden im Modus Impulse durchgeführt. Die Auflösung war auch korrekt.

ZitatIch würde dir empfehlen mit dem Volkszähler-vzlogger Leistung anstatt Impulse auszugeben.
Mit Leistung bzw Power im vzlogger habe ich mich jetzt auseinandergesetzt. Im vzlogger bekomme ich aber noch keine plausiblen Wertre heraus, die ich mit meinen Tests nachvollziehen kann. Im VZLOGGER kommen die über die vzlogger-httpd-api übergebenen Werte korrekt an.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: homeum am 05 Februar 2016, 08:55:35
Danke für das Modul.

Dadurch kann ich nun den Zählerstand (mehr kann mein Zähler nicht ausgeben) problemlos von vzlogger in fhem übernehmen.


Kann mir jemand einen Tipp geben, wie ich im Label des Plots aus $data{min1} und $data{max1} die Differenz berechnen kann?
.... also die Berechnung direkt im Label
Im Moment steht da nur
attr SVG_Log_Elektro label "Zählerstand $data{min2} - $data{max2}"
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 19 Februar 2016, 21:12:18
Seit ein paar Wochen liefert mir mein angepasstes VZLOGGER-Modul recht brauchbare Werte für meine Gas- und Wasser-Impuls-Werte. Inzwischen habe ich auch das statistic-Modul mit integriert und auch verstanden, dass in diesem Zusammenhang die Bezeichnungen "energy" und "energy_current" Sinn machen.

Mit dem VZLOGGER-Modus "Leistung" stehe ich noch auf dem Kriegsfuß. Die errechneten energy-Zählerstände sind zu ungenau und können eher als Anhaltswerte dienen. Deshalb habe ich auf eine exakte Impulszählung Wert gelegt. Mit entprellten Kontakt-Sensoren und Anpassung der Impulsberechnung im VZLOGGER-Modul gibt es keine Abweichungen mehr bei meinen Zählerständen zwischen Fhem und den Verbrauchszählern.

Ich habe allerdings noch ein Problem bei den Impulszählern festgestellt: Die Zählerstände erhöhen sich in Fhem, wenn Fhem neu gestartet oder ein rereadcfg durchgeführt wird. Grund ist, dass der Volkszähler-httpd-Puffer, der bei mir auf 15 Minuten eingestellt ist, nach einem Fhem-Neustart komplett neu gelesen wird, auch wenn vorher schon alte Zählerwerte vor dem Start verarbeitet wurden. VZLOGGER verliert die letzte Lesezeit nach einem Restart. Das ist natürlich unschön, da ein Fhem-Restart doch öfter durchgeführt wird.

Ich habe VZLOGGER jetzt so angepasst, dass die letzte Puffer-Lesezeit einen Fhem-Restart bzw. rereadcfg übersteht und nur neue Werte aus dem VZ-Puffer gelesen werden. Ich habe die angepasste VZLOGGER-Version (0.5.a) mit allen meinen Änderungen angehängt.

Meine Änderungen sind nicht relevant für diejenigen, die keinen Wert auf exakte Impuls-Zählerwerte legen oder nur den Modus Zählerstand nutzen.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 21 Februar 2016, 23:57:41
@homeum
Zitat von: homeum am 05 Februar 2016, 08:55:35
Kann mir jemand einen Tipp geben, wie ich im Label des Plots aus $data{min1} und $data{max1} die Differenz berechnen kann?
.... also die Berechnung direkt im Label
Im Moment steht da nur
attr SVG_Log_Elektro label "Zählerstand $data{min2} - $data{max2}"
z.B. so für zwei labels:
attr SVG_LOG_Elektro label sprintf("Verbrauch (aktuell %.1f kWh, diff %.1f kwh)",$data{currval1},$data{max1}-$data{min1})::sprintf("Ertrag (aktuell %.1f kWh, diff %.1f kwh)",$data{currval2},$data{max2}-$data{min2})

Im Plot-Editor, Diagramm label musst du noch "<L1>" anstatt dem Festwert "Zählerstand" eingeben. ( <L2> im zweiten label ...)

@Romoker
Je größer der Puffer, desto wichtiger ist die gespeicherte Lesezeit - stimmt. Noch Besser wärs, die Lesezeit als unsichtbares Reading zu speichern (In der nächsten Version).
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 22 Februar 2016, 17:19:32
@optimizer
ZitatNoch Besser wärs, die Lesezeit als unsichtbares Reading zu speichern (In der nächsten Version).

Das habe ich in meiner Anpassung mit dem Reading ".last_time_offset" schon umgesetzt :)

Viele Grüße
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: winner_ix am 02 März 2016, 10:47:35
Eine Frage zum FHEM PLOT.

Mein System:
vzlogger liest den Zählerstand 1.8.0 (Verbtauch) und 2.8.0 (Einspeisung) im 120 sec Intervall vom Smart-Meter und übermittelt die Daten an das FHEM Modul VZLOGGER.
Soweit funktioniert alles aber....

Habe im FHEM keine AVG Werte im LOG wenn AVG auf 0 geht. Dadurch keine schöne Darstellung im PLOT.
Das passiert natürlich bei der PV-Anlage immer wieder wenn Erzeugung=0 sowie beim Verbrauch=0 wenn genügend erzeugt wird.

Im Code (23_VZLOGGER.pm) habe ich folgendes gefunden (rot markiert).
Ich nehme an dass diese Zeile verhindert, dass der AVG Wert 0 werden kann.
Braucht man aber für einen schönen PLOT --> Nachteil, alle AVG=0 Einträge landen im LOG.
Liege ich da richtig oder hat der Code Teil auch andere Hintergründe?

if ($modus eq "Zählerstand") {
         # letzter Wert wird übernommen
         $value = $value * $corrF ;
         $counter = $value  if ( $value > 0 );
         $time_diff = (($time_last - $last_change) /1000)||1 ; # time_diff in Sekunden
         # Durchschnitt vom letzten geänderten Reading. gleiche Einheit wie $energy. sehr ungenau
         $value_avg =  ( $counter - ReadingsVal($name,"energy",0) );
         VZLOGGER_Log $hash, 4, "Zählerstand: energy $counter . avg $value_avg in time_diff: $time_diff s. corrF: $corrF" ;
        if ($value_avg != 0) {
            $value_avg = sprintf("%.3f", ( $value_avg / $time_diff * 3600 ) );  # Hochrechnung auf eine Stunde, kWh
            $hash->{helper}{last_change} = $time_last; # letzte Ã,,nderungszeit fürs nächste Mal merken
         }
         else {
            undef $value_avg;
         }
      }

LG
winner_ix

Titel: Antw:neues Modul: VZLOGGER
Beitrag von: winner_ix am 02 März 2016, 14:02:32
By the way.
Mir ist noch was aufgefallen, dass ich nicht ganz nachvollziehen kann.

Der Zählerstand wird vom Volkszähler ins FHEM Modul korrekt alle 120 sec übernommen.
Bei der Durchschnitsberechnung ergeben sich bei mir für die AVG Werte im FHEM VZLOGGER immer folgende discrete Werte:
0,291 / 0,437 / 0,655 / 0,873 / 1,092 / 1,31 / ... in kW
Mit der Formel kann ich es aber nicht nachvollziehen:
1 Counter Einheit in 120sec  -->  ergibt in 60 Minuten 30 CE oder im Schnitt 300 W
2 CE --> 600 W
3 CE --> 900 W
...etc

was passiert im Modul noch....kommt es zu einer weiteren Berechnung?
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 08 März 2016, 22:06:12
Hallo winner_ix,

zu
if ($value_avg != 0) {
Bei meinem Zähler  kommt es oft vor, dass sich der Zählerstand aufgrund nur einer Nachkommastelle nicht ändert. Deshalb habe ich lieber keinen Wert als "0".
Bei PV-Anlagen würde das aber durchaus Sinn machen. Ein weiterer Parameter für das Anzeigen von 0-Werten wäre hier vielleicht hilfreich?

Die Durchschnittsrechnung rechnet mit den aus vzlogger übergebenen Zeitwerten abzüglich des letzten readings - deshalb die krummen Zahlen. 0,291 kW oder 300 W schaut doch gar nicht schlecht aus  :D ?

Gruß
optimizer
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: winner_ix am 09 März 2016, 18:31:40
Hallo optimizer,

danke für deine Antwort.
Ich habe versuchsweise die Abfrage rausgenommen und es passt fü rmich besser.

Aber ich habe auch herausgefunden, dass der Readout vom Smart Meter 22sec dauert !?!
Demenstprechen habe ich auch die vzlogger.conf delay time jetzt auf 37sec gesetzt. Damit gibt es alle 59sec neue Werte.
Davor hatte ich das Smart Meter readout auf 60sec und VZLOGGER delay auch auf 60sec aber da es nur alle 82 sec neue Daten gab ist avg=0 oft vorgekommen.
Grund: innerhalb des 82sec Intervalls wurde 2 mal von FHEM derselbe Zählerstand abgefragt.

Jetzt bin ich noch am Optimieren zwischen kurzem Intervall und schönem Plott.

Kann ich eigentlich im vzlogger.conf dieselben Zählerstände in unterschiedlichen Intervallen ans Interface (http) schicken?
zB.: 1.8.0 alle 60sec für Steuerungen verschiedener elektrischer Geräte mit aktuellen Werten und 1.8.0 mit 180 sec für schöneren avg-Plott.
Aber da könnte auch das Statistik Modul helfen ....

LG
winner_ix
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 15 März 2016, 22:33:13
Hallo zusammen,

nachdem der Durchschnittswert manchmal Probleme macht, habe ich weiter analysiert und mögliche Fehlerquellen gefunden. Besonders wenn der Puffer in der httpd-Ausgabe klein (oder -1) ist und FHEM in längeren Abständen liest, ist der Wert sehr ungenau.
In der angehängten Version habe ich noch einige Änderungen vogenommen:
- Für den Durchschnittswert merke ich mir nun das letzte Änderungsdatum (soweit genügend Pufferdaten vorhanden) anstatt Auslesedatum.
- Mit dem neuen Parameter VZLOGGER_show0avg kannst du nun auch 0-Werte anzeigen lassen.
- Das Readings-Format für energy_current, energy_avg habe ich von kWh auf W umgestellt. Vorsicht bei vorhandenen Log-Dateien! Findet ihr das gut, oder war der ungenaue kWh-Wert besser?
- Überarbeitetes und einheitliches state-Format für alle Modus mit Pfeil nach oben/unten als Trendanzeige
(https://forum.fhem.de/index.php?action=dlattach;topic=40766.0;attach=48622;image)

Leider habe ich noch Unterschiede in der Zählerstandsberechnung von S0 und Leistungswerten, deshalb bitte ich euch das Modul richtig durchzutesten.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: persching am 25 März 2016, 22:30:09
Hallo zusammen,
ich hab zwei Sensus PolluCom E Wärmemengenzähler, die ich gerne mit vzlogger auslesen würde. Ich hab vzlogger installiert bzw. selbst kompiliert, hab ein define für vzlogger erstellt, aber ich bekomme keine Daten raus. Logisch, weil ich nicht so recht weiß, was ich in die vzlogger.conf eintragen muss. Angeblich ist es möglich die Wärmemengenzähler mit dem Volkszähler auszulesen. Also muss es doch eine funktionierende .conf Datei geben. Ich kann aber nix finden. Kann mir jemand helfen, wie ich mich dem Thema nähern kann?

Ich habe z.b. schon einmal das Protokoll gefunden was gesendet und was ausgelesen wird:

http://wiki.volkszaehler.org/doku.php/hardware/channels/meters/warming/sensus_pollucom (http://wiki.volkszaehler.org/doku.php/hardware/channels/meters/warming/sensus_pollucom)

Ich kann den Wärmemengenzähler auch mit dem Tool des Herstellers auslesen (das beweist lediglich, dass der IR-Lesekopf funktioniert).

Ich hab schon viel gegoogled, aber ich komme hier einfach nicht voran und hoffe, dass mich wenigstens jemand auf den richtigen Weg bringen kann.

Gruß persching
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 26 März 2016, 21:54:42
Hallo persching,

diese Fragen solltest du besser in der Mailingliste von volkszaehler.org (oder in diesem Forum  (http://www.photovoltaikforum.com/volkszaehler-org-f131) ) stellen.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 03 April 2016, 23:10:57
Hallo optimizer,

ich habe das neue Modul getestet.

Fazit: Ich werde mein altes, angepasstes VZLOGGER-Modul durch das neue Modul ablösen.

Viele Grüße
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 09 April 2016, 17:13:06
Zitat von: optimizer am 15 März 2016, 22:33:13
Leider habe ich noch Unterschiede in der Zählerstandsberechnung von S0 und Leistungswerten, deshalb bitte ich euch das Modul richtig durchzutesten.
Die Unterschiede kommen von einem Bug in der Durchschnittsberechnung im Programm vzlogger. Bis auf weiteres ist es deshalb ratsam in der vzlogger.conf "aggmode": "none" unter "channels" einzustellen.

In FHEM VZLOGGER Version 0.6 habe ich keine Probleme mehr gefunden und läuft stabil.
Das reading "energy_avg", das den Durchschnitt im letzten Auslesezeitraum (delay) rechnet, läuft einwandfrei.

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 21 Mai 2016, 08:15:43
Hi,

wollte mal nachfragen wie ihr das genau mit dem Statistics Modul macht und den entsprechenden log Einträgen.
Ich bekomme hier sowas:
2016.05.21 08:09:16 5: statistics statisticsVerbrauch: Notify.263 Notification of 'KeyValueProtocol_LGW_1302972' received. Device not monitored.
2016.05.21 08:09:16 5: statistics statisticsZaehlerstand: Notify.263 Notification of 'KeyValueProtocol_LGW_1302972' received. Device not monitored.


Meine Definition sieht folgendermaßen aus:
define Verbrauch_aktuell VZLOGGER localhost 8080 167
attr Verbrauch_aktuell VZLOGGER_modus Zählerstand
attr Verbrauch_aktuell VZLOGGER_unit kWh
attr Verbrauch_aktuell connectTimeout 7
attr Verbrauch_aktuell delay 120
attr Verbrauch_aktuell group Strom
attr Verbrauch_aktuell room Volkszaehler
#attr Verbrauch_aktuell delay 60
define FileLog_Verbrauch_aktuell FileLog ./log/Verbrauch_aktuell-%Y-%m.log Verbrauch_aktuell
attr FileLog_Verbrauch_aktuell logtype text

define Zaehlerstand VZLOGGER localhost 8080 180
attr Zaehlerstand VZLOGGER_corrF 0.001
attr Zaehlerstand VZLOGGER_modus Zählerstand
attr Zaehlerstand VZLOGGER_unit kWh
attr Zaehlerstand connectTimeout 7
attr Zaehlerstand delay 120
attr Zaehlerstand group Strom
attr Zaehlerstand room Volkszaehler
#attr Zaehlerstand delay 60
define FileLog_Zaehlerstand FileLog ./log/Zaehlerstand-%Y-%m.log Zaehlerstand
attr FileLog_Zaehlerstand logtype text

define statisticsVerbrauch statistics Verbrauch_aktuell
attr statisticsVerbrauch deltaReadings energy

define statisticsZaehlerstand statistics Zaehlerstand
attr statisticsZaehlerstand deltaReadings energy

Hab ich da was falsch gemacht? / Kann ich da was optimieren? event-change-on-reading würde doch auch SInn machen, oder?

Danke & Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 12 August 2016, 10:32:39
Zitat von: optimizer am 06 Januar 2016, 23:17:39
@TobiJa, die Differenz jeden Monat ist ausreichend, aber ich kenne keinen einfacheren Weg als über das statistics Modul und ein FileLog auf die statistik Werte (statEnergyMonthLast). In die erzeugte Textdatei habe ich auch ältere Werte manuell nachgetragen (eventuell FHEM herunterfahren). Hast Du einen einfacheren Weg?
Hi Karlheinz,

wollte mich jetzt noch mal an das Thema Statistik machen. Hast Du da ein eigenes Log für geschrieben?
Kannst Du deinen svg code mal zur Verfügung stellen?

Danke & Gruß,
Tobi
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Bootscreen am 27 Oktober 2016, 13:02:08
Hy optimizer,

dank dir für das wunderbare Modul. Aber irgendwie will das bei mir noch nich so ganz. Vllt kannst du mir helfen.

Gibt es eine Möglichkeit bei den Zählerstandsangaben den avg und current zu deaktivieren?
In meinem Fall bräuchte ich den avg nicht da ich den aktuellen Verbauch / Einspeisung über eigene Channels auslesen kann und das Wahrscheinlich etwas genauer ist.
Und current bräuchte ich auch nicht da current Runder und damit auch ungenauer ist.
Hier mal ein List von entsprechendem Device:
ZitatInternals:
   CFGFN
   DEF        192.168.66.34 8080 2b98f3f0-9b38-11e6-a810-4780fc9fb361
   NAME       Zaehler.Ausgehend.Gesamt
   NR         397889
   STATE             no data for 2b98f3f0-9b38-11e6-a810-4780fc9fb361. (last energy value: 1092.96)
   TYPE       VZLOGGER
   VERSION    0.6
   vzlogger_protocol d0
   vzlogger_version 0.6.0
   Readings:
     2016-10-27 12:49:47   energy          1092.96
     2016-10-27 12:31:39   energy_avg      32788800.0
     2016-10-27 12:49:47   energy_current  1093.0
     2016-10-27 12:49:47   state                  no data for 2b98f3f0-9b38-11e6-a810-4780fc9fb361. (last energy value: 1092.96)
   Helper:
     Channel    2b98f3f0-9b38-11e6-a810-4780fc9fb361
     Host       192.168.66.34
     HostPort   8080
     TimerInterval 120
     TimerStatus Zaehler.Ausgehend.Gesamt.STATUS
     delayCounter 0
Attributes:
   VZLOGGER_modus Zählerstand
   connectTimeout 7
   delay      120

Und beim Modus Leistung bin ich irgendwie auch etwas verwirrt.
Hier mal das List des Devices:
ZitatInternals:
   CFGFN
   DEF        192.168.66.34 8080 58956220-9b42-11e6-b58e-dffb7bbd114a
   NAME       Zaehler.Eingehend.aktueller_Verbrauch
   NR         397809
   STATE       0.6 W (0.7 kWh 2016-10-27 12:46:48)
   TYPE       VZLOGGER
   VERSION    0.6
   vzlogger_protocol d0
   vzlogger_version 0.6.0
   Readings:
     2016-10-27 12:46:59   energy          0.70606
     2016-10-27 12:46:59   energy_avg      0.6
     2016-10-27 12:46:59   energy_current  0.6
     2016-10-27 12:46:59   state            0.6 W (0.7 kWh 2016-10-27 12:46:48)
   Helper:
     Channel    58956220-9b42-11e6-b58e-dffb7bbd114a
     Host       192.168.66.34
     HostPort   8080
     TimerInterval 120
     TimerStatus Zaehlerstand_aktueller_Verbrauch.STATUS
     delayCounter 0
Attributes:
   VZLOGGER_modus Leistung
   connectTimeout 7
   delay      120
und dann der Codeüber die HTTP Abfrage.
{ "version": "0.6.0", "generator": "vzlogger", "data": [ { "uuid": "872ac8b0-9c19-11e6-90db-5d7c1163a290", "last": 1477565212424, "interval": 60, "protocol": "d0", "tuples": [ [ 1477565212424, 68.129999999999995 ] ] } ] }
avg und current sind zu ungenau und energy hat irgendwie nen ganz andren Wert. oO

Wäre es möglich so eine Art simple Mode einzubauen? So das nur noch die Werte angezeigt werden die ausgelesen werden? Und vielleich beim modus Leistung mit einer Tendenz zum vorherigem Wert?
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: roadrunnner am 08 Februar 2017, 19:52:21
Hallo,

ich habe den vzlogger mit Frontend auf einem Pi2 laufen und jetzt versucht, die Werte in FHEM auf einem weiteren Pi3 mit dem vzlogger-Modul einzubinden - leider ohne Erfolg. In der fhem.log taucht diese Meldung auf:
"2017.02.08 19:37:42 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/23_VZLOGGER.pm line 319. Undefined subroutine &main::Dumper called at ./FHEM/23_VZLOGGER.pm line 348"
Zudem lädt nach der ersten Abfrage an den vzlogger die FHEM-Website im 5s-Rhythmus neu. Bin ein wenig ratlos   :-\

Gruss

roadrunnner
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 18 März 2017, 01:57:05
Sorry fürs späte antworten, aber anscheinend hat die E-Mail-Erinnerung nicht funktioniert.

@Bootscreen:
Zitat von: Bootscreen am 27 Oktober 2016, 13:02:08
Gibt es eine Möglichkeit bei den Zählerstandsangaben den avg und current zu deaktivieren?
Nein, die readings sollten aber auch nicht stören. Der avg-Wert ist seltsam. Ich vermute der buffer in vzlogger.conf ist zu klein; setze ihn mal auf 600.
Ich habe noch eine älteres vzlogger-Programmversion (0.5.2) im Einsatz. Ich werd mal updaten und prüfen, obs daran liegen kann.
Bei "Leistung" schreibe ich in das state-reading auch eine Trendanzeige / Trend vor den Leistungswert.

@roadrunner: Ich verwende die JSON u. Dumper-library. Vielleicht musst du diese  mit "cpan JSON" nachinstallieren. Die Zeile 348 ("VZLOGGER_Log $hash, 5, "tuples Dumper: \n".Dumper($f);") könntest du auch mit "#" davor auskommentieren.
Mit dem Parameter "delay" kannst du die Pause in Sekunden zwischen den Abfragen einstellen. Versuch mal delay=180

Gruß
Karlheinz
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 05 April 2017, 22:12:54
Vielen Dank für das tolle Modul, das ist sehr hilfreich - ich möchte nämlich FHEM als meine Hausautomationszentrale haben und nicht mehrere parallele Systeme betreiben. Allerdings habe ich hierzu eine Frage. Ich dachte, ich könnte die middleware beim Volkszähler einsparen, erhalte aber in der Log regelmäßige Fehlermeldungen der Form
2017.04.05 22:05:17 2: VOLKSZAEHLER Can't get http://192.168.2.110:8080/middleware.php/data/e18.json?from=60%20seconds%20ago&tuples=1 -- 500 Can't connect to 192.168.2.110:8080
2017.04.05 22:06:17 2: VOLKSZAEHLER Can't get http://192.168.2.110:8080/middleware.php/data/e18.json?from=60%20seconds%20ago&tuples=1 -- 500 Can't connect to 192.168.2.110:8080


Meine Installation sieht so aus:
{
"retry" : 3,
"daemon": true,
"verbosity" : 0,
"log" : "/tmp/vzlogger.log",

"local" : {
"enabled" : true,
"port" : 8080,
"index" : true,
"timeout" : 30,
"buffer" : 600
},

"meters" : [{
"protocol" : "sml",
"enabled" : true,
"device" : "/dev/ttyUSB0",
"parity" : "8N1",
"baudrate" : 9600,
"aggtime" : -1,
"aggfixedinterval" : true,
"channels": [{
"uuid" : "e18", //Vorschlag für eindeutigen Identifier. nur Buchstaben von a - f u. Zahlen erlaubt
"identifier" : "Power", /* bei Impulszähler ist Power oder Impulse erlaubt */
"type": "device",
"aggmode": "none",
"scaler": 1,        // neu
"duplicates": 0     // neu
}]
}
]}


und es handelt sich um einen https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/emh-ehz-h1 (https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/emh-ehz-h1) bzw EMH eHZ-H Meter. Eventuell kann mir jemand helfen?
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: optimizer am 05 April 2017, 22:50:50
Hallo Andies,

deine Meldungen klingen mehr nach dem Modul VOLKSZAEHLER, dass auch in diesem Forum angeboten wird - hier wird aber die volkszähler-middleware abgefragt.
Bist du sicher, dass die Meldung aus dem Modul VZLOGGER kommt? Installationshinweise und das Modul findest du im ersten Beitrag.
Für mehr Details kannst du kurzfristig das Logging Level im Modul mit verbose auf 4 erhöhen. Ein list <modulname> wäre auch hilfreich.

Der identifier "Power" in deiner vzlogger.conf kann bei sml nicht stimmen. Versuch es mal mit "1-0:1.8.0"

Gruß
optimizer
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 06 April 2017, 11:47:31
Das war natürlich das falsche Modul, vielen Dank!

Leider stehe ich nach wie auf auf dem Schlauch, ich verstehe zu viel noch nicht. Power habe ich geändert, bei mir läuft allerdings vzlogger als Dienst (soll ich das ändern?). Wenn ich ihn aufrufe und 23_VZLOGGER installiere, erscheint aber
ERROR while requesting: 192.168.2.110: Verbindungsaufbau abgelehnt

Der Logger ist auch via 192.168.2.110 nicht erreichbar ("Verbindungsaufbau abgelehnt"), selbst wenn ich
./vzlogger -l
starte. Ich habe nicht mal eine Idee, wo ich suchen soll. Vielen Dank für diejenigen, die mir helfen können!

PS
Internals:
   CFGFN
   DEF        192.168.2.110 8080 e18
   NAME       Stromzaehler
   NR         66
   STATE      ERROR while requesting: 192.168.2.110: Verbindungsaufbau abgelehnt
   TYPE       VZLOGGER
   VERSION    0.6
   Readings:
     2017-04-06 11:45:32   state           ERROR while requesting: 192.168.2.110: Verbindungsaufbau abgelehnt
   Helper:
     Channel    e18
     Host       192.168.2.110
     HostPort   8080
     TimerInterval 240
     TimerStatus Stromzaehler.STATUS
     delayCounter 0
Attributes:
   VZLOGGER_modus Leistung
   connectTimeout 7
   delay      240
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: KölnSolar am 06 April 2017, 11:58:02
In Deinem vorletzten Post hattest Du ja ein USB-Device angesprochen. Dann könntest Du auch das OBIS-Modul ausprobieren und den Middlewarekram sparen.
Grüße Markus
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 06 April 2017, 14:14:13
Aber das geht nur, wenn Udos IR-Kopf via USB am FHEM hängt, oder? Leider sind beide bei mir zehn Meter entfernt und dazwischen liegen mehrere Mauern. Oder gibt es bei OBIS so etwas wie eine IP-Schnittstelle? Die commandref scheint nur auf USB zu verweisen....
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: KölnSolar am 06 April 2017, 15:24:35
recht hast Du, deshalb hatte ich ja auf Deinen Post mit USB verwiesen :'(
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 06 April 2017, 15:58:52
Inzwischen läuft alles bei mir und wen ich ehrlich bin,  weiß ich nicht mal, wieso das alles klappt. Manchmal ist das rätselhaft. (Ich finde übrigens den IR-Kopf von Udo super, aber diese Riesensoftware, die da dran hängt, eher abschreckend - ich bin schon froh, dass ich FHEM so halbwegs "meistere").

Ich setze mich jetzt mal ans optimieren. Danke für das Modul!
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Romoker am 06 April 2017, 20:21:39
Hallo andies,

noch folgende Hinweise:

Wenn du die Volkszähler-Middleware nicht nutzt, solltest du in der vzlogger.conf in der Meters-Sektion "api = null" setzen.
In deinem Fall etwa so:
"channels": [{
"uuid" : "e18",
"identifier" : "1-0:1.8.0",
"api": "null",
"aggmode": "none",
"scaler": 1,        // neu
"duplicates": 0     // neu
}]


Das Fhem-Modul VZLOGGER greift die Daten vom vzlogger-HTTPD-Server ab, der in der vzlogger.conf mit  "enabled": true und "port": 8080 korrekt definiert ist.  Ob der HTTPd-Server auch Daten zur Verfügung stellt, kann man einfach über einen direkten Browseraufruf, in deinem Fall 192.168.2.110:8080, testen.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 06 April 2017, 21:45:36
Habe ich - danke!
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 06 April 2017, 22:06:56
Jetzt muss ich nochmal nachhaken. Ich möchte gern die Differenz der Zählerstände ausgeben. Ich dachte mir, ich mache das mit einem userreading. Wenn ich
energy_differenz difference { ReadingsVal("Stromzaehler","energy",0) }
wähle, geht auch alles gut. Nur sind das Nachkommastellen, also habe ich das auf ganzzahlige Werte heben wollen. Nur klappt das nicht, wenn ich nämlich
energy_differenz difference { ReadingsVal("Stromzaehler","energy",0)*10000;; }
eingebe, wird der Wert nicht mehr korrekt ausgerechnet. Das muss irgendein idiotischer Fehler sein. Sieht den jemand?

PS
defmod Stromzaehler VZLOGGER keller.local 8080 e18
attr Stromzaehler VZLOGGER_corrF 0.001
attr Stromzaehler VZLOGGER_modus Zählerstand
attr Stromzaehler connectTimeout 7
attr Stromzaehler delay 60
attr Stromzaehler userReadings energy_differenz difference { ReadingsVal("Stromzaehler","energy",0)*10000;;;; }


<EDIT> Jetzt scheint es zu gehen. Komisch. Ich verwende sogar
energy_differenz difference { round(ReadingsVal("Stromzaehler","energy",0),1) }
(Anm: Dazu muss man die entsprechende Bibliothek installiert haben, sudo apt-get install libmath-round-perl.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 22 November 2017, 17:32:06
Ich muss hier noch einmal nachfragen, weil mein RPi abgestürzt ist und ich den vzlogger neu installieren musste. Die Webseite, auf der man dazu Hilfe bekommt, ist in meinen Augen sehr chaotisch - ich finde da wirklich nichts (verschobene Links etc.). Kann mir jemand mit meiner vzlogger.conf helfen, sie startet den daemon nicht
/*
* http://volkszaehler.github.io/vzlogger/
*/

{
    // General settings
    "daemon": true,        // run periodically
    "verbosity": 15,         // log verbosity (0=log_alert, 1=log_error, 3=log_warning, 5=log_info, 10=log_debug, 15=log_finest)
    "log": "/var/log/vzlogger.log", // log file, optional
    "retry": 3,            // http retry delay in seconds

    // Build-in HTTP server
    "local": {
        "enabled": true,   // enable local HTTPd for serving live readings WAR FALSE!!!
        "port": 8080,       // TCP port for local HTTPd
        "index": true,      // provide index listing of available channels if no UUID was requested
        "timeout": 30,      // timeout for long polling comet requests in seconds (0 disables comet)
        "buffer": 600        // HTTPd buffer configuration for serving readings, default -1
                            //   >0: number of seconds of readings to serve
                            //   <0: number of tuples to server per channel (e.g. -3 will serve 3 tuples)
    },

    // Meter configuration
"meters" : [{
"protocol" : "sml",
"enabled" : true,
"device" : "/dev/ttyUSB0",
"parity" : "8N1",
"baudrate" : 9600,
"aggtime" : -1,
"aggfixedinterval" : true,
"channels": [{
"uuid" : "e18", //Vorschlag für eindeutigen Identifier. nur Buchstaben von a - f u. Zahlen erlaubt
"api : "null",
"identifier" : "1-0:1.8.0", /* bei Impulszähler ist Power oder Impulse erlaubt */
"type": "device",
"aggmode": "none",
"scaler": 1,        // neu
"duplicates": 0     // neu
}]
}
]
}


Insbesondere wundert mich, dass ich gar keine log beobachte. Die wird einfach nicht angelegt.

Ich kriege
pi@Keller:~ $ systemctl status vzlogger.service
● vzlogger.service - vzlogger
   Loaded: loaded (/etc/systemd/system/vzlogger.service; disabled)
   Active: inactive (dead)
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 23 November 2017, 05:31:58
Erledigt. Die Seite, auf der die Conf genauer beschrieben wird, ist die folgende:
http://wiki.volkszaehler.org/software/controller/vzlogger/conf_parameter

Wenn man das Zeile für Zeile durchgeht, sollte es gehen.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: AnDiBaCkE am 30 Dezember 2019, 22:20:22
Hallo zusammen,

ich versuche gerade meinen Volkszähler per VZLOGGER in FHEM einzubinden. Die Middleware läuft soweit und der Zähler liefert Werte.
Leider erhalte ich im FHEM folgende Fehlermeldung: Error wrong uuid. Please check vzlogger.conf and channel 7798b460-2b37-11ea-b43c-dbeab45dcb23
Ich habe in der vzlogger.conf folgende zwei Channels definiert:
{
  "retry": 0,
  "daemon": true,
  "verbosity": 15,
  "log": "/var/log/vzlogger.log",
  "local": {
    "enabled": true,
    "port": 8080,
    "index": true,
    "timeout": 30,
    "buffer": 30
  },
  "meters": [
    {
      "enabled": true,
      "allowskip": false,
      "interval": -1,
      "aggtime": 60,
      "aggfixedinterval": true,
      "channels": [
        {
          "uuid": "59a6c8a0-2b37-11ea-905e-21558e92f92a",
          "identifier": "255-255:1.8.0*0",
          "api": "volkszaehler",
          "middleware": "http://127.0.0.1/middleware.php",
          "aggmode": "max",
          "duplicates": 30
        },
        {
          "uuid": "7798b460-2b37-11ea-b43c-dbeab45dcb23",
          "identifier": "255-255:2.8.0*0",
          "api": "volkszaehler",
          "middleware": "http://127.0.0.1/middleware.php",
          "aggmode": "max",
          "duplicates": 30
        }
      ],
      "protocol": "d0",
      "device": "/dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_DN05ZR4D-if00-port0",
      "pullseq": "2F3F210D0A",
      "ackseq": "063030300D0A",
      "baudrate": 300,
      "parity": "7e1",
      "baudrate_change_delay": 0
    }
  ]
}


Ich habe schon alles mögliche ausprobiert.
Ist es ggf. ein Problem das die Middleware parallel mitläuft?
Kann es sein das er mit den beiden Channels nicht klar

Vielen Dank!

Gruß,
AnDiBaCkE
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 30 Dezember 2019, 22:36:23
uuid ist in jedem Fall falsch (aber evtl nicht der einzige Fehler). Es gibt eine von FHEM, die ist FHEM-intern. Die hast du nun in die VZLOGGER-config geschrieben, da gehört sie aber nicht hin. Schreib einfach
uuid" : "e18"
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 30 Dezember 2019, 22:37:47
Und identifier mE auch. Lies mal das hier,
https://wiki.volkszaehler.org/software/controller/vzlogger/vzlogger_conf_parameter?redirect=1 (https://wiki.volkszaehler.org/software/controller/vzlogger/vzlogger_conf_parameter?redirect=1)
Die 255 sind in jedem Fall nicht richtig.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: AnDiBaCkE am 31 Dezember 2019, 11:21:32
Hallo andies,

Danke für die schnelle Antwort. Grundsätzlich habe ich die vzlogger.conf entsprechend meinem Pafal Zähler https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/pafal-20ec3gr (https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/pafal-20ec3gr) befüllt. Die UUID wird von der Volkszähler Middleware generiert und muss entsprechend auch mit rein. Hier besteht wahrscheinlich das Problem. Ich muss mich wohl jetzt für das VZLOGGER oder Volkszähler Modul entscheiden :( Ich hatte gehofft das ich wenigstens für eine Zeit lang beides parallel fahren kann.

Siehst du das genauso oder gibt es jemanden im Forum der beides parallel macht?

Gruß,
AnDiBaCkE
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: andies am 31 Dezember 2019, 11:42:41
Ich fand Volkszähler immer überladen. VZLOGGER reicht wirklich und du kannst mit FHEM eine Menge anderer Sachen machen. Ich kenne niemanden, der das doppelt laufen lässt.
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: StephanFHEM am 23 Januar 2020, 00:07:34
also, bei mir lief bisher beides parallel ohne Probleme. Nach einer Neu-Installation und Update auf Buster funktioniert es plötzlich nicht mehr.
Ich finde den Channel unter Port 8080 und auch ohne Angabe vom Port in der normalen Middleware. Nur das Modul in FHEM scheint es nicht zu finden.

Hat sich vielleicht etwas am Pfad geändert? Das Modul ist ja auch schon einen Tag älter..

hab gerade mal etwas getestet und mir den Pfad-Aufruf mit Verbose angeschaut:
er will folgendes aufrufen

http://192.168.xx.yy:8080/71111110-3111-111a-9115-25111339a604

da bekomme ich auch keine Rückantwort wenn ich das im Browser eingebe. Gebe ich aber folgendes ein bekomme ich Daten:

http://192.168.xx.yy:8080/data/71111110-3111-111a-9115-25111339a604.json

Update: scheint wohl doch am Port gelegen zu haben. Bin jetzt in Local auf Port 8081 gegangen und dort läuft es wieder mit Abruf wie im ersten Link. Komisch aber gut:-) Es geht jetzt auf jeden Fall wieder parallel
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: maci am 06 April 2020, 21:06:16
Hallo,

Ich verwende derzeit die komplette Version von Volkszähler.
Ich habe einen TD3511 Stromzähler, denn ich derzeit eben Volkszähler mit dem OMS Protokoll auslese. Die Daten hole ich dann mit Fhem ab.

Ich gebe derzeit auch die Daten an die Middleware weiter und stelle sie mit dem Frontend dar. Hier hole ich die Daten auch mit Fhem wieder ab.

Möchte das ganze nun auf neue Beine stellen und überlege nur den vzlogger zu nutzen.

Ist das möglich bei einer OMS Schnittstelle, denn ich lese im ganzen Thread nicht davon?

Gruß
Georg

Titel: Antw:neues Modul: VZLOGGER
Beitrag von: mar5 am 09 Februar 2022, 23:01:17
Hallo,

ich wollte mich für das VZLOGGER Modul bedanken.

Folgende Konfiguration habe ich:

Auf einem RaspiZero läuft
- VZLogger für Strom über SML-Protokoll (Verbrauch und Zählerstand)
- VZlogger für Gas, Wasser per Infrarotdetektion über D0/OBIS Protokoll (Verbrauch und Zählerstand mit vorheriger Eingabe des Zählerstandes)
- OpenV für Vitodens 200 + Solar für Warmwasser

FHEM holt sich über das Modul VZLOGGER und VCLIENT die Daten ab.
Nun geht es ans Testen, wie gut und stabil es läuft.

Danke,
Mar5
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: it-place am 22 Oktober 2022, 16:20:31
Hallo,

ich habe vor kurzem die Auswertung meines Stromzählers mit Deinem Modul "23_VZLOGGER.pm" in Betrieb genommen. Funktioniert bestens! Warum ist das Modul denn nicht inzwischen Teil des Fhem-Pakets? Im frisch heruntergeladenen fhem-6.1.tar.gz habe ich das Modul nicht gefunden... ;)

Viele Grüße - Olli
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: Ingo298 am 09 Dezember 2022, 07:35:37
Ich hole seit ca. 2 Jahren die Daten vom Siemens TD3511 über vzlogger ohne Middleware ab.
das ist meine vzlogger.conf
{
    // General settings
    "verbosity": 5,         // log verbosity (0=log_error and log_warning, 5=log_info, 10=log_debug, 15=log_fines$
    //"log": "/var/log/vzlogger.log", // log file, optional
    "retry": 30,            // http retry delay in seconds

    // Build-in HTTP server
    "local": {
        "enabled": true,   // enable local HTTPd for serving live readings
        "port": 8086,       // TCP port for local HTTPd
        "index": true,      // provide index listing of available channels if no UUID was requested
        "timeout": 30,      // timeout for long polling comet requests in seconds (0 disables comet)
        "buffer": -1        // HTTPd buffer configuration for serving readings, default -1
                            //   >0: number of seconds of readings to serve
                            //   <0: number of tuples to server per channel (e.g. -3 will serve 3 tuples)
    },

    // realtime notification settings
    "push": [

             // notification destination, e.g. frontend push-server

    ],

    // Meter configuration
    "meters" : [
      {
"enabled": true,
"allowskip": true,
"protocol": "d0",
"device": "/dev/lesekopf0",
"parity": "7e1",
"baudrate": 300,
"pullseq": "2F3F210D0A",
"ackseq": "063035300d0a",
"read_timeout": 10,
"baudrate_change_delay": 400,
"baudrate_read": 9600,
"aggtime": -1,     
"interval": 30,
"aggfixedinterval": false,
"wait_sync": "off",
      "channels": [
{
"api" : "null",
                "uuid" : "180",
                "identifier" : "1.8.0", /* Verbrauch gesamt) */
                }, {
                "api" : "null",
                "uuid" : "181",
                "identifier" : "1.8.1", /* Verbrauch HT) */
                },{
                "api" : "null",
                "uuid" : "182",
                "identifier" : "1.8.2", /* Verbrauch NT) */
                }, {
"api" : "null",
                "uuid" : "280",
                "identifier" : "2.8.0", /* Einspeisung gesamt */
                }, {
                "api" : "null",
                "uuid" : "170",
                "identifier" : "1.7.0", /* Verbrauch aktuell */
                },  {
"api" : "null",
                "uuid" : "270",
                "identifier" : "2.7.0", /* Einspeisung aktuell */
                }, {
                "api" : "null",
                "uuid" : "327",
                "identifier" : "32.7", /* Spannung L1*/
                }, {
                "api" : "null",
                "uuid" : "317",
                "identifier" : "31.7", /* Strom L1 */
                }, {
"api" : "null",
                "uuid" : "517",
                "identifier" : "51.7", /* Strom L2 */
                }, {
"api" : "null",
                "uuid" : "717",
                "identifier" : "71.7", /* Strom L3 */
                }, {
                "api" : "null",
                "uuid" : "147",
                "identifier" : "14.7", /* Frequenz */
                }



]
         }]
}


und die define im fhem

define Zaehler_gesamt VZLOGGER localhost 8086 180
attr Zaehler_gesamt DbLogExclude .*
attr Zaehler_gesamt DbLogInclude energy_current,statEnergyHourLast,statEnergyDayLast,statEnergyMonthLast,statEnergyYearLast
attr Zaehler_gesamt VZLOGGER_modus Zählerstand
attr Zaehler_gesamt VZLOGGER_show0avg 0
attr Zaehler_gesamt VZLOGGER_unit kWh
attr Zaehler_gesamt alias Zaehler_gesamt
attr Zaehler_gesamt delay 120
attr Zaehler_gesamt event-on-change-reading stat.*,EnergyDay,energy_current,energy,power,voltage,current
attr Zaehler_gesamt verbose 0
#   DEF        localhost 8086 180
#   FUUID      5c43191f-f33f-d049-fb12-4523b54475f2d004
#   NAME       Zaehler_gesamt
#   NR         91
#   STATE      ▾ 291.0 W (12284.55 kWh 2022-12-09 07:29:37)
#   TYPE       VZLOGGER
#   VERSION    0.6
#   eventCount 5605
#   vzlogger_protocol d0
#   vzlogger_version 0.8.1
#   Helper:
#     DBLOG:
#       energy_current:
#         DBLogging:
#           TIME       1670567393.67565
#           VALUE      12284.550 kWh
#       statEnergyDayLast:
#         DBLogging:
#           TIME       1670540395.1477
#           VALUE      4.124
#       statEnergyHourLast:
#         DBLogging:
#           TIME       1670565595.15176
#           VALUE      0.364
#   READINGS:
#     2022-12-09 07:29:53   energy          12284.55
#     2022-12-09 07:29:53   energy_avg      291.0
#     2022-12-09 07:29:53   energy_current  12284.550 kWh
#     2022-12-09 07:29:56   statEnergy      Hour: 0.163 Day: 1.215 Month: 42.868 Year: 1761.166
#     2022-12-09 07:29:56   statEnergyDay   1.215
#     2022-12-08 23:59:55   statEnergyDayLast 4.124
#     2022-12-09 07:29:56   statEnergyHour  0.163
#     2022-12-09 06:59:55   statEnergyHourLast 0.364
#     2022-12-09 06:59:55   statEnergyLast  Hour: 0.364 Day: 4.124 Month: 146.486 Year: 1906.221
#     2022-12-09 07:29:56   statEnergyMonth 42.868
#     2022-11-30 23:59:55   statEnergyMonthLast 146.486
#     2022-12-09 07:29:56   statEnergyYear  1761.166
#     2021-12-31 23:59:55   statEnergyYearLast 1906.221
#     2022-12-09 07:29:53   state           ▾ 291.0 W (12284.55 kWh 2022-12-09 07:29:37)
#   helper:
#     Channel    180
#     Host       localhost
#     HostPort   8086
#     TimerInterval 120
#     TimerStatus Zaehler_gesamt.STATUS
#     _98_statistics stat_Strom
#     delayCounter 0
#
setstate Zaehler_gesamt ▾; 291.0 W (12284.55 kWh 2022-12-09 07:29:37)
setstate Zaehler_gesamt 2022-12-09 07:29:53 .time_last_change 1670567377202
setstate Zaehler_gesamt 2022-12-09 07:29:53 .time_offset 1670567377202
setstate Zaehler_gesamt 2022-12-09 07:29:53 energy 12284.55
setstate Zaehler_gesamt 2022-12-09 07:29:53 energy_avg 291.0
setstate Zaehler_gesamt 2022-12-09 07:29:53 energy_current 12284.550 kWh
setstate Zaehler_gesamt 2022-12-09 07:29:56 statEnergy Hour: 0.163 Day: 1.215 Month: 42.868 Year: 1761.166
setstate Zaehler_gesamt 2022-12-09 07:29:56 statEnergyDay 1.215
setstate Zaehler_gesamt 2022-12-08 23:59:55 statEnergyDayLast 4.124
setstate Zaehler_gesamt 2022-12-09 07:29:56 statEnergyHour 0.163
setstate Zaehler_gesamt 2022-12-09 06:59:55 statEnergyHourLast 0.364
setstate Zaehler_gesamt 2022-12-09 06:59:55 statEnergyLast Hour: 0.364 Day: 4.124 Month: 146.486 Year: 1906.221
setstate Zaehler_gesamt 2022-12-09 07:29:56 statEnergyMonth 42.868
setstate Zaehler_gesamt 2022-11-30 23:59:55 statEnergyMonthLast 146.486
setstate Zaehler_gesamt 2022-12-09 07:29:56 statEnergyYear 1761.166
setstate Zaehler_gesamt 2021-12-31 23:59:55 statEnergyYearLast 1906.221
setstate Zaehler_gesamt 2022-12-09 07:29:53 state ▾; 291.0 W (12284.55 kWh 2022-12-09 07:29:37)
Titel: Antw:neues Modul: VZLOGGER
Beitrag von: onkel-tobi am 11 Dezember 2022, 15:45:37
Zitat von: StephanFHEM am 23 Januar 2020, 00:07:34
Es geht jetzt auf jeden Fall wieder parallel
Kannst Du bitte mal deine configs posten?
Ich bekomme es aktuell nicht hin.
In FHEM selbst läuft es, solange ich das USB Kabel lokal habe und die API ausgeschaltet habe.
Nun wollte ich aber das ganze voneinander trennen, sprich eigenen Raspi für das Thema Strom ablesen um meinen FHEM Raspi in den Serverraum zu packen.

Dazu habe ich das neueste VZ IMage verwendet und folgende config erstellt:

{
    // General settings
    "verbosity": 5,         // log verbosity (0=log_alert, 1=log_error, 3=log_warning, 5=log_info, 10=log_debug, 15=log_finest)
    "log": "/var/log/vzlogger/vzlogger.log", // log file, optional
    "retry": 30,            // http retry delay in seconds

    // Build-in HTTP server
    "local": {
        "enabled": false,   // enable local HTTPd for serving live readings
        "port": 8080,       // TCP port for local HTTPd
        "index": true,      // provide index listing of available channels if no UUID was requested
        "timeout": 30,      // timeout for long polling comet requests in seconds (0 disables comet)
        "buffer": -1        // HTTPd buffer configuration for serving readings, default -1
                            //   >0: number of seconds of readings to serve
                            //   <0: number of tuples to server per channel (e.g. -3 will serve 3 tuples)
    },

    // realtime notification settings
    "push": [
        {
            "url": "http://127.0.0.1:5582"  // notification destination, e.g. frontend push-server
        }
    ],

    // Meter configuration
    "meters": [
        {
            // Example SML meter
            "enabled": true,               // disabled meters will be ignored (default)
//            "skip": false,                  // errors when opening meter may be ignored if enabled
            "protocol": "sml",              // meter protocol, see 'vzlogger -h' for full list
            "baudrate" : 9600,
            "device": "/dev/ttyUSB0",       // meter device
//          "host": "http://my.ddns.net::7331",   // uri if meter not locally connected using <device>
            "parity" : "8N1",
            "pullseq" : "2f3f210d0a",        // HEX Darstellung der Pullsequenz
            "aggtime": 10,                  // aggregate meter readings and send middleware update after <aggtime> seconds
            //"resolution": 1000,
            "channels": [{
                "api": "volkszaehler",      // middleware api, default volkszaehler
                //"uuid": "167",
                "uuid": "1000d840-795a-11ed-a169-fdb53813c7fc",
                "middleware": "http://localhost/middleware.php",
                "identifier": "1-0:16.7.0"       // OBIS identifier (alias for '1-0:1.7.ff')
                                            //   see 'vzlogger -h' for available aliases
                                            //   see 'vzlogger -v20' for available identifiers for attached meters
                },
                {
                "api": "NULL",      // middleware api, default volkszaehler
                //"uuid": "180",
                "uuid": "fa08cc10-795c-11ed-bceb-0f291ac770f1",
                "middleware": "http://localhost/middleware.php",
                "identifier": "1-0:1.8.0"
                }]
        }]
}

Wenn sonst wer Ideen hat gerne.
Gruß,
Tobi
Titel: Aw: neues Modul: VZLOGGER
Beitrag von: escriban am 18 April 2023, 09:23:11
Grüezi mitenand

Ich bin neu hier und habe vor drei Wochen FHEM installiert und seit gestern auch den Stromzähler (Siemens TD3511 mit OMS) mit dem Modul 23_VZLOGGER erfolgreich integriert. Es läuft perfekt und deshalb möchte ich hier dem Urheber herzlich danken!
Auch mir ist nicht verständlich, dass dieses Modul inzwischen nicht Bestandteil der Standardmodule von FHEM ist. Im Vergleich zu 23_VOLKSZAEHLER ist 23_VZLOGGER enorm viel schlanker und braucht keine Front- und/oder Middleware bei 'vzlogger' von 'volkszaehler.org'.

Grüsse
Antonio