<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Logica — xxter Forum</title>
        <link>https://forum.xxter.com/</link>
        <pubDate>Fri, 17 Jul 2026 11:26:17 +0000</pubDate>
        <language>nl</language>
            <description>Logica — xxter Forum</description>
    <atom:link href="https://forum.xxter.com/categories/logica/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Use xxter Logic with KNX to dim artnet DMX or Philip HUE</title>
        <link>https://forum.xxter.com/discussion/403/use-xxter-logic-with-knx-to-dim-artnet-dmx-or-philip-hue</link>
        <pubDate>Wed, 10 Sep 2025 09:17:48 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Freek-Jan Buijsman</dc:creator>
        <guid isPermaLink="false">403@/discussions</guid>
        <description><![CDATA[<p>This is an example on how to use a KNX push button (taster) with DPT3 to control a DMX (or Philips HUE) light.</p><p>A KNX push button uses the DPT 3 for dimming. A DMX dimmer always uses an absolute dimming level. To control this, you can use the "virtual dimmer" logic block in xxter. This can adjust a dimming value up or down based on a relative dimming value. We use this, for example, to dim a HUE lamp (which also doesn't support a relative dimmer) with a KNX push button.</p><p>Make sure to create the group addresses needed in the components list in the project first. Addresses with I:XXX are internal(dummy) addresses.</p><div data-embedjson="{&quot;url&quot;:&quot;https:\/\/forum.xxter.com\/uploads\/IZ68WG5NMJ8N\/virtulele-dimmer-voor-knx-naar-dmx.png&quot;,&quot;name&quot;:&quot;Virtulele dimmer voor KNX naar DMX.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:144287,&quot;width&quot;:845,&quot;height&quot;:435,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;embedType&quot;:&quot;image&quot;}">
    <div>
        <a href="https://forum.xxter.com/uploads/IZ68WG5NMJ8N/virtulele-dimmer-voor-knx-naar-dmx.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://forum.xxter.com/uploads/IZ68WG5NMJ8N/virtulele-dimmer-voor-knx-naar-dmx.png" alt="Virtulele dimmer voor KNX naar DMX.png" height="435" width="845" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" /></a>
    </div>
</div>
<p><br /></p>]]>
        </description>
    </item>
    <item>
        <title>Example delay fan for bathroom</title>
        <link>https://forum.xxter.com/discussion/337/example-delay-fan-for-bathroom</link>
        <pubDate>Wed, 12 Oct 2022 12:59:04 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Maarten Hemker</dc:creator>
        <guid isPermaLink="false">337@/discussions</guid>
        <description><![CDATA[In this example, we made a fan that only starts if the lights in the bathroom are on for longer than 1 minute, and then as soon as the lights go out, runs for 5 more minutes.

<img src="https://forum.xxter.com/uploads/editor/u8/xu4w6tc1yhc0.png" alt="" />

This top part of the logic uses a <b>delay bit</b>, to let through the "ON" command only after 1 minute. In case the lights go off within that minute, nothing happens. Therefore, the delay should be set to delay only "1 values" and to make sure the fan is never turned off directly, a <b>filter bit</b> is added, only allowing the "ON" command through.

The second part of the logic, is to start the timer when the lights go off again. To do this, the "OFF" command is inverted with an <b>invert bit</b> and compared to the current status of the fan with an <b>and port</b>. If this results in "TRUE" the lights have gone off and the fan is on. Then, the <b>light timer</b> should be triggered to keep the fan on for another 5 minutes. To make sure the fan is not stopped prematurely, the light timer should be set to "allow immediate off" = NO. ]]>
        </description>
    </item>
    <item>
        <title>Example to switch additional lights based on dim level of the main light</title>
        <link>https://forum.xxter.com/discussion/336/example-to-switch-additional-lights-based-on-dim-level-of-the-main-light</link>
        <pubDate>Wed, 12 Oct 2022 10:40:44 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Maarten Hemker</dc:creator>
        <guid isPermaLink="false">336@/discussions</guid>
        <description><![CDATA[In this simple example, you can switch on additional lights, based on the dim level of another light.

<img src="https://forum.xxter.com/uploads/editor/s0/axlfjrydwquh.png" alt="" />

This is done by using a compare number, set to "A &gt; B". In case the brightness of the bathroom spots is higher than 10 (byte value, corresponding to 4%), the other bathroom lights will be turned on. When the brightness is lowered, the lights will be turned off. 

This way, you only need to control the dimmer for that room, and when you increase the brightness the other lights will automatically also go on, and vice versa. ]]>
        </description>
    </item>
    <item>
        <title>Example time dependent brightness level</title>
        <link>https://forum.xxter.com/discussion/335/example-time-dependent-brightness-level</link>
        <pubDate>Wed, 12 Oct 2022 10:33:17 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Maarten Hemker</dc:creator>
        <guid isPermaLink="false">335@/discussions</guid>
        <description><![CDATA[In this example, you can see how to use logic to switch a dimmer to a certain brightness depending on circumstances. 

<img src="https://forum.xxter.com/uploads/editor/y5/8r2lfg1tyxh7.png" alt="" />

The first part, sets the dim level to use. Depending on the time of day, or the current status of the lights in de bedroom, the lights will be set very low (byte value for 4%) or normal (byte value for 80%). That way, when you turn on the lights at night, you are not blinded by bright lights. However, when you are already awake and have the lights on in the bedroom, or it is daytime, the lights will turn on as normal. 

The second part will actually switch the lights. When you turn on the switch, the light will be set to the right dim level, when you turn it off, it will be set to 0.]]>
        </description>
    </item>
    <item>
        <title>Example curve alteration</title>
        <link>https://forum.xxter.com/discussion/334/example-curve-alteration</link>
        <pubDate>Wed, 12 Oct 2022 08:52:55 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Maarten Hemker</dc:creator>
        <guid isPermaLink="false">334@/discussions</guid>
        <description><![CDATA[In this example, you can see how to use a curve alteration. For instance, when you have LED dimmable lights, they tend to respond differently to the dimming scale from 0 - 100% then regular light bulbs or halogen lights. LED lights often increase very much in brightness the first 20% and then only slowly become brighter near the higher values. 

 <img src="https://forum.xxter.com/uploads/editor/d1/75wklia96x63.png" alt="" />

To realize this, we have created a dimming component in the project, which we make available in the visualization and connect to the light switches. The real actuator for the LED dimmer is connected as the output. We then "translate" the requested dimming values to an altered scale, which is sent to the actuator. For instance, a dimming value of 10% results in a set dimming value of 1%, corresponding to a reasonable actual low light value, but a value of 70% results in a set dimming value of 75%. This can create a more natural feel for the user, where the actual brightness of the LED lights correspond better to the requested dimming value. ]]>
        </description>
    </item>
    <item>
        <title>Example button detector</title>
        <link>https://forum.xxter.com/discussion/333/example-button-detector</link>
        <pubDate>Wed, 12 Oct 2022 08:39:03 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Maarten Hemker</dc:creator>
        <guid isPermaLink="false">333@/discussions</guid>
        <description><![CDATA[In this example, you can see how to use a button detector.

<img src="https://forum.xxter.com/uploads/editor/ys/dcbqxi4r7tii.png" alt="" />

We have used a pulse switch (binary status component in the project), as the trigger. 

- When you press the pulse switch 1x for a short time, the basic scenario of the kitchen is activated.
- When you press the pulse switch 2x for a short time, the hood in the kitchen is toggled, so it switches on if it was off, and vice versa. For this action a bit toggle element is added, where we included the current value of the hood as a status value for the toggle. 
- When you press the pulse switch for a long time, the scenario "Kitchen off" is activated.

That way, a single pulse switch in the room now has three distinct functions, that are easy to use. ]]>
        </description>
    </item>
    <item>
        <title>Example irrigation logic</title>
        <link>https://forum.xxter.com/discussion/332/example-irrigation-logic</link>
        <pubDate>Wed, 12 Oct 2022 08:11:19 +0000</pubDate>
        <category>Logica</category>
        <dc:creator>Maarten Hemker</dc:creator>
        <guid isPermaLink="false">332@/discussions</guid>
        <description><![CDATA[This logic contains 3 separate parts, that can also be used individually. 

<img src="https://forum.xxter.com/uploads/editor/cg/6zcywgdykakh.png" alt="" />

Part 1) A time counter for visualization purposes
The first part counts the time a component has been active, which is reset every day. The time trigger is set from 23:59 to 00:00, so it will give a reset pulse every day around midnight. The irrigation time component (which is a 4bit numeric value) can be added as a statistic, allowing a graph of how long the irrigation has been active each day.

Part 2) Calculating a set time, based on a percentage value
The second part creates a timer (4bit numeric value) based on the measured ground humidity. To do this, we first invert the percentage so a high measured humidity of say 70% results in the value 30, and a low humidity of say 5% results in the value 95. This is easily done by the math function "a - b" where a = 100 and b = humidity. 

Then, the curve alteration is used to map the scale from 0 - 100 to relevant irrigation times in seconds. When the humidity is 70% or higher (value "30"), we will not irrigate, and when the humidity is extremely low (value "100") we will irrigate a maximum of 30 minutes (1800 seconds). 

<img src="https://forum.xxter.com/uploads/editor/lr/3hzfhznvozck.png" alt="" />

Part 3) Actually controlling the irrigation
In the last part, we will actually control the irrigation. With a time trigger, we will trigger half an hour before sunrise and end it always at sunrise itself. This way, the maximum irrigation time is always 30 minutes. 

When the time trigger activates, the irrigation set time is used as a timer for the period of the irrigation. So if the calculated time from part 2 is set to say 900 seconds (15 minutes), the irrigation will run for that time. 

To allow manual override, either to stop an active irrigation, or to activate an additional irrigation cycle, a switch is connected to a bit toggle. When the irrigation is currently active, a flick of the switch will turn it off. When the irrigation is currently stopped, a flick of the switch will activate the irrigation timer for the irrigation set time. To make sure this works, the light timer option "allow immediate off" is set to "yes". 

]]>
        </description>
    </item>
   </channel>
</rss>
