NEWS
Wie sprechender Alias-Name für kryptische ObjektID vergeben?
-
Hallo Entwicklergemeinde,
ich bin ein Neuling bei der Adapter-Entwicklung. Bisher funktioniert mein Adapter ganz OK aber ich habe ein "Problem" mit den ObjektIDs.
Ich würde im Objektbaum anstelle der ObjektID lieber einen sprechenden Namen anzeigen. Das Objekt an sich möchte ich im ProgrammCode aber weiterhin über die ID ansprechen.
Hier noch der Code-Snippsel mit dem ich das Objekt anlege:
// create Channel DeviceID adapter.setObjectNotExists(locationID + '.' + deviceID, { type: 'Device', role: '', common: { name: 'Device-Type: ' + deviceType }, native: {} });
Geht das irgendwie?
Viele Grüße
Dominik -
@dg-services Das was du eingekringelt hast, ist Teil deiner ID, die du beim Anlegen des Objekts selbst vergibst. Wenn ich den Screenshot richtig interpretiere, ist das der Teil, der in der Variable
locationID
bzw.deviceID
(Ebene darunter) steht.Eine andere ID anzeigen geht nicht. Wenn du die ID intern benötigst, könnte es Sinn machen, sie im Abschnitt
native
abzuspeichern. -
@dg-services sagte:
anstelle der ObjektID lieber einen sprechenden Namen anzeigen. Das Objekt an sich möchte ich im ProgrammCode aber weiterhin über die ID ansprechen.
Die ID gibt der Adapter-Entwickler vor. Wenn die kryptischen Codes zum Ansprechen der Geräte erforderlich sind, speichere sie unter native.
Ein Objekt-Typ channel sollte nicht Parent von einem device (Kleinschreibung beachten) sein. Nimm dafür besser folder.
-
@dg-services sagte in Wie sprechender Alias-Name für kryptische ObjektID vergeben?:
type: 'Device',
Übrigens:
type: 'Device'
ist ungültig, den musst du kleinschreiben. Spätestens ab JS-Controller 3.1 wird das einen Fehler werfen, wenn du das Objekt anlegen willst. ==> https://www.iobroker.net/#en/documentation/dev/objectsschema.md?objectsUnd was Paul gesagt hat.
-
Hallo zusammen,
das ging ja extra schnell.Erstaunlich wie viel Unfug man in so ein paar Zeilen Code unterbringen kann
.
Vielen Dank für die Hinweise und Tipps, ich werde das in den Code übernehmen.Extrem hilfreich ist auch der Link auf die Dokumentation. Hatte einige male nach sowas gesucht und dank @AlCalzone jetzt endlich gefunden.
Gruß
Dominik -
@dg-services Ich weiß nicht, wie du deinen Adapter erstellt hast. Aber wenn du den Creator verwendest, empfehle ich dir dringend, die Typprüfung zu aktivieren. Die würde solche Dinge wie falsch geschriebenen Object-type erkennen (und vieles mehr was man falsch machen kann).