Hallo Alex,

vielen Dank für die ausführliche Infos. Ich probiere es aus und berichte wie es lief. Wenn es nicht klappt versuche ich die S0 USB Schnittstelle nachzubauen.

LG,
Julian

Am 01.01.24 um 16:57 schrieb Alex:
Hallo Julian,

die Crimpverbindungen sehen gut aus, vom Löten würde ich eher abraten.
Zum einen wegen möglicher Hitzeschäden (ich weiß nicht wie geübt Du
bist), zum anderen wegen möglicher Kurzschlüsse - verbinde einen 5V Pin
mit GND und der Raspi ist für immer tot... bei den preiswerten ESPs
habe ich der Einfachheit halber auch schon gelötet, beim Raspi ist mir
das Risiko zu groß.

Also: Es gibt zwei GPIO Pins, die mit einem 4K7 Hardware Pull-Up fest
verdrahtet sind. Eigentlich sind sie für I2C gedacht, der Einfachkeit
halber kannst Du sie aber auch für S0 verwenden. Es handelt sich um die
Pins 3 und 5. Wichtig ist, sicherzustellen, dass Du kein I2C in
Benutzung hast. "i2cdetect -l" sollte keinen Bus anzeigen, auch darfst
Du keine Hardware-Clock über Overlay konfiguriert haben, ich habe auf
meinem Desktop z.B.  dtoverlay=i2c-rtc,ds3231 im /boot/config.txt.

Siehst Du doch einen Bus, hast Du vielleicht im /etc/modules die Zeile
"i2c-dev" drin. Einfach auskommentieren und neu starten, dann dürften
die beiden GPIO Pins frei sein.

Zu Beginn (bei mir im Jahr 2019) hatte ich zur Vermeidung von

Falschimpulsen selbst unschön im vzlogger-code herumgebastelt, aber:
das ist nicht mehr nötig, denn es gibt seit geraumer Zeit eine vzlogger
Version als Pull-Request, der zwar noch nicht gemerged wurde aber voll
funktionsfähig ist und heruntergeladen werden kann.

https://github.com/volkszaehler/vzlogger/pull/525
https://github.com/wrichter/vzlogger/tree/gpiod

Dieser benutzt, wenn man will, nicht mehr mmap oder /sysfs als Zugriff,
sondern /dev/gpiochip (deshalb hatte ich gefragt) und hat eine schöne
Erfindung namens "State Engine". Kommt z.B. ein "raising edge", obwohl
der Status schon "high" ist, wird dieser ignoriert, ebenso andersrum.
Die Logik ist noch um einiges komplexer und wirklich recht ausgefeilt.

Zudem kann man zusätzlich zum "debounce_delay" einen Wert für die
Mindestimpulslänge angeben ("high_wait"). Bei Original-Sensoren findet
sich dieser Wert in der Doku, oder man tastet sich einfach nach oben.
Bei mir läuft es mit "debounce_delay": 10 und "high_wait": 80.

Beides zusammen führt bei mir in der Tat dazu, dass bei voll
aufgedrehtem Logging sichtbare Interferenzen *nicht* als Impuls
gewertet werden. Ich habe es damals ein paar Tage lang beobachtet und
wirklich keine falschen Readings mehr gefunden, die nicht von der
State-Engine abgefangen wurden.

Deshalb kann ich diese Software gerade bei elektronisch nicht ganz
einwandfreien Umgebungen nur empfehlen.

Also: Du schliesst deinen Sensor an Pin 3 und einen der Ground-Pins,
z.B. 6 oder 9 an.

Dann brauchst Du noch die GPIOD Client und Library Programme. Schau mal
ob Du "gpioinfo" findest, andernfalls das Paket "gpiod" und Dependenzen
nachinstallieren.

alex@avz:~:(7)> gpioinfo
gpiochip0 - 54 lines:
        line   0:      unnamed       unused   input  active-high
        line   1:      unnamed       unused   input  active-high
        line   2:      unnamed       unused   input  active-high
        line   3:      unnamed "vzlogger-s0" input active-low [used]
        line   4:      unnamed       unused   input  active-high
        line   5:      unnamed       unused   input  active-high
        line   6:      unnamed       unused   input  active-high
        line   7:      unnamed   "spi0 CS1"  output   active-low
[used]
        line   8:      unnamed   "spi0 CS0"  output   active-low
[used]
        line   9:      unnamed       unused   input  active-high
        line  10:      unnamed       unused   input  active-high
        line  11:      unnamed       unused   input  active-high
usw.

Wie Du siehst hat sich mein vzlogger da schon angemeldet. Dazu dann
beispielhaft ein Auszug aus meiner vzlogger.conf:

     "meters": [
         {
             // S0 meter

             "protocol": "s0",
             "enabled": true,
             "skip": false,
             "allowskip": false,
             "interval": -1,
             "aggtime": -1,
             "aggfixedinterval": false,
             "gpio": 1003,
             "gpio_dir": -1,
             "configureGPIO": true,
             "send_zero": false,
             "debounce_delay": 10,
             "high_wait": 80,

             "channel": {
                 "identifier": "Impulse",
                 "api": "volkszaehler",
                 "uuid": "b12dfd80-111c-11ea-8e1a-c9616b442377",
                 "middleware": "http://avz/middleware";,
                 "type": "device",
                 "aggmode": "none",
                 "duplicates": 0
             }
         },
     ]

Bei gpio muss es für Pin 3 wirklich 1003 heissen, damit der Zugriff
über GPIOD erfolgt und nicht über mmap und sysfs. "configure_gpio"
setzt "active_low" quasi als Inversion, da Du ja sonst mit einem Pull-
Up nicht die (positiven) Impulse, sondern die Zeit dazwischen loggen
würdest.

Hast Du die Pins 3 und 5 schon anderweitig belegt, z.B. für eine I2C
Uhr, kannst Du auch die Softresistors verwenden. Da muss dann nur eine
Kleinigkeit im Code geändert werden, dann läuft das genauso gut und wie
gesagt, bei mir fehlerfrei.

Lass' mich wissen wenn Du noch Fragen hast.

Grüße,
Alex

On Sat, 2023-12-30 at 09:23 +0100, Julian Sikorski wrote:
Hallo Alex,

auf dem Raspberry läuft Kernel 6.1.21+, /dev/gpiochip0 und
/dev/gpiochip1 gibt es.

LG,
Julian

Am 29.12.23 um 15:28 schrieb Alex:
Hallo Julian,

eine Frage zu Deinem Raspberry... welche Linux-Kernel Version hast
Du
und gibt es schon ein gpiochip device?

So sieht es bei mir aus...

alex@avz:~:(10)> uname -r
5.10.110-v8
alex@avz:~:(11)> ls -la /dev/gpiochip*
crw-rw---- 1 root gpio 254, 0 Dec 22 10:26 /dev/gpiochip0
crw-rw---- 1 root gpio 254, 1 Dec 22 10:26 /dev/gpiochip1

Gruß,
Alex

On Wed, 2023-12-27 at 20:01 +0100, Julian Sikorski wrote:
Hallo Alex,

danke im Voraus. Kein Stress, ich werde erstmal mit dem PIN und
Docker
genug zu tun haben.

LG,
Julian

Am 27.12.23 um 18:53 schrieb Alex:
Hallo Julian,

seit einem dreiviertel Jahr habe ich einen Metrix Impulsnehmer
NI-3
für
Metrix/Apator Gaszähler am laufen, davor war's ein Cyble
Sensor,
der
streng genommen kein Reed-Kontakt ist, sondern ein
elektronischer
Open-Collector. Beide der Einfachkeit halber direkt am GPIO.

Das Hauptproblem war bei mir nie, dass die Impulse nicht oder
nicht
sauber gezählt werden, sondern Interferenzen, sprich falsche
Impulse,
die entweder over the air oder via Netzteil kommen können.
Schleudernde
Wasch- oder pumpende Spülmaschinen z.B. machen da viel
Freude....

Ich schreibe mal mein Setup zusammen und schicke es Dir... kann
aber ein
zwei Tage dauern. Aber wie gesagt, nicht die reine Lehre, die
USB
Lösung
ist da sicherlich besser.

Grüße,
Alex

On Wed, 2023-12-27 at 14:34 +0100, Julian Sikorski wrote:
Hallo,

danke für eure Meinungen. Mein Gaszähler wäre der BK-G4 von
Kromschröder, entschuldigt bitte den falschen Betreff.
Baujahr
scheinbar
2001, die Aussparung für Reed Sensor gibt es aber. Ich hätte
eigentlich
gedacht, dass dieser längst wegen abgelaufener Eichung
ausgetauscht
werden müsste, es ist aber scheinbar nicht der Fall (oder
Syna
hat uns
vergessen).
An der Erfahrungen hätte ich definitiv Interesse :)
Ich hätte nichts gegen bisschen mehr Geld für den
"originalen"
Sensor
auszugeben, zumal meine Elektronik-Fähigkeiten schnell an
ihre
Grenzen
kommen :( 10k Resistor zu verbauen kriege ich aber noch hin
(hoffentlich). Lesekopf von Tilman wäre wahrscheinlich zu
viel
verlangt.
Es wurde von manchen von Prellen berichtet, kriegt man das
mit
dem
debounce_delay Parameter in Griff?
Funktioniert der IN-Z62 dann auch direkt mit 3.3V von GPIO?
Wenn
nicht,
was wäre der "MVP"?
Wegen der Anbindung an die Pins, wäre so was in Ordnung:
https://www.berrybase.de/dupont-crimpkontakt-fuer-kabel-awg-
22-
28-female?number=DUPCP-F <https://www.berrybase.de/dupont-
crimpkontakt-fuer-kabel-awg-22-28-female?number=DUPCP-F>
Danke!

LG,
Julian

Am 26.12.23 um 19:29 schrieb Alex:
Meiner Erfahrung nach funktionieren die "originalen", also
vom
Hersteller des Zählers vertriebenen Kontakte reibungslos,
weil
ja auch
getestet und zertifiziert. Dafür in der Anschaffung halt
ein
bisschen
teurer... und exakt passend mit Befestigung.

On Tue, 2023-12-26 at 19:25 +0100, Tilman Glötzner wrote:

Hallo Julian

Ich lese bei Klaus etwas von einen ziemlichen Kampf. Das
war
bei dem
BK-G4M, den wir im Keller hängen haben, genauso.

Für einen Reedkontakt war der Magnet zu schwach. Auch für
einem
Hallsensor hat es nicht gereicht. Erfolg hatte ich dann
erst
mit einem
Magnetfeldsensor. Dokumentiert habe ich die Lösung im
Wiki:

https://wiki.volkszaehler.org/hardware/controllers/bk-
g4m_lesekopf
<https://wiki.volkszaehler.org/hardware/controllers/bk-
g4m_lesekopf>

Gruß

Tilman

On 26.12.23 18:54, Klaus Reichenecker wrote:

Ich logge meinen Gaszähler direkt mit ESPEasy in den
VZ-
ganz ohne
Raspi, GPIO usw

Es war aber Hardwareseitig ein ziemlicher Kampf – der
Magnet viel zu
schwach für einen Reedkontakt

Ich nutze jetzt einen Hallsensor, selbst das ist schon
grenzwertig

*Von:* volkszaehler-users
<volkszaehler-users-
boun...@demo.volkszaehler.org <mailto:volkszaehler-
users-
bounces-yskvaw7g+ns0hmefegd...@public.gmane.orger.org>>
*Im
Auftrag von *Alex
*Gesendet:* Dienstag, 26. Dezember 2023 16:32
*An:* volkszaehler.org - users
<volkszaehler-
us...@demo.volkszaehler.org <mailto:volkszaehler-users-
yskvaw7g+nqk+z9goqpw2mui9ukz+...@public.gmane.org>>;
volkszaehler-users-fIHz4KgiBUEiDHdcnmzpoUzrnptfnCPw-
xmd5yjdbdmrexy1tmh2...@public.gmane.org <mailto:volksza
ehle
r-users-fIHz4KgiBUEiDHdcnmzpoUzrnptfnCPw-
xmd5yjdbdmrexy1tmh2...@public.gmane.org>
*Betreff:* Re: [vz-users] Gaszähler EG-BK4 möglichst
einfach auslesen

Hallo Julian,

um es kurz zu sagen: prinzipiell geht es, ist aber
störanfällig. Mit
ein paar Tricks kann man es weitestgehend in den Griff
bekommen,
zumindest bei einem Gaszähler, der ja vergleichsweise
wenig
Impulse
sendet. Wenn Du möchtest, kann ich ein paar Erfahrungen
weitergeben,
auch, was die internen Widerstände betrifft (es gibt
hard
und soft
resistors on board). Wirklich empfehlenswert ist diese
Vorgehensweise
jedoch nicht.

Viele Grüße,

Alex

On Tue, 2023-12-26 at 10:57 +0100, Julian Sikorski
wrote:


Hallo zusammen,

ich bin vor einigen Tagen auf volkszähler drauf
gestoßen
und direkt

begeistert geworden. Ich habe mir ein IR Lesekopf für
mein Iskra

Stromzähler besorgt und den PIN bestellt. So weit, so
gut. Sobald ich

mein uraltes Raspberry Pi 1B an das Heimnetz
anschließen
kann, werde
ich

middleware und frontend auf Docker container
umziehen,
der auf meinem

Odroid HC1 NAS läuft.

Jetzt zum eigentlichen Thema: ich würde gerne mein
Gaszähler auch
gerne

mit auslesen. Entweder mit dem offiziellen IN-Z62
oder
mit dem reed

sensor von Reichelt. Dazu hätte ich folgende Fragen:

- da die Erweiterungsboard momentan nicht lieferbar
ist,
geht es auch

direkt über GPIO?

- wenn ja, wie schließt man die Kabel am besten an
die
GPIO pins?
Löten

oder mit Dupont Crimp?

- funktioniert es auch mit den internen Widerständen
oder
ist ein

externes 10k zwingend erforderlich?

Danke für die Infos im Voraus.

Liebe Grüße,

Julian

















Antwort per Email an