I’d like to share a project I’ve developed that provides a complete and robust UPnP control point library for writing Edge drivers. The audience for this package is developers that want to integrate LAN devices supporting the UPnP specification (partial or complete), as well as anyone else that is looking to learn how to use the new Edge platform to integrate LAN-based devices in general.
The package includes an example driver that you can use to explore and interact with existing UPnP devices on your LAN. SmartThings devices are created during discovery, and select UPnP attributes can be viewed on the device details screen in the mobile app. You never know what you may find on your LAN; I was personally able to find 14 devices that support UPnP on my home network (e.g. routers/extenders, IP cameras, streaming devices, smart TVs, Philips Hue hub, etc).
The package also includes a template file for writing your own driver using the UPnP library.
The library supports all UPnP 2.0-specified functions, including SSDP (discovery), device alive monitoring, event subscription, and control commands, as well as access to all UPnP device and service description data. The example driver demonstrates all of these capabilities.
Thorough documentation is available at this link. This is a good place to start if you want to determine if this package is for you.
The code is being distributed via github here: https://github.com/toddaustin07/edge_upnp
Caveat: Since Edge is still in beta, expect this package to evolve as fixes & adjustments are made in the underlying platform. However I intend to keep the library API constant to minimize any changes needed to drivers.
To anyone interested in trying this package out, I’m looking forward to your comments and feedback.