Modul RPI_GPIO Counter entprellen

Begonnen von Jorge3711, 22 Juni 2016, 16:43:00

Vorheriges Thema - Nächstes Thema

Jorge3711

Hallo zusammen,

für meinen ELSTER Gaszähler habe ich mir einen IN-Z65 besorgt um den Reedkontakt des Balgenzählers auswerten zu können. Umgesetzt habe ich das ganze nach folgender Vorlage aus dem Forum: Elster Gaszähler auswerten

Nun ist dort bereits beschrieben, dass man den Counter über das Attribut debounce_in_ms entprellen kann. Allerdings scheint bei mir der max. mögliche Zeitwert nicht auszurechen um fehlerfrei zu entprellen. Mein Counter zählt immer zu schnell, d.h. mein Counter läuft kontinuierlich dem realen Zählwert davon, zeigt also zu viel an. Zähler hängt am GPIO3 eines RPI2 mit Raspian Wheezy mit FHEM. Beides jeweils mit aktuellem Patchlevel.

Mehr als 250 ms entprellen geht nicht, ist vom Modul so vorgegeben. Hat jemand eine Idee wie dem noch Herr zu werden ist?

Viele Grüße
Carsten

klausw

Zitat von: Jorge3711 am 22 Juni 2016, 16:43:00
Mehr als 250 ms entprellen geht nicht, ist vom Modul so vorgegeben. Hat jemand eine Idee wie dem noch Herr zu werden ist?

Du kannst in Zeile 368 der Datei 51_RPI_GPIO.pm den Wert 250 testweise vergrößern. Allerdings solltest du im Hinterkopf behalten, das während dieser Entprellzeit FHEM blockiert ist.

Allerdings finde ich eine Entprellzeit von einer viertel Sekunde schon extrem lang.
Wie ist der IN-Z65 an das Pi angeschlossen?
Welchen Widerstandswert hat der Pullup?
Zählt der Counter auch, wenn der IN-Z65 gar nicht an den Zähler angebaut ist?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Jorge3711

Zitat von: klausw am 22 Juni 2016, 17:20:26
Wie ist der IN-Z65 an das Pi angeschlossen?
Welchen Widerstandswert hat der Pullup?

Der Zähler hängt direkt auf den GPIO Pins, ohne Pullup Widerstand. Hab dazu jetzt ein wenig nachgelesen und werde es mit Widerstand probieren, wahrscheinlich ist das die Ursache. Wahrscheinlich habe ich die Anleitung falsch interpretiert und der Schreiber der Anleitung ist davon ausgegangen, dass selbstverständlich ein Pullup verwendet wird. Bin was RasPi und GPIOs angeht Frischling.

Danke für den Schubser! :-)

Grüße Carsten

klausw

Zitat von: Jorge3711 am 23 Juni 2016, 08:32:33
Danke für den Schubser! :-)
gern  8)

Versuche es bitte gleich mit einem externen Pullup
Der Interne ist bei langen Leitungen zu hochohmig.
Und dann mit dem debounce Attribut bisschen spielen und es möglichst klein machen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Jorge3711

So, habe jetzt nen 100kOhm Widerstand besorgt und verbastelt und das debounce auf 100ms gesetzt. Werde berichten.

Jorge3711

Nach einem Tag kann ich berichten, dass der GPIO immer noch ohne das vom Zähler ein Impuls kommt auslöst/zählt. In ~24h waren es 18 Impulse die der Zähler davon lief. Mit debounce brauche ich ja nicht spielen, wenn vom Zähler selbst gar kein Impuls kommt.

Jemand eine Idee? Anderen Widerstand probieren, 15k hätte ich noch rumliegen.

Jorge3711

Habe jetzt den GPIO Pin gewechselt auf GPIO4 und statt auf 3,3V den PullUp Widerstand auf 5V geklemmt. Dann beobachten wir mal.

Jorge3711

Jetzt passt es. Ich denke der Wechsel auf die 5V für den Pullupwiderstand war der Trick.

klausw

Naja, die GPIOs sind nur 3,3V tolerant.
Wie lang ist denn die Leitung zwischen Pi und Zählersensor?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Jorge3711

Der Zähler hängt mit seinem Kabel direkt auf dem Pi. Was werden das sein, 50 cm? Pullup ist ein 100kOhm Widerstand. Der Pi ist ein Modell B+, welchen ich gestern komplett neu aufgesetzt habe. FHEM läuft jetzt auf Raspbian Jessie Lite und ist per FHEM2FHEM an meine FHEM Hauptinstanz angebunden (noch experimentell).

klausw

Zitat von: Jorge3711 am 27 Juni 2016, 10:34:36
Der Zähler hängt mit seinem Kabel direkt auf dem Pi. Was werden das sein, 50 cm? Pullup ist ein 100kOhm Widerstand. Der Pi ist ein Modell B+, welchen ich gestern komplett neu aufgesetzt habe. FHEM läuft jetzt auf Raspbian Jessie Lite und ist per FHEM2FHEM an meine FHEM Hauptinstanz angebunden (noch experimentell).
Das ist jetzt nicht soo lang. liegt das Kabel parallel zu Verbrauchern die dynamisch viel Strom ziehen?
Hast du 15k auf 3,3V versucht?
Man könnte noch einen Tiefpass vor den GPIO bauen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280