NEWS
Object Name statt Object ID?
-
Hallo,
gibt es eigentlich eine Möglichkeit, Objekte für vis oder in Skripten mit ihrem Namen, statt mit ihrer ID aufzurufen?
Ich habe z.B. sehr viele HomeMatic-Komponenten im Einsatz. Geht mal eine kaputt, kann man sie in der Regel mit der Tauschen-Funktion der CCU gegen eine neue austauschen. Dann wird aber die neue ID der Komponente unter dem Namen der alten Komponente abgelegt. In der CCU kein großes Problem. Im ioBroker aber schon, weil dieser immer noch die alte ID erwartet. So auch in Javaskripten, etc.
Ich fände es daher viel angenehmer, wenn man nicht die ID sondern den Namen zur Referenzierung verwenden könnte. Schließlich ist der ja auch im ioBroker verfügbar.
Bis dann,
Thorsten
-
@dtp sagte in Object Name statt Object ID?:
Geht mal eine kaputt, kann man sie in der Regel mit der Tauschen-Funktion der CCU gegen eine neue austauschen. Dann wird aber die neue ID der Komponente unter dem Namen der alten Komponente abgelegt.
so eine Funktion kannst Du mit dem Linked-Devices Adapter oder aber mit der neuen alias.0 Funktion des neuen js-controller der v2.x.x abbilden. Anschließend referenzierst Du auf das verlinkte Objekt.
-
Hallo,
gibt es eigentlich eine Möglichkeit, Objekte für vis oder in Skripten mit ihrem Namen, statt mit ihrer ID aufzurufen?
Ich habe z.B. sehr viele HomeMatic-Komponenten im Einsatz. Geht mal eine kaputt, kann man sie in der Regel mit der Tauschen-Funktion der CCU gegen eine neue austauschen. Dann wird aber die neue ID der Komponente unter dem Namen der alten Komponente abgelegt. In der CCU kein großes Problem. Im ioBroker aber schon, weil dieser immer noch die alte ID erwartet. So auch in Javaskripten, etc.
Ich fände es daher viel angenehmer, wenn man nicht die ID sondern den Namen zur Referenzierung verwenden könnte. Schließlich ist der ja auch im ioBroker verfügbar.
Bis dann,
Thorsten
-
@dtp sagte in:
in Skripten mit ihrem Namen, statt mit ihrer ID aufzurufen?
Ja, es gibt die Funktion getIdByName(name), die ich in fast allen Skripten verwende. Die vergebenen Namen müssen allerdings eindeutig sein !
-
@dtp sagte in:
in Skripten mit ihrem Namen, statt mit ihrer ID aufzurufen?
Ja, es gibt die Funktion getIdByName(name), die ich in fast allen Skripten verwende. Die vergebenen Namen müssen allerdings eindeutig sein !
@paul53 sagte in Object Name statt Object ID?:
Ja, es gibt die Funktion getIdByName(name), die ich in fast allen Skripten verwende. Die vergebenen Namen müssen allerdings eindeutig sein !
Was mir gerade einfällt ... damit hast Du die Herausforderungen der Datenpunkte allerdings "nur" in deinen Scripten gelöst, nicht aber in VIS, iQontrol oder ggf. Szenen, text2command usw. - kann das sein??
... so dass es womöglich für die meisten Anwender doch eher zielführend wäre dies über die beiden oben angesprochenen Wege umzusetzen?
oder liege ich hier falsch?
-
@paul53 sagte in Object Name statt Object ID?:
Ja, es gibt die Funktion getIdByName(name), die ich in fast allen Skripten verwende. Die vergebenen Namen müssen allerdings eindeutig sein !
Was mir gerade einfällt ... damit hast Du die Herausforderungen der Datenpunkte allerdings "nur" in deinen Scripten gelöst, nicht aber in VIS, iQontrol oder ggf. Szenen, text2command usw. - kann das sein??
... so dass es womöglich für die meisten Anwender doch eher zielführend wäre dies über die beiden oben angesprochenen Wege umzusetzen?
oder liege ich hier falsch?
@BBTown sagte:
nicht aber in VIS, iQontrol oder ggf. Szenen, text2command usw.
In Vis stelle ich nur eigene Datenpunkte dar, den Rest verwende ich nicht.
@BBTown sagte in Object Name statt Object ID?:
... so dass es womöglich für die meisten Anwender doch eher zielführend wäre dies über die beiden oben angesprochenen Wege umzusetzen?
Ja, natürlich. Diese Optionen gab es vor 3,5 Jahren, als ich meine Skripte erstellt habe, noch nicht.
@dtp hat nach Verwendung von Namen anstelle von IDs gefragt. -
@dtp sagte in:
in Skripten mit ihrem Namen, statt mit ihrer ID aufzurufen?
Ja, es gibt die Funktion getIdByName(name), die ich in fast allen Skripten verwende. Die vergebenen Namen müssen allerdings eindeutig sein !
@paul53 sagte in Object Name statt Object ID?:
Ja, es gibt die Funktion getIdByName(name)
Oh, super. Danke. Dann werde ich meine Skripte mal entsprechend ändern.
@paul53 sagte in Object Name statt Object ID?:
In Vis stelle ich nur eigene Datenpunkte dar
Hm. Das ist dann aber mit ziemlichem Aufwand verbunden, da ich eine ganze Reihe meiner HM-Komponenten direkt in den entsprechenden vis Widgets anspreche.
Gäbe es evtl. eine Möglichkeit, so einen Aufruf auch für den Objektnamen durchzuführen?
{val:hm-rpc.0.OEQ1302201.1.LEVEL; val==0? "yellowgreen": val<=90? "royalblue": val<=100? "orange": "yellowgreen"} -
@paul53 sagte in Object Name statt Object ID?:
Ja, es gibt die Funktion getIdByName(name)
Oh, super. Danke. Dann werde ich meine Skripte mal entsprechend ändern.
@paul53 sagte in Object Name statt Object ID?:
In Vis stelle ich nur eigene Datenpunkte dar
Hm. Das ist dann aber mit ziemlichem Aufwand verbunden, da ich eine ganze Reihe meiner HM-Komponenten direkt in den entsprechenden vis Widgets anspreche.
Gäbe es evtl. eine Möglichkeit, so einen Aufruf auch für den Objektnamen durchzuführen?
{val:hm-rpc.0.OEQ1302201.1.LEVEL; val==0? "yellowgreen": val<=90? "royalblue": val<=100? "orange": "yellowgreen"}@dtp sagte:
Das ist dann aber mit ziemlichem Aufwand verbunden, da ich eine ganze Reihe meiner HM-Komponenten direkt in den entsprechenden vis Widgets anspreche.
Beim heutigen Stand der Entwicklung empfehle ich, Alias-Datenpunkte anzulegen und zu verwenden (js-controller 2.x); alternativ den Adapter ioBroker.linkeddevices.
Wenn man nicht von Anfang an darauf achtet, dass sich IDs ändern können, hat man erst einmal den Aufwand, neue IDs (Alias) zuzuweisen.
-
@dtp sagte:
Das ist dann aber mit ziemlichem Aufwand verbunden, da ich eine ganze Reihe meiner HM-Komponenten direkt in den entsprechenden vis Widgets anspreche.
Beim heutigen Stand der Entwicklung empfehle ich, Alias-Datenpunkte anzulegen und zu verwenden (js-controller 2.x); alternativ den Adapter ioBroker.linkeddevices.
Wenn man nicht von Anfang an darauf achtet, dass sich IDs ändern können, hat man erst einmal den Aufwand, neue IDs (Alias) zuzuweisen.
@paul53 Es ist aber nicht möglich mit dem Alias Manager Aliases (automatisiert) anzulegen (hier wird ja eine eindeutige Beziehung erzeugt) und diese dann automatisiert auch in den Blocklys von dem ursprünglichen Attribut auf das neu angelegte Alias Attribut umzuschreiben?
Wollte 10 Rauchmelder tauschen

Was mich ursprünglich störte war, dass ich in den Blocklys Dutzend Mal "Switch" stehen habe und nie weiß um welches Device es sich handelt. Ein "Name".Switch würde mir schon langen.
Habe versucht das Object Json runterzuladen und Suchen/Ersetzen Logiken zuwenden. Aber das war mir zu heiß.
sorry bin hier bei Visualisierung glaube ich falsch, merk ich grad.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden