Ich habe ein Problem mit der Structure Funktion.
Die Definition ist folgende:
define TV PRESENCE lan-ping Samsung-LED 60
attr TV eventMap on:present off:absent
attr TV room Conditions
attr TV group Available_Devices
und
define WZ_Tuner dummy
attr WZ_Tuner setList on off
attr WZ_Tuner room Wohnzimmer
Die Structure ist wie folgt definiert
define Wohnzimmer structure Zimmer TV WZ_Tuner
attr Wohnzimmer clientstate_behavior absolute
attr Wohnzimmer room Wohnzimmer
attr TV Zimmer_map on:present off:absent
Wenn die Structure nur mit einem der beiden Geräte (TV oder WZ_Tuner) definiert ist funktioniert alles einwandrei.
Wenn aber beide definiert sind nicht mehr.
Fehler zeigt sich wie folgt:
1) Structure auf on stellen. --> alle Geräte und die Structwerden auf on geschalten
2) WZ_Tuner danach auf off stellen --> Structure wird undefined
3) WZ_Tuner wieder auf on stellen --> Structure beleibt undefined
Kann mir wer erklären an was das liegt...ich komme einfach nicht dahinter!
Mit http://fhem.de/commandref.html#clientstate_behavior (//fhem.de/commandref.html#clientstate_behavior) schon experimentiert?
Habe ich schon. .. habe es auf absolut Gesetz da ich ein on der structure brauche wenn alle Elemente on sind
Kannst Du dein Problem auch ohne PRESENCE (mit 2 dummys) nachstellen? Wenn ja, bitte nochmal alle betroffenen Elemente samt Handlungsanweisung mir zeigen, dann stelle ich sie nach.
Hallo,
ich habe das Problem weiter eingrenzen können.
Mit zwei Dummys funktionert es auch.
Es liegt an meiner Konfiguration. Ich setzte den Dummy manchmal mit "setstate" und das führt zu keiner Änderung der structure. Dies ist scheinbar nicht vorgesehen.
Ist das ein Bug oder nicht anders realisierbar?
Folgende Situation:
Ich habe einen Radio der nur ein IR Signal versendet egal ob "on" oder "off" --> trigger Signal.
Jetzt habe ich einen Dummy erstellt Namens "WZ_Tuner", welchen ich über eine notify Function bei erhalten des Kommandos (WZ_IR_TV_Tuner:press) setzte wie folgt:
define WZ_IR_Tuner_OnOff notify WZ_IR_Tuner_Power:press {\
if(Value("WZ_Tuner") eq "on") {\
fhem("setstate WZ_Tuner off");;\
} else {\
fhem("setstate WZ_Tuner on");;\
}\
}
Um über das Webinterface den Radio zu steuern habe ich folgendes define:
define WZ_TunerOnOff notify WZ_Tuner {\
if( OldValue("WZ_Tuner") ne "%" && length(OldValue("WZ_Tuner")) > 0 ) {\
fhem("set WZ_IR_Tuner_Power send");;\
}\
}
Wenn ich nun die WZ_Tuner in eine Structure einfüge funktioniert diese vermutlich aufgrund der "setstate" kommandos nicht.
Kennt ihr eine andere Möglichkeit? Wäre sehr froh um einen Tip.
setstate triggert keine events und damit wird niemand (auch die structure) nicht per notify über änderungen informiert.
gruss
andre
gibt es eine möglichkeit die structure dann eben zu triggern?
habe schon anstatt setstate setReadingVal getestet, funktioniert aber auch nicht...
Hat keiner eine Idee?
du kannst entweder set verwenden statt setstate oder von nach dem setstate selber trigger aufrufen.
fhem( "trigger WZ_Tuner on")
oder readingsSingleUpdate verwenden. auch wenn rudi das nicht so gerne mag.
readingsSingleUpdate($defs{WZ_Tuner},"on", 11, 1)
gruss
andre
Das Problem ist ich will die Funktion nicht doppelt Triggern
"define WZ_IR_Tuner_OnOff notify WZ_IR_Tuner_Power:press"
wird ausgeführt wenn das Signal der Fernbedinung eingeht. d.h. der Radio ist dann an geschaltet worden.
--> kein nochmaliges triggern nur den Status und Structure entsprechend aktualisieren
"define WZ_TunerOnOff notify WZ_Tuner" ist zur Steuerung über das Webinterface.
dir structure geht nicht ohne trigger.
also muss etwas prinzipielles geändert werden.
ich verstehe auch nicht genau wo das problem bei mehrfach triggert ist.
beschreib dich mal genau was alles zusammen bewirken soll.
gruss
andre