First, I encourage you to not take the automatic creation approach. The standard device creation flow in Indigo is for the user to create each device themselves. There are a few cases where we automatically create devices, but that's generally sub-devices (devices that have a very tight binding between them, like multifunction sensors). There are a few plugins that auto-create devices when enabled (or when a hub-like instance is added) and it always seems to cause users some confusion. Another problem is that it often becomes necessary for your user to recreate or resync one of your devices and if there is no option for editing/creating a single device that becomes more tricky. Remember that links between triggers, conditions, actions, and control pages are via the device ID so just creating a new version of a device will break all of those ties.
Second, any device that your plugin creates will have deviceStartComm() called for it. A good design pattern is to keep a list of those "active" devices in your plugin so that you don't have to ask the server every time you want one. The will, of course, get stale over time, so if you use state information you'll want to refresh the instance.
Finally, if you need to iterate over your own devices check out the
Iterating Object Lists section of the docs.