FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: tetzlav am 18 Februar 2014, 16:14:55

Titel: FS20 Schalter pollt: OldTimestamp() vs. ReadingsTimestamp()
Beitrag von: tetzlav am 18 Februar 2014, 16:14:55
Hallo,

Ich habe einen FS20 S4A Aufputzschalter, mit dem ich meine Wohnzimmerlampen indirekt via fhem schalte.
Jetzt kommt es bei den billigen Knackfröschen öfters mal vor, dass ein Schalter pollt, also ein toggle kurz nacheinander sendet.

Nun hab ich mir gedacht, ich bekomme das Problem mit einem Timeout von 1s aus dem Vergleich von OldTimestamp() und ReadingsTimestamp() in den Griff. Leider geben mir beide immer die gleiche Zeit oder mit maximal 1s Unterschied zurück:

tetzlav@omv:~$ fhem-send.sh '{OldValue("FS20_0a7e00")}'
toggle
tetzlav@omv:~$ fhem-send.sh '{ReadingsTimestamp("FS20_0a7e00","state",0)}'
2014-02-18 15:48:02
tetzlav@omv:~$ fhem-send.sh '{OldTimestamp("FS20_0a7e00")}'
2014-02-18 15:48:03


Wie kann ich ein Prellen der Schalter per Software mit fhem-Mitteln am effektivsten verhindern?


Gruß
// tetzlav
Titel: Antw:FS20 Schalter pollt: OldTimestamp() vs. ReadingsTimestamp()
Beitrag von: Rince am 19 Februar 2014, 09:42:21
Das attr minInterval ist was du suchst.
Das setzt du auf das entsprechende Reading (ich glaube state), und gibst noch ne Zeit mit. 1 zum Beispiel.

Dann wird 1 Sekunde lang ein Befehl mit dem gleichen Reading ignoriert.
Titel: Antw:FS20 Schalter pollt: OldTimestamp() vs. ReadingsTimestamp()
Beitrag von: tetzlav am 28 Februar 2014, 14:49:33
Vielen Dank für die Antwort.

Leider ist das Attribut "minInterval" nirgendwo dokumentiert - oder hab ich das was übersehen?
In der commandref steht nur was von "event-min-interval", aber das verstehe ich auch nicht so richtig...


Beste Grüße
Titel: Antw:FS20 Schalter pollt: OldTimestamp() vs. ReadingsTimestamp()
Beitrag von: Rince am 19 März 2014, 21:40:56
Du nimmst das event-min-interval, bei deinem Taster kannst du es mit attr zuordnen.
Dann musst du dazu sagen, auf welches Reading es hören soll, also z.B. state, und angeben wie lang die Pause ist.

Dann werden eben alle Events, die du schnell eintreffen, ignoriert. Quasi ein künstliches entprellen ;)
Titel: Antw:FS20 Schalter pollt: OldTimestamp() vs. ReadingsTimestamp()
Beitrag von: der-Lolo am 26 März 2014, 15:35:36
Ein watchdog wäre vielleicht auch eine Möglichkeit.