FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: JudgeDredd am 27 Februar 2019, 16:02:33

Titel: Seltsames Verhalten von eventMap
Beitrag von: JudgeDredd am 27 Februar 2019, 16:02:33
Hallo Zusammen,

ich beobachte gerade ein sehr seltsames/unzuverlässiges Verhalten vom Attribut "eventMap".

Für meinen Test habe ich mir mal ein Dummy angelegt:
Internals:
   FUUID      5c753f5e-f33f-e996-89c6-b0dde190fd7e15d3
   NAME       dumTest
   NR         227
   STATE      off
   TYPE       dummy
   READINGS:
     2019-02-27 15:25:25   Runsec          0
     2019-02-27 15:25:25   state           0
Attributes:
   eventMap   1:on 0:off
   setList    on off
   userReadings Runsec { ReadingsVal( "dumTest", "state", "0" ) * 10 }


Wenn man nun den Dummy schaltet, dann sollte ja im UserReading nach meinem Verständnis entweder 0 oder 10 stehen.
Bei meinen Tests habe ich dann ein paarmal hin und her geschaltet und folgende Events wurden generiert:

2019-02-27 15:21:20 dummy dumTest off
2019-02-27 15:21:20 dummy dumTest Runsec: off
2019-02-27 15:21:23 dummy dumTest on
2019-02-27 15:21:23 dummy dumTest Runsec: 10
2019-02-27 15:22:05 dummy dumTest off
2019-02-27 15:22:05 dummy dumTest Runsec: off
2019-02-27 15:22:07 dummy dumTest off
2019-02-27 15:22:07 dummy dumTest Runsec: off
2019-02-27 15:25:02 dummy dumTest on
2019-02-27 15:25:02 dummy dumTest Runsec: 10
2019-02-27 15:25:21 dummy dumTest on
2019-02-27 15:25:21 dummy dumTest Runsec: 10
2019-02-27 15:25:25 dummy dumTest off
2019-02-27 15:25:25 dummy dumTest Runsec: off


Wie zu sehen ist, hat das UserReading bei "on" den erwarteten Wert 10. Bei "off" allerdings enthält das UserReading ebenfalls den String "off".
Verstehe ich hier die Funktionsweise von eventMap falsch oder stimmt meine Syntax nicht ?

Gruß,
JudgeDredd
Titel: Antw:Seltsames Verhalten von eventMap
Beitrag von: amenomade am 27 Februar 2019, 19:51:54
Ich kann das nicht reproduzieren. Irgendwelches unsichtbare Zeichen in eventMap oder setList?
Ich würde das dummy löschen, und ohne copy/paste o.ä. neu anlegen.
Titel: Antw:Seltsames Verhalten von eventMap
Beitrag von: JudgeDredd am 27 Februar 2019, 20:13:07
ZitatIch kann das nicht reproduzieren.
Das ist ja mal echt strange.

Der Dummy ist schon ein test, weil es bei einen anderen dummy auch nicht funktioniert.

Dabei habe ich das Device extra selbst reingeklimpert um Copy/Paste Fehler zu vermeiden.

Wenn keine Weiteren Vorschläge kommen,  muss ich selbst nochmal einen workaround bauen um mwin Problem zu umschiffen.

Danke aber mal das Du es bei Dir getestest hast.
Titel: Antw:Seltsames Verhalten von eventMap
Beitrag von: Otto123 am 27 Februar 2019, 21:07:05
Hi,

ist bei mir auch so. Das userReadings springt auf off und dann auf 0 wenn man F5 im Browser drückt. Der Event wird aber nicht erzeugt.

Da überholt sich irgendetwas. Das Problem ist aber dein userReadings und nicht eventMap.

Gruß Otto
Titel: Antw:Seltsames Verhalten von eventMap
Beitrag von: amenomade am 27 Februar 2019, 21:15:07
Komischerweise, ist es jetzt auch bei mir so. Ohne, dass ich etwas geändert habe!

Allerdings für dieses userReading hätte ich Value() statt ReadingsVal(state) benutzt

EDIT: nicht besser mit Value()
Titel: Antw:Seltsames Verhalten von eventMap
Beitrag von: amenomade am 27 Februar 2019, 21:32:13
Und mit
attr dumtest userReadings Runsec { Log3 $NAME, 1, ReadingsVal( "dumtest","state", 0 ) * 10;;;; return  ReadingsVal( "dumtest","state", 0 ) * 10}
kriege ich folgendes in der Log:

2019.02.27 21:30:29 4: dummy set dumtest 1
2019.02.27 21:30:29 1: 10
2019.02.27 21:30:30 4: dummy set dumtest 0
2019.02.27 21:30:30 1: 0
2019.02.27 21:30:32 4: dummy set dumtest 1
2019.02.27 21:30:32 1: 10
2019.02.27 21:30:33 4: dummy set dumtest 0
2019.02.27 21:30:33 1: 0


obwohl in der UI "off" im userReading kommt
Titel: Antw:Seltsames Verhalten von eventMap
Beitrag von: JudgeDredd am 28 Februar 2019, 08:32:52
Zitat von: Otto123ist bei mir auch so. Das userReadings springt auf off und dann auf 0
Zitat von: amenomadeKomischerweise, ist es jetzt auch bei mir so. Ohne, dass ich etwas geändert habe!
OK, dann kann ich die Ghostbusters wieder abbestellen ;)

Zitat von: Otto123Da überholt sich irgendetwas.
Schöne Formulierung :)

Wie dem auch sei, ich schmeiße das eventMap raus und nehme::
Runsec { ReadingsNum( $name, "state", 0 ) * 10; }
Das funktioniert bei mir.

Komisch finde ich ja nur, das ich der erste sein soll, dem das auffällt.

Gruß,
JudgeDredd