Ich kriege den Topic nicht anders hin :-\
HeizungReglerTestDOIF DOIF ([HeizungTestSlider] and [ThermostatBad:"wakeup"]) (set knobdummy [HeizungTestSlider]) DOELSE ()
HeizungTestSlider ist ein dummy dieser wird manuell geändert.
Ziel ist es diese Änderung an knobdummy weiterzugeben immer wenn vom ThermostatBad ein wakup im Event Monitor kommt.
Das passiert auch, aber leider auch ohne Änderung des HeizungTestSlider wird der knobdummy neu "geschrieben" jedesmal wenn ThermostatBad triggert.
Es soll NUR bei einer Änderung des HeizungTestSlider den Wert zu ändern.
event-on-Change-reading auf den HeizungTestSlider leider ohne Erfolg.
LG
Tom
Bau das DOIF mal so um das es auf Events hört. Näheres dazu in der Doku
SORRY aber ich stehe auf dem Schlauch.
Habe zwar checkReadingEvent eingebaut aber ohne Erfolg.
Im Moment bin ich da ziemlich Planlos. DOIF schafft mich :'(
http://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events
Und Du solltest vielleicht mal zeigen was du hast.
list vom DOIF Device wäre Hilfreich
Nimm ein Reading ohne Event http://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Stati_ohne_Trigger
Internals:
CFGFN
DEF ([HeizungTestSlider] and [ThermostatBad:"wakeup"]) (set knobdummy [HeizungTestSlider]) DOELSE()
NAME HeizungReglerTestDOIF
NR 39676
NTFY_ORDER 50-HeizungReglerTestDOIF
STATE initialized
TYPE DOIF
Readings:
2016-12-11 13:29:18 cmd 0
2016-12-11 13:29:18 state initialized
Condition:
0 InternalDoIf($hash,'HeizungTestSlider','STATE') and EventDoIf('ThermostatBad',$hash,'wakeup',1)
Devices:
0 HeizungTestSlider ThermostatBad
all HeizungTestSlider ThermostatBad
Do:
0:
0 set knobdummy [HeizungTestSlider]
1:
0
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
0 HeizungTestSlider:STATE
all HeizungTestSlider:STATE
Itimer:
Regexp:
All:
State:
Trigger:
all ThermostatBad
Attributes:
checkReadingEvent 1
Zitat von: tomspatz am 10 Dezember 2016, 20:16:14Es soll NUR bei einer Änderung des HeizungTestSlider den Wert zu ändern.
Dann musst du die zweite Bedingung auf Status testen, nicht auf Event (http://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Stati_ohne_Trigger).
er will es ja nur ändern, wenn das Event 'wakeup' kommt. und dann nur, wenn sich der Wert von HeizungTestSlider auch wirklich geändert hat.
Also musst du irgendwie vergleichen ob sich der Wert geändert hat.
mMn:
([ThermostatBad:"wakeup"] and [?HeizungTestSlider] ne [knobdummy])
ode halt mit != statt ne
Guck dir mal das Attribut checkReadingEvent an.
SORRY igami aber
ZitatHabe zwar checkReadingEvent eingebaut aber ohne Erfolg.
Mit vergleichen geht es, doch dachte ich es mir etwas einfacher.
das checkReadingEvent, verstehe ich so, dass das DOIF nur getriggert wird, wenn genau das abgefragte Reading aktualisiert wird. Ansonstenn wird DOIF ja bei jedem Event des Device getriggert
Vielleicht geht das nur wenn man ein device überwacht, bei mir sind es ja zwei eigentlich.
Und das ändert sich ja sowieso nicht. Es wird halt nur immer wieder getriggert