Hallo zusammen,
ich hab das Problem, dass ich bei meinen FRM_IN Devices einen kurzen falschen Impuls bekomme, wenn ich FHEM durchstarte.
Konfiguriert ist das Device mit "internal-pullup = on" und "eventMap = off:Stoerung on:OK".
Das sieht dann ungefähr so aus:
2014-09-25_22:16:54 Stoerung Initialized
2014-09-25_22:16:55 Stoerung reading: OK
2014-09-25_22:16:55 Stoerung reading: Stoerung
2014-09-25_22:16:59 Stoerung reading: OK
Wenn ich statt des internen Pullups einen externen verwende, kommt das falsche Reading nicht:
2014-09-28_19:00:29 Stoerung Initialized
2014-09-28_19:00:30 Stoerung reading: OK
Ein anderes Device toggelt sogar noch häufiger beim Start:
2014-08-29_19:19:28 Brenner Initialized
2014-08-29_19:19:29 Brenner reading: off
2014-08-29_19:19:29 Brenner reading: on
2014-08-29_19:19:29 Brenner reading: off
2014-08-29_19:19:29 Brenner reading: on
2014-08-29_19:19:29 Brenner reading: off
2014-08-29_19:19:29 Brenner reading: on
2014-08-29_19:19:29 Brenner reading: off
Hier konnte ich das Verhalten auch durch den externen Pullup nicht ganz abstellen.
Die Besonderheit hier ist ein "activeLow = yes".
Wenn ich das "activeLow = yes" durch ein "activeLow = no" in Verbindung mit einem "eventMap = on:off off:on" ersetze (tut im Endeffekt ja das gleiche), bekomme ich zumindest mit dem externen Pullup keine fehlerhaften Readings mehr (Nachtrag: auch dieser Workaround scheint nicht 100%ig zu funktionieren).
Nun die Frage: Ist das Verhalten so bekannt und nur durch die externen Pullups in den Griff zu bekommen oder bin ich hier auf einen Bug gestoßen?
Gibt es irgendeine andere Möglichkeit, die Events der ersten paar Sekunden zu ignorieren?
Falls weitere Infos oder Tests nötig sind, kann ich die gerne liefern.
Grüße
Leo
das Verhalten ist mir bekannt, es liegt einfach daran, dass der Arduino schon Daten sendet, bevor der interne Pullup überhaupt konfiguriert ist. Ohne Pullup ist ein offener input-pin einfach unbestimmt und kann beliebig (und durchaus sehr schnell) den logischen Zustand wechseln.
Darüber wie man die Daten vor Fertigkonfigurieren schon im FRM_IN ignorieren könnte, muss ich noch mal nachdenken. Es soll ja auch nix verloren gehen.
Gruß,
Norbert