HMinfo templates: display möglich? Wofür templateExe?

Begonnen von UliM, 24 Oktober 2015, 15:06:46

Vorheriges Thema - Nächstes Thema

UliM

Hallo,
habe mich mal ein wenig mit den templates in HMinfo beschäftigt. Superpraktisch das Ganze, spart ne Menge regSet-Tipparbeit  - vielen Dank an Martin!

Zwei Fragen habe ich dazu:

  • Mittels templateChk kann man sehen, welche Register beeinflusst werden.
    Was ich nicht gefunden habe ist sowas wie templateDisplay, um zu sehen, welche Werte je Register gesetzt werden, also ursprünglich bei templateDef hinterlegt wurden. Gibt es dazu eine Möglichkeit?
  • Auch ist mir der Zweck von templateExe unklar - in welchem Fall würde man nicht templateSet wiederholt verwenden? Und wie kann templateExe funktionieren, ohne dass dieselben Parameter angegeben werden wie bei templateSet?

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

martinp876

templateDef # definition eines templates
templateDef name del # löschen eines templates
templateDef name fromMaster master peer:type # neu! definiert ein template anhand der aktuelln Register des Device
templateDef tmpl1 fromMaster LichtWohn Button1:long # Beispiel 1
templateDef tmpl2 fromMaster LichtWohn 0 # Beispiel 2 - nicht peerbehaftete Register

templateList # Liste aller templates
templateList tmpl1 # details zu template1

templateSet # anwenden des templates auf eine entity
templateChk # vergleichen aller gesetzten Templates gegen die gelesenen Register (passt das template zu den Registern?). Auch n ConfigCheck enthalten
templateSet # rückgängig anwenden des templates auf eine entity
templateUsg # liste aller verwendeten templates
templateUsg sortPeer # andere sortierung
templateUsg sortTemplate # andere sortierung
templateExe  # register werden gemäß dem Template gesetzt. das macht eigentlich schon "set". Sollte es aber zu abweichungen kommen/gekomme sein,... kann man es noch einmal ausführen

archConfig# speichert neben den Registern auch die template definitionen und template"Anwendungen" in ein File
loadConfig# heute überarbeitet! Lädt das Archiv (archConfig). Zum einen werden Registerwerte aus dem Archive in die Entity eingetragen wenn das Datum neuer ist als das Reading oder das Reading nicht existiert! Zum anderen werden template definitionen wirder eingelesen. Und zum dritten die Template-anwendungen (templateSet) - diese werden beim load NICHT ausgeführt, nur eingelesen. Hier bekommt "Exe" eine weitere Bedeutung.

Will man die mit Chk gefundenen Probleme beheben kann man Exe aufrufen.

Arbeitet man damit sollte man
attr hm autoArchive 1 # speichert änderungen automatisch - achtung - leichte Verzögerng

auserdem sollte man ein userConfig einrichten
define userCfg notify global:INITIALIZED include cfg_fhemUser.cfg

und in cfg_fhemUser.cfg
define a5 at +00:01:00 set hm loadConfig

die 1 min warten ist evt nicht zwingend.

Ferner empfehle ich im fg_fhemUser.cfg ein paar attribute zu korrigieren

attr TYPE=CUL_HM:FILTER=DEF=......:FILTER=subType!=virtual expert   12_templOnly
attr TYPE=CUL_HM:FILTER=DEF=......:FILTER=subType!=virtual autoReadReg  5_readMissing
attr TYPE=CUL_HM                                           event-on-change-reading .*

deleteattr TYPE=CUL_HM:FILTER=DEF=........    expert
deleteattr TYPE=CUL_HM:FILTER=subType=virtual expert
deleteattr TYPE=CUL_HM:FILTER=DEF=........    autoReadReg
deleteattr TYPE=CUL_HM:FILTER=subType=virtual autoReadReg
deleteattr TYPE=CUL_HM                        verbose