[vz-dev] pymeterreader: einer Alternative zu vzlogger

Oliver Schwaneberg oliver.schwaneberg at gmail.com
Fr Okt 23 19:51:21 CEST 2020


Hallo Andreas,

zunächst einmal vielen Dank für deine E-Mail. Ich habe mich auch bereits
bei der volkzaehler-dev ML angemeldet - oder gibt es noch eine weitere
Entwickler-ML?

Du hast natürlich recht. pymeterreader ist kein vollwertiger Ersatz für
vzlogger und es ist wahrscheinlich sinnvoll sich auf die Entwicklung von
einem Tool zu fokussieren. Möglicherweise können wir ein paar Impulse von
pymeterreader in den vzlogger einfließen lassen. Dinge, die mich an
vzlogger stören, haben größtenteils mit der Konfiguration zu tun: Das
Konzept der Aggregierung von Verbrauchswerten passt halt nicht gut auf
Meter, die ständig ihren Zählerstand ausspucken. Dadurch ist man gezwungen
diesen Workaround mit "aggtime": x, "aggmode": "max" zu verwenden, was ich
unintuitiv finde. Außerdem habe ich leider auch häufiger die Erfahrung
gemacht, dass vzlogger sich anders verhalten hat als ich es erwartet habe.
Die Konfiguration ist für mich immer ein Trial-and-Error-Prozess gewesen.
Eine wählbare Betriebsart, die das Loggen von Zählerständen ohne Umwege
erlaubt, würde die Konfiguration bereit komfortabler machen.
Andere Probleme sind die Zuordnung von /dev/ttyUSBx-nodes zu verschiedenen
Zählern, wenn eine eindeutige Benennung durch udev-Regeln nicht möglich
ist.
Zudem habe ich es mit vzlogger nicht geschafft meinen Landis Gyr
Wärmezähler auszulesen, da dieser 40 Null-Bytes zum aufwecken benötigt und
die Initialisierung bei einer anderen Baudrate geschehen muss als das
Auslesen.

Es könnte auch ein Weg sein vzlogger durch pymeterreader abzulösen. Die
Verwendung von Python3 macht das Implementieren, Warten und Deployment
durchaus einfacher. Dazu müssten natürlich alle Protokolle migriert werden.

Ich möchte jedenfalls in Zukunft gerne einen Beitrag für das
Volkszähler-Universum leisten - auch falls die Entscheidung gegen
pymeterreader ausfallen sollte.

Viele Grüße

Oliver

Am Fr., 23. Okt. 2020 um 17:49 Uhr schrieb Andreas Goetz <cpuidle at gmail.com
>:

> Hallo Oliver,
>
> ich finde super dass Du im Volkszähler Universum mit dabei bist und VZ
> voran bringen möchtest- vielen Dank!
>
> Ich frage mich aber, ob es uns hilft “noch ein Tool” zu haben, dass sich
> funktional mit den vorhandenen überschneidet, nur einen Teil der Use Cases
> abdeckt und den Einsatzraum von Volkszähler eigentlich nicht wesentlich
> erweitert. Wäre es nicht besser, gemeinsam zu überlegen was wirklich fehlt
> und an welchen Stellen wir im Projekt arbeiten müssen um Volkszähler weiter
> zu verbreiten?
>
> Bitte versteh mich nicht falsch- Deine Arbeit ist super und Usability ist
> ein riesiges Thema. Ob es dafür gleich ein neues Tool braucht (das momentan
> auch nicht im Image enthalten ist) ist eine andere Frage.
>
> Wenn Du Lust hast darüber zu diskutieren würde ich Dich gerne auf die
>  Entwickler-ML einladen!
>
> Viele Grüße, Andreas
>
>
> On 23. Oct 2020, at 08:46, Oliver Schwaneberg <
> oliver.schwaneberg at gmail.com> wrote:
>
> 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/06471e47/attachment-0001.html>


Mehr Informationen über die Mailingliste volkszaehler-dev