Autor Thema: FRM_IN taster - notify problem  (Gelesen 1956 mal)

Offline pula

  • Sr. Member
  • ****
  • Beiträge: 651
FRM_IN taster - notify problem
« am: 23 Dezember 2015, 20:35:10 »
Hallo,

habe an einem Uno ein Configurable Firmata per ethernet angebunden und daran hängen ein paar Taster für die Beleuchtungs-Steuerung.
Daran habe ich dann notifies gehängt, die das Licht an und ausschalten.
Mein Problem ist, daß ab und an das entsprechende event (zb bad_taster_oben_links:reading:.on) zwei mal direkt hintereinander (lt. log in der gleichen Sekunde) kommt. Natürlich könnte ich das mit Hardware entprellen (vermute ich zumindest). Aber geht das nicht auch irgendwie direkt per Software in fhem?
Zb. wenn das event innerhalb von 2 Sekunden mehrmals kommt, ignoriere alle außer das erste?
Bin ein wenig ratlos und dankbar für hilfreiche Hinweise!

Danke im voraus!

Pula
fhem (debian), HM-LAN und wired, MySensors, FritzBox, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa/HA-Bridge, dash, HomeConnect, Sonoff/Tasmota, espRGBWW

Offline jensb

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 671
    • GitHub Projekte
Antw:FRM_IN taster - notify problem
« Antwort #1 am: 24 Dezember 2015, 10:28:35 »
Hallo Pula,

im notify kannst du z.B. auch "time_str2num(ReadingsTimestamp(...))" die Änderungszeit eines Readings in Sekunden abfragen. Merk dir immer wenn du die 1. steigende Flanke bekommst diesen Zeitstempel in einem eigenen Reading, also z.B. im FRM_IN oder einem Dummy. Wenn die nächste steigende Flanke kommt, vergleichst du den neuen ReadingsTimestamp mit dem gemerkten. Liegen weniger als deine 2 Sekunden dazwischen, machst du einfach nichts.

Grüße,

Jens
FHEM 5.9 - RPi 4 Raspbian 10 + PiTFT - OPi Zero Armbian 5.35
RPi/I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - EnOcean - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - Bluetooth

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3281
Antw:FRM_IN taster - notify problem
« Antwort #2 am: 24 Dezember 2015, 16:56:29 »
Ich würde beim FRM_IN "event-on-change-reading reading" setzen dann dürfte das zweite gleiche Signal gar nicht mehr das notify triggern.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline jensb

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 671
    • GitHub Projekte
Antw:FRM_IN taster - notify problem
« Antwort #3 am: 25 Dezember 2015, 11:03:25 »
Zitat
... beim FRM_IN "event-on-change-reading reading" setzen
hilft, wenn man zwei oder mehr aufeinander folgende identische Events unterdrücken will.

Hat man es aber mit einem flatternden Digitalsignal zu tun, ist die Abfolge z.B. 1010 innerhalb weniger Sekunden und "event-on-change-reading" würde das nicht nicht filtern, da sich der Wert ändert. Man könnte zusätzlich "event-min-interval" setzen, hat dann aber keine Unterscheidung mehr zwischen steigenden und fallenden Flanken, so dass u.U. auch eine steigenden Flanke unterdrückt würde, die man eigentlich verarbeiten will. In diesem Fall würde der Ansatz über ReadingsTimestamp greifen.
FHEM 5.9 - RPi 4 Raspbian 10 + PiTFT - OPi Zero Armbian 5.35
RPi/I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - EnOcean - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - Bluetooth

Offline pula

  • Sr. Member
  • ****
  • Beiträge: 651
Antw:FRM_IN taster - notify problem
« Antwort #4 am: 26 Dezember 2015, 20:07:18 »
Hallo,

danke für die Tips! Bin mittlerweile aber auf den Trichter gekommen, daß es besser wäre, bounce arduino-seitig zu verwenden. User limats hat hier http://forum.fhem.de/index.php/topic,18708.0.html scheinbar eine funktionierende Lösung, die bei mir allerdings leider noch nicht compiliert...

Cheers,

Pula
fhem (debian), HM-LAN und wired, MySensors, FritzBox, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa/HA-Bridge, dash, HomeConnect, Sonoff/Tasmota, espRGBWW