FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: golem am 08 März 2018, 10:19:41

Titel: Langsames Prellen eines Eingangs unterdrücken
Beitrag von: golem am 08 März 2018, 10:19:41
Hallo,

ich habe folgendes Problem. Über einen Reedkontakt frage ich meinen Gaszähler ab(Eingang über Firmata) und werte das mit einen HourCounter aus.
Das Funktioniert auch meistens recht gut, aber oft passiert es auch das ich innerhalb von 2 Sekunden ein Event bekomme. Bis der Gaszähler aber einmal rum ist vergehen min 10 Sekunden. Kann ich das Event unterdücken oder den Eingang anderweitig verzögern, so das einneues Event erst nach 5 Sekunden ausgelöst wird.

Gruß Denis

PS: Der Firmata Eingang ist mit einen 10nF Kondensator entprellt. Andere Werte habe ich schon getestet bringt aber auch nichts. 
Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: Wzut am 08 März 2018, 10:35:05
die 10nF oder 100 bringen viel bei mechanischen Schaltern gegen prellen, allerdings viel zu wenig bei 2 Sekunden.
Aber hatten wir alles schon mal : https://forum.fhem.de/index.php?topic=18708.0
Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: golem am 08 März 2018, 10:48:09
Hi,

die Firmata möchte ich aber nicht anpacken, schon alleine weil das ja kein richtiges prellen mehr ist, ich denke eher das hat was mit dem Magneten in gaszähler zu tun, das der den Reedkontakt mehrfach schaltet. ich habe aber schon mit der Psitionierung und anderen Schaltern alles mögliche versucht, aber das hat auch nicht weitergeholfen.
Geht das nicht irgendwie das Event nur nach 5 Sekunden zuzulassen?

Denis
Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: Wzut am 08 März 2018, 11:24:38
natürlich geht das : https://fhem.de/commandref_DE.html#event-min-interval
Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: golem am 08 März 2018, 12:19:20
event-min-interval funktioniert aber nicht. Setzte ich das auf z.b. .*:4 wird 4 sek kein Event mehr ausgelöst. auch das off event nicht. ist der Gaszähler dann nach ca. 10 sek. einmal rum wird zwar ein erneutes Event mit on ausgelöst, was dem HourCounter dann aber egal ist, da kein das Reading ja immer noch geich ist.

Zum Testen habe ich mal folgendes angelegt:

define du_in dummy
attr du_in event-min-interval .*:10
attr du_in event-on-update-reading .*
attr du_in genericDeviceType switch
attr du_in room test
attr du_in setList on off

define hc_du_in HourCounter du_in:on du_in:off
attr hc_du_in room test

Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: nils_ am 08 März 2018, 12:57:59
wie sehen denn deine events aus?
auszug aus dem eventlog.

Zitat von: golem am 08 März 2018, 12:19:20
event-min-interval funktioniert aber nicht. Setzte ich das auf z.b. .*:4 wird 4 sek kein Event mehr ausgelöst. auch das off event nicht.

du musst ja auch nicht die "größe Keule" .* nehmen für den regex.

attr du_in event-min-interval reed-kontakt-eventname:5
Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: Wzut am 08 März 2018, 13:14:40
Zitat von: golem am 08 März 2018, 12:19:20
was dem HourCounter dann aber egal ist, da kein das Reading ja immer noch geich ist.
nicht ganz richtig, der HourCounter kommt auch mit einem Event klar (siehe Beispiele Wiki) , bei dir macht der Zeitunterschied zwischen steigender und fallender Flanke eh keinen Sinn.
Und damit dein FRM_IN immer schön Events erzeugt würde ich den umstellen auf den Modus Count mit Rising Edge
Titel: Antw:Langsames Prellen eines Eingangs unterdrücken
Beitrag von: golem am 08 März 2018, 15:57:04
Habe jetzt mit einem Dummy und Notify gelöst. Wobei du_in hier zum Testen den Eingang simuliert.

define du_in dummy
attr du_in genericDeviceType switch
attr du_in room test
attr du_in setList on off

define hc_du_in HourCounter du_du_in:on du_du_in:off
attr hc_du_in room test

define du_du_in dummy
attr du_du_in genericDeviceType switch
attr du_du_in room test
attr du_du_in setList on off
attr du_du_in useSetExtensions 1

define n_du_du_in notify du_in.on set du_du_in on-for-timer 5
attr n_du_du_in room test