Skip to content

This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway.

License

Notifications You must be signed in to change notification settings

scheelings/CSharpTradFriLibrary

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C# Tradfri Library

This is a .NET Standard (2.0) library to communicate with the IKEA Trådfri (Tradfri) ZigBee-based Gateway. Using this library you can, by communicating with the gateway, control IKEA lights (including the RGB ones). Build Status GitHub last commit NuGet downloads NuGet downloads

This library is still in development. Current version: 1.0.0.x (x-build number, references only minor changes and fixes)

Latest Gateway version tested and working - 1.4.15.

  • Get information on the gateway
  • Observe lights, groups and other resources
  • Get notified when lights, groups and other resources change
  • List all devices connected to gateway
  • List all lights and get attributes of lights (name, state, color temp, dimmer level etc)
  • Change attribute values of lights (currently only turn them on/off)
  • Restart and reset gateway

1. Usage

Download the nuget package v1.0.0.x+. You will need the following values:

  • GatewayName is your nickname to your gateway, currently this doesn't have an effect. It is here if you have access to multiple gateways so you can easily differentiate them.
  • GatewayIP is the IP-address to your gateway.
  • GatewaySecret is written on the back of your IKEA Tradfri Gateway. By the book, it should be used only first time to acquire new secret key specific for your application and then you should use appName and appSecret to connect

2. Example

    // recommended
    // This line should only be called ONCE!!! per applicationName -> you define applicationName as you want
    // Gateway generates one appSecret key per applicationName
    TradfriAuth appSecret = controller.GenerateAppSecret("GatewaySecret", "ApplicationName");

    // You should now save programatically appSecret.PSK value (appsettings) and reuse it
    // when connecting to your gateway every other time
    controller.ConnectAppKey(appSecret.PSK, "ApplicationName");

    // you can also use it like this if you don't mind saving and reusing the original gateway secret
    /*
    var controller = new TradfriController("GatewayName", "GatewayIP");
    controller.Connect("GatewaySecret");
    */
    
    GatewayController gatewayController = controller.GatewayController;
    var devices = await gatewayController.GetDeviceObjects();

    DeviceController deviceController = controller.DeviceController;
    await deviceController.SetLight(devices[0], true);
    await deviceController.SetColor(devices[0], TradfriColors.SaturatedRed);

    // same works for `controller.GroupController`

3. Acknowledgements

This is an implementation based on analysis I found here by ggravlingen and here by vidarlo.

4. Authors

5. Old library

Old library is still available as nuget (latest version: 0.3.0.22) and won't be updated anymore. You can still read it's ReadMe if you are using it but we recommend to migrate to newer library as soon as you can.

About

This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%