Moin Kinnaz...
define test dummy
attr test group test
attr test readingList a b c d
attr test room Test
attr test setList a:selectnumbers,17.0,0.5,25.0,1,lin b:selectnumbers,17.0,0.5,25.0,1,lin c:selectnumbers,17.0,0.5,25.0,1,lin d:selectnumbers,17.0,0.5,25.0,1,lin
attr test webCmd a:b:c:d
attr test widgetOverride webCmd
define set_test DOIF ([test:a] or [test:b] or [test:c] or [test:d]) (set test $EVENT)
attr set_test do always
Tja... Tut nicht wie erwartet. In state steht dann das entsprechende Reading ebenso, also z.B. "a:17.5". Das ging doch irgendwie? Nur wie? Ich komme irgendwie nicht drauf :o
Dann noch eine Nebenfrage:
der Schlunz mit der Bedingung lässt sich doch sicherlich auch anders notieren, oder? Bekomme ich gerade auch nicht hin... Ich dachte da so in Richtung "([test:[a-d]])", was nicht funktioniert...
... ([test:?]) funktioniert. Bin mir aber nicht sicher, ob das nicht eine Loop generiert, weil vielleicht test:state ebenfalls triggert?!?
Meine AHnung scheint sich zu bestätigen. Im EventMonitor tauchen die Events doppelt auf:
2017-12-26 12:26:26 DOIF set_test cmd_nr: 1
2017-12-26 12:26:26 DOIF set_test cmd: 1
2017-12-26 12:26:26 DOIF set_test cmd_event: test
2017-12-26 12:26:26 DOIF set_test cmd_1
2017-12-26 12:26:26 dummy test a: 24.0
2017-12-26 12:26:26 dummy test a: 24.0
attr test widgetOverride webCmd
Was willst Du damit erreichen?
... öhhh, keine Ahnung ... Ist so aus einem Beispiel per Copy & Past geblieben; kann wohl wech ...
Ich habe keine Probleme mit der Definition
defmod testxx dummy
attr testxx group test
attr testxx readingList a b c d
attr testxx room Test
attr testxx setList a:selectnumbers,17.0,0.5,25.0,1,lin b:selectnumbers,17.0,0.5,25.0,1,lin c:selectnumbers,17.0,0.5,25.0,1,lin d:selectnumbers,17.0,0.5,25.0,1,lin
attr testxx webCmd a:b:c:d
setstate testxx 2017-12-26 16:04:33 a 17.5
setstate testxx 2017-12-26 16:04:35 b 17.5
setstate testxx 2017-12-26 16:04:38 c 17.5
setstate testxx 2017-12-26 16:04:40 d 18.0
... die Definition des Dummy ist ja auch ok. Problem ist "mein" DOIF ...
Ich möchte bei einer Änderung eines Reading des Dummys (a-d) diesen Wert in den state des Dummi trackern. Das DOIF resp. $EVENT aber überträgt Reading und Value nach State, was natürlich nicht gewollt ist...
Nimm statt or DOELSEIF und dann je Zweig set Dummy [Dummy:<x>]