[vz-dev] pymeterreader: einer Alternative zu vzlogger

Andreas Goetz cpuidle at gmail.com
Di Nov 3 20:58:38 CET 2020


Hallo Oliver,

zuviele Kommentare gabs ja nicht ;)

> On 23. Oct 2020, at 19:51, Oliver Schwaneberg <oliver.schwaneberg at gmail.com> wrote:
> 
> 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?

Nein, Du bist an der richten Stelle- aber soviele sind wir halt nicht.

> 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.

Alles nachvollziehbar.

> 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.

…was wiederrum Du machen müsstest wenn es geschehen sollte.

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

Das Problem ist- wie auch die (Nicht-) Diskussion zeigt- eher ein Anderes. 

VZ ist eine ziemlich erwachsene Lösung mit sehr kleiner Supportcrew. Änderungen kosten Aufwand, viele Doku etc funktioniert plötzlich nicht mehr und unzählige Anwender müssten sich umstellen. Das wird Stand heute nach meiner Einschätzung nicht passieren da uns dafür die Kapazität fehlt.

Es gibt verschiedene Dinge die VZ fehlen oder in denen wir nicht wirklich gut sind. Eine Nachimplementierung vorhandener Protokolle gehört eher nicht dazu so sie den meisten Anwendern mit laufenden Installationen aber keinen Vorteil bringen wird.

Du hast eine tolle Lösung geschaffen, sie wird es als “me too” aber vmtl. eher nicht in den Kern von Volkszähler schaffen, auch wenn Du natürlich herzlich eingeladen bist sie auf der ML weiter zu promoten.

Ich hoffe Du lässt Dich davon nicht ermutigen sondern machst weiter gute und freie Software!

Viele Grüße, 
Andreas

> 
> Viele Grüße
> 
> Oliver
> 
> Am Fr., 23. Okt. 2020 um 17:49 Uhr schrieb Andreas Goetz <cpuidle at gmail.com <mailto: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 <mailto:oliver.schwaneberg at gmail.com>> wrote:
>> 
>> Hallo zusammen,
>> 
>> ich habe mit pymeterreader (https://pypi.org/project/pymeterreader/ <https://pypi.org/project/pymeterreader/>, https://github.com/Schwaneberg/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 <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 <http://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/20201103/34846b48/attachment.html>


Mehr Informationen über die Mailingliste volkszaehler-dev