FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: oniT am 10 August 2014, 15:50:21

Titel: Was bewirkt das Attribut dummy?
Beitrag von: oniT am 10 August 2014, 15:50:21
Hallo,

mich würde mal interessieren was das Attribut dummy bewirkt? In der commandref steht geschrieben:

dummy
Setzt das Attribut dummy um Devices zu definieren, die keine Funksignale absetzen. Zugehörige notifys werden ausgeführt wenn das Signal empfangen wird. Wird beispielsweise genutzt um auf Code eines Sender zu reagieren, dennoch wird es auch dann kein Signal senden wenn es im Web Frontend getriggert wird.

Ich nutze das Attribut um zu verhindern, dass der Rollo runter fährt wenn die Tür geöffnet ist. Allerdings spielt es dabei kein Rolle ob dummy auf 0 oder 1 gesetzt ist. Ich hätte erwartet, dass bei 0 das Attribut ausser Kraft gesetzt ist. Tut es aber nicht. Es spielt keine Rolle ob 0 oder 1.

Danke

Gruß
Tino
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: Hollo am 11 August 2014, 12:52:45
Zitat von: oniT am 10 August 2014, 15:50:21
...Ich nutze das Attribut um zu verhindern, dass der Rollo runter fährt wenn die Tür geöffnet ist. Allerdings spielt es dabei kein Rolle ob dummy auf 0 oder 1 gesetzt ist. Ich hätte erwartet, dass bei 0 das Attribut ausser Kraft gesetzt ist. Tut es aber nicht. Es spielt keine Rolle ob 0 oder 1...

Evtl. habe ich die Frage auch falsch verstanden, aber ich denke, Du hast da einen Gedankenfehler.

Mit dem "dummy" erzeugst Du Dir quasi eine "Device-Variable", die dann in der Oberfläche erscheint und der Du Zustände zuweisen kannst. Diese kannst Du natürlich bei anderen Funktionen oder Anweisungen als Bedingungen mit einbauen.

Hast Du für die Tür einen Dummy definiert oder einen Tür-/Fensterkontakt?

sinngemaess:  if ( Value("Tuerkontakt") ne "open") { fhem "set Rollo runter"}
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: fhainz am 11 August 2014, 12:56:43
Zitat von: Hollo am 11 August 2014, 12:52:45
Evtl. habe ich die Frage auch falsch verstanden, aber ich denke, Du hast da einen Gedankenfehler.

Bei FS20 Devices gibt es ein Attribut dummy. Aber was wirklich genau bewirkt.. keine Ahnung
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: betateilchen am 11 August 2014, 13:38:39
Achtung! Hier werden zwei komplett unterschiedliche Dinge durcheinandergebracht.

Es gibt ein Device vom Typ dummy - das ist das Ding, das von Hollo beschrieben wird. Darum geht es aber in der Fragestellung hier nicht!

Das Attribut dummy bei FS20 Komponenten bewirkt, dass beim Ansprechen dieses Devices keine tatsächlichen Funktelegramme verschickt werden, das angelegte Device sich aber ansonsten exakt wie ein FS20-Gerät verhält. Man kann damit quasi Statusanzeigen in fhem per FS20-Definitionen erzeugen, die man wie eine echte Signalleuchte ansprechen und "schalten" kann, ohne dass unnötiger (weil sinnloser) Funkballast entsteht. Das ist wichtig um die 1%-Regel einzuhalten, die für die Nutzung des zugehörigen Frequenzbereiches vorgeschrieben ist.
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: Hollo am 11 August 2014, 14:59:49
Wieder was gelernt...  isch habe gar kein FS20   :P
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: betateilchen am 11 August 2014, 15:05:33
ich auch nicht (mehr)  8)
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: LuckyDay am 11 August 2014, 15:55:46
das dummy attr funktioniert auch beim HM-LAN  :-*

Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: oniT am 12 August 2014, 19:11:36
Hallo,

ja absolut richtig. Das Attribut dummy funktioniert auch bei HM. Allerdings macht es, wie ich geschrieben habe, keinen Unterschied ob der Wert 0 oder 1 gesetzt ist. Und das ist schon recht seltsam :-(

In meinem Fall setze oder lösche ich halt das Attribut komplett. Wobei mir das so eben nicht gefällt. Nur den Wert zwischen 0 und 1 änder finde ich halt schon geschickter.

Gruß
Tino
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: betateilchen am 13 August 2014, 09:48:21
So langsam kommen wir dahinter, was eigentlich hinter Deiner Frage steckt...


sub HMLAN_SimpleWrite(@) {#####################################################
  my ($hash, $msg, $nonl) = @_;

  return if(!$hash || AttrVal($hash->{NAME}, "dummy", undef));


Hier wird das Schreiben an das HMLAN Device abgebrochen, wenn das Attribut dummy einen logisch wahren Wert zurückliefert. Das kann im ungünstigsten Fall auch bei einer eingetragenen "0" ein wahrer Wert sein.

Exakter wäre m.E. folgende Abfrage in der 00_HMLAN.pm:

  return if(!$hash || (AttrVal($hash->{NAME}, "dummy", 0) == 1));

Der Thread sollte nach Homematic verschoben werden.
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: oniT am 13 August 2014, 11:08:05
Hallo betateilchen,

yep, genau so ist es. Wer schreitet da jetzt ein? Martin bestimmt oder?  ;)

Danke

Gruß
Tino
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: betateilchen am 13 August 2014, 11:11:44
drum wurde das Thema ja hierher verschubst, martin wird es sicher irgendwann entdecken ;)
Titel: Antw:Was bewirkt das Attribut dummy?
Beitrag von: martinp876 am 13 August 2014, 20:27:28
es hat noch etwas mehr gefehlt.... insbesondere beim wiedereinschalten.

Zu dem Details:

Man muss dummy für IOs (z.B. HMLAN) HM unterscheiden.
Bei HMLAN wird das IO stillgelegt. Somit wird auch das TCP interface heruntergefahren. Senden und Empfangen ist "aus". Gesendete Messages werden verworfen.

Für HM devices wird das Senden unterdrückt, nicht aber das Empfangen.

Hier - wie auch bei IOs - stellt sich das Problem der Kernal - der ausschliesslich auf das vorhanden sein des Attributs abgefragt
sub
IsDummy($)
{
  my $devname = shift;

  return 1 if(defined($attr{$devname}) && defined($attr{$devname}{dummy}));
  return 0;
}

sub
IsIgnored($)
{
  my $devname = shift;
  if($devname &&
     defined($attr{$devname}) && $attr{$devname}{ignore}) {
    Log 4, "Ignoring $devname";
    return 1;
  }
  return 0;
}


und verhindert auch beim setzen auf "0" das senden. Ist ggf ein Fall für Rudi - ich dachte, das hatten wir schon...  vielleicht will er es nicht?