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

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

Vorheriges Thema - Nächstes Thema

the ratman

hiho,

ich hab mir eben 2 dimmer der oben erwähnten nummer, da der neutralleiter fehlte, dann doch lieber einbauen lassen.
das dumme: einen der schalter hat der elektro-onkel falsch rum eingebaut und die drähte so kurz gehalten, dass ich den schalter nicht einfach umdrehen kann.

jetzt frag ich mich, obs für diese schalter was ähnliches wie die "param invers" für die rolladenaktoren gibt?
selbiges hab ich natürlich gleich mal probiert, ist dem guten schalter aber leider egal.

gibts hillfe für mein leid?
→do↑p!dnʇs↓shit←

martinp876

Invers gibt es nicht. Allerdings kannst du die tasten schlicht tauschen. Erst einmal intkeys visib schalten. Dan die register auslesen. Nun hast du viele möglichkeiten:
Mit regbulk die registerlister der beiden peers self1 und self2 tauschen.
Templates aus den registerbänken generieren und kreuzweise tauschen
Im wiki die templates zu  dimer nutzen und die den tastern entsprechend zuweisen.

Deine wahl

the ratman

thx für die infos

können wir ein spiel spielen?
stell dir mal vor, du hättest es mit nem dummen menschen zu tun. könntest das dem häppchenweise, schritt für schritt erklären, was er zu tun hat? nicht, das ich der dumme mensch wäre, aber der nachbar würds gern wissen *g*.

kennst mich ja - kapieren 0, aber nachmachen ginge ...
→do↑p!dnʇs↓shit←

Pfriemler

Dumme Menschen sollten nicht FHEM benutzen und schon gar kein HomeMatic.
Für einen auch nur etwas Homematic-bewanderten Menschen liefern die Stichpunkte schon interessante Anhaltspunkte.
Allen Lösungen ist aber einige "Handarbeit" angesagt.

ZitatInvers gibt es nicht. Allerdings kannst du die tasten schlicht tauschen. Erst einmal intkeys visib schalten. Dan die register auslesen. Nun hast du viele möglichkeiten:
Mit regbulk die registerlister der beiden peers self1 und self2 tauschen.
intKeyVisib ist ein Geräteregister - der Aktor hat zudem einen physischen und zwei virtuelle Kanäle. Nicht verwechseln.

set <HMGeraet> regSet intKeyVisib visib
set <HMGeraet> getConfig
attr <HMGeraet> expert 1_allreg

Nun findet man in den Readings des physikalsichen Kanals (wenn alles gut läuft) die Register
.RegL_03.self01 und .RegL_03.self02.
Diese beinhalten die kompletten Settings für die internen Taster. Diese kopiert man nun mal (z.B. in einen Texteditor) und setzt sie auf den jeweils anderen Peer, also
set <HMGeraet_Kanal1> regBulk 03:self01 <Inhalt des Registers .RegL_03.self02>
und
set <HMGeraet_Kanal1> regBulk 03:self02 <Inhalt des Registers .RegL_03.self01>

Zugegben: Einfach ist das nicht...


"Ä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 ..."

martinp876

So komplex ist es auch nicht. Allesdings will ich nicht in jedem thread die gesamte hm config erklären.
Für variante a (kopieren des registersatzes) hat man hminfo aufgesetzt. Register hat man ausgelesen, nach intkeyvisib. Man hat ein save gemacht und das file regConfig.cfg ist damit erstellt. Nun sucht man den block der register des dimers. Darin die beide  zeilen der regl3 für self01 und 02. Diese kopiert man sich, tauscht im editor seiner wahl self01 und 02 und pastet die zeile in die commandozeile.
=> Hat man ein bisschen verständniss für hm sind es zwar mehrere schritte aber alles doch ganz einfach meine ich.

Variante b sollte von dummen usern eigentlich genutzt werden. Nein, eigentlich von allen. Voraussetzung: hminfo und hmtemplate sind eingerichtet. Ok, also
Define hm HMinfo
Define ht HMtemplate
Nun template definieren. Du braucht 2, eines für den up und eines für down. Du kannst sie aus wiki kopieren oder selbst erstellen.
B1 wiki: ist alles beschrieben. Template ist vorhanden. Kopiere es in die cmdzeile. Weise es zu wie beschrieben.
B2 eigenbau: der hat im einfachen fall keine parameter. Hast du auch nicht gefragt,... Also in ht ein define template machen, namen wählen. Vorgehen wie in wiki. Die schritte sind auch in ht internals als info eingeblender. Du selektiertst den self01 des dimmers als vorlage ( ein "both" template für short und long in einem) und speichrrst es. Dann self02, das 2. Template. Die beiden weist du nun über select und assign dem jeweiligen peer zu.

B1 empfehle ich.
Wenn du es erst einmal gestartet hast ist es nicht so komplex.

the ratman

@pfriemler
Zitatset <HMGeraet> regSet intKeyVisib visib
set <HMGeraet> getConfig
attr <HMGeraet> expert 1_allreg

Nun findet man in den Readings des physikalsichen Kanals (wenn alles gut läuft) die Register
.RegL_03.self01 und .RegL_03.self02.
Diese beinhalten die kompletten Settings für die internen Taster. Diese kopiert man nun mal (z.B. in einen Texteditor) und setzt sie auf den jeweils anderen Peer, also
set <HMGeraet_Kanal1> regBulk 03:self01 <Inhalt des Registers .RegL_03.self02>
und
set <HMGeraet_Kanal1> regBulk 03:self02 <Inhalt des Registers .RegL_03.self01>
scheint eine abschreibübung zu sein, mit der ich werd leben können. zumindest brauch ich da keine 3000 anderen module und was weiß ich für templates, die ich nicht mal im ansatz kapier. es is mir sogar klar, was da passieren soll, natürlich wär ich von selber nie drauf gekommen. vor allem, weil grade ja der schalter über eine menge an registern verfügt, die einem erschlagen könnten.

frage 1: kann ich das expert-attr dann wieder auf "einfacher" stellen, oder muß ich mit den x neuen zeilen (die da sicher kommen werden) leben?
frage 2: lässt sich das notfalls auf einfache weise rückgängig machen? wirkt da ein werksreset?


btw - aussagen wie: "wenn alles gut läuft" sind halt genau jene infos, die einen nicht so tief in der materie steckenden user zum zittern bringen ...
weil: wenn nicht alles gut läuft hat selbiger user  dann tränen in den augen, weil dann ist der user meistens ganz allein und hat einen schalter weniger und 1 problem mehr mit der holden *g*
→do↑p!dnʇs↓shit←

Pfriemler

#6
Versuch macht kluch. Templates haben eine Einstiegshürde - hat man die erst mal begriffen, ist es gar nicht so schlimm. Blöd nur, dass ich auf die Schnelle die von Martin erwähnten Einträge im Wiki selber nicht gefunden habe. Aber sie sind da, ich weiß das.

Und der von Martin erläuterte Weg über die Konfigurationssicherung funktioniert genauso schön (und macht letztlich auch genau das gleiche) - sinnigerweise werden in die Dateien genau die Befehle geschrieben die über FHEM abgesetzt werden müssen, um das Gerät (wieder) so zu konfigurieren. Aber man muss dann auch erst mal Zugriff auf die Dateien bekommen. Lesend reicht - self01 und self02 kann man auch in der Kommandozeile von Hand ändern vor dem Abschicken. Wichtig ist nur, dass man ein Backup hat, denn wenn man die erste Taste reprogrammiert hat, sind deren Ursprungswerte logischerweise nicht mehr da für die zweite Taste. Die Reihenfolge ist natürlich egal, also welche der Tasten zuerst programmiert wird.

Hat irgendwann mal wer gesagt, dass es in FHEM immer einfach zugeht?  ;D

Aussagen wie "wenn alles gut läuft" sollen bedeuten, dass immer mal was schiefgehen kann. Die Befehle können irgendwo hängenbleiben, weil der Funk gestört war oder dergleichen. Oder der Helfende kann sich vertippt haben - ich habe das aus dem Kopf geholt. User - ich sage mal so - mit ausreichend Basiswissen erkennen das sofort und können entsprechend handeln, ohne dass man es hier jedesmal haarklein erläutern muss. Sprich: Was "CMDs_done" oder "..._pending" bedeutet und wie man es behebt, muss jeder so oder so lernen. Aber prinzipiell ist das der Weg der zu gehen ist.

Zu den Fragen:
1. natürlich kannst Du attr expert jederzeit zurückstellen. Es dient ja nur dazu, an die Daten zu kommen (wenn Du über hminfo und die Konfigurationsdateien gehst, brauchst Du es gar nicht zu ändern). Am Ende ist der Tastentausch dauerhaft im Aktor gespeichert und funktioniert natürlich auch, wenn FHEM down ist. Auch intKeyVisib kann wieder zurückgestellt werden, wenn man das mag.
2. Ganz dauerhaft natürlich nicht - ein Werksreset stellt die ursprüngliche Tastenzuordnung wieder her, wie auch sonst alle Register auf Werksdefaults gestellt werden. Alles andere wäre ja witzlos.

Der Werksreset ist also die Rückfallebene, von der aus man jederzeit wieder neu beginnen kann. edit: Nur bei einem unbedarften Umgang mit eigenen AES-Schlüsseln oder beim Firmwareupdate kann mal so richtig was schiefgehen - bei letzterem gibt es aber noch Hilfe, weil zumindest der Bootloader nicht kaputt geht (in 99,99% aller Fälle). Dass man einen Aktor mit Registerprogrammierung dauerhaft kaputt bekommt, wäre mir neu.
"Ä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

#7
ZitatZu den Fragen:
1. natürlich kannst Du attr expert jederzeit zurückstellen. Es dient ja nur dazu, an die Daten zu kommen (wenn Du über hminfo und die Konfigurationsdateien gehst, brauchst Du es gar nicht zu ändern). Am Ende ist der Tastentausch dauerhaft im Aktor gespeichert und funktioniert natürlich auch, wenn FHEM down ist.
2. Ganz dauerhaft natürlich nicht - ein Werksreset stellt die ursprüngliche Tastenzuordnung wieder her, wie auch sonst alle Register auf Werksdefaults gestellt werden. Alles andere wäre ja witzlos.

Der Werksreset ist also die Rückfallebene, von der aus man jederzeit wieder neu beginnen kann.
wir 2 könnten freunde werden *g* nu bin ich so frei und werd das am we probieren.
vielen dank für deine noob-gerechten ausführungen!


und nur zur info für leute mit häusern aus den 80er ...
als erstes muß ich mal überhaupt neue zu j2 passende 2'er ramen/taster kaufen zu meinen 2 neuen schaltern - ich hab festgestellt, dass es neben jung1 und 2 scheints noch was extrem altes in sachen jung geben muß (leider ohne jegliche beschriftung - vielleicht auch irgend n nachbau?), für die eq3 keine lösung hat und die aber der onkel elektriker hier vor 40 jahren von der resterampe verbaut hat. schaut man nur mal schnell den schalter an, könnte man glauben, ein j2-adapter is die lösung ... es bleibt allerdings beim glauben.
→do↑p!dnʇs↓shit←

the ratman

darf ich nochmal nerven?

1. um ganz, ganz sicher zu gehen und 2. - da du ja selber sagst, das aus dem gedächtnis gemacht zu haben und ich keine einträge nach deinen angaben finde:

ich hab also meine schalter "wohnzimmer_gang_gz_licht" mit 3 kanälen:
channel_01   wohnzimmer_gang_gz_licht_Dim
channel_02   wohnzimmer_gang_gz_licht_Dim_V_01
channel_03   wohnzimmer_gang_gz_licht_Dim_V_02

ausgeführt hab ich bis jetzt:
set <HMGeraet> regSet intKeyVisib visib
set <HMGeraet> getConfig
attr <HMGeraet> expert 1_allreg

hat auch alles super geklappt

nun finde ich auf channel_01   wohnzimmer_gang_gz_licht_Dim folgende regeinträge:
     2018-10-12 07:28:29   CommandAccepted yes
     2018-10-11 18:15:41   R-fuseDelay     1 s
     2018-10-11 18:15:41   R-logicCombination or
     2018-10-11 18:15:41   R-ovrTempLvl    80 C
     2018-10-11 18:15:41   R-powerUpAction off
     2018-10-11 18:15:41   R-redLvl        40 %
     2018-10-11 18:15:41   R-redTempLvl    75 C
     2018-10-12 09:50:15   R-self01-lgActionTypeDim downDim
     2018-10-12 09:50:15   R-self01-lgCtDlyOff geLo
     2018-10-12 09:50:15   R-self01-lgCtDlyOn geLo
     2018-10-12 09:50:15   R-self01-lgCtOff geLo
     2018-10-12 09:50:15   R-self01-lgCtOn geLo
     2018-10-12 09:50:15   R-self01-lgCtRampOff geLo
     2018-10-12 09:50:15   R-self01-lgCtRampOn geLo
     2018-10-12 09:50:15   R-self01-lgCtValHi 100
     2018-10-12 09:50:15   R-self01-lgCtValLo 50
     2018-10-12 09:50:15   R-self01-lgDimElsActionType off
     2018-10-12 09:50:15   R-self01-lgDimElsJtDlyOff rampOff
     2018-10-12 09:50:15   R-self01-lgDimElsJtDlyOn rampOn
     2018-10-12 09:50:15   R-self01-lgDimElsJtOff dlyOn
     2018-10-12 09:50:15   R-self01-lgDimElsJtOn dlyOff
     2018-10-12 09:50:15   R-self01-lgDimElsJtRampOff off
     2018-10-12 09:50:15   R-self01-lgDimElsJtRampOn on
     2018-10-12 09:50:15   R-self01-lgDimElsOffTimeMd absolut
     2018-10-12 09:50:15   R-self01-lgDimElsOnTimeMd absolut
     2018-10-12 09:50:15   R-self01-lgDimJtDlyOff rampOff
     2018-10-12 09:50:15   R-self01-lgDimJtDlyOn dlyOff
     2018-10-12 09:50:15   R-self01-lgDimJtOff dlyOff
     2018-10-12 09:50:15   R-self01-lgDimJtOn dlyOff
     2018-10-12 09:50:15   R-self01-lgDimJtRampOff off
     2018-10-12 09:50:15   R-self01-lgDimJtRampOn dlyOff
     2018-10-12 09:50:15   R-self01-lgDimMaxLvl 100 %
     2018-10-12 09:50:15   R-self01-lgDimMinLvl 0 %
     2018-10-12 09:50:15   R-self01-lgDimStep 5 %
     2018-10-12 09:50:15   R-self01-lgMultiExec on
     2018-10-12 09:50:15   R-self01-lgOffDly 0 s
     2018-10-12 09:50:15   R-self01-lgOffDlyBlink on
     2018-10-12 09:50:15   R-self01-lgOffDlyNewTime 0.4 s
     2018-10-12 09:50:15   R-self01-lgOffDlyOldTime 0.4 s
     2018-10-12 09:50:15   R-self01-lgOffDlyStep 5 %
     2018-10-12 09:50:15   R-self01-lgOffLevel 0 %
     2018-10-12 09:50:15   R-self01-lgOffTime unused
     2018-10-12 09:50:15   R-self01-lgOffTimeMode absolut
     2018-10-12 09:50:15   R-self01-lgOnDly 0 s
     2018-10-12 09:50:15   R-self01-lgOnDlyMode setToOff
     2018-10-12 09:50:15   R-self01-lgOnLevel 100 %
     2018-10-12 09:50:15   R-self01-lgOnLvlPrio high
     2018-10-12 09:50:15   R-self01-lgOnMinLevel 10 %
     2018-10-12 09:50:15   R-self01-lgOnTime 1 s
     2018-10-12 09:50:15   R-self01-lgOnTimeMode minimal
     2018-10-12 09:50:15   R-self01-lgRampOffTime 0.5 s
     2018-10-12 09:50:15   R-self01-lgRampOnTime 0.5 s
     2018-10-12 09:50:15   R-self01-lgRampSstep 5 %
     2018-10-12 09:50:15   R-self01-shActionTypeDim jmpToTarget
     2018-10-12 09:50:15   R-self01-shCtDlyOff geLo
     2018-10-12 09:50:15   R-self01-shCtDlyOn geLo
     2018-10-12 09:50:15   R-self01-shCtOff geLo
     2018-10-12 09:50:15   R-self01-shCtOn geLo
     2018-10-12 09:50:15   R-self01-shCtRampOff geLo
     2018-10-12 09:50:15   R-self01-shCtRampOn geLo
     2018-10-12 09:50:15   R-self01-shCtValHi 100
     2018-10-12 09:50:15   R-self01-shCtValLo 50
     2018-10-12 09:50:15   R-self01-shDimElsActionType off
     2018-10-12 09:50:15   R-self01-shDimElsJtDlyOff rampOff
     2018-10-12 09:50:15   R-self01-shDimElsJtDlyOn rampOn
     2018-10-12 09:50:15   R-self01-shDimElsJtOff dlyOn
     2018-10-12 09:50:15   R-self01-shDimElsJtOn dlyOff
     2018-10-12 09:50:15   R-self01-shDimElsJtRampOff off
     2018-10-12 09:50:15   R-self01-shDimElsJtRampOn on
     2018-10-12 09:50:15   R-self01-shDimElsOffTimeMd absolut
     2018-10-12 09:50:15   R-self01-shDimElsOnTimeMd absolut
     2018-10-12 09:50:15   R-self01-shDimJtDlyOff rampOff
     2018-10-12 09:50:15   R-self01-shDimJtDlyOn dlyOff
     2018-10-12 09:50:15   R-self01-shDimJtOff dlyOff
     2018-10-12 09:50:15   R-self01-shDimJtOn dlyOff
     2018-10-12 09:50:15   R-self01-shDimJtRampOff off
     2018-10-12 09:50:15   R-self01-shDimJtRampOn dlyOff
     2018-10-12 09:50:15   R-self01-shDimMaxLvl 100 %
     2018-10-12 09:50:15   R-self01-shDimMinLvl 0 %
     2018-10-12 09:50:15   R-self01-shDimStep 5 %
     2018-10-12 09:50:15   R-self01-shMultiExec off
     2018-10-12 09:50:15   R-self01-shOffDly 0 s
     2018-10-12 09:50:15   R-self01-shOffDlyBlink on
     2018-10-12 09:50:15   R-self01-shOffDlyNewTime 0.4 s
     2018-10-12 09:50:15   R-self01-shOffDlyOldTime 0.4 s
     2018-10-12 09:50:15   R-self01-shOffDlyStep 5 %
     2018-10-12 09:50:15   R-self01-shOffLevel 0 %
     2018-10-12 09:50:15   R-self01-shOffTime unused
     2018-10-12 09:50:15   R-self01-shOffTimeMode absolut
     2018-10-12 09:50:15   R-self01-shOnDly 0 s
     2018-10-12 09:50:15   R-self01-shOnDlyMode setToOff
     2018-10-12 09:50:15   R-self01-shOnLevel 100 %
     2018-10-12 09:50:15   R-self01-shOnLvlPrio high
     2018-10-12 09:50:15   R-self01-shOnMinLevel 10 %
     2018-10-12 09:50:15   R-self01-shOnTime unused
     2018-10-12 09:50:15   R-self01-shOnTimeMode absolut
     2018-10-12 09:50:15   R-self01-shRampOffTime 0.5 s
     2018-10-12 09:50:15   R-self01-shRampOnTime 0.5 s
     2018-10-12 09:50:15   R-self01-shRampSstep 5 %
     2018-10-12 09:50:20   R-self02-lgActionTypeDim upDim
     2018-10-12 09:50:20   R-self02-lgCtDlyOff geLo
     2018-10-12 09:50:20   R-self02-lgCtDlyOn geLo
     2018-10-12 09:50:20   R-self02-lgCtOff geLo
     2018-10-12 09:50:20   R-self02-lgCtOn geLo
     2018-10-12 09:50:20   R-self02-lgCtRampOff geLo
     2018-10-12 09:50:20   R-self02-lgCtRampOn geLo
     2018-10-12 09:50:20   R-self02-lgCtValHi 100
     2018-10-12 09:50:20   R-self02-lgCtValLo 50
     2018-10-12 09:50:20   R-self02-lgDimElsActionType off
     2018-10-12 09:50:20   R-self02-lgDimElsJtDlyOff rampOff
     2018-10-12 09:50:20   R-self02-lgDimElsJtDlyOn rampOn
     2018-10-12 09:50:20   R-self02-lgDimElsJtOff dlyOn
     2018-10-12 09:50:20   R-self02-lgDimElsJtOn dlyOff
     2018-10-12 09:50:20   R-self02-lgDimElsJtRampOff off
     2018-10-12 09:50:20   R-self02-lgDimElsJtRampOn on
     2018-10-12 09:50:20   R-self02-lgDimElsOffTimeMd absolut
     2018-10-12 09:50:20   R-self02-lgDimElsOnTimeMd absolut
     2018-10-12 09:50:20   R-self02-lgDimJtDlyOff rampOn
     2018-10-12 09:50:20   R-self02-lgDimJtDlyOn rampOn
     2018-10-12 09:50:20   R-self02-lgDimJtOff dlyOn
     2018-10-12 09:50:20   R-self02-lgDimJtOn rampOn
     2018-10-12 09:50:20   R-self02-lgDimJtRampOff rampOn
     2018-10-12 09:50:20   R-self02-lgDimJtRampOn on
     2018-10-12 09:50:20   R-self02-lgDimMaxLvl 100 %
     2018-10-12 09:50:20   R-self02-lgDimMinLvl 0 %
     2018-10-12 09:50:20   R-self02-lgDimStep 5 %
     2018-10-12 09:50:20   R-self02-lgMultiExec on
     2018-10-12 09:50:20   R-self02-lgOffDly 0 s
     2018-10-12 09:50:20   R-self02-lgOffDlyBlink on
     2018-10-12 09:50:20   R-self02-lgOffDlyNewTime 0.4 s
     2018-10-12 09:50:20   R-self02-lgOffDlyOldTime 0.4 s
     2018-10-12 09:50:20   R-self02-lgOffDlyStep 5 %
     2018-10-12 09:50:20   R-self02-lgOffLevel 0 %
     2018-10-12 09:50:20   R-self02-lgOffTime unused
     2018-10-12 09:50:20   R-self02-lgOffTimeMode absolut
     2018-10-12 09:50:20   R-self02-lgOnDly 0 s
     2018-10-12 09:50:20   R-self02-lgOnDlyMode setToOff
     2018-10-12 09:50:20   R-self02-lgOnLevel 100 %
     2018-10-12 09:50:20   R-self02-lgOnLvlPrio high
     2018-10-12 09:50:20   R-self02-lgOnMinLevel 10 %
     2018-10-12 09:50:20   R-self02-lgOnTime unused
     2018-10-12 09:50:20   R-self02-lgOnTimeMode absolut
     2018-10-12 09:50:20   R-self02-lgRampOffTime 0.5 s
     2018-10-12 09:50:20   R-self02-lgRampOnTime 0.5 s
     2018-10-12 09:50:20   R-self02-lgRampSstep 5 %
     2018-10-12 09:50:20   R-self02-shActionTypeDim jmpToTarget
     2018-10-12 09:50:20   R-self02-shCtDlyOff geLo
     2018-10-12 09:50:20   R-self02-shCtDlyOn geLo
     2018-10-12 09:50:20   R-self02-shCtOff geLo
     2018-10-12 09:50:20   R-self02-shCtOn geLo
     2018-10-12 09:50:20   R-self02-shCtRampOff geLo
     2018-10-12 09:50:20   R-self02-shCtRampOn geLo
     2018-10-12 09:50:20   R-self02-shCtValHi 100
     2018-10-12 09:50:20   R-self02-shCtValLo 50
     2018-10-12 09:50:20   R-self02-shDimElsActionType off
     2018-10-12 09:50:20   R-self02-shDimElsJtDlyOff rampOff
     2018-10-12 09:50:20   R-self02-shDimElsJtDlyOn rampOn
     2018-10-12 09:50:20   R-self02-shDimElsJtOff dlyOn
     2018-10-12 09:50:20   R-self02-shDimElsJtOn dlyOff
     2018-10-12 09:50:20   R-self02-shDimElsJtRampOff off
     2018-10-12 09:50:20   R-self02-shDimElsJtRampOn on
     2018-10-12 09:50:20   R-self02-shDimElsOffTimeMd absolut
     2018-10-12 09:50:20   R-self02-shDimElsOnTimeMd absolut
     2018-10-12 09:50:20   R-self02-shDimJtDlyOff rampOn
     2018-10-12 09:50:20   R-self02-shDimJtDlyOn rampOn
     2018-10-12 09:50:20   R-self02-shDimJtOff dlyOn
     2018-10-12 09:50:20   R-self02-shDimJtOn rampOn
     2018-10-12 09:50:20   R-self02-shDimJtRampOff rampOn
     2018-10-12 09:50:20   R-self02-shDimJtRampOn on
     2018-10-12 09:50:20   R-self02-shDimMaxLvl 100 %
     2018-10-12 09:50:20   R-self02-shDimMinLvl 0 %
     2018-10-12 09:50:20   R-self02-shDimStep 5 %
     2018-10-12 09:50:20   R-self02-shMultiExec off
     2018-10-12 09:50:20   R-self02-shOffDly 0 s
     2018-10-12 09:50:20   R-self02-shOffDlyBlink on
     2018-10-12 09:50:20   R-self02-shOffDlyNewTime 0.4 s
     2018-10-12 09:50:20   R-self02-shOffDlyOldTime 0.4 s
     2018-10-12 09:50:20   R-self02-shOffDlyStep 5 %
     2018-10-12 09:50:20   R-self02-shOffLevel 0 %
     2018-10-12 09:50:20   R-self02-shOffTime unused
     2018-10-12 09:50:20   R-self02-shOffTimeMode absolut
     2018-10-12 09:50:20   R-self02-shOnDly 0 s
     2018-10-12 09:50:20   R-self02-shOnDlyMode setToOff
     2018-10-12 09:50:20   R-self02-shOnLevel 100 %
     2018-10-12 09:50:20   R-self02-shOnLvlPrio high
     2018-10-12 09:50:20   R-self02-shOnMinLevel 10 %
     2018-10-12 09:50:20   R-self02-shOnTime unused
     2018-10-12 09:50:20   R-self02-shOnTimeMode absolut
     2018-10-12 09:50:20   R-self02-shRampOffTime 0.5 s
     2018-10-12 09:50:20   R-self02-shRampOnTime 0.5 s
     2018-10-12 09:50:20   R-self02-shRampSstep 5 %
     2018-10-11 18:15:41   R-statusInfoMinDly 2 s
     2018-10-11 18:15:41   R-statusInfoRandom 1 s
     2018-10-11 18:15:41   R-transmitTryMax 6
     2018-10-12 09:53:04   deviceMsg       off (to vccu)
     2018-10-12 09:53:04   dim             stop:off
     2018-10-12 09:53:04   level           0
     2018-10-12 09:53:04   overheat        off
     2018-10-12 09:53:04   overload        off
     2018-10-12 09:53:04   pct             0
     2018-10-12 10:03:29   peerList        self01,self02,
     2018-10-12 09:53:04   phyLevel        0
     2018-10-12 09:53:04   recentStateType info
     2018-10-12 09:53:04   reduced         off
     2018-10-12 09:53:04   state           off
     2018-10-12 09:53:04   timedOn         off
     2018-10-12 07:28:28   trigLast        fhem:02

was muß ich den nun mit was tauschen? die register ".RegL_03.self01 und .RegL_03.self02" scheinen ja nicht wirklich zu existieren.
→do↑p!dnʇs↓shit←

frank

mach "attr expert 251_anything".
ggf noch getconfig.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

the ratman

ahh, wunder oh wunder *g*

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

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


es handelt sich also wohl um diese jungs?
dann nur noch verdrehen mit set <HMGeraet_Kanal1> regBulk 03:self01 <Inhalt des Registers .RegL_03.self02>
und
set <HMGeraet_Kanal1> regBulk 03:self02 <Inhalt des Registers .RegL_03.self01>
und gut is es, gelle?
→do↑p!dnʇs↓shit←

Pfriemler

wenn du die Platzhalter im Kommando richtig ergänzt,  ja.

Die Hexdatenpärchenkolonne hast du ja schon hier gebackupt  ;) ... und den Namen des Kanals hast du auch oben genannt.
Komisch,  bei mir reicht 1_... im attr expert...


"Ä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

#12
na hauptsache, es passt *g*

und weil ich grad unter leichten panikattacken leide und nicht 2 mal die woche fhem neu machen will, nochmal das, was ich vor hab.
wenn du mir ne 1 mit sternchen gibst, kommts in die kommandozeile von fhem (ich nehm auch fleißpüncktchen *g*).

bleibt das RegL_03.self01/02 oder muß ich da dein 03:self01/02 verwenden (mit : oder .)?

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
→do↑p!dnʇs↓shit←

Pfriemler

#13
so wie ich es kenne und verstanden habe "03:self01" bzw. "...02".
".RegL_03.self01" ist falsch.  Schrieb ich doch in #3 ... ?

edit: nicht falsch, siehe weiter unten...
"Ä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

#14
ok, dann probier ich das jetzt mal ...

starten ma mal durch: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

set wohnzimmer_gang_gz_licht_Dim regBulk 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


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.
→do↑p!dnʇs↓shit←


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 ..."