[vz-dev] pymeterreader: einer Alternative zu vzlogger

Oliver Schwaneberg oliver.schwaneberg at gmail.com
Fr Okt 23 08:43:10 CEST 2020


Hallo zusammen,

ich habe mit pymeterreader (https://pypi.org/project/pymeterreader/,
https://github.com/Schwaneberg/pymeterreader) eine Alternative zu vzlogger
implementiert.

Die Ziele von pymeterreader sind:
1. Automatische Zuordnung von Metern zu Schnittstellen. Wenn z.B. mehrere
(identische) Leseköpfe auf z.B. /dev/ttyUSB0, /dev/ttyUSB1, etc. sind, dann
kann pymeterreader diese Schnittstellen dynamisch zu Metern (nach ID) und
somit zu den Kanälen im Volkszahler zuordnen.
2. Die Schnittstellen werden nur während des Lesens gebunden. Abfragen
durch andere Programme und Verbindungsabbrüche im laufenden Betrieb sollten
kein Problem sein.
3. Die Installation und Konfiguration soll einfach und komfortabel sein.
Ich möchte noch ein Hilfstool/wizard für die individuelle Konfiguration
erstellen.

Installation auf dem Pi (erfordert Buster mit Python 3.7):

sudo python3 -m pip install pip --upgrade
sudo python3 -m pip install pymeterreader
sudo systemctl enable pymeterreader

Nach der Installation muss /etc/pymeterreader.yaml angepasst werden. Hier
das Template:

devices:
  electric meter:
    channels:
      1.8.0:
        uuid: c07ef180-e4c6-11e9-95a6-434024b862ef
        interval: 5m
    tty: /dev/ttyUSB\d+  # optional, regex support
    id: 1 EMH00 12345678
    protocol: sml
    baudrate: 9600
  heat meter:
    channels:
      6.8:
        uuid: 83b52b26-1c1a-444d-bf46-d9c702fee644
        factor: 1000  # convert kWh to Wh
        interval: 12h
    id: 888777666
    protocol: plain
  climate basement:
    channels:
      humidity:
        uuid: ca5a59ee-5de5-4a20-a24a-fdb5f64e5db0
        interval: 1h
      temperature:
        uuid: 397eda02-7909-4af8-b1a6-3d6c8535229a
        interval: 1h
      pressure:
        uuid: 250ca04a-02ee-4a1b-98dd-3423b21008b7
        interval: 1h
    id: 0x76  # Default I2C address
    protocol: BME280  # A sensor, not a real meter

middleware:
  type: volkszaehler
  middleware_url: http://localhost/middleware.php  # optional,
defaults to local host
  interpolate: True  # Interpolate hourly values, if interval >=2h

Nach der Konfiguration kann pymeterreader als Service mit systemctl
gestartet werden:

sudo systemctl start pymeterreader
journalctl -f  # Dem Log folgen

Über Feedback und vielleicht sogar Mitarbeit am Projekt würde ich mich
freuen.
Es wäre auch schön wenn das Projekt auf Volkszahler.org verlinkt werden
würde.

PS: Entschuldigung falls diese Mail nun doppelt in der Liste ist. Beim
ersten Versuch ist die Bestätigungsmail im Spamfilter hängen geblieben.

Viele Grüße

Oliver Schwaneberg
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20201023/9cda6223/attachment.html>


Mehr Informationen über die Mailingliste volkszaehler-dev