habe gerade ein update von HMtemplate eingespielt.
Der Editor bietet eine Möglichkeit, register zu setzen - wie ich meine einfacher als bisher.
Zu beachten: Um eine geführte Steuerung der Parameter anzubieten werden die Parameter (also z.B. Registerwerte") erst einmal in den Attribute festgelegt. erst mit einem "save" wird das Template definiert oder geändert.
Vorgehen:
define ht HMtemplate
Wenn man noch nichts hat erst einmal ein define
set ht defTmpl meinTemplate
Beachte die schritte in "internals":
1) wähle, welche Regisergruppe du ändern willt. Das sind entweder die basics (Rollofahrzeiten,... alles war KEINEN peer hat) oder die peer-aktionen Diese können nur short, nur long oder beides sein. Der Peer selbst ist erst einmal egal
2) wähle eine "Source". Das ist die entity aus welcher die Register gelesen werden. incl deren aktueller Wert
3) wähle peers wenn es ein "peer-template" ist
4) falls das Template mit parametern bestückt werden soll kann man diese hier angeben.
5) Beschreibung - ist gelegentlich hilfreich
6) save
7) dismiss - damit verlässt man den zustand und kann nun nach "edit" gehen
8) nun also
set ht edit myTemplate
9) bearbeite die Attribute. Lösche register (attribute) welche du nicht im template haben willst. Wenn das Register literals hat kannst du diese in der drop-down liste wählen. ein
get ht regInfo
zeigt die Wertegereiche der register
10) save => das template ist gesichert
11) dismiss => zurück in die hauptauswahl
Zuweisen des templates
set ht select myTemplate
attr ht tpl_entity myEntity ### wem will ich das template zu weisen?
attr ht tpl_param_<tmplParams> <value> ### template parametrieren - wenn man das will. Cool, aber vielleicht nich tder erste Schritt
set ht apply ## - das template wird dem Device zugewiesen
Man hat sicher HMinfo am laufen (wer nicht kann auch keine Templates - selbst schuld)
mit
set hm templateExe
kann man nun alle ( ALLE) zugewiesenen templates "ausführen". Also die Register werden gesetzt entsprechend der Template definition. Achtung: geschrieben wird nur, wenn auch etwas zu ändern ist. Man kann das also ohne Performance-probleme immer wieder ausführen. Ist das template gesetzt und sind die Register gelesen - passiert KEIN Funkverkehr.
Es gibt noch mehr Funktionen... das ist der Einstieg.
Anregungen gerne
Hallo Martin,
irgendwie funktioniert diese Anleitung nicht oder ich bin zu blöd... Ich habe die folgenden templates angelegt:
Internals:
CFGFN
NAME ht
NR 914
NTFY_ORDER 50-ht
STATE edit
TYPE HMtemplate
tpl_Info0 change attr Reg_ as desired
tpl_Info1 change attr tpl_params ':' separated
tpl_Info2 save if finished
tpl_Info3 saveAs to create a copy
tpl_Info4 dismiss will reset HMtemplate
tpl_Name motionOnSw
tpl_Param ontime brightness
tpl_type peer-Long
Helper:
DBLOG:
usage_1:
fhemlogDB:
TIME 1541943969.03211
VALUE Schalter_Bad _ESC_BM_HM_Bad:short_ESC_ontime:65 brightness:100
usage_2:
fhemlogDB:
TIME 1541943969.03211
VALUE Schalter_Flur _ESC_BM_HM_Flur:short_ESC_ontime:65 brightness:31
READINGS:
2018-11-11 14:46:09 state edit
2018-11-11 14:46:09 usage_1 Schalter_Bad |BM_HM_Bad:short|ontime:65 brightness:100
2018-11-11 14:46:09 usage_2 Schalter_Flur |BM_HM_Flur:short|ontime:65 brightness:31
helper:
attrList tpl_params tpl_description event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading
cSt s1
role:
Attributes:
Reg_ActionType jmpToTarget
Reg_CtDlyOff ltLo
Reg_CtDlyOn ltLo
Reg_CtOff ltLo
Reg_CtOn ltLo
Reg_CtValHi 100
Reg_CtValLo brightness
Reg_MultiExec on
Reg_OffDly 0
Reg_OffTime unused
Reg_OffTimeMode absolut
Reg_OnDly 0
Reg_OnTime ontime
Reg_OnTimeMode absolut
Reg_SwJtDlyOff dlyOn
Reg_SwJtDlyOn on
Reg_SwJtOff dlyOn
Reg_SwJtOn on
room CUL_HM
tpl_description Switch: on for time if MDIR-brightness below level
tpl_params ontime brightness
Jetzt habe ich aber festgestellt dass der Helligkeitswert beim Schalter_Bad zu gering gewählt ist und ich beim (längeren) duschen hin und wieder mal im Dunklen stehe :(
Bin nach der obigen Anleitung vorgegangen
Edit ht motionOnSw
set importReg Schalter_Bad
set attr Reg_CtValHi 180
save
motionOnSw already defned - please choose a different name :(
Was mache ich falsch?
Gruß
Arthur
keiner nen Tip für mich? :'(
Gruß
Arthur