Hallo!
Ich habe einen 2-Kanal Taster, der ist so konfiguriert, dass auf Toggle short oben Aktor eins angeht, unten short der Aktor zwei.
Kann ich nun Aktor drei mit Toggle long an- und ausschalten? :)
Grüße
Stefan
Internals:
CFGFN /opt/fhem/OG_Schlafzimmer.cfg
CUL_0_MSGCNT 80
CUL_0_RAWMSG A0B94A44059CBE75C5FEF01EC::-72:CUL_0
CUL_0_RSSI -72
CUL_0_TIME 2017-12-27 17:26:50
DEF 59CBE7
IODev CUL_0
LASTInputDev CUL_0
MSGCNT 80
NAME OG.Sz.Lichtschalter
NOTIFYDEV global
NR 58
NTFY_ORDER 50-OG.Sz.Lichtschalter
STATE OG.Sz.Lichtschalter_unten Short
TYPE CUL_HM
channel_01 OG.Sz.Lichtschalter_unten
channel_02 OG.Sz.Lichtschalter_oben
lastMsg No:94 - t:40 s:59CBE7 d:5C5FEF 01EC
protLastRcv 2017-12-27 17:26:50
protSnd 38 last_at:2017-12-27 16:48:40
protState CMDs_done
rssi_at_CUL_0 max:-63 lst:-72 min:-77.5 avg:-66.56 cnt:80
READINGS:
2017-12-10 12:51:23 CommandAccepted yes
2017-12-09 15:45:08 D-firmware 1.1
2017-12-09 15:45:08 D-serialNr OEQ0437949
2017-12-27 16:46:10 PairedTo 0xA434F0
2017-12-09 15:45:13 R-pairCentral 0xA434F0
2017-12-27 16:46:10 RegL_00. 02:01 05:00 0A:A4 0B:34 0C:F0 14:03 18:00 00:00
2017-12-09 16:29:09 alive yes
2017-12-27 17:26:50 battery ok
2017-12-09 16:29:09 powerOn 2017-12-09 16:29:09
2017-12-09 16:29:09 recentStateType info
2017-12-27 17:26:50 state OG.Sz.Lichtschalter_unten Short
helper:
HM_CMDNR 148
cSnd 01A434F059CBE70103,01A434F059CBE701045C5FEF0104
mId 00E0
regLst ,0,1,4p
rxType 1
supp_Pair_Rep 0
ack:
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +59CBE7,00,00,00
nextSend 1514392010.15962
prefIO
rxt 0
vccu
p:
59CBE7
00
00
00
mRssi:
mNo 94
io:
CUL_0 -70
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf
qReqStat
role:
dev 1
rssi:
at_CUL_0:
avg -66.5625
cnt 80
lst -72
max -63
min -77.5
shadowReg:
tmpl:
Attributes:
IODev CUL_0
autoReadReg 5_readMissing
expert 2_raw
firmware 1.1
icon taster
model HM-RC-2-PBU-FM
room Schlafzimmer
serialNr OEQ0437949
subType remote
webCmd getConfig:clear msgEvents
klar. Behalten die Übersicht.
wieder einmal: nutze templates.
define hm HMinfo
define ht HMtemplate
peere alles was gepeert sein soll.
Option 1: je ein Template für short und long nutzen
Define templates:
set hm templateDef SwIgnore "ignore event" ActionType:off
set hm templateDef SwToggle "Switch: toggle on trigger" SwJtDlyOn:on OnTime:unused SwJtDlyOff:off ActionType:jmpToTarget OffTime:unused SwJtOn:dlyOff SwJtOff:dlyOn
nun anwenden (per Kommando):
set hm templateSet switch1 SwIgnore RC1:long
set hm templateSet switch2 SwIgnore RC2:long
set hm templateSet switch3 SwIgnore RC1:short
set hm templateSet switch1 SwToggle RC1:short
set hm templateSet switch2 SwToggle RC2:short
set hm templateSet switch3 SwToggle RC1:long
oder anwenden Nutzergeführt - offne "ht" im Browser (dauert länger, kann man aber clicken):
set ht select SwIgnore
refresh
attr ht tpl_entitiy switch1
refresh
attr ht tpl_ePeer RC1
refresh
attr ht tpl_eType short
set ht apply
attr ht tpl_entitiy switch2
refresh
attr ht tpl_ePeer RC2
refresh
attr ht tpl_eType short
set ht apply
.....
save
Hi Martin,
sehr schön, Danke für den Hinweis!
Eine Nachfrage noch:
Das war mein vorheriges Peering für Taster oben.
set OG.Sz.Lichtschalter_oben peerChan 0 OG.Sz.Deckenlampe single set
Wenn ich nun folgendes ausführe, überschreibe ich mir den bisherigen Peer, weil der peerchan gleich ist?
set OG.Sz.Lichtschalter_oben peerChan 0 OG.Sz.Schranklicht_Dim_V_02 single set
Gebe zu, das habe ich noch nicht geblickt.
"get reg all"
OG.Sz.Lichtschalter_oben type:remote -
list:peer register :value
1: longPress :0.4 s
1: sign :off
4:OG.Sz.Deckenlampe_chn-01 expectAES :off
4:OG.Sz.Deckenlampe_chn-01 peerNeedsBurst :off
Grüße und die Macht sei mit dir!
Stefan
Hallo Stefan,
Zitat von: dreizweieins am 27 Dezember 2017, 18:25:55
Das war mein vorheriges Peering für Taster oben.
set OG.Sz.Lichtschalter_oben peerChan 0 OG.Sz.Deckenlampe single set
Wenn ich nun folgendes ausführe, überschreibe ich mir den bisherigen Peer, weil der peerchan gleich ist?
set OG.Sz.Lichtschalter_oben peerChan 0 OG.Sz.Schranklicht_Dim_V_02 single set
Gebe zu, das habe ich noch nicht geblickt.
Ich sage mal nein, damit schaltets Du zusätzlich zum OG.Sz.Deckenlampe auch noch OG.Sz.Schranklicht_Dim_V_02.
Wenn Du das nicht willst musst du den alten Peer vorher selbst löschen.
Gruß Otto
Hallo Otto!
Ah, ok, dann kann ich peerchan 1 definieren, und es wird ein zweiter Kanal angelegt?
Gruß
Stefan
Peerchan Set addiert Peers. Unset subtrahiert.
Der Kanal kann nur eine bestimmte Menge Peers. Wenn alles besetzt ist wird das Kommando nicht ausgeführt.
Peerst du einen Kanal ein 2. Mal werden die zugehörigen Register auf Default gesetzt.
Es wird kein neuer Kanal angelegt, aber ein neuer Satz Register für diesen peer. Sicher das was du meinst.... Aber auf der Begriffe achten.
Vielen Dank, das werde ich morgen alles durchtesten.
Guten Abend!
Ich hatte nun etwas Zeit, den Versuch zu machen.
Mein Vorgehen war:
1.
set OG.Sz.Lichtschalter_oben peerChan 0 OG.Sz.Schranklicht_Dim_V_02 single set
2.
define hm HMinfo
define ht HMtemplate
set hm templateDef SwIgnore "ignore event" ActionType:off
set hm templateDef SwToggle "Switch: toggle on trigger" SwJtDlyOn:on OnTime:unused SwJtDlyOff:off ActionType:jmpToTarget OffTime:unused SwJtOn:dlyOff SwJtOff:dlyOn
3.
set hm templateSet OG.Sz.Schranklicht_Dim_V_02 SwIgnore OG.Sz.Lichtschalter_oben:long
Fehlerausgabe:
"Device doesn't support lgActionType - template SwIgnore not applicable"
4.
set hm templateSet OG.Sz.Schranklicht_Dim_V_02 SwToggle OG.Sz.Lichtschalter_oben:long
Fehlerausgabe:
"Device doesn't support lgSwJtOff - template SwToggle not applicable"
Ergebnis von "list OG.Sz.Lichtschalter_oben". Neuer Satz Register durch peering wurde erstellt. Peerliste wurde erweitert.
Internals:
CFGFN /opt/fhem/OG_Schlafzimmer.cfg
DEF 59CBE702
NAME OG.Sz.Lichtschalter_oben
NOTIFYDEV global
NR 70
NTFY_ORDER 50-OG.Sz.Lichtschalter_oben
STATE Short 3_147 (to OG.Sz.Deckenlampe)
TYPE CUL_HM
chanNo 02
device OG.Sz.Lichtschalter
peerList OG.Sz.Schranklicht_Dim_V_02,OG.Sz.Deckenlampe,
READINGS:
2017-12-29 18:26:28 R-OG.Sz.Deckenlampe_chn-01-expectAES off
2017-12-29 18:26:28 R-OG.Sz.Deckenlampe_chn-01-peerNeedsBurst off
2017-12-29 18:19:43 R-OG.Sz.Schranklicht_Dim_V_02-expectAES off
2017-12-29 18:19:43 R-OG.Sz.Schranklicht_Dim_V_02-peerNeedsBurst off
2017-12-09 15:43:41 R-sign off
2017-12-29 18:26:27 RegL_01. 04:10 08:00 30:03 00:00
2017-12-29 18:26:28 RegL_04.OG.Sz.Deckenlampe_chn-01 01:00 00:00
2017-12-29 18:26:28 RegL_04.OG.Sz.Schranklicht_Dim_V_02 01:00 00:00
2017-12-29 18:26:28 peerList OG.Sz.Schranklicht_Dim_V_02,OG.Sz.Deckenlampe,
2017-12-29 18:24:38 state Short 3_147 (to OG.Sz.Deckenlampe)
2017-12-10 10:11:18 trigDst_A434F0 noConfig
2017-12-29 18:24:38 trigger Short_147
2017-12-29 18:24:38 triggerTo_OG.Sz.Deckenlampe Short_147_ack
2017-12-29 18:24:38 triggerTo_OG.Sz.Schranklicht Short_147_ack
2017-12-29 18:24:38 trigger_cnt 147
helper:
BNO 147
BNOCNT 3
peerIDsRaw ,58E62001,5634D803,00000000
regLst ,1,4p
tmplChg 0
expert:
def 1
det 0
raw 1
tpl 0
role:
chn 1
shadowReg:
tmpl:
Attributes:
expert 2_defReg+raw
group Kanäle
model HM-RC-2-PBU-FM
peerIDs 00000000,5634D803,58E62001,
room Schlafzimmer
Aber das Long-Kommando wird wohl nicht unterstützt. Aber "longpress" wir angeboten.
"get OG.Sz.Lichtschalter_oben reg all"
OG.Sz.Lichtschalter_oben type:remote -
list:peer register :value
1: longPress :0.4 s
1: sign :off
4:OG.Sz.Deckenlampe_chn-01 expectAES :off
4:OG.Sz.Deckenlampe_chn-01 peerNeedsBurst :off
4:OG.Sz.Schranklicht_Dim_V_02 expectAES :off
4:OG.Sz.Schranklicht_Dim_V_02 peerNeedsBurst :off
Sieht jemand, was ich falsch gemacht habe?
Vielleicht paßt das hmtemplate nicht zu dem Dimmaktor?
OG.Sz.Schranklicht_Dim_V_02 type:dimmer -
list:peer register :value
1: characteristic :square
1: logicCombination :or
1: ovrTempLvl :80 C
1: powerUpAction :off
1: redLvl :40 %
1: redTempLvl :75 C
1: statusInfoMinDly :2 s
1: statusInfoRandom :1 s
1: transmitTryMax :6
3:OG.Sz.Lichtschalter_oben lgActionTypeDim :toggelDim
3:OG.Sz.Lichtschalter_oben lgCtDlyOff :geLo
3:OG.Sz.Lichtschalter_oben lgCtDlyOn :geLo
3:OG.Sz.Lichtschalter_oben lgCtOff :geLo
3:OG.Sz.Lichtschalter_oben lgCtOn :geLo
3:OG.Sz.Lichtschalter_oben lgCtRampOff :geLo
3:OG.Sz.Lichtschalter_oben lgCtRampOn :geLo
3:OG.Sz.Lichtschalter_oben lgCtValHi :100
3:OG.Sz.Lichtschalter_oben lgCtValLo :50
3:OG.Sz.Lichtschalter_oben lgDimElsActionType :off
3:OG.Sz.Lichtschalter_oben lgDimElsJtDlyOff :rampOff
3:OG.Sz.Lichtschalter_oben lgDimElsJtDlyOn :rampOn
3:OG.Sz.Lichtschalter_oben lgDimElsJtOff :dlyOn
3:OG.Sz.Lichtschalter_oben lgDimElsJtOn :dlyOff
3:OG.Sz.Lichtschalter_oben lgDimElsJtRampOff :off
3:OG.Sz.Lichtschalter_oben lgDimElsJtRampOn :on
3:OG.Sz.Lichtschalter_oben lgDimElsOffTimeMd :absolut
3:OG.Sz.Lichtschalter_oben lgDimElsOnTimeMd :absolut
3:OG.Sz.Lichtschalter_oben lgDimJtDlyOff :rampOff
3:OG.Sz.Lichtschalter_oben lgDimJtDlyOn :rampOn
3:OG.Sz.Lichtschalter_oben lgDimJtOff :dlyOn
3:OG.Sz.Lichtschalter_oben lgDimJtOn :dlyOff
3:OG.Sz.Lichtschalter_oben lgDimJtRampOff :off
3:OG.Sz.Lichtschalter_oben lgDimJtRampOn :on
3:OG.Sz.Lichtschalter_oben lgDimMaxLvl :100 %
3:OG.Sz.Lichtschalter_oben lgDimMinLvl :0 %
3:OG.Sz.Lichtschalter_oben lgDimStep :5 %
3:OG.Sz.Lichtschalter_oben lgMultiExec :on
3:OG.Sz.Lichtschalter_oben lgOffDly :0 s
3:OG.Sz.Lichtschalter_oben lgOffDlyBlink :on
3:OG.Sz.Lichtschalter_oben lgOffDlyNewTime :0.4 s
3:OG.Sz.Lichtschalter_oben lgOffDlyOldTime :0.4 s
3:OG.Sz.Lichtschalter_oben lgOffDlyStep :5 %
3:OG.Sz.Lichtschalter_oben lgOffLevel :0 %
3:OG.Sz.Lichtschalter_oben lgOffTime :unused
3:OG.Sz.Lichtschalter_oben lgOffTimeMode :absolut
3:OG.Sz.Lichtschalter_oben lgOnDly :0 s
3:OG.Sz.Lichtschalter_oben lgOnDlyMode :setToOff
3:OG.Sz.Lichtschalter_oben lgOnLevel :100 %
3:OG.Sz.Lichtschalter_oben lgOnLvlPrio :high
3:OG.Sz.Lichtschalter_oben lgOnMinLevel :10 %
3:OG.Sz.Lichtschalter_oben lgOnTime :unused
3:OG.Sz.Lichtschalter_oben lgOnTimeMode :absolut
3:OG.Sz.Lichtschalter_oben lgRampOffTime :0.5 s
3:OG.Sz.Lichtschalter_oben lgRampOnTime :0.5 s
3:OG.Sz.Lichtschalter_oben lgRampSstep :5 %
3:OG.Sz.Lichtschalter_oben shActionTypeDim :jmpToTarget
3:OG.Sz.Lichtschalter_oben shCtDlyOff :geLo
3:OG.Sz.Lichtschalter_oben shCtDlyOn :geLo
3:OG.Sz.Lichtschalter_oben shCtOff :geLo
3:OG.Sz.Lichtschalter_oben shCtOn :geLo
3:OG.Sz.Lichtschalter_oben shCtRampOff :geLo
3:OG.Sz.Lichtschalter_oben shCtRampOn :geLo
3:OG.Sz.Lichtschalter_oben shCtValHi :100
3:OG.Sz.Lichtschalter_oben shCtValLo :50
3:OG.Sz.Lichtschalter_oben shDimElsActionType :off
3:OG.Sz.Lichtschalter_oben shDimElsJtDlyOff :rampOff
3:OG.Sz.Lichtschalter_oben shDimElsJtDlyOn :rampOn
3:OG.Sz.Lichtschalter_oben shDimElsJtOff :dlyOn
3:OG.Sz.Lichtschalter_oben shDimElsJtOn :dlyOff
3:OG.Sz.Lichtschalter_oben shDimElsJtRampOff :off
3:OG.Sz.Lichtschalter_oben shDimElsJtRampOn :on
3:OG.Sz.Lichtschalter_oben shDimElsOffTimeMd :absolut
3:OG.Sz.Lichtschalter_oben shDimElsOnTimeMd :absolut
3:OG.Sz.Lichtschalter_oben shDimJtDlyOff :rampOff
3:OG.Sz.Lichtschalter_oben shDimJtDlyOn :rampOn
3:OG.Sz.Lichtschalter_oben shDimJtOff :dlyOn
3:OG.Sz.Lichtschalter_oben shDimJtOn :dlyOff
3:OG.Sz.Lichtschalter_oben shDimJtRampOff :off
3:OG.Sz.Lichtschalter_oben shDimJtRampOn :on
3:OG.Sz.Lichtschalter_oben shDimMaxLvl :100 %
3:OG.Sz.Lichtschalter_oben shDimMinLvl :0 %
3:OG.Sz.Lichtschalter_oben shDimStep :5 %
3:OG.Sz.Lichtschalter_oben shMultiExec :off
3:OG.Sz.Lichtschalter_oben shOffDly :0 s
3:OG.Sz.Lichtschalter_oben shOffDlyBlink :on
3:OG.Sz.Lichtschalter_oben shOffDlyNewTime :0.4 s
3:OG.Sz.Lichtschalter_oben shOffDlyOldTime :0.4 s
3:OG.Sz.Lichtschalter_oben shOffDlyStep :5 %
3:OG.Sz.Lichtschalter_oben shOffLevel :0 %
3:OG.Sz.Lichtschalter_oben shOffTime :unused
3:OG.Sz.Lichtschalter_oben shOffTimeMode :absolut
3:OG.Sz.Lichtschalter_oben shOnDly :0 s
3:OG.Sz.Lichtschalter_oben shOnDlyMode :setToOff
3:OG.Sz.Lichtschalter_oben shOnLevel :100 %
3:OG.Sz.Lichtschalter_oben shOnLvlPrio :high
3:OG.Sz.Lichtschalter_oben shOnMinLevel :10 %
3:OG.Sz.Lichtschalter_oben shOnTime :unused
3:OG.Sz.Lichtschalter_oben shOnTimeMode :absolut
3:OG.Sz.Lichtschalter_oben shRampOffTime :0.5 s
3:OG.Sz.Lichtschalter_oben shRampOnTime :0.5 s
3:OG.Sz.Lichtschalter_oben shRampSstep :5 %
Kleine Korrektur:
Auf "OG.Sz.Lichtschalter_oben:short" schaltet jetzt OG.Sz.Schranklicht_Dim_V_02 und OG.Sz.Deckenlampe.
Long geht nicht.
Erstens: Warum peerst Du mit dem ersten virtuellen Kanal des Dimmers und nicht direkt mit dem ersten Kanal? Der virtuelle Dimmerkanal muss zudem logisch verknüpft und aktiviert sein, bevor überhaupt irgendwas passiert.
Zweitens: Ja, das Template passt nicht. Die zu manipulierenden Register haben alle Sw für Switch im Namen, für den Dimmer braucht es aber Dim. ActionType heißt da glaube ich auch leicht anders. Ein "get OG.Sz.Schranklicht_Dim regList" verrät Dir die genaue Schreibweise.
Ich bin vor kurzem selbst daran gescheitert, ein Switch-Template "mal eben schnell" für Dimmer umzuschreiben mit dem Templateeditor. Mit ein bisschen Handarbeit habe ich es dann doch geschafft. Mit einer Neudefinition geht es leichter.
Long geht jedenfalls definitiv, d.h. eine getrennte Steuerung von OG.Sz.Deckenlampe und OG.Sz.Schranklicht_Dim dergestalt, dass short die Decke schaltet und long das Schranklicht dimmt (abwechselnd hoch oder runter) ist machbar. Wenn das Dimmen für diesen Peer nicht benötigt wird, lässt sich durch Vergrößern der Dimmstufen am einfachsten ein quasi-Schaltverhalten erreichen (praktisch wäre es durch Verstellen der jumpTable komplett abschaltbar, aber as ist komplizierter).
Es wird Zeit für einen vernünftigen Satz globaler Templates.
Jawoll!
Ist schon korrekt, eigentlich sollte ich OG.Sz.Schranklicht_Dim nehmen, werde ich nun auch umstellen.
Ich hatte OG.Sz.Schranklicht_Dim_V_02 genommen, da ich die OG.Sz.Schranklicht_Dim_V_01 für ein Peering mit dem Bewegungsmelder benutzt habe. Das ist abgekupfert von meinem Flurlicht-Dimmer mit Bewegungsmelder, da ist _Dim für den Taster belegt. Daher die gleiche Mache.... ich weiß, nicht so sauber aufgebaut. Aber ich bin auch ein Anfäger.
Okay, dann sollte ich ein Template dafür bauen! Was ist bitte der Template-Editor?
Der Template-Editor wird hier (https://wiki.fhem.de/wiki/HomeMatic_Templates#Template_editieren_2) kurz beschrieben.
Ich bin gerade am schreiben...
Es sind noch ein paar mehr Funktionen enthalten.,.. wenn man etwas spielt sollte es, hoffe ich, einleuchten.
ActionTypeDim wäre das korrekte Register. Muss bei dimmern anders benannt werden, da es andere (mehr) literals unterstützt.
Ich hoffe mit dem Templates Editor wird es einfacher. Hier werden exakt die register des Device eingetragen. Weiter werden die literals in der Auswahlliste angezeigt.
Beim anwenden (select) kann man das Template auf alle entities anwenden, welche alle Register des Templates unterstützen.
Die Benutzerführung ist Recht weitgehend. Nicht ganz komplett. Aber nicht fhem typisch. Es ist der einzige Standartwege, komplexe select Listen zu realisieren, den ich gefunden habe.
Danke für die Anleitung, ich konnte diese recht gut benutzen, dahingehend, daß ich mir ein eigenes Template auf Grundlage eines Dimmers erstellt habe. Das Benutzer des Templates scheiterte dann aber dahingehen, daß der Wert OnTime nicht gesetzt worde.
so sah der Eintrag im Reading aus. Abgeschnittene Werte beim Entity und beim Type long.
OG.Sz.Schranklicht_Di|OG.Sz.Lichtschalter_oben:lon|OnTime:45
geholfen habe ich mir nun damit, daß ich auf OG.Sz.Deckenlampe und OG.Sz.Schranklicht_Dim ein regSet manuell durchgeführt habe.
Damit klappt es, daß bei einem long Toggle die Deckenlampe ausbleibt und die Schranklampe angeht (60 Sekunden).
set OG.Sz.Schranklicht_Dim regSet lgOnTime 60 OG.Sz.Lichtschalter_oben
set OG.Sz.Deckenlampe regSet lgOnTime 0 OG.Sz.Lichtschalter_oben
das habe ich nicht verstanden. woher kommt
OG.Sz.Schranklicht_Di|OG.Sz.Lichtschalter_oben:lon|OnTime:45
Ah- das kommt bei
get hm templateUsg
heraus? Dann wird es nur bei der Ausgabe abgeschnitten, meine ich.
Hat das Template definieren funktioniert?
Hat das Template zuweisen funktioniert?
war das Template in der Entity zu sehen?OG.Sz.Schranklicht_Dim?
Das Attribut expert auf template einstellen!
hat das Setzen
set hm templateExe
funktioniert?
Welche Fehler sind im Einzelnen aufgetreten?
Die Doku im Wiki habe ich gerade erweitert.
BTW: es mag sein, dass das Deckenlicht auf Long nun aus bleibt, aber es wird mit lgOnTime 0 auch umgehend ausgeschaltet wenn es an war. Hier sollte nur lgActionType für den Taster auf no stehen, damit gar keine long-Trigger verarbeitet werden. Oder sehe ich das falsch?
richtig! ich habe nachher den lgactiontype auf off gestellt. dann geht das longpress sauber auf das Schranklicht (an/aus).
@Martin
ich gehe das morgen noch einmal detailliert durch.
Danke. Sorry, dass mich erst einmal interessiert, dass Template nutzbar ist. Mein Problem ist, dass ich es für einfach halte, nach - wie ich meine - kurzer Einarbeitung.
Cool wenn du es probierst, kommentierst und bewertest.
Inhaltlich halte ich Templates für alternativlos, die Realisierung ist zu diskutieren.
Hi und einen guten Rutsch für alle! ;)
Ich gebe mal Feedback zu der Anleitung von https://wiki.fhem.de/wiki/HomeMatic_Templates#Template_editieren_2 (https://wiki.fhem.de/wiki/HomeMatic_Templates#Template_editieren_2), um ein Template aus einem Device zu erstellen. Fett gedruckt sind die korrekten Kommandos.
1.
define ht HMtemplate
#Ergebnis: OK
2.
set ht define my1stTmpl
#Ergebnis -> Fehler: "Unknown argument define , choose one of defTmpl delete edit select"
#defTmpl statt define:
set ht defTmpl my1stTmpl
#Ergebnis: OK
3.
attr ht tpl_param timeOn # name des Parameters - hier nur einer
##tpl_params statt tpl_param:
attr ht tpl_params timeOn
#Ergebnis: OK
4.
attr ht tpl_description "mein erstes Template"
#Ergebnis: OK
5.
attr ht tpl_type peer-both
#Ergebnis: OK
6.
<refresh browser> # select liste der attribute wird neu eingelesen
attr ht tpl_source myChan
<refresh browser> # select liste der attribute wird neu eingelesen
#Ergebnis: OK, Entitys sind per Dropdown-Box auswählbar
7.
attr ht tpl_peer myChanPeer
<refresh browser> # select liste der attribute wird neu eingelesen
#Ergebnis: OK, Entitys sind per Dropdown-Box auswählbar
8.
attr ht Reg_shOnTime timeOn # setzen des parameters
#Ergebnis: OK
9.
set ht save
#Ergebnis: OK
10.
set ht dismiss
#Ergebnis: OK
#list ht
##Hier ist exemplarisch mein List des Device ht.
Internals:
CFGFN
NAME ht
NR 1683
NTFY_ORDER 50-ht
STATE init
TYPE HMtemplate
tpl_Info0 delete to remove a template definition
tpl_Info1 defTmpl to greate a template
tpl_Info2 - use an entity as default
tpl_Info3 edit to modify a template definition
tpl_Info4 select to apply a template to a entity
READINGS:
2017-12-31 15:54:49 state init
helper:
attrList tpl_params tpl_description event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading
cSt s0
Attributes:
#get ht my1stTmpl
## Versuch des Exports:
## Fehler: Unknown argument my1stTmpl, choose one of
defineCmd:BlStopDnLg,BlStopDnSh,BlStopUpLg,BlStopUpSh,DimDown,DimOff,DimOn,SwCondAbove,SwCondBelow,SwIgnore,SwOff,SwOn,SwOnCond,SwToggle,autoOff,motionOnDim,motionOnSw,my1stTmpl,wmClose,wmClosed,wmLock,wmOpen regInfo:noArg
Folgend das Anwenden des Templates auf einen Kanal vom EG.Flur.Licht_Dim_V_02 mit EG.Flur.Bewegungsmelder.
1.
set ht select my1stTmpl
#Ergebnis: OK
2.
attr ht entity sw1
##Fehler im Kommando
attr ht tpl_entity sw1
#Ergebnis: OK
<refresh browser>
attr ht ePeer peer1
##Fehler im Kommando
attr ht tpl_ePeer peer1
#Ergebnis: OK
attr ht tpl_param_timeOn 10
#Ergebnis: OK
set ht apply
#Ergebnis: OK
##Prüfung des Devices (bei mir:EG.Flur.Licht_Dim_V_02 type)
set EG.Flur.Licht_Dim_V_02 getConfig
get reg all
#
3:EG.Flur.Bewegungsmelder_chn-01 lgOnTime :unused
3:EG.Flur.Bewegungsmelder_chn-01 shOnTime :10 s
Long wird nicht gesetzt, short schon.