Hallo zusammen,
So langsam nimmt meine fhem.cfg eine stattlichere Länge an. Zum "Sparen" wollte ich gern einige Attribute generalisieren. Dabei ist mir folgendes aufgefallen:
Aus
...
define WEB FHEMWEB 8083 global
...
attr TYPE=FHEMWEB JavaScripts codemirror/fhem_codemirror.js
attr TYPE=FHEMWEB codemirrorParam {...}
...
wurden Einträge in jeder FHEMWEB-Instanz (WEB, WEBphone, WEBtablet...).
Das ist kein Problem, da die Information ja erhalten geblieben ist. Somit leidet nur die Übersichtlichkeit bzw. wurde nichts kürzer.
Aus
define vccu CUL_HM 1A2B3C
attr TYPE=CUL_HM event-on-change-reading .*
...
wurde
define vccu CUL_HM 1A2B3C
attr vccu event-on-change-reading .*
...
Hier dürften dann Informationen verloren gegangen sein, da ja nun das Attribut an die vccu gebunden ist und nicht mehr für alle CUL_HM Instanzen gilt?
Ein ähnliches Verhalten habe ich beim MAXLAN festgestellt, allerdings habe ich dort attr TYPE=MAX
genutzt.
Kann mir das jemand erklären? Ich hatte gehofft, durch diese Art der Filter die Einträge für einige Geräte (zB. einen Haufen MAX (Wand-)Thermostate) verkürzen zu können.
Viele Grüße
Daniel
Ja kann man und das werden andere vermutlich noch drastischer tun ;)
Generell ist fhem.cfg kein Datei die man direkt bearbeiten sollte und insbesondere ist sie keine Skriptdatei, die alle Befehle stur ausführt, sondern enthält defines und attr in relativ schlichter Form als Snapshot der aktuellen Deivce-Definitionen.
Filter-Angaben sind für interaktive Nutzung gedacht. Die Speicherung in cfg erfolgt meines Wissens schlicht nach Devices...
Es macht überhaupt keinen Sinn, Attribute auf diese Weise per devspec bei jedem Systemstart setzen zu wollen.
Denn wenn das Attribut einmal so gesetzt wurde, ist das Attribut bei jedem zugehörigen device vorhanden und wird automatisch mit gespeichert.
Dafür habe ich ein Modul geschrieben: archetype (https://forum.fhem.de/index.php/topic,53402.0.html) (ist Einsatzbereit aber noch in der Entwicklung ;))
ich hatte befürchtet, dass das jetzt kommt :-\
Ich wusste es kommen noch mehr Antworten :)
Zitat von: betateilchen am 06 März 2017, 16:10:33
ich hatte befürchtet, dass das jetzt kommt :-\
Ich stehe halt dazu ;)
Danke an euch :)
Um es mal Anfängerfreundlich zu gestalten ... Ich habe die Eleganz des attr TYPE=
gerade erkannt. In der Befehlszeile hat mir ein attr TYPE=SVG captionLeft
gerade jede Menge Tipparbeit erspart.
Ergebnis: Das entsprechende Attribut wurde an jede meiner SVG-definitionen angehängt.
Das ist schön, besonders wenn man wie ich einige Sensoren neu einrichtet.
Nun eine Frage dazu ... Wie filtere ich weiter, sodass ich zB. allen MAX Wandthermostaten ein passendes icon zuweisen kann?
attr TYPE=MAX ... icon max_wandthermostat
Ich habe die Doku zu den Filtern wohl noch nicht entdeckt ;)
Viele Grüße
Daniel
Zitat von: lan4k am 06 März 2017, 18:22:56
Ich habe die Doku zu den Filtern wohl noch nicht entdeckt ;)
Dann schau halt mal in die commandref unter "devspec" - das Stichwort hatte ich ja weiter oben schon genannt.