[vz-dev] S0 Meter direkt an RS232 und Raspberry Pi

Jan Tamm vz at tamms.net
Thu Apr 11 20:29:03 CEST 2013


Am 11. April 2013 09:55 schrieb Thorben Thuermer <r00t at constancy.org>:

> achtung:
> der s0-an-rs232 hack ist fuer echte rs232-ports vorgesehen,
> nicht fuer den ttl uart-port wie am himbeerkuchen.
> beim himbeerkuchen wuerde das einen pegelwandler oder ein usb<->rs232
> interface bedeuten.
> ansonsten solltest du dort einen s0-zaehler einfach an einen GPIO
> anschliessen, nicht an den uart.
> das wird dann vom 's0vz' programm unterstuetzt, siehe hinweis von udo.
>
> Danke Euch beiden für den Hinweis, ich dachte, s0vz ist nur zusammen mit
dem Erweiterungsboard von Udo nutzbar. Da ich nur einen S0 anschliessen
will erschien mit das Board immer zu groß. Nun schaue ich es mir einmal an.


> [...]
> > Setzt von Euch jemand den S0 Meter überhaupt in vzlogger ein? Mein Gefühl
> > sagt mir, dass es noch nicht rund ist: es ist als periodic und mit max
> > readings 3 definiert. Meiner Meinung nach ist nur der aktuelle Power Wert
> > sinnvoll. Außerdem halte ich diesen Meter nicht für periodic im
> > eigentlichen Sinne, d.h. vzlogger sollte nicht schlafen und dann wieder
> > einen Wert aufnehmen. Im Meter selbst werden drei readings gefüllt aber
> nur
> > einer zurückgegeben und ausgewertet (return 1) und dort ist nicht mal der
> > Leistungswert enthalten.
>
> du redest hier vom vzlogger quellcode?
> ich habe den code schonmal gelesen und einen groeberen bug gefixt,
> wohl dummerweise mal wieder nur in einer (der c-) version,
> anscheinend hast du gerade den gleichen in der c++ version gefunden?
>
> http://volkszaehler.org/pipermail/volkszaehler-users/2012-December/000757.html
>
> https://github.com/volkszaehler/vzlogger/commit/d5c0a10ec3a08c47dd0d55972ce3d3a8b4906c25
>
> Genau, der Bug ist in der C++ Version noch enthalten. Zusätzlich wurde der
Meter in der C++ Version aber ergänzt, sodass er nun drei Readings
ermittelt:
1) Identifier "counter" mit value gleich einem internen Zähler, der erhöht
wird. Mein Verständnis war, dass bei Countern immer nur Impulse übermittelt
werden, und im Frontend der value Wert ignoriert wird (was leider die
Aggregation in der Middleware vor dem Frontend unmöglich macht). Also
sollte der doch Value 1 haben.
2) Einen NilIdentifier mit Wert 1 der sich mir nicht erschließt. Habt Ihr
eine Idee was das sein könnte?
3) einen Power Identifier der die errechnete Leistung ausgibt. Leider
werden zur Errechnung der Leistung jedesmal zwei Impulse gezählt und nicht
ein Zeitstempel vom vorherigen Lauf herangezogen. Folglich wird im counter
nur jeder zweite Impuls weitergegeben.

Ganz komisch wird es, das zwar die drei Readings errechnet werden aber die
Funktion mit "return 1" nur den ersten Wert im counter zurückgibt, der wie
oben beschrieben nur die halbe Frequenz hat. Also insgesamt bin ich stutzig
ob jemand den S0 Meter in der c++ Variante nutzt.

> Falls es keine Proteste von der Liste gibt, dann
> > bastel ich dort einmal rum, d.h. ändere auf non-periodic mit max
> readings =
> > 1 und baue zusätzlich die vorgeschlagene "Aggregation" Funktion avg von
> > Peter ein.
>
> solange du keine commit-rechte auf unser repository hast, wird's nix
> geben worueber jemand protestieren kann... ;)
> vielleicht stimmst du dich noch mit peter ab wer das dann implementiert?
> ansonsten suchen wir uns nachher die schoenere loesung aus ;)
>
> - Thorben
>

Ach, für einen Pull-request sollte es noch reichen. Mal schauen was es
letztendlich wird.
-- Jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://volkszaehler.org/pipermail/volkszaehler-dev/attachments/20130411/65fd9b74/attachment-0001.html>


More information about the volkszaehler-dev mailing list