NEWS
sprechender Device-Name statt ID
-
Kann man mit JavaScript die Device-Namen auslesen und Datenpunkte nur bestimmter Devices - über deren sprechenden Namen - ansprechen?
Ich würde gern im Log die sprechenden Namen (rot eingerahmt) statt der IDs (blau eingerahmt) ausgeben und auch im Script verwenden können.
Derzeit mache ich es von hinten durch die Brust über geschachtelten Schleifen mittels
$('deconz.0.lights.*.ct').each(function (id) { let idstring = id.replace("ct",""); if (getState(idstring+"xy").val) {
indem ich erst alle Devices suche, die einen bestimmten Datenpunkt enthalten (z.b. alle, die eine Farbtemperatureinstellung zulassen = alle Hue-Lampen), um dann über einen zweiten Datenpunkt die wieder rauszuwerfen die ich nicht brauche (z.B. alle, die eine Farbeinstellung zulassen werfe ich wieder raus, um schlussendlich an die Ambilight-Lampen ohne die Color-Lampen zu kommen).
Wo wir gerade dabei sind: wie kann man eigentlich die Schriftgröße in der ioBroker Objects Ansicht ändern? Bei mir werden die Buchstaben der Namen (komischerweise nur bei diesen) immer unten abgeschnitten - siehe Screenshot oben. Es scheint so, dass (nur) die Namen einen größeren Abstand zu ihrer jeweiligen Zeilengrenze oben einhalten müssen und deshalb nach unten versetzt sind.
-
-
Dankeschön @paul53 - klappt damit wunderbar:
$('deconz.0.lights.*.bri').each(function (id) { id = id.substring(0, id.lastIndexOf('.')); console.log("Name: " + getObject(id).common.name); id = id.substring(0, id.lastIndexOf('.')); console.log("Gruppe: " + getObject(id).common.name);
Noch eleganter wäre natürlich, wenn ich sogar gleich auf das Lampenmodell zugreifen könnte - gibt es da auch etwas?:
-
@radioman sagte in sprechender Device-Name statt ID:
wenn ich sogar gleich auf das Lampenmodell zugreifen könnte - gibt es da auch etwas?:
wie sieht denn dazu der State unter Objekten aus?
-
-
@Jey-Cee said in sprechender Device-Name statt ID:
native.modelid
Super - Ihr seid klasse (& schnell). Besten Dank.
Es ist sicherlich etwas naiv von mir, über native.manufacturer gleich noch an den Hersteller rankommen zu wollen, oder?
$('deconz.0.lights.*.bri').each(function (id) { id = id.substring(0, id.lastIndexOf('.')); console.log("Name: " + getObject(id).common.name); console.log("Name2: " + getObject(id).native.modelid); console.log("Name4: " + getObject(id).native.manufacturer); console.log("Name3: " + getObject(id).native); id = id.substring(0, id.lastIndexOf('.')); console.log("Gruppe: " + getObject(id).common.name);
Aber der jetzige Log davon, bringt mich auch schon viel weiter:
16:03:10.464 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name: OZ_Decke2
16:03:10.464 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name2: LCA001
16:03:10.465 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name4: undefined
16:03:10.466 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name3: [object Object]
16:03:10.467 info javascript.0 (1573) script.js.common.Licht_Dimmer: Gruppe: Lights -
@radioman sagte in sprechender Device-Name statt ID:
Es ist sicherlich etwas naiv von mir, über native.manufacturer gleich noch an den Hersteller rankommen zu wollen, oder?
native.manufacturername
-
Vielen Dank, @Jey-Cee - Dein Insiderwissen beim deconz Adapter ist Top!
Aber wenn ich wieder einmal wie die Ochs vorm Tor stehe: woher bekomme ich solche Infos, was ein Adapter alles bereitstellt? Ich habe ja nur geraten, dass wenn "Model ID" übersetzt "modelid" heißt dann "Manufacturer" "manufacturer" heißen könnte. Auf "manufacturername" bin ich leider nicht gekommen. In für mich verständlichen Dokus hatte ich nichts gefunden und auch wenn ich jetzt nach native* suche finde ich nichts baruchbares.
Das mit *.common.name hatte ich zwar vorher über die Suchfunktion des Forums auch gefunden und auch in der Doku mich belesen, aber scheinbar einen Fehler drin gehabt, denn ich bekam darüber nur die names der Datenpunkte selber raus.
-
@radioman schau mal hier: https://www.youtube.com/watch?v=fyDuxaJelRM
EDIT: Hier habe ich auch noch was dazu geschrieben: https://forum.iobroker.net/topic/36837/das-volle-potential-der-objekte-nutzen
-
@Jey-Cee said in sprechender Device-Name statt ID:
https://forum.iobroker.net/topic/36837/das-volle-potential-der-objekte-nutzen
Top, hatte ich noch nicht auf dem Schirm - vielen Dank!