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
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.
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.
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
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()
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
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