Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
vzlogger
This description is also available in english.
vzlogger…
- ist ein Werkzeug zum Lesen der Messwerte von Sensoren und Smartmeter um sie an die volkszahler.org Middleware weiterzureichen
- unterstütz auch MySmartGrid und InfluxDB
- kann als daemon im Hintergrund arbeiten oder per cron aufgerufen werden.
- enthält einen kleinen eingebauten httpd um Echtzeitwerte als AJAX-Frontend bereitzustellen
- liefert die Daten auch über einen zweiten, zusätzlichen Push-Kanal aus.
Features
- wertet den Return Code der Middleware aus
- puffert die Werte in Falle von:
- Netzwerktimeout
- ungültigem Middleware Return Code, Fehlern oder Fehlkonfigurationen
- „lokales Interface“ eingebauter httpd
- einfach um weitere Sensoren oder SmartMeter Protokolle zu erweitern
- auf Embedded Systemen lauffähig (Mini-Computer, Raspberry Pi, Router, Flukso, etc..)
- portierbar (entspricht POSIX Standards)
Installation
Vzlogger wird über Github bereitgestellt https://github.com/volkszaehler/vzlogger.
Installationsanleitung
Die Anleitung findet ihr auf einer getrennten Seite: installation_cpp-version.
Zähler & Protokolle
Die folgende Tabelle enthält eine Übersicht der von vzlogger unterstützen Protokolle:
ID | Beschreibung | Status | Beispiel & Anwendung | Links & Referenzen |
---|---|---|---|---|
file | lesen von Datei oder fifo | implemented | OWFS, /proc/ Dateisystem | read(3) |
exec | Programmausagben parsen | untested | digitemp | exec(3) |
sml | SML wie von EDL-21, eHz and SyM2 Zählern genutzt | implemented | SML | |
s0 | S0-Zähler an UART, GPIO oder indirekt über USB angeschlossen | implemented | Rpi-Erweiterung Rev.1 oder klein | |
d0 | DLMS/D0 zeilenbasiertes Textformat | implemented | DIN EN 62056-21 | |
w1therm | 1Wire-Sensoren basierend auf DSxxxxx | implemented | 1Wire Busmaster DS2482 ist Voraussetzung | |
ocr | OCR (Bilderkennung) z.B. über USB-Cam | implemented | http://wiki.volkszaehler.org/meterocr_konfigurieren | |
random | Zufallsgenerator für Werte via random walk | implemented | für Test- und Demonstrationszwecke | |
oms | Open Metering System, based on M-Bus communication | implemented | OMS Group | |
fluksov2 | auslesen des Flukso onboard SPI fifo | implemented | ||
fluksousb | USB-Adapterplatine für S0 und Stromwandler auslesen | planned | fluksousb | 'Bart's Protokoll' |
vsm103 | Voldcraft VSM-103 Drehstromzähler | planned | VSM-103 | |
kd302 | Energiekostenmessgerät KD 302 | planned | KD 302 | |
ccost | Wetterstation vergleichbar mit kommerziellen SmartMeter Systemen | planned | CurrentCost, Umweltsünde, Jibble | |
tweetawatt | KillAWatt mod mit XBee wireless Kommunikation | planned | Sourcecode, Blog | |
ansi | ANSI Standard der ein Protokoll beschreibt wie es für Zweiwegekommunkation mit Stromzählern in Nordamerika genutzt wird. | planned | ANSI C12 |
APIs
Vzlogger ist in der Lage die erfassten Daten an verschiedene Endsysteme, zur weitere Verabeitung oder Speicherung, zu schicken. Das geschieht über den `api` Parameter der für jedem channel konfiguriert wird. Vzloggers Standard-Endsystem ist die Middleware eines volkszaehler. Weitere Endsysteme sind MySmartGrid, InfluxDB und eine 'null' API.
Konfiguration
Die Konfiguration erfolgt über eine Datei die nach JSON kodierte Einstellungen enthält. Einige grundlegende Parameter lassen sich auch über Kommandozeile bestimmen. Es sind ein oder mehr meter in der Konfiguration erforderlich. Channels sind optional. Ein meter kann mehrere channel enthalten und damit auch mehrere Middlewares bedienen.
Alle Zählerprotokolle haben gesonderte Eigenschaften die hier im Detail nicht weiter beschrieben werden. Zu jedem Protokoll gibt es eine kommentierte Beispielkonfiguration. Einzusehen bei github: https://github.com/volkszaehler/vzlogger/blob/master/etc/
Die einzelnen Parameter sind hier im Wiki nochmal in deutsch beschrieben: vzlogger_conf_parameter Konfigurationen diverser Nutzer finden sich im Bereich HowTo.
Als Unterstützung bei der Syntax dient der vzlogger.conf-Editor.
Identifier
Je nach Zähler oder Sensor stehen ein oder mehre Werte zur Verfügung. Um diese den Channels zuordnen zu können sind eindeutige Identifier notwendig. Diese werden zum Teil vom Protokoll oder auch durch die Hardware bestimmt.
Meter | Identifier | Bemerkung |
---|---|---|
SML, D0 | Obis-Codes z.B. 1-0:1.8.0 | Welche Obis-Codes/Identifier gesendet werden ist abhängig vom Gerät |
OMS | Obis-Codes 1.8.0, 2.8.0, 1.7.0, 2.7.0 | max. die 4 Obis-Codes, abhängig vom Gerät |
S0 | „Impulse“ und „Impulse_neg“ | Anzahl Impulse (pro Sekunde) |
S0 | „Power“ und „Power_neg“ | Impulse pro Zeiteinheit umgerechnet in „Leistung“ (per Parameter resolution) |
1Wire | ID des 1-Wire-Sensors | Pro gefundenem Sensor ein Identifer mit Temp. als Wert |
FluksoV2 | 2 pro Channel mittels ChannelId und -ChannelId | Consumption = -ChannelId, Power = +ChannelId |
File, Exec | (leer) oder per $i erkannter Identifier | z.B. $i = $v ⇒ Temperatur = 10 ⇒ Identifier „Temperatur“, Value = 10 |
OCR | konfigurierbar | siehe Config Option „identifier“ |
Random | kein Identifier Name, nur Wert und Zeit |
Kommandozeilenparameter
Parameter | Beispiel (Default) | Beschreibung | |
---|---|---|---|
lang | kurz | ||
--config | -c | /etc/vzlogger.conf | Konfigurationsdatei |
--log | -o | /var/log/vzlogger.log | Logfile |
--daemon | -d | off | im Hintergrund ausführen |
--httpd | -l | off | lokales Interface aktivieren (kleiner httpd für Echtzeitwerte) |
--httpd-port | -p | 8080 | TCP-Port des httpd |
--help | -h | Kurzhilfe | |
--verbose | -vlevel | 0 | tiefe der Ausgabe erhöhen (0-15; 0 = log_alert, 1 = log_error, 3 = log-warning, 5 = log_info, 10 = log-debug, 15 = log_finest) |
--version | -V | Version des vzlogger ausgeben |