funktionsweise von $culHmModel->{$mId}{lst})

Begonnen von unimatrix, 27 Juli 2014, 10:21:11

Vorheriges Thema - Nächstes Thema

unimatrix

Hallo,

in meinem Ansatz eine erste CustomFW für den UP-Dimmaktor zu erstellen habe ich auch für mich perslnlich CUL_HM (bzw. in einer eigenen Datei genau so wie beim UP Aktor) angepasst. Es funktioniert auch soweit.

Trotzdem würde ich gerne die Bedeutung von $culHmModel->{$mId}{lst}) verstehen, das ist mir leider auch nach längerem Studium von CUL_HM.pm nicht gelungen.

Wie gesagt, an sich funktioniert es soweit, was nicht geht ist so etwas wie "set myaktor 25" sondern nur "set myaktor pct 25" ... habe die Stelle noch nicht gefunden wo man da was anpassen/ergänzen muss.

Ich habe für mein Modell jetzt einfach mal definiert:


{$HMConfig::culHmModel{"F0AA"} = {name=>"HM-LC-Dim1TPBU-FM_CustomFW",st=>'dimmerAndSwitch',cyc=>'',rxt=>'',lst=>'1,3:3p.4p,4:1p.2p',chn=>"Btn:1:2,SW:3:3,SW_V:4:5"}}


aber ob insbesondere das lst so Sinn macht, ist die Frage. Das Modell hat im Vergleich zum Original als Kanal 1 und 2 die internen Taster, und dann als 3,4,5 den Dimmer + 2 virtuelle Kanäle.

hier die gesamte Definition (ohne Parser)


sub
registerHM_LC_Dim1TPBU_FM_CustomFW()
{
  {$HMConfig::culHmModel{"F0AA"} = {name=>"HM-LC-Dim1TPBU-FM_CustomFW",st=>'dimmerAndSwitch',cyc=>'',rxt=>'',lst=>'1,3:3p.4p,4:1p.2p',chn=>"Btn:1:2,SW:3:3,SW_V:4:5"}}
  {$HMConfig::culHmChanSets{"HM-LC-Dim1TPBU-FM_CustomFW00"}{fwUpdate} ="<filename>"};
  {$HMConfig::culHmChanSets{"HM-LC-Dim1TPBU-FM_CustomFW01"} = $HMConfig::culHmSubTypeSets{"THSensor"}};
  {$HMConfig::culHmChanSets{"HM-LC-Dim1TPBU-FM_CustomFW02"} = $HMConfig::culHmSubTypeSets{"THSensor"}};
  {$HMConfig::culHmChanSets{"HM-LC-Dim1TPBU-FM_CustomFW03"} = $HMConfig::culHmSubTypeSets{"dimmer"}};
  {$HMConfig::culHmChanSets{"HM-LC-Dim1TPBU-FM_CustomFW04"} = $HMConfig::culHmSubTypeSets{"dimmer"}};
  {$HMConfig::culHmChanSets{"HM-LC-Dim1TPBU-FM_CustomFW05"} = $HMConfig::culHmSubTypeSets{"dimmer"}};
  {$HMConfig::culHmRegChan{"HM-LC-Dim1TPBU-FM_CustomFW01"}  = $HMConfig::culHmRegType{remote}};
  {$HMConfig::culHmRegChan{"HM-LC-Dim1TPBU-FM_CustomFW02"}  = $HMConfig::culHmRegType{remote}};
  {$HMConfig::culHmRegChan{"HM-LC-Dim1TPBU-FM_CustomFW03"}  = $HMConfig::culHmRegType{dimmer}};
  {$HMConfig::culHmRegChan{"HM-LC-Dim1TPBU-FM_CustomFW04"}  = $HMConfig::culHmRegType{dimmer}};
  {$HMConfig::culHmRegChan{"HM-LC-Dim1TPBU-FM_CustomFW05"}  = $HMConfig::culHmRegType{dimmer}};
  {$HMConfig::culHmRegModel{"HM-LC-Dim1TPBU-FM_CustomFW"} =
{    ovrTempLvl      =>1,redTempLvl      =>1,redLvl          =>1
,fuseDelay       =>1,localResDis     =>1
,logicCombination=>1
,DimElsOffTimeMd =>1,DimElsOnTimeMd  =>1
,DimElsActionType=>1
,DimElsJtOn      =>1,DimElsJtOff     =>1,DimElsJtDlyOn   =>1
,DimElsJtDlyOff  =>1,DimElsJtRampOn  =>1,DimElsJtRampOff =>1
                        };}
  Log(1, "Registered F0AA");
}

martinp876

lst besagt, welche Config date (register-listen) in dem Device vorhanden sind.

List 0 gibt es immer - wird nicht angegeben.

So du ein homogenes device hast, also alle channels identisch gibst du an
"1,3" => alle channels habe list 1 und list 3. List 3 (und ggf 4) setzen peers voraus. Also werden erst die peers gelesen, dann die zugehörigen list 3/4
"p" => die channels haben peerlisten - aber keinerlei registerlisten

Wenn ein Device komplex ist, also jeder kanal einen andere Satz register unterstützt...
'p:2p,5:2.3p,6:2' hier wird die Liste angegeben und dann, wer diese nutzt.
  'p:2p' : peerliste hat channel 2. Das 'p' von 2p bedeuted, dass die peerliste gelesen werden muss... ok, umständlich
'5:2.3p' : List 5 gibt es in channel 2 und 3. das 'p' bei channel 3 heist, dass es eine list 5 je peer des channel 3 gibt. Channel 2 (ohne p ) hat einen peer-unabhängige List5
  '6:2' : list 6 gibt es im channel 2
Alle anderen channel habe keine registerlisten
 

unimatrix

ok super, jetzt ist es mir klar. Ich habe es "verkehrt herum gelesen" und nicht gesehen, dass die List zuerst, und der Channel danach angegeben wird.

Danke!