Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - scheelings/CSharpTradFriLibrary: This is a .NET Framework (4.5) library to communicate with the IKEA Trådfri ZigBee-based Gateway. · GitHub
Skip to content

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 StatusGitHub last commitNuGet downloadsNuGet 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 applicationNameTradfriAuthappSecret=controller.GenerateAppSecret("GatewaySecret","ApplicationName");// You should now save programatically appSecret.PSK value (appsettings) and reuse it// when connecting to your gateway every other timecontroller.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"); */GatewayControllergatewayController=controller.GatewayController;vardevices=awaitgatewayController.GetDeviceObjects();DeviceControllerdeviceController=controller.DeviceController;awaitdeviceController.SetLight(devices[0],true);awaitdeviceController.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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages