Änderungswünsche für IT-Modul

Begonnen von C_Herrmann, 01 März 2014, 20:34:39

Vorheriges Thema - Nächstes Thema

C_Herrmann

Hallo,

nach meinen ersten unschönen Erfahrungen mit dem IT-Modul möchte ich gern ein paar Wünsche äußern.

Es wäre schön, wenn die bislang undokumentierten Attribute in die interne Hilfe aufgenommen werden könnten. Durch falsches Setzen z.B. des switch_rfmode kann man sich schnell die SlowRF-Kommunikation blockieren. Weniger erfahrene Anwender könnten damit Probleme bekommen.

Mein Vorschlag zur (halb-)automatischen Erkennung des rf-Modus wäre, dass er aus dem Attribut "rfmode" des CUL bestimmt wird. Dafür müsste das Attibut beim CUL natürlich zwingend definiert sein. Ggf. könnte es automatisch eingestellt werden, wenn ein CUL definiert oder der Modus per set-Befehl verändert wird. Auch bei der Definition eines IT-Gerätes könnte ein entsprechender Hinweis angezeigt werden. Um die Kompatibilität mit bestehenden Installationen zu erhalten, könnte eine Mitteilung "Please set CUL rfmode-attribute" angezeigt werden, wenn es nicht definiert ist und die bisherige Routine ausgeführt werden.

Änderungsvorschlag Zeile 121 ff:
if(defined($attr{$io}) && defined($attr{$io}{"rfmode"})) {
  if ($attr{$io}{"rfmode"} ne "SlowRF") { # do we need to change RFMode of IODev
        my $ret = CallFn($io->{NAME}, "AttrFn", "set", ($io->{NAME}, "rfmode", "SlowRF"));
        }
  } else {
# bisherige Routine + Logeintrag bzw. Meldung "Please set CUL rfmode-attribute"
}

Eine entsprechende Änderung ist ab Zeile 175 beim Zurückschalten erforderlich.

Ich habe hier Funksteckdosen, die mit einer vom Standard abweichenden Impulszeit arbeiten. Die Zeit für einen einzelnen Impuls kann mit "set CUL itxxx" eingestellt werden. Mit 180 für xxx arbeiten meine Funksteckdosen einwandfrei. Da die Standard-Zeit 420 ist, möchte ich bitten, ein weiteres Attribut für diesen Parameter (z.B. wavePulsTime) einzubauen, damit Geräte mit unterschiedlichen Zeiten ohne manuelle Umstellung des CUL geschaltet werden können. Da nicht jeder in der Lage ist, die Datentelegramme auszuwerten, würde ich einen Wiki-Artikel mit erforderlichen Parametern für IT-Devices erstellen, der von allen, die Geräte mit abweichenden Paramertern haben, ergänzt werden sollte.

Änderungsvorschlag Zeile 145 ff:
  ## Set wavePulsTime
  my $wpt = "420";
  if(defined($attr{$a[0]}) && defined($attr{$a[0]}{"wavePulsTime"})) {
    $wpt = $attr{$a[0]}{"wavePulsTime"};
    }
    $message = "it".$wpt;
    CUL_SimpleWrite($io, $message);
    Log GetLogLevel($a[0],4), "IT set wavePulsTime: $message for $io->{NAME}";

Ein Zurücksetzen ist nicht erforderlich, da immer entweder der Standardwert 420 oder der definierte Wert gesendet wird.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen