Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.

, '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 - Tommatheussen/Home-Assistant-Configuration: :house_with_garden: My home assistant configuration! · GitHub
Skip to content

Repository files navigation

🏡 Home Assistant Configuration

About

My repo containing all configuration for my Home Assistant.

House Setup

We recently (2019) build a new house from scratch, this allowed me to make a strong backbone for the smartness in my house. As I had some previous experience with the KNX ecosystem, I've chosen this protocol for the backbone of the house. The basic idea boils down to the fact that my KNX installation is setup in a way that allows it to work with most of the house by itself, without Home Assistant even needing to run. Visualisation in KNX gets very expensive very quickly, and connection to various other systems rack up prices very quickly, as they usually all need some kind of gateway to connect to the KNX bus.

Home Assistant is used as a secondary layer, adding all smartness into the house. If it were to go down for some reason, my house would still function with lights, sockets and ventilation as they are all tied into KNX.

KNX Specific

Problems and solutions

With this setup, I did encounter some minor 'problems' though. Mainly due to some limitations in the KNX modules I use, below is a list of issues I came accross, and how I solved them:

Turning the lights on

In the beginning, there was no problem as Home Assistant was not set up yet, however after a while, I wanted to get circadian lighting up and running. The modules (basically LED drivers which can be controlled via KNX) I use for lighting inside KNX have a couple of options:

  • A fixed value (eg 20%)
  • Memory, sets the same value from before the light got turned off
  • Max value (you can set the maximum value for a light)
  • Different values for Day/Night cycle

While in most systems these options would perfectly suffice, I had a problem on my hand, seeing as none of the options are actually perfect for my solution. If I were to use Memory, then lights that would have been turned off during the day, would come on at full brightness during the night, and then quickly dimming down, resulting in a bright flash before going to the correct circadian settings. The same happen with Max value, as all my lights have a maximum value of 100% right now. In some places I use the Day/night cycle, but these are also just static values.

I have settled on the Fixed value right now, the modules itself have a minimum value of 6%, I guess the drivers can't properly function below that. And it turns out, this is pretty much perfect. Now all my lights go to a value of 6%, that doesn't sounds like a lot but for LED lights it certainly is enough. As long as Home Assistant is running, the circadian lighting kicks in instantly and brightens up the lights where needed. If Home Assistant is down, I at least still have light (albeit not a lot) everywhere.