Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:vzlogger:vzlogger_conf_parameter

vzlogger.conf

Eine Beschreibung der Konfigurationsdatei von vzlogger, der Übersichtlichkeit halber in Abschnitte aufgeteilt.

Formatiert ist sie nach JSON; kompakt, manuell lesbar und einfach zu parsen. Entgegen dem Standard unterstützt vzlogger auch Kommentare /*…*/ oder // innerhalb der Konfigurationsdatei.
Korrekte Kommata und Klammerung sind zwingend. Der vzlogger.conf-Editor hilft dabei. Er bietet auch eine meter- und channel-Vorauswahl und blendet dann Schlüssel aus die nicht benötigt werden.
Zeichenketten (String) müssen in Anführungszeichen gesetzt werden, Ganzzahlen (Integer) und Logische Ausdrücke (Bool) hingegen nicht. Gruppen {} und Schlüssel dürfen in root nur einmalig verwendet werden, in Arrays [] aber mehrmals.

Bestimmte Schlüssel bekommen, wenn sie nicht explizit genannt werden, bei Bedarf einen Standardwert (Default) zugewiesen.

root

Im Wurzelverzeichnis haben wir die allgemeinen Einstellungen.

{
  "retry": 0,
  "verbosity": 0,
  "log": "/var/log/vzlogger/vzlogger.log",

retry

Wartezeit in Sekunden nach einer fehlgeschlagenen Anfrage.

Typ Integer
Wert 0-?
Empfehlung 0

verbosity

Ausführlichkeit des Fehlerlogs.
In der höchsten Detailstufe werden auch alle verfügbaren OBIS-Codes eines SML-Telegramms gelistet.

Typ Integer
Wert 0 = Alarme
1 = Fehler
3 = Warnungen
5 = Informationen
10 = Diagnose
15 = Detailinformationen
Empfehlung 15 zu Beginn
0 wenn alles fehlerfrei läuft

log

Speicherort des Fehlerlogs.

Typ String
Wert Muss eine vorhandenes Verzeichnis sein auf dem schreibender Zugriff erlaubt ist.
Empfehlung „/var/log/vzlogger/vzlogger.log“ im Regelfall
„“ wenn S0-Impulse in schneller Folge geloggt werden da Schreibzugriffe auf SD-Karte das loggen stören können

push

Empfangsort des VZ-Push-Servers.
Über den Dienst ist es zum Beispiel möglich Daten an die VZ-Middleware zu schicken die zwar dargestellt, aber nicht gespeichert werden. Es muss parallel dazu der Push-Server der Middleware aktiviert werden.

  "push": [
    {
      "url": ""http://127.0.0.1:5582""
    }

push

Typ Array
Empfehlung [] - nicht aktiv

url

Zielort an dem die Daten in Empfang genommen werden.

Typ String
Wert eine gültige URL
Empfehlung http://127.0.0.1:5582“ für VZ

local

HTTP-Dienst (httpd) für Daten-Pull. Stellt die Daten der konfigurierten meter zu manuellen Kontrolle oder für andere Anwendungen bereit. Erspart einem z.B das Parsen des SML-Telegramms von einem eHz.
Es können alle Werte angezeigt werden für die ein channel angelegt wurde, auch jene die „api“ : „null“ konfiguriert wurden.

  "local": {
    "enabled": false,
    "port": 8081,
    "index": false,
    "timeout": 0,
    "buffer": 0
  },

local

Typ Gruppe

enabled

Aktiviert den httpd.

Typ Bool
Wert true/false
Empfehlung false

port

Der Port an dem der Dienst auf Anfragen hört. Wenn auf der selben Maschine bereits ein httpd arbeitet ist darauf zu achten das der Port nicht doppelt verwendet wird! Für HTTP ist der Standard-Port 80, PPM bieten wir üblicherweise auf 8080 an.

Typ Integer
Wert ?
Empfehlung 8081

index

Normal sollte die Anfrage auch die UUID des gewünschten channel enthalten, z.B.: http://localhost:8081/c673b290-fdac-11e0-a470-1d9351203a00. Wird der Index aktiviert werden auf Anfrage http://localhost:8081/ alle channel ausgegeben.

Typ Bool
Wert true/false
Empfehlung false bei Systemen die von öffentlichen Netzwerken aus verfügbar sind

timeout

?

Typ Integer
Wert 0-?
Empfehlung 0

buffer

? Größe des Ringspeichers ?

Typ Integer
Wert 0-?
Empfehlung 0

mqtt

Hier kann die Verbindung zum einem MQTT-Broker (Server) eingetragen werden. Die in meters angegebenen Kanäle werden dann in das entsprechende MQTT-Topic übertragen.

Diese Funktion ist standardmäßig nicht im vzlogger enthalten und muss beim Kompilieren aktiviert werden.
  "mqtt": {
    "enabled": false,
    "host": "test.mosquitto.org",
    "port": 1883,
    "id": "vzlogger",
    "cafile": "",
    "capath": "",
    "certfile": "",
    "keyfile": "",
    "keypass": "",
    "keepalive": 30,
    "topic": "vzlogger/data",
    "id": "",
    "user": "",
    "pass": "",
    "retain": false,
    "rawAndAgg": false,
    "qos": 0,
    "timestamp": false
  }

enabled

MQTT an- oder abstellen.

Typ Bool
Wert true/false
Standard false
Empfehlung true

host

Server-Adresse des MQTT-Brokers.

Typ String
Wert eine gültige URL
Standard test.mosquitto.org

port

Port des MQTT-Brokers.

Typ Integer
Wert 1883 (unverschlüsselt), 8883 (verschlüsselt), 8884 (verschlüsselt mit Zertifikat)
Standard 1883

cafile

Optionaler Dateiname der Server CA

Typ String
Wert Dateiname
Standard

capath

Optionaler Pfad für Server CAs

Typ String
Wert Pfad
Standard
Es sollten entweder cafile oder capath verwendet werden. Weitere Informationen sind in der Datei mosquitto.conf des MQTT-Brokers

certfile

Optionaler Dateiname des Client-Zertifikats (z.B. client.crt)

keyfile

Optionaler Pfad zum privaten Schlüssel des Client-Zertifikats (z.B. client.key)

Typ String
Wert Dateiname
Standard

keypass

Optionales Passwort des privaten Schlüssels

Typ String
Wert Passwort
Standard

keepalive

Optionales Angabe der Sekunden zur Aufrechterhaltung der Verbindung (Keepalive)

Typ Integer
Wert 0-?
Standard 30

topic

Optionale Angabe des MQTT-Topics, in welches die Werte der verschiedenen meters geschrieben werden sollen. Im angegebenen Topic werden die meter durch ein Unter-Topic chnX unterschieden. Der erste meter ist im Unter-Topic chn0, der zweite meter im Unter-Topic chn1 usw. zu finden.

Typ String
Wert MQTT-Topic
Standard vzlogger/data
Das Topic darf nicht mit $ beginnen und nicht mit / enden.

id

Optionale statische Client-ID. Bei Nichtangabe wird eine Client-ID nach dem Muster vzlogger_<pid> verwendet.

Typ String
Wert Client-ID
Standard vzlogger_<pid>

user

Optionaler Benutzername zur Anmeldung an den MQTT-Broker.

Typ String
Wert Benutzername
Standard

password

Optionales Password zur Anmeldung an den MQTT-Broker.

Typ String
Wert Passwort
Standard

retain

Optionale Anweisung zum Zwischenspeichern der MQTT-Nachricht, um bei Neuverbindung sofort darauf zugreifen zu können (Retain-Flag). Bei der Angabe von false ist der Wert erst sichtbar, wenn der Wert an den MQTT-Broker gesendet wird.

Typ Boolean
Wert true/false
Standard false

rawAndAgg

Optionale Veröffentlichung der Rohdaten selbst wenn der Zusammenfassungs-Modus (aggmode) verwendet wird.

Typ Boolean
Wert true/false
Standard false

qos

Optionale Angabe des Quality of Service.

Typ Integer
Wert 0/1
Standard 0

timestamp

Optionale Angabe, ob ein Zeitstempel im Payload mit angegeben werden soll.

Typ Boolean
Wert true/false
Standard false

meters

Hier werden die Datenquellen (Zähler, Sensoren) definiert mit denen der vzlogger kommunizieren soll. Jede Quelle ist eine Gruppe von Schlüsseln, es sind also mehrere Meter möglich.
Nicht alle Paramter sind in allen Konfigurationen erforderlich oder sinnvoll. Erst werden die Allgemeinen, dann die speziellen Parameter, in Abhängigkeit von protocol, beschrieben.

Typ Array

Allgemein

  "meters": [
    {
      "enabled": false,
      "allowskip": false,
      "aggtime": -1,
      "aggfixedinterval": false,
      "protocol": "s0",
      "device": "",
      "channels": [],

enabled

Den betreffenden Meter (z.B. für Diagnosezwecke) an- oder abstellen.

Typ Bool
Wert true/false
Standard false
Empfehlung true

allowskip

Schlägt das öffnen des Meter fehl bricht vzlogger ab oder ignoriert ihn und setzt mit dem nächsten konfigurierten Meter fort.

Typ Bool
Wert true/false
Standard false
Empfehlung true - der Meter wird im Fehlerfall übersprungen

aggtime

Vzlogger kann Messwerte sammeln und zusammenfügen (aggregieren) bevor sie an die MW gesendet werden. Hier wird die Sammelzeit in Sekunden definiert. Es ist darauf zu achten, dass die aggtime nicht kürzer ist als interval.
aggtime arbeitet zusammen mit aggmode.

Typ Integer
Wert 0-?
-1 deaktiviert die Funktion sicher (Bitte auch aggmode auf „none“ setzen, um undefiniertes Verhalten zu vermeiden)
Standard -1
Empfehlung -1

aggfixedinterval

Für eine optisch schönere Darstellung im Frontend ist es möglich alle aggregierten Kanäle dieses Meters mit identischem Timestamp an die Middleware zu senden.

Typ Bool
Wert true/false
Standard false
Empfehlung -

protocol

Das Protokoll mit dem der Meter sendet. Der JSON-Editor hilft bei der korrekten Wahl.

Typ String
Wert „s0“ Impulssignale
„d0“ Zeilenbasierter Klartext nach DIN EN 62056-21
„sml“ SML wie es bei EDL-21, eHz und SyM2 verwendet wird
„random“ Zufallsgenerator
„file“ Auswerten einer bestehenden Datei, wird mittels format weiter parametriert
„exec“ Programmausgaben parsen
„fluksov2“ Protokoll der Flukso-Meter
„ocr“ Bilderkennung
„oms“ Open Metering System, ein Ableger von M-Bus
„w1therm“ 1-Wire-Temperatursensoren an Busmaster DS2482
Empfehlung -

device

Das Linux-Device über den der Meter angebunden ist.

Typ String
Wert „“ oder
„/dev/ttyUSB0“ und andere gültige Device mit Schreib- und Leserecht.
Empfehlung „/dev/ttyUSB0“ für einen IR-Schreib-Lesekopf mit USB-Ausgang, unnötig bei s0 an GPIO oder d0/sml über TCP/IP.

channels

So ziemlich die wichtigste Gruppe. Hier erfolgt die Zuordnung der von vzlogger gelesenen Daten zu den Kanälen der Middleware. Es sind mehrere channels in jedem meter möglich.

Bei Inbetriebnahme kann man die channels erstmal leer lassen, verbositiy = 15 setzen und im log oder dump_file schauen was für Daten und unter welchen identifier die meter zur Verfügung stellen.
      "channels": [
        {
          "uuid": "",
          "identifier": "",
          "api": "volkszaehler",
          "middleware": "http://localhost/middleware.php",
          "host": "127.0.0.1",
          "secretKey": "",
          "type": "device",
          "scaler": 1,
          "timeout" : 30,
          "aggmode": "none",
          "duplicates": 0
        }

uuid

Über die UUID werden die Kanäle der Middleware identifiziert. Sie wird beim Erstellen eines Kanals von der Middleware generiert.

Typ String
Wert z.B. „57acbef0-88a9-11e4-934f-6b0f9ecd95a8“

identifier

Über diesen String werden die Werte zu diesem channel aus den Daten des meter identifiziert. Wie der String aussieht hängt vom protocol ab.

Typ String
protocol Wert
s0 „Impulse“ oder „Impulse_neg“ für Impulse
s0 „Power“ oder „Power_neg“ dabei werden die Impulse auf Basis der resolution von Arbeit (kWh) in Leistung (W) umgerechnet
d0 z.B. „1-0:1.8.0“ OBIS-Codes
sml z.B. „1-0:1.8.0“ OBIS-Codes
random „“ bleibt immer leer
file „“ oder per $i definiert z.B. $i = $v ⇒ Temperatur = 10 ⇒ Identifier „Temperatur“, Value = 10
exec „“ oder per $i definiert z.B. $i = $v ⇒ Temperatur = 10 ⇒ Identifier „Temperatur“, Value = 10
fluksov2 z.B. „Consumption“ oder „Power“ wie bei FlukSo zu -ChannelId und +ChannelId zugewiesen
ocr z.B. „wert“ wie unter meter, identifier parametriert
oms z.B. „1.8.0“ OBIS-Codes
w1therm z.B. „28-00000450cbbd“ ID des Sensors

api

Hier wird die Programmierschnittstelle definiert über die der vzlogger Kontakt aufnehmen soll.

Typ String
Wert „volkszaehler“ für die VZ-Middleware
„mysmartgrid“ vzlogger kann auch mySmartGrid mit Daten beliefern
„influxdb“ vzlogger kann auch InfluxDB mit Daten beliefern
„null“ wenn die Werte nur über den integrierten httpd, push oder mqtt bereitgestellt werden sollen
Standard „volkszaehler“
Empfehlung „volkszaehler“

Achtung: Der Wert ist ggfs. „null“, nicht null.

middleware

Die URL über welche die api zu erreichen ist.

Typ String
Wert z.B. „http://localhost/middleware.php“ für eine VZ-Middleware auf der selben Maschine (Raspberry Image)
z.B. „https://demo.volkszaehler.org/middleware.php“ für den VZ Demo Server
Empfehlung http://localhost/middleware.php

host

Die URL über welche die InfluxDB api zu erreichen ist.

Typ String
Wert z.B. „127.0.0.1“ für eine InfluxDB auf der selben Maschine
Empfehlung „127.0.0.1“
Für InfluxDB gibt es eine Reihe weiterer, optionaler Parameter. Siehe dazu den vzlogger.conf-Editor oder die Beipielkonfguration im Git

secretKey

Schlüssel für die Kommunikation mit der mySmartGrid-api

Typ String
Wert ?
Empfehlung „“

type

Art des meter, nur für mySmartGid-api

Typ String
Wert „device“
„sensor“
Empfehlung „“

scaler

Faktor für die Werte, nur für mySmartGid-api

Typ Integer
Wert 0-?

timeout

Zeit in Sekunden für die Zustellung per Curl nach der die Verbindung als misslungen betrachtet wird.

Typ Integer
Standard 30

aggmode

Mathematische Art der Aggregation die der vzlogger vornehmen soll. Nur wirksam in Verbindung mit aggtime größer als 0.
Wenn aggtime auf -1 steht (deaktiviert), dann bitte auch aggmode auf „none“ setzen, um undefiniertes Verhalten zu vermeiden.

Typ String
Wert „avg“ Durchschnitt, zu verwenden bei Aktualwerten wie Strom, Spannung oder Temperatur
„max“ Maximal, zu verwenden bei Zählerständen
„sum“ Summe, zu verwenden bei Impulsen
„none“ keine Aggreagtion vornehmen
Standard „none“
Empfehlung „none“

duplicates

Zeit in Sekunden in denen wiederholende, identische Werte (z.B. unveränderte Zählerstände) nicht an die api weitergeleitet werden sollen.

Typ Integer
Wert 0-?
Empfehlung 0, insbesondere bei s0-Impulsen!

protocol-spezifische Schlüssel

Jedes protocol hat eine eigene Reihe erforderlicher und optionaler Schlüssel.

s0

      "gpio": -1,
      "mmap": "",
      "gpio_dir": -1,
      "configureGPIO": true,
      "resolution": 1000,
      "send_zero": false,
      "debounce_delay": 30,
      "nonblocking_delay": 100000,

gpio

Bestimmt den GPIO am RaspberryPi an dem der Meter angeschlossen ist.

Typ Integer
Wert 4, 17, 18, 22, 23, 27, je nach verwendeter Erweiterung und Eingang.
Empfehlung -

mmap

Für hochfrequente Impulssignale können die GPIO des RaspberryPi auf Memory-Mapping umgestellt werden. Die Ports müssen manuell als Eingänge konfiguriert werden. Nur für Impulssignale!

Typ String
Wert „“ deaktiviert
„rpi1“ Raspberry A?
„rpi2“ Raspberry B?
Empfehlung „“

gpio_dir

Es kann die Zählrichtung umgekehrt werden.

Typ Integer
Wert 0 Zählung positiv
1 Zählung negativ
-1 deaktiviert die Funktion sicher
Empfehlung -1

configureGPIO

Vzlogger kann die E/A-Konfiguration des GPIO übernehmen.

Typ Bool
Wert true/false
Empfehlung true

resolution

Impulse/kWh, wird bei api:mysmartgrip und identifier:Power benötigt.

Typ Integer
Wert 1-?
Standard 1000
Empfehlung Entsprechend der Angabe auf dem Zähler

send_zero

Wenn keine Impulssignale eintreffen wird der vzlogger auch keinen Datentupel an die MW senden. Ist send_zero aktiv wird jede Sekunde ein Tuple gesendet auch wen keine Impulse registriert wurden. In Verbindung mit aggtime kann der Zeitraum vergrößert werden.

Typ Bool
Wert true/false
Standard false
Empfehlung false

debounce_delay

Bei mechanischen Impulsquellen (Reedkontakten) kann es zu Kontaktprellen kommen. Hier wird definiert wie viele Millisekunden nachfolgende Signalflanken ignoriert werden.

Typ Integer
Wert 0-?
Standard 30
Empfehlung 0 für elektronische Signalquellen. 30 oder mehr für mechanische.

nonblocking_delay

Zeitverzögerung in Nanosekunden bei aktiviertem mmap.

Typ Integer
Wert 0-?
Standard 10000
Empfehlung 10000, bei 5000 können auf einem RaspberryPi 2 Impulse mit bis zu 30kHz geloggt werden.

d0

Manche Zähler senden ihre Daten unaufgeforder alle paar Sekunden (Push), andere müssen dazu aufgefordert werden (Pull). Ob es sich um einen Pull- oder Push-Meter handelt kann mit einer Digitalkamera an der IR-Diode geprüft werden. Vielleicht ist dein Zählertyp aber auch schon im Wiki dokumentiert.

      "interval": -1,
      "host": "",
      "dump_file": "",
      "pullseq": "",
      "ackseq": "auto",
      "baudrate": 300,
      "baudrate_read": 300,
      "parity": "7e1",
      "wait_sync": "off",
      "read_timeout": 10,
      "baudrate_change_delay": 0

interval

Verzögerung zwischen Zugriffen auf Pull-Meter in Sekunden. Es ist darauf zu achten das der Meter genug Zeit hat zu antworten, z.B. wenn er seriell mit nur 300bd sendet.

Typ Integer
Wert 0-?
-1 deaktiviert die Funktion sicher
Standard -1
Empfehlung -1 bei Push-Meter
Nach Bedarf

host

Für Meter die nicht lokal sondern übers TCP/IP-Netz angebunden sind.

Typ String
Wert „“ eine gültige URL mit Port
Empfehlung „“

dump_file

Das Datentelegramm kann zu Diagnosezwecken zusätzlich in eine Datei ausgegeben werden.

Typ String
Wert „“ Muss eine vorhandenes Verzeichnis sein auf dem schreibender Zugriff erlaubt ist.
Standard „“
Empfehlung „~/d0-dump.txt“ z.B. Sollte nach der Fehlersuche aber abgestellt werden: „“

pullseq

Initialisierungssequenz für Pull-Meter.

Typ String
Wert z.B. „2F3F210D0A“
Standard „“
Empfehlung „“ bei Push-Meter
„2F3F210D0A“ bei Pull-Meter

ackseq

Nach der Initilisierungssequenz antwortet ein Pull-Meter mit einem Einzeiler, um das Datentelegramm zu erhalten ist eine Startsequenz nötig. Ev. wird dabei auch die Baudrate umgestellt. Ist aber stark vom Zähler abhängig.

Typ String
Wert „auto“
z.B. „063030300d0a“ für 300bd
z.B. „063035300d0a“ für 9600bd
Standard „“
Empfehlung „auto“

baudrate

Die serielle Geschwindigkeit mit der der Meter kommuniziert.

Typ Integer
Wert 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, u.A.
Standard 9600
Empfehlung 300

baudrate_read

Pull-Meter erlauben teilweise auch mehr als 300bd. Diese muss in der ackseq angefordert und hier dem vzlogger mitgeteilt werden.

Typ Integer
Wert 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, u.A.
Standard wie unter baudrate eingestellt
Empfehlung 300 geht eigentlich immer. Je nach Länge des Datentelegramms kann die zeitliche Auflösung aber zu wünschen übrig lassen weil interval recht groß sein muss.

parity

Frameformat der seriellen Kommunikation.

Typ String
Wert „7e1“, „8n1“, „7o1“, „7n1“
Standard „7e1“
Empfehlung „7e1“

wait_sync

Manche Zähler schicken kein Synchronisationssignal „!“ sondern weiter Datentelegramme ohne auf eine pullseq zu warten.

Typ String
Wert „off“ ?
„end“ ?
Standard „off“
Empfehlung „off“

read_timeout

Zeit in Sekunden nach denen der vzlogger die Kommunikation für beendet erachtet. Ist erforderlich falls der Zähler kein Synchronisationssignal sendet, die Startsequenz fehlt schlägt oder sonstwie Zeichen verloren gehen. Die Zeit darf aber nicht zu kurz sein sonst wird mitten im Datentelegramm abgebrochen.

Typ Integer
Wert 1-?
Standard 10
Empfehlung 10

baudrate_change_delay

Zeit in ms nach ackseq bevor die Baudrate auf baudrate_read umgestellt wird.

Typ Integer
Wert 0-?
Standard 0
Empfehlung 0, da vor umstellen der Baudrate der UART sowieso geleert wird

sml

Manche Zähler senden ihre Daten unaufgeforder alle paar Sekunden (Push), andere müssen dazu aufgefordert werden (Pull). Ob es sich um einen Pull- oder Push-Meter handelt kann mit einer Digitalkamera an der IR-Diode geprüft werden. Vielleicht ist dein Zähler aber auch schon im Wiki dokumentiert.

      "interval": -1,
      "host": "",
      "pullseq": "",
      "baudrate": 9600,
      "parity": "8n1",
      "use_local_time": false

interval

Verzögerung zwischen Zugriffen auf Pull-Meter in Sekunden. Es ist darauf zu achten das der Meter genug Zeit hat zu antworten, z.B. wenn er seriell mit nur 300bd sendet.

Typ Integer
Wert 0-?
-1 deaktiviert die Funktion sicher
Standard -1
Empfehlung -1 bei Push-Meter
Nach Bedarf

host

Für Meter die nicht lokal sondern übers TCP/IP-Netz angebunden sind.

Typ String
Wert „“ eine gültige URL mit Port
Empfehlung „“

pullseq

Initialisierungssequenz für Pull-Meter.

Typ String
Wert z.B. „2F3F210D0A“
Standard „“
Empfehlung „“ bei Push-Meter
„2F3F210D0A“ bei Pull-Meter

baudrate

Die serielle Geschwindigkeit mit der der Meter kommuniziert.

Typ Integer
Wert 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, u.A.
Standard 9600
Empfehlung 9600

parity

Frameformat der seriellen Kommunikation.

Typ String
Wert „7e1“, „8n1“, „7o1“, „7n1“
Standard „8n1“
Empfehlung „8n1“

use_local_time

Nutzt zur Erstellung des Timestamp die aktuelle Uhrzeit des Rechners („true“) statt des Zählers („false“).
Die meisten Zähler liefern im Datenstrom die Echtzeit mit. Wenn diese bei der Inbetriebnahme korrekt eingestellt wurde, verwenden wir sie um z.B. mögliche Zeitverschiebungen durch FiFo-Puffer auszuschließen. Sind die Timestamp falsch oder fehlen sogar ganz muss der vzlogger die lokale Rechnerzeit heranziehen.

Typ Bool
Wert true/false
Standard false
Empfehlung false

—-

random

Zufallsgenerator


file

Auswerten einer bestehenden Datei, wird mittels format weiter parametriert


exec

In einem exec-Kanal wird für jede Abfrage das im Parameter command angegebene Shellkommando aufgerufen und die Standard-Ausgabe dieses Kommandos geparst. Dabei kann das erwartete Format mit Hilfe des format Parameters spezifiziert werden.

  • exec-Kanäle sind nicht möglich, wenn der vzlogger als root ausgeführt wird. Durch einen Compiler-Parameter lässt sich diese Sicherheitsmaßnahme ausschalten. Es wird allerdings empfohlen, den vzlogger besser nicht als root auszuführen. In vielen Standard-Images ist dies nicht der Fall.
  • Es wird für den Aufruf eine Shell verwendet, damit sind Pipes etc in vollem Umfang möglich
  • Enthält der Formatstring kein $t, wird die aktuelle Uhrzeit als Timestamp verwendet

command

Dieses Kommando wird ausgeführt; seine Ausgabe geparst

Typ string
Wert Shell-Kommando
Beispiel Siehe Wikiseiten zum Kostal Piko oder zum DZG DVH 4013 Modbus

format

Jede Zeile der Ausgabe des command wird mit diesem Formatstring geparst und für jede Zeile ein eigener Datensatz erzeugt. Somit können sowohl mehrere Werte (z.B. verschiedene Register, die mit einem einzigen Aufruf des command ausgelesen wurden) als auch Werte unterschiedlicher Zeitstempel (z.B. man fragt die Quelle alle 30 Sekunden ab, möchte aber aus Gründen immer Batches von sechs Werten gleichzeitig in die Datenbank schreiben) mit einem einzelnen Aufruf eingetragen werden.

Typ string
Wert Formatstring
Beispiel '$t: $i = $v' für Ausgaben wie '1559656949: Gesamtenergie = 23294'
  • $t: timestamp (in Sekunden)
  • $i: identifier (beliebiger String, taucht im Channel unter identifier wieder auf)
  • $v: value

Werte ohne identifier-Angabe landen beim Channel mit '„identifier“: „“'.

Weitere Dokumentation könnte man in den Mailinglistenarchiven, z.B. hier ff., finden.


fluksov2

Protokoll der FlukSo-Meter


ocr

Bilderkennung


oms

Open Metering System, ein Ableger von M-Bus


w1therm

Für 1-Wire-Temperatursensoren am Busmaster DS2482 sind keine weiteren Parameter nötig.


Schluss

Und ganz wichtig: Klammern schließen!

     }
  ]
}
software/controller/vzlogger/vzlogger_conf_parameter.txt · Zuletzt geändert: 2023/05/31 19:44 von narc-ontakac2