FRM_IN schaltet bei "shutdown restart"

Begonnen von limats, 07 Oktober 2014, 22:02:05

Vorheriges Thema - Nächstes Thema

limats

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
Fhem auf BBB:
HM-CFG-USB für div. HM-Sensoren, CUL+WMBUS für EnergyCam, Nanocul für IT, Arduino Mega 2560 als 1-wire-Gateway und für div. digitale Ein-/Ausgänge, Volkszähler-USB-IR-Lesekopf mit SMLUSB, Solarsteuerung über VBUS

ntruchsess

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
while (!asleep()) {sheep++};