ManagedDevice (and all the Managed* Milo classes) might be the wrong approach for having dynamically addressable Nodes, but you can probably still get it to work by overriding the read
and write
methods at the very least. Implementing just onDataItemsCreated
isn’t enough - you’ll never get far enough to have that called for a dynamically addressed Node if read
isn’t implemented to return attributes for those Nodes.
If your device implementation will be entirely dynamic and not a hybrid then the “Managed” abstractions are probably wrong for you all together. They basically just take care of implementing browse, read, and write based on the assumption all Nodes will be registered with the NodeManager. If that’s not going to be true at all you may as well just implement Device
directly.