<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[huebschen.wtf]]></title><description><![CDATA[huebschen.wtf]]></description><link>https://huebschen.wtf</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 21:05:17 GMT</lastBuildDate><atom:link href="https://huebschen.wtf/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Smart battery with Zendure, Tibber and NodeRed]]></title><description><![CDATA[I have an 820W balcony solar system, feeding into a Zendure SolarFlow with two 960Wh batteries and then going through a Hoymiles HM-800 into my home.
My goal was to store the solar energy in the batteries, and if the energy prices are higher, dischar...]]></description><link>https://huebschen.wtf/smart-battery-with-zendure-tibber-and-nodered</link><guid isPermaLink="true">https://huebschen.wtf/smart-battery-with-zendure-tibber-and-nodered</guid><category><![CDATA[zendure]]></category><category><![CDATA[balkonkraftwerk]]></category><category><![CDATA[bkw]]></category><category><![CDATA[smart solar]]></category><category><![CDATA[solar]]></category><dc:creator><![CDATA[Patrick D. Rupp]]></dc:creator><pubDate>Tue, 26 Mar 2024 12:51:42 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711449408887/7737529f-b960-4c9d-b123-127c4914f057.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have an 820W balcony solar system, feeding into a <a target="_blank" href="https://zendure.de/products/solarflow">Zendure SolarFlow</a> with two 960Wh batteries and then going through a Hoymiles HM-800 into my home.</p>
<p>My goal was to store the solar energy in the batteries, and if the energy prices are higher, discharge into my home.</p>
<h3 id="heading-the-problem">The Problem</h3>
<p>There is no solution to control it locally, only with the app. Zendure only has a public MQTT in the internet that is not locally available, an one can only read data from it. It looked like I needed to wait until Zendure would give me a method to control the device locally.</p>
<p>Man, I already have the energy prices, the current energy usage of my home, even the current solar energy and the battery percentage of my Zendure system... there must be a way. And there is!</p>
<p>You remember my HM-800? Instead of the Hoymiles DTU, I am using a <a target="_blank" href="https://ahoydtu.de/">AhoyDTU</a>. With it, I can send a limit to the Inverter. I did already set a max output of 300W in the Zendure App (because thats a little bit under the base energy usage of my home) and now I set the Inverter limit to 0%. Now the Zendure system moves all solar energy into the battery. If the limit is reverted to 100%, it moves energy into the home. Nice!</p>
<p>Because the AhoyDTU has MQTT, and one can set a limit, my plan was almost complete. If there only was a way to automate this...</p>
<h3 id="heading-the-solution">The Solution</h3>
<p>My current setup uses a <a target="_blank" href="https://nodered.org/">NodeRed</a> instance in <a target="_blank" href="https://www.home-assistant.io/">HomeAssistant</a>, an <a target="_blank" href="https://ahoydtu.de/">AhoyDTU</a>, the <a target="_blank" href="https://developer.tibber.com/">Tibber API</a> and the public <a target="_blank" href="https://github.com/Zendure/developer-device-data-report/">Zendure MQTT</a>.</p>
<p>Every hour, I get the current prices from Tibber, store them, wait 5 seconds, read the stored prices, calculate the average price and store it in an HomeAssistant Sensor named "elecricity_price_average".</p>
<p>Then, every time the Tibber Integration changes the price, or the battery percentage changes (I get the value from the Zendure MQTT and store it in its own sensor), I get the values with a handy "ValueGetter"-Subflow, check if it should discharge into my home (which it should when the current price is higher than the average price of the day), store the limit in a sensor and send the new limit to the inverter with MQTT.</p>
<p>This is my final flow:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711447440676/42a50c1c-815b-473d-a97f-46e08660032a.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-code">Code</h3>
<p>Average price calculation:</p>
<pre><code class="lang-javascript"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">calculateAverage</span>(<span class="hljs-params">values</span>) </span>{
    <span class="hljs-comment">// Check if the values array is not empty</span>
    <span class="hljs-keyword">if</span> (values.length === <span class="hljs-number">0</span>) {
        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
    }

    <span class="hljs-comment">// Calculate the sum of all values</span>
    <span class="hljs-keyword">var</span> sum = values.reduce(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">a, b</span>) </span>{
        <span class="hljs-keyword">return</span> a + b;
    });

    <span class="hljs-comment">// Calculate the average</span>
    <span class="hljs-keyword">var</span> average = sum / values.length;

    <span class="hljs-keyword">return</span> average;
}

<span class="hljs-keyword">let</span> prices = [];
<span class="hljs-comment">// Push all prices into an array</span>
msg.payload.forEach(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">price</span>) </span>{
    prices.push(price.total);
});

<span class="hljs-comment">// the 0.00 is for an offset that can be added to the average</span>
<span class="hljs-keyword">let</span> result = <span class="hljs-built_in">Math</span>.round((calculateAverage(prices) + <span class="hljs-number">0.00</span>) * <span class="hljs-number">1000</span>) / <span class="hljs-number">1000</span>

<span class="hljs-keyword">return</span> msg = {
    <span class="hljs-string">"payload"</span>: result
};
</code></pre>
<p>Discharge condition:</p>
<pre><code class="lang-javascript"><span class="hljs-comment">// Prepare values</span>
<span class="hljs-keyword">let</span> battery = msg.payload.battery;
<span class="hljs-keyword">let</span> price = msg.payload.price;
<span class="hljs-keyword">let</span> average = msg.payload.averagePrice;
<span class="hljs-keyword">let</span> solar = msg.payload.solarEnergy;

<span class="hljs-comment">// Charge battery</span>
msg.payload = <span class="hljs-string">"0"</span>

<span class="hljs-comment">// Price high -&gt; discharge battery</span>
<span class="hljs-keyword">if</span> (price &gt; average) {
    msg.payload = <span class="hljs-string">"100"</span>
}

<span class="hljs-keyword">if</span> (
    (battery &lt;= <span class="hljs-number">20</span> &amp;&amp; solar &gt; <span class="hljs-number">0</span>) ||
    (battery &lt;= <span class="hljs-number">12</span> &amp;&amp; solar == <span class="hljs-number">0</span>)
) {
    <span class="hljs-comment">// Charge battery</span>
    msg.payload = <span class="hljs-string">"0"</span>
}

<span class="hljs-comment">// Battery full -&gt; excess solar into home</span>
<span class="hljs-keyword">if</span> (battery &gt;= <span class="hljs-number">100</span> &amp;&amp; solar &gt; <span class="hljs-number">0</span>) {
    msg.payload = <span class="hljs-string">"100"</span>
}

<span class="hljs-comment">// Send new limit to inverter</span>
<span class="hljs-keyword">return</span> msg;
</code></pre>
<p>MQTT topic:</p>
<pre><code class="lang-plaintext">ahoydtu/ctrl/limit/0
</code></pre>
<p>ValueGetter Subflow:</p>
<pre><code class="lang-json">[{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"subflow"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">"ValueGetter"</span>,<span class="hljs-attr">"info"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"category"</span>:<span class="hljs-string">"Vratny"</span>,<span class="hljs-attr">"in"</span>:[{<span class="hljs-attr">"x"</span>:<span class="hljs-number">120</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"c56d509f669595a3"</span>}]}],<span class="hljs-attr">"out"</span>:[{<span class="hljs-attr">"x"</span>:<span class="hljs-number">1180</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"8e25b00de8b09d79"</span>,<span class="hljs-attr">"port"</span>:<span class="hljs-number">0</span>}]}],<span class="hljs-attr">"env"</span>:[{<span class="hljs-attr">"name"</span>:<span class="hljs-string">"entities"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"json"</span>,<span class="hljs-attr">"value"</span>:<span class="hljs-string">"{}"</span>,<span class="hljs-attr">"ui"</span>:{<span class="hljs-attr">"icon"</span>:<span class="hljs-string">"font-awesome/fa-bars"</span>,<span class="hljs-attr">"label"</span>:{<span class="hljs-attr">"de"</span>:<span class="hljs-string">"Entitäten"</span>}}},{<span class="hljs-attr">"name"</span>:<span class="hljs-string">"topic"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"str"</span>,<span class="hljs-attr">"value"</span>:<span class="hljs-string">""</span>}],<span class="hljs-attr">"meta"</span>:{},<span class="hljs-attr">"color"</span>:<span class="hljs-string">"#3FADB5"</span>,<span class="hljs-attr">"icon"</span>:<span class="hljs-string">"node-red/join.svg"</span>},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"b4a9ab518ebd88d2"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"api-current-state"</span>,<span class="hljs-attr">"z"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"server"</span>:<span class="hljs-string">"4db50fc5.1329b"</span>,<span class="hljs-attr">"version"</span>:<span class="hljs-number">3</span>,<span class="hljs-attr">"outputs"</span>:<span class="hljs-number">1</span>,<span class="hljs-attr">"halt_if"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"halt_if_type"</span>:<span class="hljs-string">"str"</span>,<span class="hljs-attr">"halt_if_compare"</span>:<span class="hljs-string">"is"</span>,<span class="hljs-attr">"entity_id"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"state_type"</span>:<span class="hljs-string">"str"</span>,<span class="hljs-attr">"blockInputOverrides"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"outputProperties"</span>:[{<span class="hljs-attr">"property"</span>:<span class="hljs-string">"payload"</span>,<span class="hljs-attr">"propertyType"</span>:<span class="hljs-string">"msg"</span>,<span class="hljs-attr">"value"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"valueType"</span>:<span class="hljs-string">"entityState"</span>},{<span class="hljs-attr">"property"</span>:<span class="hljs-string">"data"</span>,<span class="hljs-attr">"propertyType"</span>:<span class="hljs-string">"msg"</span>,<span class="hljs-attr">"value"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"valueType"</span>:<span class="hljs-string">"entity"</span>}],<span class="hljs-attr">"for"</span>:<span class="hljs-string">"0"</span>,<span class="hljs-attr">"forType"</span>:<span class="hljs-string">"num"</span>,<span class="hljs-attr">"forUnits"</span>:<span class="hljs-string">"minutes"</span>,<span class="hljs-attr">"override_topic"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"state_location"</span>:<span class="hljs-string">"payload"</span>,<span class="hljs-attr">"override_payload"</span>:<span class="hljs-string">"msg"</span>,<span class="hljs-attr">"entity_location"</span>:<span class="hljs-string">"data"</span>,<span class="hljs-attr">"override_data"</span>:<span class="hljs-string">"msg"</span>,<span class="hljs-attr">"x"</span>:<span class="hljs-number">720</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[[<span class="hljs-string">"b1f94791af70a145"</span>]]},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"b1f94791af70a145"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"join"</span>,<span class="hljs-attr">"z"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">"Zusammenführen"</span>,<span class="hljs-attr">"mode"</span>:<span class="hljs-string">"auto"</span>,<span class="hljs-attr">"build"</span>:<span class="hljs-string">"object"</span>,<span class="hljs-attr">"property"</span>:<span class="hljs-string">"payload"</span>,<span class="hljs-attr">"propertyType"</span>:<span class="hljs-string">"msg"</span>,<span class="hljs-attr">"key"</span>:<span class="hljs-string">"topic"</span>,<span class="hljs-attr">"joiner"</span>:<span class="hljs-string">"\\n"</span>,<span class="hljs-attr">"joinerType"</span>:<span class="hljs-string">"str"</span>,<span class="hljs-attr">"accumulate"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"timeout"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"count"</span>:<span class="hljs-string">"2"</span>,<span class="hljs-attr">"reduceRight"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"reduceExp"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"reduceInit"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"reduceInitType"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"reduceFixup"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"x"</span>:<span class="hljs-number">910</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[[<span class="hljs-string">"8e25b00de8b09d79"</span>]]},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"8e25b00de8b09d79"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"function"</span>,<span class="hljs-attr">"z"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">"Filter"</span>,<span class="hljs-attr">"func"</span>:<span class="hljs-string">"let newMsg={};\nnewMsg.payload=msg.payload;\nnewMsg.topic = env.get(\"topic\");\nreturn newMsg;"</span>,<span class="hljs-attr">"outputs"</span>:<span class="hljs-number">1</span>,<span class="hljs-attr">"timeout"</span>:<span class="hljs-number">0</span>,<span class="hljs-attr">"noerr"</span>:<span class="hljs-number">0</span>,<span class="hljs-attr">"initialize"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"finalize"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"libs"</span>:[],<span class="hljs-attr">"x"</span>:<span class="hljs-number">1070</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[[]]},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"989cce5990120f96"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"split"</span>,<span class="hljs-attr">"z"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"splt"</span>:<span class="hljs-string">"\\n"</span>,<span class="hljs-attr">"spltType"</span>:<span class="hljs-string">"str"</span>,<span class="hljs-attr">"arraySplt"</span>:<span class="hljs-number">1</span>,<span class="hljs-attr">"arraySpltType"</span>:<span class="hljs-string">"len"</span>,<span class="hljs-attr">"stream"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"addname"</span>:<span class="hljs-string">"topic"</span>,<span class="hljs-attr">"x"</span>:<span class="hljs-number">390</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[[<span class="hljs-string">"90c052159aac0c60"</span>]]},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"90c052159aac0c60"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"function"</span>,<span class="hljs-attr">"z"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">"Convert"</span>,<span class="hljs-attr">"func"</span>:<span class="hljs-string">"msg.payload = { 'entityId': msg.payload};\nreturn msg;"</span>,<span class="hljs-attr">"outputs"</span>:<span class="hljs-number">1</span>,<span class="hljs-attr">"timeout"</span>:<span class="hljs-number">0</span>,<span class="hljs-attr">"noerr"</span>:<span class="hljs-number">0</span>,<span class="hljs-attr">"initialize"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"finalize"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"libs"</span>:[],<span class="hljs-attr">"x"</span>:<span class="hljs-number">540</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[[<span class="hljs-string">"b4a9ab518ebd88d2"</span>]]},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"c56d509f669595a3"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"function"</span>,<span class="hljs-attr">"z"</span>:<span class="hljs-string">"f193ca922ddcefac"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">"Get Variable"</span>,<span class="hljs-attr">"func"</span>:<span class="hljs-string">"msg.payload=env.get(\"entities\");\nreturn msg;"</span>,<span class="hljs-attr">"outputs"</span>:<span class="hljs-number">1</span>,<span class="hljs-attr">"timeout"</span>:<span class="hljs-number">0</span>,<span class="hljs-attr">"noerr"</span>:<span class="hljs-number">0</span>,<span class="hljs-attr">"initialize"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"finalize"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"libs"</span>:[],<span class="hljs-attr">"x"</span>:<span class="hljs-number">230</span>,<span class="hljs-attr">"y"</span>:<span class="hljs-number">260</span>,<span class="hljs-attr">"wires"</span>:[[<span class="hljs-string">"989cce5990120f96"</span>]]},{<span class="hljs-attr">"id"</span>:<span class="hljs-string">"4db50fc5.1329b"</span>,<span class="hljs-attr">"type"</span>:<span class="hljs-string">"server"</span>,<span class="hljs-attr">"name"</span>:<span class="hljs-string">"Home Assistant"</span>,<span class="hljs-attr">"addon"</span>:<span class="hljs-literal">true</span>,<span class="hljs-attr">"rejectUnauthorizedCerts"</span>:<span class="hljs-literal">true</span>,<span class="hljs-attr">"ha_boolean"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"connectionDelay"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"cacheJson"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"heartbeat"</span>:<span class="hljs-literal">false</span>,<span class="hljs-attr">"heartbeatInterval"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"statusSeparator"</span>:<span class="hljs-string">""</span>,<span class="hljs-attr">"enableGlobalContextStore"</span>:<span class="hljs-literal">false</span>}]
</code></pre>
<p>ValueGetter Entities:</p>
<pre><code class="lang-json">{
    <span class="hljs-attr">"solarEnergy"</span>: <span class="hljs-string">"sensor.solarenergie"</span>,
    <span class="hljs-attr">"battery"</span>: <span class="hljs-string">"sensor.batterie_ladung"</span>,
    <span class="hljs-attr">"price"</span>: <span class="hljs-string">"sensor.electricity_price_your_address"</span>,
    <span class="hljs-attr">"averagePrice"</span>: <span class="hljs-string">"sensor.electricity_price_average"</span>
}
</code></pre>
]]></content:encoded></item><item><title><![CDATA[DIY Häfele LOOX5 CONNECT MESH 12V/24V (RGBW)]]></title><description><![CDATA[Die Original: "Häfele LOOX5 6-Fach-Verteiler CONNECT MESH 12V oder 24V" zum Preis von ca. 130€ wird via Blutooth-LE angesteuert - via "Connect Mesh"-App lassen sich so mit dem Handy so LED-Streifen steuern.
Es gibt zwar Möglichkeiten, das System z.B....]]></description><link>https://huebschen.wtf/diy-hafele-loox5-connect-mesh-12v24v-rgbw</link><guid isPermaLink="true">https://huebschen.wtf/diy-hafele-loox5-connect-mesh-12v24v-rgbw</guid><category><![CDATA[connectmesh]]></category><category><![CDATA[loox5]]></category><category><![CDATA[DIY]]></category><category><![CDATA[Electronics]]></category><dc:creator><![CDATA[Benedikt Hübschen]]></dc:creator><pubDate>Thu, 21 Mar 2024 07:44:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711299768531/f98ec5fa-8cbc-441f-9601-de4eeac0914c.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Die Original: "Häfele LOOX5 6-Fach-Verteiler CONNECT MESH 12V oder 24V" zum Preis von ca. 130€ wird via Blutooth-LE angesteuert - via "Connect Mesh"-App lassen sich so mit dem Handy so LED-Streifen steuern.</p>
<p>Es gibt zwar Möglichkeiten, das System z.B. in HomeAssistant mithilfe eines Bluetooth-Adapters zu integrieren, jedoch ist dazu natürlich ein entsprechendes Gerät in der Nähe notwendig.</p>
<p>Ein "kompatibles" Gerät lässt sich aber für grob 25€ nachbauen und verfügt über WiFi und kann je nach Version des Controllers, auch mit Infrarot-Fernbedienung gesteuert werden.</p>
<h3 id="heading-erforderliche-hardware">Erforderliche Hardware:</h3>
<ul>
<li><p>Häfele LOOX5 6-Fach-Verteiler ohne Schalteranschluss (12V oder 24V - ca. 13€)</p>
</li>
<li><p>MagicHome / MagicHue RGBW-Controller 5-24V (ca. 10€)</p>
</li>
<li><p>Kabel (+/- 2€)</p>
</li>
</ul>
<h3 id="heading-benotigtes-werkzeug">Benötigtes Werkzeug:</h3>
<ul>
<li><p>Lötkolben</p>
</li>
<li><p>Dremel</p>
</li>
<li><p>Schraubenzieher</p>
</li>
</ul>
<h2 id="heading-umbauanleitung">Umbauanleitung:</h2>
<p>Zum Öffnen des Verteilers kann man auf der Unterseite an allen 4 Ecken mit dem Schraubenzieher das Gehäuse aus dem Verschluss an lösen, endgültiges Öffnen ist dann durch Eindrücken der Nase in der Mitte möglich.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711006732600/32b4dab1-dfbb-4681-860c-f7398c6247a7.jpeg" alt class="image--center mx-auto" /></p>
<p>Die Platine wird entnommen und auf der grünen Seite werden die Leiterbahnen der "-"-Verbindung unterbrochen. Zum Weiterverbinden mit anderen Boxen, muss hier nun eine Kabelverbindung zwischen den beiden Anschlüssen angelötet werden. Damit der Controller auch Strom bekommt, muss an "+" und an "-" jeweils auch ein Kabel als Zuleitung angelötet werden - Es empfiehlt sich von den gegenüberliegenden Seiten jeweils das Kabel anzulöten, damit der Platz im Gehäuse auch ausreicht.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711006770509/6127e47a-751b-4778-b08e-aa63c4df9be7.jpeg" alt class="image--center mx-auto" /></p>
<p>Nach der Durchtrennung der Verbindung wird nun der bereits aus seinem Gehäuse befreite MagicHome-Controller von seiner LED-Anschlussleiste befreit und mit dem meistens mitgelieferten Doppelklebestreifen auf der weißen/beigen Seite aufgeklebt.</p>
<p>Nun kann man die + und - Zuleitung mit dem Controller verbinden (+ = VCC, - = GND)</p>
<p>Anschließend wird von Links nach Rechts von der ehemaligen Anschlussleiste, beginnend mit dem 2. (das Erste ist "+", wird aber bereits durch die Originalplatine geliefert) Lötpad die Buchse mit dem Controller verbunden:</p>
<ul>
<li><p>Pad 2 (R): J1 "-"</p>
</li>
<li><p>Pad 3 (G): J2 "-"</p>
</li>
<li><p>Pad 4 (B): J3 "-"</p>
</li>
<li><p>Pad 5 (W): J4 "-"</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710973792876/7798b57b-f0e2-43f1-98fa-26db59a24b14.jpeg" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711005213672/f89ded8d-8f74-40f7-b93e-b38b5236fb7c.jpeg" alt class="image--center mx-auto" /></p>
<p>Alternative Methode:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711005245989/e8c98833-baf4-46b1-a0a9-baed8c8ce3f7.jpeg" alt class="image--center mx-auto" /></p>
<p>Im Nachgang kann die Platine nun wieder in das Gehäuse eingesetzt und dieses wieder verschlossen werden.</p>
<p>Unter Verwendung der "Magic Home Pro"-App lassen sich die LED-Streifen z.B. nun zeitgesteuert auch ohne Handy schalten. Weitere Funktionen, wie auf Musik reagieren, Farbe via Handykamera einstellen, Lichtanimationen etc sind natürlich auch aus der App heraus verwendbar.</p>
<p>Auch SmartHome-Systeme (wie zuvor erwähnter HomeAssistant) können den Controller auch direkt nach erfolgter WLAN-Konfiguration in der App verwenden und steuern.</p>
<p>Das fertige Teil kann nun bestehende LOOX5-Systeme für neue unabhängige LED-Streifen ergänzen oder die vorhandenen CONNECT MESH-Boxen ersetzen.</p>
]]></content:encoded></item></channel></rss>