An Universal Windows apps (UWP) Device Client Library for various common AllJoyn devices
Supported AllJoyn devices:
- Lighting Service Framework (smart lights, like LIFX or Philips Hue using My Hue DSB Bridge)
- AllPlay media players like Gramofon and Panasonic All
- Z-Wave switches using Microsoft's Z-Wave Device Service Bridge
The Sample app shows a simple dashboard of all devices. It also provides you with ViewModels for quick reuse in your own applications. Lastly it also shows how to create a custom device client plugin.
Install the Sample App From the store: https://www.microsoft.com/store/apps/9nblggh4wtcv
Install nuget package:
PM> Install-Package dotMorten.AllJoyn.AllJoynClientLib
//Initialize the device manager
var manager = new AllJoynClientLib.DeviceManager();
manager.DeviceJoined += Manager_DeviceJoined; //Listen for devices discovered
manager.Start();
// ...
private async void Manager_DeviceJoined(object sender, DeviceClient device)
{
if(device is LightClient)
{ //We found a light
var client = (LightClient)device;
await client.SetOnOffAsync(true); //turn on light
if(await GetIsColorSupportedAsync()) //check the capability of light
await client.SetColorAsync(Colors.Red); //Set the color of the light
}
else if (device is AllPlayClient)
{ //We found a media player
var client = (AllPlayClient)device;
await client.MediaPlayer.NextAsync(); //Play next track
var list = await client.MediaPlayer.GetPlaylistAsync(); //Get the current playlist
await client.Volume.SetVolumeAsync(50); //Set volume
client.MediaPlayer.PlayStateChanged += OnPlayStateChanged;
}
}
private void OnPlayStateChanged(object sender, AllPlay.PlayState e)
{
//Media play state changed (start/stop/buffering/transitioning etc)
string currentSong = e.CurrentMedia.Title;
}
See the test app for more examples