<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hallo Oliver,<div class=""><br class=""></div><div class="">zuviele Kommentare gabs ja nicht ;)<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 23. Oct 2020, at 19:51, Oliver Schwaneberg <<a href="mailto:oliver.schwaneberg@gmail.com" class="">oliver.schwaneberg@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hallo Andreas,<div class=""><br class=""></div><div class="">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?</div></div></div></blockquote><div><br class=""></div>Nein, Du bist an der richten Stelle- aber soviele sind wir halt nicht.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">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.</div><div class="">Andere Probleme sind die Zuordnung von /dev/ttyUSBx-nodes zu verschiedenen Zählern, wenn eine eindeutige Benennung durch udev-Regeln nicht möglich ist. </div><div class="">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.</div></div></div></blockquote><div><br class=""></div>Alles nachvollziehbar.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">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. </div></div></div></blockquote><div><br class=""></div>…was wiederrum Du machen müsstest wenn es geschehen sollte.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">Ich möchte jedenfalls in Zukunft gerne einen Beitrag für das Volkszähler-Universum leisten - auch falls die Entscheidung gegen pymeterreader ausfallen sollte.</div></div></div></blockquote><div><br class=""></div>Das Problem ist- wie auch die (Nicht-) Diskussion zeigt- eher ein Anderes. </div><div><br class=""></div><div>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.</div><div><br class=""></div><div>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.</div><div><br class=""></div><div>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.</div><div><br class=""></div><div>Ich hoffe Du lässt Dich davon nicht ermutigen sondern machst weiter gute und freie Software!</div><div><br class=""></div><div>Viele Grüße, </div><div>Andreas</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Viele Grüße</div><div class=""><br class=""></div><div class="">Oliver</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Fr., 23. Okt. 2020 um 17:49 Uhr schrieb Andreas Goetz <<a href="mailto:cpuidle@gmail.com" class="">cpuidle@gmail.com</a>>:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class="">Hallo Oliver,<div class=""><br class=""></div><div class="">ich finde super dass Du im Volkszähler Universum mit dabei bist und VZ voran bringen möchtest- vielen Dank!</div><div class=""><br class=""></div><div class="">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?</div><div class=""><br class=""></div><div class="">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. </div><div class=""><br class=""></div><div class="">Wenn Du Lust hast darüber zu diskutieren würde ich Dich gerne auf die  Entwickler-ML einladen!</div><div class=""><br class=""></div><div class="">Viele Grüße, Andreas</div><div class=""><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 23. Oct 2020, at 08:46, Oliver Schwaneberg <<a href="mailto:oliver.schwaneberg@gmail.com" target="_blank" class="">oliver.schwaneberg@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Hallo zusammen,<div class=""><br class=""></div><div class="">ich habe mit pymeterreader (<a href="https://pypi.org/project/pymeterreader/" target="_blank" class="">https://pypi.org/project/pymeterreader/</a>, <a href="https://github.com/Schwaneberg/pymeterreader" target="_blank" class="">https://github.com/Schwaneberg/pymeterreader</a>) eine Alternative zu vzlogger implementiert.</div><div class=""><br class=""></div><div class="">Die Ziele von pymeterreader sind:</div><div class="">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.</div><div class="">2. Die 
Schnittstellen werden nur während des Lesens gebunden. Abfragen durch 
andere Programme und Verbindungsabbrüche im laufenden Betrieb sollten 
kein Problem sein.</div><div class="">3. Die Installation und Konfiguration soll 
einfach und komfortabel sein. Ich möchte noch ein Hilfstool/wizard für 
die individuelle Konfiguration erstellen.</div><div class=""><br class=""></div><div class="">Installation auf dem Pi (erfordert Buster mit Python 3.7):</div><div class=""><br class=""></div><div class=""><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;margin-top:0px;margin-bottom:16px;padding:16px;overflow:auto;line-height:1.45;border-radius:6px;color:rgb(36,41,46)" class=""><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;padding:0px;margin:0px;background:initial;border-radius:6px;word-break:normal;border:0px none;display:inline;overflow:visible;line-height:inherit" class="">sudo python3 -m pip install pip --upgrade
sudo python3 -m pip install pymeterreader
sudo systemctl enable pymeterreader</code></pre></div><div class="">Nach der Installation muss /etc/pymeterreader.yaml angepasst werden. Hier das Template:</div><div class=""><pre style="color:rgb(8,8,8);font-family:"JetBrains Mono",monospace" class=""><span style="color:rgb(0,51,179)" class="">devices</span>:<br class="">  <span style="color:rgb(0,51,179)" class="">electric meter</span>:<br class="">    <span style="color:rgb(0,51,179)" class="">channels</span>:<br class="">      <span style="color:rgb(0,51,179)" class="">1.8.0</span>:<br class="">        <span style="color:rgb(0,51,179)" class="">uuid</span>: c07ef180-e4c6-11e9-95a6-434024b862ef<br class="">        <span style="color:rgb(0,51,179)" class="">interval</span>: 5m<br class="">    <span style="color:rgb(0,51,179)" class="">tty</span>: /dev/ttyUSB\d+  <span style="color:rgb(140,140,140);font-style:italic" class=""># optional, regex support<br class=""></span><span style="color:rgb(140,140,140);font-style:italic" class="">    </span><span style="color:rgb(0,51,179)" class="">id</span>: 1 EMH00 12345678<br class="">    <span style="color:rgb(0,51,179)" class="">protocol</span>: sml<br class="">    <span style="color:rgb(0,51,179)" class="">baudrate</span>: 9600<br class="">  <span style="color:rgb(0,51,179)" class="">heat meter</span>:<br class="">    <span style="color:rgb(0,51,179)" class="">channels</span>:<br class="">      <span style="color:rgb(0,51,179)" class="">6.8</span>:<br class="">        <span style="color:rgb(0,51,179)" class="">uuid</span>: 83b52b26-1c1a-444d-bf46-d9c702fee644<br class="">        <span style="color:rgb(0,51,179)" class="">factor</span>: 1000  <span style="color:rgb(140,140,140);font-style:italic" class=""># convert kWh to Wh<br class=""></span><span style="color:rgb(140,140,140);font-style:italic" class="">        </span><span style="color:rgb(0,51,179)" class="">interval</span>: 12h<br class="">    <span style="color:rgb(0,51,179)" class="">id</span>: 888777666<br class="">    <span style="color:rgb(0,51,179)" class="">protocol</span>: plain<br class="">  <span style="color:rgb(0,51,179)" class="">climate basement</span>:<br class="">    <span style="color:rgb(0,51,179)" class="">channels</span>:<br class="">      <span style="color:rgb(0,51,179)" class="">humidity</span>:<br class="">        <span style="color:rgb(0,51,179)" class="">uuid</span>: ca5a59ee-5de5-4a20-a24a-fdb5f64e5db0<br class="">        <span style="color:rgb(0,51,179)" class="">interval</span>: 1h<br class="">      <span style="color:rgb(0,51,179)" class="">temperature</span>:<br class="">        <span style="color:rgb(0,51,179)" class="">uuid</span>: 397eda02-7909-4af8-b1a6-3d6c8535229a<br class="">        <span style="color:rgb(0,51,179)" class="">interval</span>: 1h<br class="">      <span style="color:rgb(0,51,179)" class="">pressure</span>:<br class="">        <span style="color:rgb(0,51,179)" class="">uuid</span>: 250ca04a-02ee-4a1b-98dd-3423b21008b7<br class="">        <span style="color:rgb(0,51,179)" class="">interval</span>: 1h<br class="">    <span style="color:rgb(0,51,179)" class="">id</span>: 0x76  <span style="color:rgb(140,140,140);font-style:italic" class=""># Default I2C address<br class=""></span><span style="color:rgb(140,140,140);font-style:italic" class="">    </span><span style="color:rgb(0,51,179)" class="">protocol</span>: BME280  <span style="color:rgb(140,140,140);font-style:italic" class=""># A sensor, not a real meter<br class=""></span><span style="color:rgb(140,140,140);font-style:italic" class=""><br class=""></span><span style="color:rgb(0,51,179)" class="">middleware</span>:<br class="">  <span style="color:rgb(0,51,179)" class="">type</span>: volkszaehler<br class="">  <span style="color:rgb(0,51,179)" class="">middleware_url</span>: <a href="http://localhost/middleware.php" target="_blank" class="">http://localhost/middleware.php</a>  <span style="color:rgb(140,140,140);font-style:italic" class=""># optional, defaults to local host<br class=""></span><span style="color:rgb(140,140,140);font-style:italic" class="">  </span><span style="color:rgb(0,51,179)" class="">interpolate</span>: True  <span style="color:rgb(140,140,140);font-style:italic" class=""># Interpolate hourly values, if interval >=2h<br class=""></span></pre></div><div class="">Nach der Konfiguration kann pymeterreader als Service mit systemctl gestartet werden:<br class=""></div><div class=""><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;margin-top:0px;margin-bottom:16px;padding:16px;overflow:auto;line-height:1.45;border-radius:6px;color:rgb(36,41,46)" class=""><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;padding:0px;margin:0px;background:initial;border-radius:6px;word-break:normal;border:0px none;display:inline;overflow:visible;line-height:inherit" class="">sudo systemctl start pymeterreader
journalctl -f  # Dem Log folgen<br class=""></code></pre></div><div class="">Über Feedback und vielleicht sogar Mitarbeit am Projekt würde ich mich freuen.</div><div class="">Es wäre auch schön wenn das Projekt auf <a href="http://volkszahler.org/" target="_blank" class="">Volkszahler.org</a> verlinkt werden würde.</div><div class=""><br class=""></div><div class="">PS:
 Entschuldigung falls diese Mail nun doppelt in der Liste ist. Beim 
ersten Versuch ist die Bestätigungsmail im Spamfilter hängen geblieben.<br class=""></div><div class=""><br class=""></div><div class="">Viele Grüße</div><font color="#888888" class=""><font color="#888888" class=""><div class=""><br class=""></div><div class="">Oliver Schwaneberg</div></font></font></div>
</div></blockquote></div><br class=""></div></div></blockquote></div>
</div></blockquote></div><br class=""></div></body></html>