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
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"}
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
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.
Wieder was gelernt... isch habe gar kein FS20 :P
ich auch nicht (mehr) 8)
das dummy attr funktioniert auch beim HM-LAN :-*
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
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.
Hallo betateilchen,
yep, genau so ist es. Wer schreitet da jetzt ein? Martin bestimmt oder? ;)
Danke
Gruß
Tino
drum wurde das Thema ja hierher verschubst, martin wird es sicher irgendwann entdecken ;)
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?