NEWS
Einstieg in Adapterentwicklung
-
Hallo,
ich beschäftige mich interessehalber gerade mit der Entwicklung von Adaptern. Dazu wollte ich ein Skript nutzen, mittels dem ich derzeit meine Smartphones anpinge. Die ersten Schritte habe ich auch schon mal hinbekommen und verfüge nun grundsätzlich über einen Adapter, den ich installieren und instanziieren kann. Danach wird es leider schwierig. :roll:
In der io-package.js habe ich unter native zwei Geräte defniert:
"devices": [ {"devId":"note4","name":"Galaxy Note 4","ip":"192.168.2.22","status":false}, {"devId":"xperia","name":"Sony Xperia","ip":"192.168.2.24","status":false} ],
In meiner main.js spreche ich sie dann an über:
var devices = adapter.config.devices || []; devices.forEach(function(device) { adapter.log.info('device: ' + device['devId']); adapter.setObject('devices.' + device['devId'], { type: 'state', common: { name: 'present', type: 'boolean', role: 'value', value: false }, native: {} }); });
Danach tauchen sie auch im Reiter Objekte auf.
Für mein Verständnis müsste ich sie allerdings nicht als State, sondern besser als Device oder Channel anlegen. Und genau das bekomme ich derzeit nicht hin. Kann mich vielleicht jemand in die richtige Richtung schubsen?
Danke und Gruß
-
Eigentlich ganz einfach:
var devices = adapter.config.devices || []; devices.forEach(function(device) { adapter.log.info('device: ' + device['devId']); adapter.setObject('devices.' + device['devId'], { type: 'device', common: { name: 'present', type: 'boolean', role: 'value', value: false }, native: {} }); });
Der Type definiert ob es ein "device2, ein "state" oder "channel" ist.
-
Danke sehr. Das hatte ich schon versucht, aber leider keine Einträge unter "Objekte" erhalten. Nach deinem Hinweis hab ich das nun erneut probiert. Dabei ist mir aufgefallen, dass es wohl ein anderes Problem gibt.
Tatsächlich wird kurz nach dem Neustart der Instanz ein Pfad "devices" unter "Objekte" mit den gewünschten Channels angelegt. Der verschwindet allerdings nach einigen Sekunden wieder komplett!? Woran kann das denn liegen?
-
Der verschwindet allerdings nach einigen Sekunden wieder komplett!? `
Das liegt daran das du kein Value/Native schreibst oder ein Unterobjekt mit Value. -
Ok, das erklärt das. Allerdings mir nicht so ganz … :lol:
Wie genau mach ich das denn? Kannst du mir das evtl. anhand des obigen Codes zeigen? Muss ich den value in den Knoten native schreiben? Irgendwie steh ich da auf dem Schlauch. Egal, wie ich es versuche, kommt nach dem Upload kein Eintrag unter Objekte zustande. :oops: