[vz-users] Protokoll-spezifische Schlüssel für S0

rgb at nord-com.net rgb at nord-com.net
Do Mär 26 19:22:10 CET 2020


Hallo Daniel,

 

Lass' mich vorausschicken, dass ich mit der Entwicklung des Vzloggers absolut nichts zu tun habe... ich bin auch erst vor einem halben Jahr eingestiegen, als es die Erweiterungen schon nicht mehr zu kaufen gab... war auch bei mir erst ein trial and error.

 

Was configureGPIO macht, kann man im Sourcecode (MeterS0.cpp).sehen:

 

1. der GPIO wird exportiert:

 

                if (_configureGPIO) {

                        fd = ::open("/sys/class/gpio/export", O_WRONLY);

[ ... ]

                        name.append(std::to_string(_gpiopin));

[ ... ]

                        res = write(fd, name.c_str(), name.length() + 1); 

 

2. als Eingang konfiguriert:

 

                name.append("/sys/class/gpio/gpio");

                name.append(std::to_string(_gpiopin));

                name.append("/direction");

[ ... ]

                res = ::write(fd, "in\n", 3);

 

3. die Flanke auf "rising" gesetzt (hat nichts mit gpio_dir zu tun)

 

                name.append("/edge");

[ ... ]

                res = ::write(fd, "rising\n", 7);

 

4. Active_low auf 0 gesetzt, d.h. positive Impulse werden gezählt, nicht die Unterbrechungen dazwischen

 

                name.append("/active_low");

[ ... ]

                res = ::write(fd, "0\n", 2);

 

Letzteres heisst Du müsstest mit einem Pull-Down Widerstand arbeiten. VZlogger hat keine Möglichkeit die internen Pull-Up/Down-Widerstände zu konfigurieren. Wenn Du einen internen Pull-Down verwenden möchtest, geht das z.B. mit dem Kommando "gpio" des Paketes "wiringpi". Letzteres ist standardmäßig nicht installiert, lässt sich per "apt-get install wiringpi" nachinstallieren.

 

Dann z.B. mit dem Eintrag 

 

[Service]

ExecStartPre=/usr/bin/gpio -g mode 21 down

ExecStart=/usr/local/bin/vzlogger -c /etc/vzlogger.conf

 

im /etc/systemd/system/vzlogger.service automatisch vor dem Start des vzloggers setzen. Ich mache es so. Meines Wissens kannst Du alle GPIOs verwenden, welche es gibt und auch wie sie benannt werden kannst Du übrigens via „gpio readall“ sehen.

 

Sollte ich irgendetwas übersehen haben, man verzeihe mir bitte…

 

Gruss,

Alex

 

 

> -----Original Message-----

> From: volkszaehler-users [mailto:volkszaehler-users-

> bounces at demo.volkszaehler.org] On Behalf Of Daniel Schwarz

> Sent: Thursday, March 26, 2020 1:18 PM

> To: volkszaehler.org - users

> Subject: [vz-users] Protokoll-spezifische Schlüssel für S0

> 

> Hallo zusammen,

> 

> ich baue derzeit eine Schaltung, mit der ich meinen Wasserzähler an den

> VZ anschliessen kann. Am Ende sollen dabei S0-Pulse rauskommen. Dazu

> kann ich ja im VZ-Logger entsprechend konfigurieren.

> 

> Vorab: Bei mir laufen bereits zwei Stromzähler (SML). Als Hardware

> verwende ich einen RaspberryPi der ersten Generation, auf dem läuft das

> Image von volkszaehler.org.

> 

> Für die Konfiguration eines S0-fähigen Kanales ist mir folgendes aber

> noch nicht ganz klar (ich beziehe mich auf die Seite

> https://wiki.volkszaehler.org/software/controller/vzlogger/vzlogger_conf_

> parameter):

> 

> - Parameter "gpio": Kann ich hier wahlfrei einen Pin nehmen, der in der

> Tabelle angegeben ist?

> 

> - Parameter "configureGPIO": Was konfiguriert der Vzlogger denn?

> Ausgewählter Pin als Input, mit Pulldown oder Pullup? Oder kann ich das

> selbst noch irgendwo bestimmen? Andernfalls müsste ich ggf. auf "false"

> setzen und beim Boot den Pin entsprechen konfigurieren (mit allen

> notwendigen Skripten und Bibliotheken usw. Bäh.). Das wäre die

> wichtigste Frage, denn danach richtet sich die Beschaltung meines Lesers.

> 

> Parameter "gpio_dir":  Normalerweise wird ja der High-Impuls (oder die

> Flanke low -> high?) gezählt. Ist mit "Zählrichtung negativ" die Zählung

> bei high -> low gemeint?

> 

> Meine Hardware generiert derzeit einen positiven 5V-Impuls mit

> einstellbarer Dauer (30 ms und höher). Damit kann ich aber nicht direkt

> an den RaspberryPi, weil der Spannungspegel nicht passt. Ich würde also

> einen Optokoppler ansteuern und wäre potentialfrei. Am einfachsten wäre

> es, den GPIO am Pi mit einem Optokoppler nach low ziehen (= Zählimpuls).

> Ansonsten ist der Ausgang hochohmig und der interne Pullup am Pin zieht

> auf definiertes Potential.

> 

> Danke für eure Hilfe und Anregungen.

> 

> Daniel

 

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20200326/aa39ad09/attachment-0001.html>


More information about the volkszaehler-users mailing list