Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:vzlogger

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ützt auch MySmartGrid und InfluxDB
  • läuft als daemon im Hintergrund
  • 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 (im RAM) im 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 und Cloudsmith bereitgestellt .

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:

IDBeschreibungStatusBeispiel & AnwendungLinks & Referenzen
filelesen von Datei oder fifoimplementedOWFS, /proc/ Dateisystemread(3)
execProgrammausagben parsenuntesteddigitempexec(3)
smlSML wie von EDL-21, eHz and SyM2 Zählern genutztimplemented SML
s0S0-Zähler an UART, GPIO oder indirekt über USB angeschlossenimplementedRpi-Erweiterung Rev.1 oder klein
d0DLMS/D0 zeilenbasiertes Textformatimplemented DIN EN 62056-21
w1therm 1Wire-Sensoren basierend auf DSxxxxximplemented 1Wire Busmaster DS2482 ist Voraussetzung
ocrOCR (Bilderkennung) z.B. über USB-Camimplemented http://wiki.volkszaehler.org/meterocr_konfigurieren
randomZufallsgenerator für Werte via random walkimplementedfür Test- und Demonstrationszwecke
omsOpen Metering System, based on M-Bus communicationimplemented OMS Group
fluksov2auslesen des Flukso onboard SPI fifoimplemented
fluksousbUSB-Adapterplatine für S0 und Stromwandler auslesenplannedfluksousb'Bart's Protokoll'
vsm103Voldcraft VSM-103 Drehstromzählerplanned VSM-103
kd302Energiekostenmessgerät KD 302planned KD 302
ccostWetterstation vergleichbar mit kommerziellen SmartMeter Systemenplanned CurrentCost, Umweltsünde, Jibble
tweetawattKillAWatt mod mit XBee wireless Kommunikationplanned Sourcecode, Blog
ansiANSI 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 weiteren Verabeitung oder Speicherung, zu schicken. Das geschieht über den `api` Parameter, der für jeden channel konfiguriert wird. Vzloggers Standard-Endsystem ist die Middleware eines volkszaehler. Weitere Endsysteme sind MySmartGrid, InfluxDB und eine 'null' API.

Konfiguration

Die Standardkonfiguration ist nicht funktional, die meter sind alle deaktiviert

Die Konfiguration erfolgt über eine Datei die nach JSON kodierte Einstellungen enthält. Überlicherweise zu finden unter /etc/vzlogger.conf. 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. Spezifische Beispiele für einzelne Zähler im Bereich edl-ehz.

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

ParameterBeispiel (Default)Beschreibung
langkurz
--config-c/etc/vzlogger.confKonfigurationsdatei
--log-o/var/log/vzlogger/vzlogger.logLogfile
--httpd-lofflokales Interface aktivieren (kleiner httpd für Echtzeitwerte)
--httpd-port-p8081TCP-Port des httpd
--help-h Kurzhilfe
--verbose-vlevel0tiefe 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

Exit-Codes

Da vzlogger als Hintergrunddienst konzipiert ist wird primär über das Logfile diagnostiziert. In Fällen bei denen dies nicht möglich ist werden Standard Exit-Codes ausgegeben.
Z.B. bei Aufruf von systemctl status vzlogger in der Form: Main process exited, code=exited, status=1/FAILURE

CodeTextBedeutung
1FAILUREgenerischer Fehler, dieser tritt auch auf wenn die Konfiguration unlogisch ist und vzlogger ohne definierte Aufgaben (Beispielconfig im git) beendet wird
64USAGEKommandozeilenargument war nicht ausführbar
71OSERRdie Verschiebung in den Hintergrund (daemon) schlug fehl
73CANTCREATvzlogger hat nicht die nötigen Rechte das Logfile an der konfigurierten Stelle zu schreiben
78CONFIGSyntaxfehler in der Konfiguration oder Datei nicht vorhanden
software/controller/vzlogger.txt · Zuletzt geändert: 2024/05/12 19:30 von jau