Re: [vz-users] Cyble Sensor an Raspberry - vzlogger - Problem gelöst

2019-12-07 Diskussionsfäden Thomas Höpfner
Hallo Alex,



da haben ich dich wirklich falsch verstanden.



[Dec 07 09:48:16][S0]   MeterS0:HWIF_GPIO:first poll returned 0

[Dec 07 09:48:16][S0]   MeterS0:HWIF_GPIO:first poll returned 1

[Dec 07 09:48:16][S0]   MeterS0:HWIF_GPIO:first poll returned 1

[Dec 07 09:48:16][s0]   Reading S0 - returning 2 readings (n=1 n_neg = 0)

[Dec 07 09:48:16][mtr0] Got 2 new readings from meter:

[Dec 07 09:48:16][mtr0] Reading: id=Power/StringIdentifier: value=118.54 
ts=1575708496489

[Dec 07 09:48:16][mtr0] Reading: id=Impulse/StringIdentifier: value=1.00 
ts=1575708496489

[Dec 07 09:48:16][chn0] Adding reading to queue (value=1.00 ts=1575708496489)

[Dec 07 09:48:16][chn0] ==> number of tuples: 1



Was die Meldungen im einzelnen bedeuten weis ich nicht, wichtig scheinen mir 
nur die 2 letzten.

Ein Datensatz, Wert 1 und der Zeitstempel. 



Du hast also recht, alles funktioniert. 





Mit freundlichen Grüßen,

Thomas


Re: [vz-users] Cyble Sensor an Raspberry - vzlogger - Problem gelöst

2019-12-07 Diskussionsfäden rgb
ception("set active_low failed");

if (::close(fd)<0) throw vz::VZException("set active_low 
failed");

}

 

Es mag sein dass der Pull-Down anderswo gesetzt wird, ich überblicke ja nicht 
den ganzen Code. Mit „gpio –g  mode 21 down“ im rc.local funktioniert es auf 
jeden Fall für mich.

 

Ich schicke Dir gerne das Datenblatt des Cyble, dazu bräuchte ich allerdings 
Deine Email-Adresse, die Datei ist zu gross für die Liste.

 

Gruss,

Alex

 

From: volkszaehler-users 
[mailto:volkszaehler-users-boun...@demo.volkszaehler.org] On Behalf Of Thomas 
Höpfner
Sent: Saturday, December 07, 2019 6:49 AM
To: volkszaehler.org - users; 'volkszaehler.org - users'
Subject: Re: [vz-users] Cyble Sensor an Raspberry - vzlogger - Problem gelöst

 

Hallo Alex

 

mein Problem hat sich in der Zwischenzeit gelöst…

Noch nicht ganz.

Ich habe es nun mal mit einem “normalen” GPIO mit internen Pull-Down-Widerstand 
versucht, also so wie Du. Allerdings musste ich letzteren softwaremässig 
einschalten, mit „gpio -g mode 21 down“ im rc.local. Das Programm „gpio“ ist 
Teil des nachladbaren Paketes „wiringpi“. Ohne das hat es nicht funktioniert, 
im Sourcecode des vzloggers habe ich auch nicht sehen können, dass 
„configureGPIO“ den internen Pull-Down konfiguriert. Es kann aber sein, dass er 
bei manchen GPIOs standardmässig aktiviert ist.

Ich habe den PullDown nicht extra aktiviert, sondern in der vzlogger.conf mit :

  "protocol": "s0",

  "gpio": 23,

 "gpio_dir": -1,

  "configureGPIO": true,

  "send_zero": false,

  "debounce_delay": 0

 

eingeschaltet. Den Code habe ich mir nicht angeschaut, davon habe ich keine 
Ahnung, deshalb vermute ich. Das auf den Pi ein Pull Widerstand standardmäßig 
aktiviert ist, widerspricht meinen  Erfahrungen.

Nun habe ich keine Fehlimpulse mehr. Allerdings bin ich mir nicht sicher, ob 
das an der Schaltung liegt, und/oder an einem nun komplett anderen Verhalten 
des vzloggers. 

Ich denke das Ergebnis zählt.

Ursprünglich (also in der Schaltung mit dem Pull-Up und einem bis auf die 
Unterbrechungen ja dauerhaft hohen Pegel am GPIO) hatte ich ein debounce_delay 
von 700 eingestellt, obwohl der Cyble ja ein elektronischer Kontakt ist. Wurde 
hier in dieser Liste mal von einem anderen Benutzer des Cyble so als notwendig 
dokumentiert.

Nach deiner Beschreibung hat der Ausgang keine vorgaben für die Polarität. Das 
funktioniert eigentlich nur mit einen mechanischen Kontakt. Die billigste und 
kleinste Lösung ist ein Reedkondakt(Relais), und die Prellen immer (davon habe 
ich Ahnung). "Elektronisch" ist Vermutlich die Erkennung des Verbrauchs und 
Erzeugung des Impulses.  

Die Impulse vom Cyble kamen regelmässig (das war nie das Problem) und der 
vzlogger hat jede „1“ auch an die Datenbank geschickt. Jetzt, mit 3,3V gegen 
GPIO mit Pull-Down ist letzterer ja, solange kein Impuls eintrifft, auf GND. 
Damit fiel schonmal der eine (logisch ja falsche) einmalige „Einschaltimpuls“ 
beim Starten des vzloggers weg. Soweit gut.

Ich denke dieses "falsche" verhalten ist den Programmieren bewusst und sie 
reagieren nur auf Flanken nach den Einschalten.

Allerdings hat der vzlogger nun auch die regelmässig und richtig kommenden 
„1“en des Cyble  zwar im Debug angezeigt, aber nicht mehr an die DB geschickt. 
Ich habe dann mal testweise das debounce_delay auf 0 gesetzt. Nun sah man 
plötzlich nicht nur einen Impuls vom Sensor, sondern jedesmal 2, zeitgleich. 
Das war wohl mal der Grund für das debounce_delay.

Diesen Verhalten solltest du noch Nachgehen. 

Der Vzlogger aber hat daraus Power und Impulse gemacht, also wie bei einem 
E-Zähler, und (entsprechend meiner Config) natürlich nur den Impuls (einen!) 
geloggt und auch per curl auch an die DB gesendet. Entweder haben Entwickler 
des Cyble und Programmierer des vzloggers mehr gemein als man denkt – oder 
vielleicht ist genau dieses Verhalten für das Protokoll als Standard definiert. 

Der vzlogger ist ausschließlich für die Erfassung und Übertragung an die 
Middleware zuständig. Die Auswertung-Interpretation erfolg im Frontend. Ob 
Strom, Gas, Wasser oder sonst etwas ist egal. "S0" bedeutet digitale Impulse 
für verbrauchte Menge/Arbeit. Aus Arbeit und Zeit wird die Leistung errechnet. 
Das ist Physik, die haben wir alle gemeinsam.

Auf jeden Fall funktioniert es so.

Wenn der 1. Impulse fehlt funktioniert es noch nicht richtig.

Es scheint dass der Vzlogger eine Impulsmindestlänge für analoge Impulsgeber 
(Reed) und bei digitalen einen zweifachen Impuls vorraussetzt. 

Der Pi kann nur digital, und ja: "debounce_delay".

Und vielleicht siebt genau das die eventuell ja noch vorhandenen Störimpulse 
aus, die diese Vorgaben nicht erfüllen…

Eher nicht, ich vermute das "debounce_delay" noch nicht passt.

Ohne Angaben zum Impulse im Datenblatt deines Cyble, oder eine Auswertung mit 
Oszi, hilft nur experimentieren mit der delayzeit. 0 ist definitiv zu wenig, 
dein jetziger Wert scheinbar zu hoch. 

 

Viel Spaß beim experimentieren.

 

Thomas

 

 



Re: [vz-users] Cyble Sensor an Raspberry - vzlogger - Problem gelöst

2019-12-06 Diskussionsfäden Thomas Höpfner
Hallo Alex



mein Problem hat sich in der Zwischenzeit gelöst…

Noch nicht ganz.

Ich habe es nun mal mit einem “normalen” GPIO mit internen Pull-Down-Widerstand 
versucht, also so wie Du. Allerdings musste ich letzteren softwaremässig 
einschalten, mit „gpio -g mode 21 down“ im rc.local. Das Programm „gpio“ ist 
Teil des nachladbaren Paketes „wiringpi“. Ohne das hat es nicht funktioniert, 
im Sourcecode des vzloggers habe ich auch nicht sehen können, dass 
„configureGPIO“ den internen Pull-Down konfiguriert. Es kann aber sein, dass er 
bei manchen GPIOs standardmässig aktiviert ist.

Ich habe den PullDown nicht extra aktiviert, sondern in der vzlogger.conf mit :


      "protocol": "s0",
      "gpio": 23,
     "gpio_dir": -1,
      "configureGPIO": true,
      "send_zero": false,
      "debounce_delay": 0



eingeschaltet. Den Code habe ich mir nicht angeschaut, davon habe ich keine 
Ahnung, deshalb vermute ich. Das auf den Pi ein Pull Widerstand standardmäßig 
aktiviert ist, widerspricht meinen  Erfahrungen.

Nun habe ich keine Fehlimpulse mehr. Allerdings bin ich mir nicht sicher, ob 
das an der Schaltung liegt, und/oder an einem nun komplett anderen Verhalten 
des vzloggers.

Ich denke das Ergebnis zählt.

Ursprünglich (also in der Schaltung mit dem Pull-Up und einem bis auf die 
Unterbrechungen ja dauerhaft hohen Pegel am GPIO) hatte ich ein debounce_delay 
von 700 eingestellt, obwohl der Cyble ja ein elektronischer Kontakt ist. Wurde 
hier in dieser Liste mal von einem anderen Benutzer des Cyble so als notwendig 
dokumentiert.

Nach deiner Beschreibung hat der Ausgang keine vorgaben für die Polarität. Das 
funktioniert eigentlich nur mit einen mechanischen Kontakt. Die billigste und 
kleinste Lösung ist ein Reedkondakt(Relais), und die Prellen immer (davon habe 
ich Ahnung). "Elektronisch" ist Vermutlich die Erkennung des Verbrauchs und 
Erzeugung des Impulses.  

Die Impulse vom Cyble kamen regelmässig (das war nie das Problem) und der 
vzlogger hat jede „1“ auch an die Datenbank geschickt. Jetzt, mit 3,3V gegen 
GPIO mit Pull-Down ist letzterer ja, solange kein Impuls eintrifft, auf GND. 
Damit fiel schonmal der eine (logisch ja falsche) einmalige „Einschaltimpuls“ 
beim Starten des vzloggers weg. Soweit gut.

Ich denke dieses "falsche" verhalten ist den Programmieren bewusst und sie 
reagieren nur auf Flanken nach den Einschalten.

Allerdings hat der vzlogger nun auch die regelmässig und richtig kommenden 
„1“en des Cyble  zwar im Debug angezeigt, aber nicht mehr an die DB geschickt. 
Ich habe dann mal testweise das debounce_delay auf 0 gesetzt. Nun sah man 
plötzlich nicht nur einen Impuls vom Sensor, sondern jedesmal 2, zeitgleich. 
Das war wohl mal der Grund für das debounce_delay.

Diesen Verhalten solltest du noch Nachgehen. 

Der Vzlogger aber hat daraus Power und Impulse gemacht, also wie bei einem 
E-Zähler, und (entsprechend meiner Config) natürlich nur den Impuls (einen!) 
geloggt und auch per curl auch an die DB gesendet. Entweder haben Entwickler 
des Cyble und Programmierer des vzloggers mehr gemein als man denkt – oder 
vielleicht ist genau dieses Verhalten für das Protokoll als Standard definiert.

Der vzlogger ist ausschließlich für die Erfassung und Übertragung an die 
Middleware zuständig. Die Auswertung-Interpretation erfolg im Frontend. Ob 
Strom, Gas, Wasser oder sonst etwas ist egal. "S0" bedeutet digitale Impulse 
für verbrauchte Menge/Arbeit. Aus Arbeit und Zeit wird die Leistung errechnet. 
Das ist Physik, die haben wir alle gemeinsam.

Auf jeden Fall funktioniert es so.

Wenn der 1. Impulse fehlt funktioniert es noch nicht richtig.

Es scheint dass der Vzlogger eine Impulsmindestlänge für analoge Impulsgeber 
(Reed) und bei digitalen einen zweifachen Impuls vorraussetzt.

Der Pi kann nur digital, und ja: "debounce_delay".

Und vielleicht siebt genau das die eventuell ja noch vorhandenen Störimpulse 
aus, die diese Vorgaben nicht erfüllen…

Eher nicht, ich vermute das "debounce_delay" noch nicht passt.

Ohne Angaben zum Impulse im Datenblatt deines Cyble, oder eine Auswertung mit 
Oszi, hilft nur experimentieren mit der delayzeit. 0 ist definitiv zu wenig, 
dein jetziger Wert scheinbar zu hoch. 



Viel Spaß beim experimentieren.



Thomas


Re: [vz-users] Cyble Sensor an Raspberry - vzlogger - Problem gelöst

2019-12-06 Diskussionsfäden rgb
Hallo Thomas,

 

mein Problem hat sich in der Zwischenzeit gelöst…

 

Ich habe es nun mal mit einem “normalen” GPIO mit internen Pull-Down-Widerstand 
versucht, also so wie Du. Allerdings musste ich letzteren softwaremässig 
einschalten, mit „gpio -g mode 21 down“ im rc.local. Das Programm „gpio“ ist 
Teil des nachladbaren Paketes „wiringpi“. Ohne das hat es nicht funktioniert, 
im Sourcecode des vzloggers habe ich auch nicht sehen können, dass 
„configureGPIO“ den internen Pull-Down konfiguriert. Es kann aber sein, dass er 
bei manchen GPIOs standardmässig aktiviert ist.

 

Nun habe ich keine Fehlimpulse mehr. Allerdings bin ich mir nicht sicher, ob 
das an der Schaltung liegt, und/oder an einem nun komplett anderen Verhalten 
des vzloggers. Ursprünglich (also in der Schaltung mit dem Pull-Up und einem 
bis auf die Unterbrechungen ja dauerhaft hohen Pegel am GPIO) hatte ich ein 
debounce_delay von 700 eingestellt, obwohl der Cyble ja ein elektronischer 
Kontakt ist. Wurde hier in dieser Liste mal von einem anderen Benutzer des 
Cyble so als notwendig dokumentiert.

 

Die Impulse vom Cyble kamen regelmässig (das war nie das Problem) und der 
vzlogger hat jede „1“ auch an die Datenbank geschickt. Jetzt, mit 3,3V gegen 
GPIO mit Pull-Down ist letzterer ja, solange kein Impuls eintrifft, auf GND. 
Damit fiel schonmal der eine (logisch ja falsche) einmalige „Einschaltimpuls“ 
beim Starten des vzloggers weg. Soweit gut.

 

Allerdings hat der vzlogger nun auch die regelmässig und richtig kommenden 
„1“en des Cyble  zwar im Debug angezeigt, aber nicht mehr an die DB geschickt. 
Ich habe dann mal testweise das debounce_delay auf 0 gesetzt. Nun sah man 
plötzlich nicht nur einen Impuls vom Sensor, sondern jedesmal 2, zeitgleich. 
Das war wohl mal der Grund für das debounce_delay.

 

Der Vzlogger aber hat daraus Power und Impulse gemacht, also wie bei einem 
E-Zähler, und (entsprechend meiner Config) natürlich nur den Impuls (einen!) 
geloggt und auch per curl auch an die DB gesendet. Entweder haben Entwickler 
des Cyble und Programmierer des vzloggers mehr gemein als man denkt – oder 
vielleicht ist genau dieses Verhalten für das Protokoll als Standard definiert. 
Auf jeden Fall funktioniert es so.

 

Es scheint dass der Vzlogger eine Impulsmindestlänge für analoge Impulsgeber 
(Reed) und bei digitalen einen zweifachen Impuls vorraussetzt. Und vielleicht 
siebt genau das die eventuell ja noch vorhandenen Störimpulse aus, die diese 
Vorgaben nicht erfüllen…

 

Danke & Gruss,

Alex

 

 

From: volkszaehler-users 
[mailto:volkszaehler-users-boun...@demo.volkszaehler.org] On Behalf Of Thomas 
Höpfner
Sent: Wednesday, December 04, 2019 4:23 AM
To: volkszaehler.org - users
Subject: Re: [vz-users] Cyble Sensor an Raspberry - Störimpulse

 

Hi Alex,

 

gute Frage. Genau das soll Verhalten soll mit pull-up oder -down vermieden 
werden. 

Wie genau hast du deinen aktiviert?

Welche Spannung liegt am GPIO an?

Ist I2C sicher deaktiviert?

 

Vielleicht ist der GPIO auch nur ungeeignet. 

Ich habe folgendes erfolgreich an GPIO 23 getestet:

- in vzlogger.conf : "configureGPIO": true, // aktiviert vermutlich den 
internen pull-down 

- Optokoppler schaltet von +3.3V auf GPIO

Mit freundlichen Grüßen,

Thomas 

 

-Ursprüngliche Nachricht-
Von: r...@nord-com.net 
Gesendet: Dienstag 3 Dezember 2019 18:52
An: 'volkszaehler.org - users' 
Betreff: Re: [vz-users] Cyble Sensor an Raspberry - Störimpulse



Hmmm, ich habe gerade ein großes Fragezeichen auf meiner Stirn.

 

Aus purem Interesse habe ich mit einem Multimeter in meinem Raspberry 
herumgemessen. Unter anderem auch ausprobiert, ob eine direkte Verbindung 
zwischen dem GPIO meiner Wahl und Ground im Vzlogger einen Impuls auslöst. Ja, 
das funktioniert, wie sollte es auch anders sein.

 

Durch Zufall habe ich dann festgestellt, dass ich ebenso einen Impuls auslöse, 
wenn ich mit dem Messkabel an den GPIO komme, das andere Ende jedoch in der 
Luft hängt – ich habe es noch nichtmal mit der Hand berührt.

 

Ist das Gerät wirklich so empfindlich, oder läuft hier etwas ganz falsch?

 

-fragt sich Alex

 

From: volkszaehler-users 
[mailto:volkszaehler-users-boun...@demo.volkszaehler.org] On Behalf Of Thomas 
Höpfner
Sent: Saturday, November 30, 2019 6:44 PM
To: volkszaehler.org - users
Subject: Re: [vz-users] Cyble Sensor an Raspberry - Störimpulse

 

Hallo Alex,

 

Zwei Fragen noch: Ich gehe davon aus dass ich weiterhin einen Pull-Up 
Widerstand benötige, 

Ja

ist der momentane (interne) von 1,8 kOhm an GPIO3 dafür tauglich? 

Ja

So wie ich es verstehe: Niedrigerer Widerstand à höhere Stromstärke 

Ja

à geringere Fehleranfälligkeit für Störimpulse (die ja theorethisch auch auf 
der vielleicht dann 10cm langen Strecke zwischen Raspberry und Optokoppler 
einschlagen könnten) ?

Nein! Die Verbesserung ist, das an deinen GPIO nur noch eine kurze Antenne ist, 
die viel weniger Energie einfängt. Theoretisch kann immer noch eine Störung 
auftreten, dann ist ab