GetObject("$src$") Objectname

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
WolfG
Beiträge: 80
Registriert: 20.10.2012, 15:53

GetObject("$src$") Objectname

Beitrag von WolfG » 05.01.2013, 16:41

Hallo Leute,

jetzt versuch ich gerade, wie man mit HomematicScript vom ereignisauslösenden Datenpunkt zum Namen des Objectes kommt.
Geräteauswahl: TFK-Test:1 bei offen auf Auslösing
Script (siehe unten) durchführen
Script :

Code: Alles auswählen

string out; string err;
var obj = dom.GetObject("$src$");  
var name = obj.Name();  
var id = obj.ID();
var val = "NAME=" #name #" ID=" #id; 
system.Exec('sh -c "(echo ' #val #' 1>>/var/log/test.log 2>&1)&" ');
Meine Frage ist nun, wie komme ich vom Namen des auslösenden Datenpunktes zum Objektnamen, in meinem Falle ist das 'TFK-Test'.
/var/log/test.log zeigt:
NAME=BidCos-RF.JEQ0250378:1.STATE ID=8755
Wie mach ich das mit HomematicScript/rega_script?

Im Scriptmanual hab ich keine Methode gefunden, wie ich von der Addresse/Datenpunkt zum eigentliuchem Object komme.
Alles was mir einfällt ist alle Objekte zu lesen und dann das mit der entsprechenden Adresse heranzuziehen. Das scheint mir aber 'sehr zu Fuß' zu sein.

Hab da jetzt überhaupt keine vernünftige Idee.

Wie macht Ihr das?

Danke für Tipps
Wolf

dwm
Beiträge: 207
Registriert: 10.08.2010, 21:56

Re: GetObject("$src$") Objectname

Beitrag von dwm » 05.01.2013, 18:36

Etwa so:
Der Code bestimmt den Namen und Raum des Objekts.

Code: Alles auswählen

var source = dom.GetObject("$src$");
var rep = dom.GetObject("AlarmReport");
var v1 = "";

string meldung = "";

if (source)
{
    var test1 =  dom.GetObject( source.Channel() );
    var test2 =  dom.GetObject( test1.Device() );
    var test3 = dom.GetObject (test1.ChnRoom() );

    meldung = system.Date("%d.%m.%Y %H:%M:%S") + " - Alarmzone 2 ausgelöst in Raum \"" + test3.Name() + "\" von Sensor \"" + test2.Name() + "\"";
}


194 Kanäle in 101 Geräten:
3x HM-LC-Sw1-Pl, 7x HM-LC-Sw1-PB-FM, 2x HM-WDS10-TH-O, 22x HM-Sec-SC, 4x HM-Sec-MDIR, 4x HM-Sen-MDIR-O, 3x HM-LC-Dim1T-FM, 1x HM-PB-4Dis-WM, 1x HM-RC-19, 1x HM-Sec-TiS, 2x HM-OU-CF-Pl, 1x HM-RC-4-B, 9x HM-CC-VD, 7x HM-CC-TC, 3x HM-WDS30-T-O, 1x HM-CCU-1, 1x HM-LC-Sw2-PB-FM, 1x HM-LC-Sw1PBU-FM, 6x HM-PB-2-WM, 1x HM-LC-Dim2T-SM, 5x HM-PB-4-WM, 1x HM-LC-Sw2-FM, 1x HM-OU-CFM-Pl, 1x HM-LC-Bl1PBU-FM, 4x HM-LC-Bl1-PB-FM, 4x HM-LC-Sw4-SM, 3x HM-Sec-WDS

WolfG
Beiträge: 80
Registriert: 20.10.2012, 15:53

Re: GetObject("$src$") Objectname

Beitrag von WolfG » 07.01.2013, 10:42

Vielen Dank, hat mir sehr geholfen.

Wolf

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“