NEWS
HomematicIP Gerätenamen auslesen [gelöst]
-
Hallo,
ich bin leider in JS völlig unbedarft und versuche mir anhand bestehender Scripte das nötigste beizubringen.
Allerdings verzeifle ich gerade. Ich habe ein fenster_türen_zählen script
function countOpenWindowsDoors() { var openWindows = 0; var openDoors = 0; // Fenster var windows = getObject("enum.functions.windowStatus").common.members; for(let i = 0; i < windows.length; i++) { var Status = getState(windows[i]).val; if ( Status == "OPEN") { openWindows = openWindows + 1; } } // Türen var doors = getObject("enum.functions.doorStatus").common.members; for(let i = 0; i < doors.length; i++) { var Status = getState(doors[i]).val; if ( Status == "OPEN" ) { openDoors = openDoors + 1; } } var openWindowsText = "Kein Fenster geöffnet"; var openDoorText = "Keine Tür geöffnet"; if ( openWindows > 0 ) { openWindowsText = openWindows + " Fenster geöffnet"; } if ( openDoors > 0 ) { openDoorText = openDoors + " Türe(n) geöffnet"; } setState('0_userdata.0.StatusWindowOpenText', openWindowsText ); setState('0_userdata.0.StatusDoorOpenText', openDoorText ); setState('0_userdata.0.StatusWindowOpen', openWindows ); setState('0_userdata.0.StatusDoorOpen', openDoors ); } $('state(functions=window)').on(function(obj) { countOpenWindowsDoors(); }); $('state(functions=door)').on(function(obj) { countOpenWindowsDoors(); }); countOpenWindowsDoors();
Da funktioniert auch alles, allerdings würde ich mir gern den Namen des Aktors mit ausgeben lassen (welches Fenster genau geöffnet ist).
Ich verstehe aber nicht, wie ich mit JS darauf zugreifen kann:Eigentlich sollte der Name doch "irgendwo" in getObject vorhanden sein.
Danke schon einmal für die Hilfe
Jens
-
-
@homoran in common.name bekomme ich windows.state zurück, also den Namen von Aktor/channels/1/windowState
-
@schnitter sagte in HomematicIP Gerätenamen auslesen:
@homoran in common.name bekomme ich windows.state zurück, also den Namen von Aktor/channels/1/windowState
das ist ja für den DP auch korrekt.
Du musst dann das device auslesen -
@schnitter sagte: wie ich mit JS darauf zugreifen kann:
function deviceName(id) { // Datenpunkt-ID id = id.substring(0, id.lastIndexOf('.')); id = id.substring(0, id.lastIndexOf('.')); id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name; }
-
@paul53 ja!!! jetzt hab ichs! super, vielen lieben Dank!