FHEM Forum

FHEM => Automatisierung => Thema gestartet von: ulli am 17 August 2013, 22:15:36

Titel: structure Problem
Beitrag von: ulli am 17 August 2013, 22:15:36
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!
Titel: Aw: structure Problem
Beitrag von: rudolfkoenig am 18 August 2013, 09:57:15
Mit http://fhem.de/commandref.html#clientstate_behavior (http://fhem.de/commandref.html#clientstate_behavior) schon experimentiert?
Titel: Aw: structure Problem
Beitrag von: ulli am 18 August 2013, 10:37:28
Habe ich schon. .. habe es auf absolut Gesetz da ich ein on der structure brauche wenn alle Elemente on sind
Titel: Aw: structure Problem
Beitrag von: rudolfkoenig am 18 August 2013, 11:42:08
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.
Titel: Aw: structure Problem
Beitrag von: ulli am 20 August 2013, 19:00:12
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.

Titel: Aw: structure Problem
Beitrag von: justme1968 am 20 August 2013, 20:31:50
setstate triggert keine events und damit wird niemand (auch die structure) nicht per notify über änderungen informiert.

gruss
  andre
Titel: Aw: structure Problem
Beitrag von: ulli am 20 August 2013, 20:47:18
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?
Titel: Aw: structure Problem
Beitrag von: justme1968 am 20 August 2013, 20:58:51
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
Titel: Aw: structure Problem
Beitrag von: ulli am 20 August 2013, 21:24:13
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.
Titel: Aw: structure Problem
Beitrag von: justme1968 am 20 August 2013, 21:43:43
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