(gelöst) Vorgaben

Begonnen von igami, 27 Oktober 2014, 09:11:45

Vorheriges Thema - Nächstes Thema

igami

Hi Zusammen,

aktuell bin ich dabei für jeden Typ den ich in FHEM habe einen Vorgabe Dummy anzulegen, in dem ich dann Attribute die für den Typ gelten festelegen will und diese dann auf alle entsprechenden Devices geschrieben werden.
Beispiel:

define default_EIB_00 dummy
attr default_EIB_00 devStateIcon (on|80):general_an@green (off|5):general_aus@red
attr default_EIB_00 eventMap on:80 off:5
attr default_EIB_00 group 00.0 Zentralfunktionen
attr default_EIB_00 icon message_socket
attr default_EIB_00 room Vorgaben
attr default_EIB_00 webCmd on:off


sub makefine{
my $devStateIcon         = '';
my $eventMap             = '';
my $group                = '';
my $icon                 = '';
my $model                = '';
my $webCmd               = '';

#Zentralfunktionen
   $devStateIcon         = AttrVal('default_EIB_00','devStateIcon','');
   $eventMap             = AttrVal('default_EIB_00','eventMap','');
   $group                = AttrVal('default_EIB_00','group','');
   $icon                 = AttrVal('default_EIB_00','icon','');
   $webCmd               = AttrVal('default_EIB_00','webCmd','');

fhem("attr EIB_00.. devStateIcon $devStateIcon");
fhem("attr EIB_00.. eventMap $eventMap");
fhem("attr EIB_00.. group $group");
fhem("attr EIB_00.. icon $icon");
fhem("attr EIB_00.. webCmd $webCmd");
}

Aufruf erfolt einfach über {makefine} bzw, über einen weblink.

Nun wird das aber sehr viel Code in den myUtils, ich habe aber schon einen Ansatz wie das ganze zu reduzieren ist, dabei bräuchte ich aber Hilfe von einem der Perl ein bisschen besser kann.

Zum Einen das comment Attribut benutzen um die betreffenden Devices festzulegen und die zu lesenden Attribute. Hier also

attr default_EIB_00 comment EIB_00.. devStateIcon eventMap group icon webCmd


Im Perl dann noch eine Schleife bauen die mir alle Devices im Raum Vorgaben nacheinander abarbeitet, den ersten Eintrag aus comment als Wildcard setzt und danach alle anderen Einträge im comment als Attribute:
Edit: so funktionierts
http://www.fhemwiki.de/wiki/Makefine

Ich hoffe es wird klar, wie es gedacht ist, auch wenn die Syntax mit Sicherheit nicht stimmt. Vielleicht findet sich ja noch der ein oder andere, der auch so eine Funktion gebrauchen kann. Gedacht kann die Umsetzung ja nicht so schwer sein.
Für uns in der Firma ist es erforderlich, da wir mittlerweile über 700 definierte Devices haben.

Grüße
Igami

update 2014-23-11:link zum Wiki Artikel
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED