The DeviceManager is one of the core new features of G5. It provides a common schema to represent devices and their controls. The goal is too simplify working with devices in Girder.
Features/Notes... (in no particular order)
1. A hardware or software plugin/component interfaces to the DeviceManager via its Provider. Ie. The Insteon plugin uses a provider to add/remove and update devices in the DM.
2. Each device MUST have a unique PATH. The path is created by a plugins provider. Typically, a path will identify the machine the device originates from ,the plugin and then an ID. Eg, for X10, we would have a path of MyPC\X10\A1 or for Insteon MyPC\Insteon\XX.XX.XX. The path is critical as make scripts and actions immune to changes in device naming
3. Device Loc/Name. Each device is given a location and name (user controlled). The location and name are stored in the Local Device Manager. Therefore, we have a centralized place to manager devices. As well, this means many plugin will no longer have to provider their own DUI pages for managing device naming. As well, devices are giving a Display Name that is users of the Device Manager get when building an interface of devices.
4. Each device can 1 or more controls. Controls follow a predefined schema that makes it easy for NetRemote or the G5 Webserver to build pages. It also makes it easy to script actions. For instance, regardless of the underlying hardware or protocols, you can always turn a light device off using the same lua code.
There is much more, so fire away with quesitons.