[erledigt] frage zu HM-LC-Dim1TPBU-FM dimmern

Begonnen von the ratman, 11 Oktober 2018, 19:57:16

Vorheriges Thema - Nächstes Thema

Pfriemler

#16
Zitat von: the ratman am 12 Oktober 2018, 17:31:58
ok, dann probier ich das jetzt mal ...
set wohnzimmer_gang_gz_licht_Dim regBulk 03:self01 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:64 0E:20 0F:00 10:14 11:C8 12:0A 13:05 14:05 15:00 16:C8 17:0A 18:0A 19:04 1A:04 26:00 27:14 28:52 29:63 81:00 82:00 83:00 84:32 85:64 86:00 87:0A 88:00 89:FF 8A:A5 8B:44 8C:54 8D:64 8E:20 8F:00 90:14 91:C8 92:0A 93:05 94:05 95:00 96:C8 97:0A 98:0A 99:04 9A:04 A6:20 A7:14 A8:52 A9:63 00:00...
o.k. das is wohl falsch *g*
PERL WARNING: Argument "03:self01" isn't numeric in numeric eq (==) at ./FHEM/10_CUL_HM.pm line 4565.
Ach ja. Der Befehl ging bei mir fehlerfrei durch - aber die Meldung taucht auch bei mir im Log auf.

Zitat commandref:
ZitatregBulk <reg List>:<peer> <addr1:data1> <addr2:data2>...
<reg List> bezeichnet die Liste in die geschrieben werden soll. Mögliches Format '00', 'RegL_00', '01'...
<peer> ist eine optionale Angabe falls die Liste ein Peer benötigt. Der Peer kann als Kanalname oder als 4-Byte (8 chars) HM-Kanal ID angegeben werden.
<addr1:data1> ist die Liste der Register im Hex-Format.
Beispiel:
    set myChannel regBulk RegL_00. 02:01 0A:17 0B:43 0C:BF 15:FF 00:00
    RegL_03.FB_Btn_07 01:00 ...

Demnach sollte auch das Format "RegL_03.FB_Btn_07" als Angabe funktionieren. Das war mir neu. Und mit Punkt als Trenner von Liste und peer.
Allerdings passt das nicht auf die Commandref - hier wird regList (eben auch numerisch erlaubt, also "03" in diesem Fall) und Peer ganz klar mit : getrennt - und nicht mit . wie im Beispiel.

So, das ist doch alles große braune Masse.
Wer sieht den Fehler?

edit: Im Rolladenaktor-Wiki:
set <device> regBulk RegL_03:self01 0B:94 0D:63 8B:94
set <device> regBulk RegL_03:self02 0B:18 0D:63 8B:18

Mit : ...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

the ratman

#17
o.k.

also:set wohnzimmer_gang_gz_licht_Dim regBulk RegL_03:self01 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:64 0E:20 0F:00 10:14 11:C8 12:0A 13:05 14:05 15:00 16:C8 17:0A 18:0A 19:04 1A:04 26:00 27:14 28:52 29:63 81:00 82:00 83:00 84:32 85:64 86:00 87:0A 88:00 89:FF 8A:A5 8B:44 8C:54 8D:64 8E:20 8F:00 90:14 91:C8 92:0A 93:05 94:05 95:00 96:C8 97:0A 98:0A 99:04 9A:04 A6:20 A7:14 A8:52 A9:63 00:00

set wohnzimmer_gang_gz_licht_Dim regBulk RegL_03:self02 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:12 0C:22 0D:23 0E:20 0F:00 10:14 11:C8 12:0A 13:05 14:05 15:00 16:C8 17:0A 18:0A 19:04 1A:04 26:00 27:14 28:52 29:63 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:24 8B:12 8C:22 8D:23 8E:20 8F:00 90:14 91:C8 92:0A 93:05 94:05 95:00 96:C8 97:0A 98:0A 99:04 9A:04 A6:20 A7:14 A8:52 A9:63 00:00

set wohnzimmer_gang_gz_licht_Dim regBulk getConfig

er macht brav seine commands prozessing und done - aber dem taster ist das absolut egal - der schaltet immer noch wie vorher ... kann er auch ned anders, die reg-einträge haben sich nämlich nicht vertauscht.
weiterhin hab ich auch das warning im log ...
hab sicherheitshalber auch mal self01 und 02 vertauscht - n paar mal - immer brac commands prozessing - man kann ihm zusehen, wie er brav abarbeitet - aber 0 tut sich sonst.

is wohl doch alles ned so einfach und leicht verständlich, kommt mir vor ... was mach ich nu?
→do↑p!dnʇs↓shit←

martinp876

so, ich arbeite es einmal der reihe nach auf.
Die Kommandobeschreibung "regBulk" war falsch. Es ist ein Punkt anstelle des ":" einzusetzen.
Falsch:
regBulk:-list-:-peer- -addr1:data1- -addr2:data2- ...
Richtig:
regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...

Erwartet hatte ich den kompletten Ablauf wie folgt:
define hm HMinfo
attr hm configFilename regConfig.cfg
set  wohnzimmer_gang_gz_licht_Dim regSet intKeyVisib visib
set  wohnzimmer_gang_gz_licht_Dim getConfig

# warten bis im Device des wohnzimmer_gang_gz_licht_Dim "protState CMDs_done" zu sehen ist
save
set hm purgeConfig

nun das File regConfig.cfg öffnen. Dort findest du die Zeilen

Zitatset wohnzimmer_gang_gz_licht_Dim regBulk RegL_03.self01 01:00 ...
set wohnzimmer_gang_gz_licht_Dim regBulk RegL_03.self02 01:00 ...
welche du nun "tauschst" - das 01 gegen das 02
set wohnzimmer_gang_gz_licht_Dim regBulk RegL_03.self01 01:00

Wenn du es aus dem regConfig file kopierst ist der "." schon korrekt. Das hatte ich auch vorgeschlagen. Du solltest NICHTS ausser dem 01/02 modifizieren.

Ist alles doch so einfach.



martinp876

Der Tragödie 2. Teil  ;)
Wie macht man es mit templates als kopie aus dem vorhandenen.
Beachte die Menuführung in ht internals (kommentare) und ht Attribute bei der Eingabe!

define hm HMinfo
define ht HMtemplate


set ht defTmpl dimUp
attr ht tpl_type peer-both
attr ht tpl_source wohnzimmer_gang_gz_licht_Dim
attr ht tpl_peer self01
attr ht tpl_description "dimup template"
set ht save
set ht dismiss


set ht defTmpl dimDown
attr ht tpl_type peer-both
attr ht tpl_source wohnzimmer_gang_gz_licht_Dim
attr ht tpl_peer self02
attr ht tpl_description "dimdown template"
set ht save
set ht dismiss


und nun anwenden:

set ht select dimUp
attr ht tpl_entity wohnzimmer_gang_gz_licht_Dim
attr ht tpl_peer self02
set ht assign


set ht select dimDown
attr ht tpl_entity wohnzimmer_gang_gz_licht_Dim
attr ht tpl_peer self01
set ht assign


save

Wenn du nun nicht auf FHEM warten willst (wird zeitverzögert automatisch gemacht) kannst du
set wohnzimmer_gang_gz_licht_Dim getConfig
# auf cmd_done warten
get hm configCheck


Du kannst nun prüfen dass die Register wie gewünscht gesetzt sind.
Sollte es zu problemen kommen (warum auch immer - egal) kannst du die Register wieder setzen lassen:
set hm templateExe
=> es werden alle register welche nicht gemäß template sind mit dem Templatewert überschrieben. Sollte alles passen passiert nichts.

the ratman

#20
wow - ich hab somit nix falsch gemacht - juhuu

also mal der für mich einfache weg. ich mach nun einfach malset wohnzimmer_gang_gz_licht_Dim regBulk RegL_03.self01 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:64 0E:20 0F:00 10:14 11:C8 12:0A 13:05 14:05 15:00 16:C8 17:0A 18:0A 19:04 1A:04 26:00 27:14 28:52 29:63 81:00 82:00 83:00 84:32 85:64 86:00 87:0A 88:00 89:FF 8A:A5 8B:44 8C:54 8D:64 8E:20 8F:00 90:14 91:C8 92:0A 93:05 94:05 95:00 96:C8 97:0A 98:0A 99:04 9A:04 A6:20 A7:14 A8:52 A9:63 00:00
set wohnzimmer_gang_gz_licht_Dim regBulk RegL_03.self02 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:12 0C:22 0D:23 0E:20 0F:00 10:14 11:C8 12:0A 13:05 14:05 15:00 16:C8 17:0A 18:0A 19:04 1A:04 26:00 27:14 28:52 29:63 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:24 8B:12 8C:22 8D:23 8E:20 8F:00 90:14 91:C8 92:0A 93:05 94:05 95:00 96:C8 97:0A 98:0A 99:04 9A:04 A6:20 A7:14 A8:52 A9:63 00:00
und schau mal, was so passiert.


es passiert - traraaa: das richtige! funzt!

somit: vielen dank für eure hilfe! ihr habts mir wirklich sehr geholfen und viel an umständlichkeiten erspart damit ...
→do↑p!dnʇs↓shit←

martinp876

und nun mal richtig cool - der Tragödie 3ter Teil.
Parameter in templates.
Man kann beliebeige definieren.Beim dimmer beispielsweise die Rampe, die OnTime oder auch Parameter für den Motion-Detector.

Ich habe bei allen meinen Schaltern eine onTime definiert (4-6h) damit ein Licht, so es vergessen ist, irgendwann abgeschaltet wird.

Davon ausgehend, dass du das Template "dimUp" wie oben definiert hast machst du nun

set ht dismiss
set ht edit dimUp
attr ht tpl_params onTime:ramp:Level
attr ht tpl_Desciption "set ontime, rampspeed and level"
attr ht Reg_shOnLevel Level
attr ht Reg_shDimStep ramp
attr ht Reg_shOnTime onTime
attr ht Reg_lgOnLevel Level
attr ht Reg_lgDimStep ramp
attr ht Reg_lgOnTime onTime
set ht save
set ht dismiss

damit ist das  Template mit parametern ausgestattet. Du kannst nun also das Template den Entities zuweisen und die 3 ausgewählten Einstellungen je nach Entity anpassen.


Hier dann das zu weisen mit parametern.
set ht select dimUp
attr ht tpl_entity wohnzimmer_gang_gz_licht_Dim
attr ht tpl_peer self01
attr ht tpl_param_Level 60
attr ht tpl_param_ramp 50
attr ht tpl_param_onTime 1800
set ht assign
save







martinp876

sorry für den Fehler in der Kommandobeschreibung.

Pfriemler

Ich hatte ja schon an mir zu zweifeln begonnen... Danke an Martin insbesondere für die Fehlerkorrektur!
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."