##Disclaimer
Device Silhouette is a reference pattern for using Azure IoT Hub in conjunction with Service Fabric. For typical needs of storing device state information (metadata, configuration, conditions, etc.) we recommend using the device twin, a first-class capability of Azure IoT Hub.
##About
Device Silhouette is an open source framework developed by TED GE EMEA team in Microsoft.
The Device Silhouette is a solution for managing IoT device state in the cloud. The "Silhouette" is a virtual device that replicates the physical device’s latest state. Applications can interact with the Silhouette even when the device is offline. A Silhouette persists the last reported state and desired future state. You can retrieve the last reported state of a device or set a desired future state through a Rest API.
The Silhouette holds information about all state messages sent and received to/from the device, including delivery status updates. With the Silhouette you can send desired state to the device, set a TTL for the request and check if the message was delivered successfully or not. Every message sent increases the version of the Silhouette state. Additionally you can retrieve the short term history of all messages, this functionality enables building a rule engine, state machine and solve conflicts.
- [Introduction - What is Device Silhouette?] (Documentation/overview.md#introduction---what-is-device-silhouette)
- Features
- Benefits
- Scenarios
- Silhouette Message
- Messaging endpoints and lifecycle
- Messages flow
- Messages purging and persistency
- REST API
- Example scenarios: Home lightning, Oven maintenance
If you encounter any bugs with the tool please file an issue in the Issues section of our GitHub repo.
We welcome contributions. To contribute please follow the instrctions on How to contribute?
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Device Silhouette is licensed under the MIT License.