<?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[Rssfeed geordnet anzeigen lassen]]></title><description><![CDATA[<p dir="auto">Ich habe jetzt auf die Version 4.0.3 gewechselt, leider werden mir die Nachrichten nicht mehr nach und nach angezeigt, also das mir Artikel für Artikel angezeigt wird, so hatte ich das vorher leider funktoniert das skript im CSS nicht mehr.</p>
<p dir="auto">Hat vieleicht einer eine Lösung dafür ?</p>
]]></description><link>https://forum.iobroker.net/topic/84535/rssfeed-geordnet-anzeigen-lassen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 22 May 2026 00:11:26 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/84535.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 May 2026 15:29:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 18:04:25 GMT]]></title><description><![CDATA[<p dir="auto">Sonst müllt der speicher voll richtig</p>
]]></description><link>https://forum.iobroker.net/post/1339341</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339341</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 18:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 18:01:27 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a><br />
chatgpt hat es gemacht</p>
]]></description><link>https://forum.iobroker.net/post/1339339</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339339</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 18:01:27 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 18:00:27 GMT]]></title><description><![CDATA[<p dir="auto">Du hast das Skript überarbeitet richtig ?</p>
]]></description><link>https://forum.iobroker.net/post/1339338</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339338</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 18:00:27 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:57:08 GMT]]></title><description><![CDATA[<p dir="auto">Leider nein.<br />
Das problematische setInterval ist noch drin</p>
<pre><code>&lt;style&gt;
    #rss_wrapper_&lt;%- widgetid %&gt; { 
        height: 100%; 
        width: 100%;
        overflow: hidden;
    }

    #rss_wrapper_&lt;%- widgetid %&gt; .slide { 
        display: none; 
        padding: 10px;
    }

    #rss_wrapper_&lt;%- widgetid %&gt; .active { 
        display: block; 
        animation: fadeInRSS 0.6s ease-in-out;
    }

    @keyframes fadeInRSS {
        from { opacity: 0; }
        to { opacity: 1; }
    }
&lt;/style&gt;

&lt;div id="rss_wrapper_&lt;%- widgetid %&gt;"&gt;
    &lt;% if (rss &amp;&amp; rss.articles &amp;&amp; rss.articles.length &gt; 0) { %&gt;
        &lt;% rss.articles.forEach(function(item, index){ %&gt;
            &lt;div class="slide &lt;%- index === 0 ? 'active' : '' %&gt;"&gt;
                &lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "DD.MM.YYYY HH:mm") %&gt;&lt;/small&gt;
                &lt;h3 style="margin: 8px 0;"&gt;&lt;%- item.title %&gt;&lt;/h3&gt;
                &lt;div class="rss-desc"&gt;&lt;%- item.description %&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;% }); %&gt;
    &lt;% } else { %&gt;
        &lt;p&gt;Lade Feeds...&lt;/p&gt;
    &lt;% } %&gt;
&lt;/div&gt;

&lt;script&gt;
    (function() {
        var containerId = 'rss_wrapper_&lt;%- widgetid %&gt;';
        var timeoutKey = '__rssTimeout_' + containerId;

        /*
         * Falls das Template wegen geänderter RSS-Daten erneut gerendert wird,
         * wird ein eventuell noch laufender Timeout dieses Widgets entfernt.
         */
        if (window[timeoutKey]) {
            clearTimeout(window[timeoutKey]);
            window[timeoutKey] = null;
        }

        function startSlider() {
            var root = document.getElementById(containerId);
            if (!root) return;

            var slides = root.getElementsByClassName('slide');
            var current = 0;
            var pause = 5000;

            if (slides.length &lt;= 1) return;

            function showNextSlide() {
                /*
                 * Bei jedem Durchlauf erneut prüfen, ob der Container noch existiert.
                 * Falls VIS das Widget neu gerendert oder entfernt hat, endet die Kette.
                 */
                root = document.getElementById(containerId);
                if (!root) {
                    window[timeoutKey] = null;
                    return;
                }

                slides = root.getElementsByClassName('slide');
                if (slides.length &lt;= 1) {
                    window[timeoutKey] = null;
                    return;
                }

                if (current &gt;= slides.length) {
                    current = 0;
                }

                slides[current].classList.remove('active');

                current = (current + 1) % slides.length;

                slides[current].classList.add('active');

                window[timeoutKey] = setTimeout(showNextSlide, pause);
            }

            window[timeoutKey] = setTimeout(showNextSlide, pause);
        }

        /*
         * Verzögerter Start, damit VIS Zeit zum Rendern hat.
         * Auch dieser Start-Timeout wird beim erneuten Rendern oben abgeräumt.
         */
        window[timeoutKey] = setTimeout(startSlider, 1500);
    })();
&lt;/script&gt;
</code></pre>
]]></description><link>https://forum.iobroker.net/post/1339337</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339337</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 17:57:08 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:48:55 GMT]]></title><description><![CDATA[<pre><code>&lt;style&gt;
    #rss_wrapper_&lt;%- widgetid %&gt; { 
        height: 100%; 
        width: 100%;
        overflow: hidden;
    }
    #rss_wrapper_&lt;%- widgetid %&gt; .slide { 
        display: none; 
        padding: 10px;
    }
    #rss_wrapper_&lt;%- widgetid %&gt; .active { 
        display: block; 
        animation: fadeInRSS 0.6s ease-in-out;
    }
    @keyframes fadeInRSS { from { opacity: 0; } to { opacity: 1; } }
&lt;/style&gt;

&lt;div id="rss_wrapper_&lt;%- widgetid %&gt;"&gt;
    &lt;% if (rss &amp;&amp; rss.articles &amp;&amp; rss.articles.length &gt; 0) { %&gt;
        &lt;% rss.articles.forEach(function(item, index){ %&gt;
            &lt;div class="slide &lt;%- index === 0 ? 'active' : '' %&gt;"&gt;
                &lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "DD.MM.YYYY HH:mm") %&gt;&lt;/small&gt;
                &lt;h3 style="margin: 8px 0;"&gt;&lt;%- item.title %&gt;&lt;/h3&gt;
                &lt;div class="rss-desc"&gt;&lt;%- item.description %&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;% }); %&gt;
    &lt;% } else { %&gt;
        &lt;p&gt;Lade Feeds...&lt;/p&gt;
    &lt;% } %&gt;
&lt;/div&gt;

&lt;script&gt;
    (function() {
        // Das setTimeout sorgt dafür, dass VIS Zeit zum Rendern hat
        setTimeout(function() {
            var containerId = 'rss_wrapper_&lt;%- widgetid %&gt;';
            var root = document.getElementById(containerId);
            if (!root) return;

            var slides = root.getElementsByClassName('slide');
            var current = 0;
            var pause = 5000; // 5 Sekunden pro Artikel

            if (slides.length &gt; 1) {
                setInterval(function() {
                    // Alten Slide verstecken
                    slides[current].classList.remove('active');
                    
                    // Index weiterzählen
                    current = (current + 1) % slides.length;
                    
                    // Neuen Slide zeigen
                    slides[current].classList.add('active');
                }, pause);
            }
        }, 1500); // 1,5 Sekunden Verzögerung beim Start
    })();
&lt;/script&gt;</code></pre>
]]></description><link>https://forum.iobroker.net/post/1339333</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339333</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:48:55 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:48:14 GMT]]></title><description><![CDATA[<p dir="auto">Ich habe das jetzt nochmal mit setTimeout durch die KI überarbeiten lassen, schaue mal bitte drüber</p>
]]></description><link>https://forum.iobroker.net/post/1339332</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339332</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:42:13 GMT]]></title><description><![CDATA[<p dir="auto">evtl noch eine anmerkung zum setInterval.</p>
<p dir="auto">Es ist besser, insbesondere hier, den setInterval Teil in eine eigene Funktion zu setzen<br />
Die Funktion ruft dann die eigene Funktion wieder mit setTimeout wieder auf.</p>
<p dir="auto">So wie es jetzt ist, wird es irgendwann zu Speicherprobleme führen.<br />
Jedesmal wenn der RSS Datenpunkt aktualisiert wird, wird der widgetinhalt ersetzt.<br />
Allerdings wird dadurch der alte setInterval Aufruf nicht entfernt. Mit dem Austausch kommt dann aber ein neuer setInterval dazu.</p>
<p dir="auto">Jetzt kannst du dir evtl vorstellen was passiert, wenn 10 mal der datenpunkt aktualisiert wurde. Dann versuchen 10 parallele setInterval Aufrufe geichzeitig den Artikel zu wechseln.</p>
<p dir="auto">Sag der KI, sie soll den Code mit setTimeout formulieren um evtl Speicherprobleme zu verhindern.</p>
<p dir="auto">Anonsten ist der Code OK<br />
Es fehlen nun die Knöpfe, so ist man auf den automatismus angewiesen, auch wenn der angezeigte Artikel gerade nicht interessiert<br />
Wenn du aber eine möglichst cleane Darstellung haben willst ist das OK</p>
]]></description><link>https://forum.iobroker.net/post/1339330</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339330</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 17:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:36:00 GMT]]></title><description><![CDATA[<p dir="auto">aber sonst ist der ist das Skript brauchbar oder ?</p>
]]></description><link>https://forum.iobroker.net/post/1339329</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339329</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:34:30 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a></p>
<p dir="auto">ich teste hier mit dem tagesschau rss.<br />
da ist ein bild drin, dessen größe korrigiert werden muss</p>
<pre><code> &lt;style&gt;
    #rss_container_&lt;%- widgetid %&gt; { 
        height: 100%; 
        width: 100%;
        display: flex; 
        flex-direction: column; 
    }
    #rss_container_&lt;%- widgetid %&gt; .slide { 
        display: none; 
        padding: 10px;
    }
    #rss_container_&lt;%- widgetid %&gt; .active { 
        display: block; 
        animation: fadeRss 0.5s;
    }
    #rss_container_&lt;%- widgetid %&gt; img {
        width: calc(&lt;%- style.width %&gt; - 15px);
        height: auto;
    }    
    @keyframes fadeRss { from { opacity: 0; } to { opacity: 1; } }
&lt;/style&gt;
 
&lt;div id="rss_container_&lt;%- widgetid %&gt;"&gt;
    &lt;div class="rss_content" style="flex: 1; overflow: auto;"&gt;
        &lt;% if (rss &amp;&amp; rss.articles) { %&gt;
            &lt;% rss.articles.forEach(function(item, index){ %&gt;
                &lt;div class="slide &lt;%- index === 0 ? 'active' : '' %&gt;"&gt;
                    &lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "DD.MM.YYYY HH:mm") %&gt;&lt;/small&gt;
                    &lt;h3 style="margin: 8px 0;"&gt;&lt;%- item.title %&gt;&lt;/h3&gt;
                    &lt;div&gt;&lt;%- item.description %&gt;&lt;/div&gt;
                &lt;/div&gt;
            &lt;% }); %&gt;
        &lt;% } %&gt;
    &lt;/div&gt;
&lt;/div&gt;
 
&lt;script&gt;
    (function() {
        // Wir suchen das Element direkt über die Widget-ID, die VIS übergibt
        var parentId = 'rss_container_&lt;%- widgetid %&gt;';
        var container = document.getElementById(parentId);
        if (!container) return;
 
        var slides = container.getElementsByClassName('slide');
        var currentIndex = 0;
        var intervalTime = 10000; // 5 Sekunden
 
        if (slides.length &gt; 1) {
            setInterval(function() {
                // Aktuellen Slide ausblenden
                slides[currentIndex].classList.remove('active');
                
                // Index erhöhen
                currentIndex++;
                if (currentIndex &gt;= slides.length) {
                    currentIndex = 0;
                }
                
                // Nächsten Slide einblenden
                slides[currentIndex].classList.add('active');
            }, intervalTime);
        }
    })();
&lt;/script&gt;

</code></pre>
]]></description><link>https://forum.iobroker.net/post/1339328</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339328</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 17:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:30:12 GMT]]></title><description><![CDATA[<p dir="auto">jetzt müsste es richtig sein</p>
]]></description><link>https://forum.iobroker.net/post/1339325</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339325</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:29:42 GMT]]></title><description><![CDATA[<pre><code> &lt;style&gt;
    #rss_container_&lt;%- widgetid %&gt; { 
        height: 100%; 
        width: 100%;
        display: flex; 
        flex-direction: column; 
    }
    #rss_container_&lt;%- widgetid %&gt; .slide { 
        display: none; 
        padding: 10px;
    }
    #rss_container_&lt;%- widgetid %&gt; .active { 
        display: block; 
        animation: fadeRss 0.5s;
    }
    @keyframes fadeRss { from { opacity: 0; } to { opacity: 1; } }
&lt;/style&gt;

&lt;div id="rss_container_&lt;%- widgetid %&gt;"&gt;
    &lt;div class="rss_content" style="flex: 1; overflow: auto;"&gt;
        &lt;% if (rss &amp;&amp; rss.articles) { %&gt;
            &lt;% rss.articles.forEach(function(item, index){ %&gt;
                &lt;div class="slide &lt;%- index === 0 ? 'active' : '' %&gt;"&gt;
                    &lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "DD.MM.YYYY HH:mm") %&gt;&lt;/small&gt;
                    &lt;h3 style="margin: 8px 0;"&gt;&lt;%- item.title %&gt;&lt;/h3&gt;
                    &lt;div&gt;&lt;%- item.description %&gt;&lt;/div&gt;
                &lt;/div&gt;
            &lt;% }); %&gt;
        &lt;% } %&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    (function() {
        // Wir suchen das Element direkt über die Widget-ID, die VIS übergibt
        var parentId = 'rss_container_&lt;%- widgetid %&gt;';
        var container = document.getElementById(parentId);
        if (!container) return;

        var slides = container.getElementsByClassName('slide');
        var currentIndex = 0;
        var intervalTime = 10000; // 5 Sekunden

        if (slides.length &gt; 1) {
            setInterval(function() {
                // Aktuellen Slide ausblenden
                slides[currentIndex].classList.remove('active');
                
                // Index erhöhen
                currentIndex++;
                if (currentIndex &gt;= slides.length) {
                    currentIndex = 0;
                }
                
                // Nächsten Slide einblenden
                slides[currentIndex].classList.add('active');
            }, intervalTime);
        }
    })();
&lt;/script&gt;</code></pre>
]]></description><link>https://forum.iobroker.net/post/1339323</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339323</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:29:42 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:29:03 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a> <a href="/post/1339319">sagte</a>:</p>
<p dir="auto">den neuen Code mal ansehen</p>
</blockquote>
<p dir="auto">ja, aber bitte in code tags setzen</p>
]]></description><link>https://forum.iobroker.net/post/1339322</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339322</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 17:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:24:53 GMT]]></title><description><![CDATA[<p dir="auto">Du hast da schon gute viel arbeit reingesteckt, und vorallen mit den vorlagen finde ich das super.</p>
]]></description><link>https://forum.iobroker.net/post/1339320</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339320</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:23:41 GMT]]></title><description><![CDATA[<p dir="auto">ah okay, ich habe den Code generieren lassen von KI, möchtest du dir den neuen Code mal ansehen, bzw. mal drüber fliegen ob der so okay ist ?</p>
]]></description><link>https://forum.iobroker.net/post/1339319</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339319</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:19:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a></p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a> <a href="/post/1339309">sagte</a>:</p>
<p dir="auto">Warum fragst du ?</p>
</blockquote>
<p dir="auto">sowie du es eingefügt hast ist es schwer zum kopieren gewesen.<br />
wenn du code einfügst musst du die immer in code tags setzen,<br />
das ist der knopf über dem eingabefeld im forum mit &lt;/&gt;<br />
ansonsten wird die formatierung von code zerhauen<br />
deswegen hat es jetzt länger gedauert</p>
<pre><code>&lt;style&gt;
#w_id_&lt;%- widgetid %&gt; { 
    height: 100%; display: flex; flex-direction: column; overflow: hidden; 
}
#w_id_&lt;%- widgetid %&gt; .content-area { 
    flex: 1; border: 1px solid #444; position: relative; overflow: auto; padding: 10px;
}
#w_id_&lt;%- widgetid %&gt; .slide {
    display: none;
}
#w_id_&lt;%- widgetid %&gt; .slide.active {
    display: block; animation: vis-fade 0.5s ease-in;
}
#w_id_&lt;%- widgetid %&gt; .controls {
    display: flex; justify-content: space-between; align-items: center; background: #222; padding: 5px; color: #fff;
}
@keyframes vis-fade {
    from { 
        opacity: 0; 
    } to { 
        opacity: 1; 
    } 
}
&lt;/style&gt;

&lt;div id="w_id_&lt;%- widgetid %&gt;"&gt;
&lt;div class="content-area"&gt;
&lt;% 
if (rss &amp;&amp; rss.articles &amp;&amp; rss.articles.length &gt; 0) { 
    rss.articles.forEach(function(item, index){ 
%&gt;
    &lt;div class="article slide"&gt;
        &lt;p&gt;&lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "DD.MM.YYYY HH:mm") %&gt;&lt;/small&gt;&lt;/p&gt;
        &lt;h3&gt;&lt;%- item.title %&gt;&lt;/h3&gt;
        &lt;div&gt;&lt;%- item.description %&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;%
    }); 
} else { 
%&gt;
&lt;p&gt;Keine Feeds gefunden. Prüfe die Instanz-Einstellungen.&lt;/p&gt;
&lt;% } %&gt;
&lt;/div&gt;
&lt;div class="controls"&gt;
    &lt;button onclick="window'go_&lt;%- widgetid %&gt;'"&gt;◀&lt;/button&gt;
    &lt;span class="pager"&gt;&lt;/span&gt;
    &lt;button onclick="window'go_&lt;%- widgetid %&gt;'"&gt;▶&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
// Sofort ausführen, um Variablen zu isolieren
(function() {
    debugger;
const id = 'w_id_&lt;%- widgetid %&gt;';
const speed = 5000; // 5 Sekunden
let cur = 0;
let timer;

    function refresh() {
        const el = document.getElementById(id);
        if (!el) return;
        const slides = el.querySelectorAll('.slide');
        const pager = el.querySelector('.pager');
        if (slides.length === 0) return;
        
        slides.forEach((s, i) =&gt; s.classList.toggle('active', i === cur));
        if (pager) pager.innerText = (cur + 1) + " / " + slides.length;
    }
 
    function start() {
        stop();
        timer = setInterval(() =&gt; window['go_&lt;%- widgetid %&gt;'](1), speed);
    }
 
    function stop() {
        if (timer) clearInterval(timer);
    }
 
    // Globaler Hook für Buttons
    window['go_&lt;%- widgetid %&gt;'] = function(n) {
        const slides = document.getElementById(id).querySelectorAll('.slide');
        cur = (cur + n + slides.length) % slides.length;
        refresh();
        start(); // Reset Timer
    };
 
    // Warte kurz, bis VIS das HTML gerendert hat
    setTimeout(() =&gt; {
        refresh();
        start();
    }, 500);
})();
&lt;/script&gt;

</code></pre>
<p dir="auto">ich muss mal ein Hinweis in der Doku noch hinzufügen.</p>
<p dir="auto">Problem ist hier die komprimierte css Darstellung. Da fummelt dann das Binding von vis rein. der Mechanismuss sucht immer nach dem Muster { .... }<br />
Daher muss json und css im Template die Klammern immer auf separate Zeilen stellen.</p>
]]></description><link>https://forum.iobroker.net/post/1339316</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339316</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 17:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:02:31 GMT]]></title><description><![CDATA[<p dir="auto">ich teste das Script gerade</p>
]]></description><link>https://forum.iobroker.net/post/1339312</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339312</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 17:01:11 GMT]]></title><description><![CDATA[<p dir="auto">Ich habe noch eine version die Funkoniert allerdings, die kannst du gerne haben.</p>
]]></description><link>https://forum.iobroker.net/post/1339311</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339311</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 17:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:57:25 GMT]]></title><description><![CDATA[<p dir="auto">Warum fragst du ?</p>
]]></description><link>https://forum.iobroker.net/post/1339309</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339309</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 16:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:55:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a></p>
<p dir="auto">wo hast das her?</p>
]]></description><link>https://forum.iobroker.net/post/1339308</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339308</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 16:55:44 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:53:14 GMT]]></title><description><![CDATA[<p dir="auto">funkoniert leider nicht wenn man es in dem VIs modus versetzt</p>
]]></description><link>https://forum.iobroker.net/post/1339307</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339307</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 16:53:14 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:48:05 GMT]]></title><description><![CDATA[<p dir="auto">&lt;style&gt;<br />
#w_id_&lt;%- widgetid %&gt; { height: 100%; display: flex; flex-direction: column; overflow: hidden; }<br />
#w_id_&lt;%- widgetid %&gt; .content-area { flex: 1; border: 1px solid #444; position: relative; overflow: auto; padding: 10px; }<br />
#w_id_&lt;%- widgetid %&gt; .slide { display: none; }<br />
#w_id_&lt;%- widgetid %&gt; .slide.active { display: block; animation: vis-fade 0.5s ease-in; }<br />
#w_id_&lt;%- widgetid %&gt; .controls { display: flex; justify-content: space-between; align-items: center; background: #222; padding: 5px; color: #fff; }<br />
@keyframes vis-fade { from { opacity: 0; } to { opacity: 1; } }<br />
&lt;/style&gt;</p>
<p dir="auto">&lt;div id="w_id_&lt;%- widgetid %&gt;"&gt;<br />
&lt;div class="content-area"&gt;<br />
&lt;% if (rss &amp;&amp; rss.articles &amp;&amp; rss.articles.length &gt; 0) { %&gt;<br />
&lt;% rss.articles.forEach(function(item, index){ %&gt;<br />
&lt;div class="article slide"&gt;<br />
&lt;p&gt;&lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "DD.MM.YYYY HH:mm") %&gt;&lt;/small&gt;&lt;/p&gt;<br />
&lt;h3&gt;&lt;%- item.title %&gt;&lt;/h3&gt;<br />
&lt;div&gt;&lt;%- item.description %&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;% }); %&gt;<br />
&lt;% } else { %&gt;<br />
&lt;p&gt;Keine Feeds gefunden. Prüfe die Instanz-Einstellungen.&lt;/p&gt;<br />
&lt;% } %&gt;<br />
&lt;/div&gt;<br />
&lt;div class="controls"&gt;<br />
&lt;button onclick="window<a href="-1">'go_&lt;%- widgetid %&gt;'</a>"&gt;◀&lt;/button&gt;<br />
&lt;span class="pager"&gt;&lt;/span&gt;<br />
&lt;button onclick="window<a href="1">'go_&lt;%- widgetid %&gt;'</a>"&gt;▶&lt;/button&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;</p>
<p dir="auto">&lt;script&gt;<br />
// Sofort ausführen, um Variablen zu isolieren<br />
(function() {<br />
const id = 'w_id_&lt;%- widgetid %&gt;';<br />
const speed = 5000; // 5 Sekunden<br />
let cur = 0;<br />
let timer;</p>
<pre><code>    function refresh() {
        const el = document.getElementById(id);
        if (!el) return;
        const slides = el.querySelectorAll('.slide');
        const pager = el.querySelector('.pager');
        if (slides.length === 0) return;
        
        slides.forEach((s, i) =&gt; s.classList.toggle('active', i === cur));
        if (pager) pager.innerText = (cur + 1) + " / " + slides.length;
    }

    function start() {
        stop();
        timer = setInterval(() =&gt; window['go_&lt;%- widgetid %&gt;'](1), speed);
    }

    function stop() {
        if (timer) clearInterval(timer);
    }

    // Globaler Hook für Buttons
    window['go_&lt;%- widgetid %&gt;'] = function(n) {
        const slides = document.getElementById(id).querySelectorAll('.slide');
        cur = (cur + n + slides.length) % slides.length;
        refresh();
        start(); // Reset Timer
    };

    // Warte kurz, bis VIS das HTML gerendert hat
    setTimeout(() =&gt; {
        refresh();
        start();
    }, 500);
})();
</code></pre>
<p dir="auto">&lt;/script&gt;</p>
]]></description><link>https://forum.iobroker.net/post/1339306</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339306</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 16:48:05 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:41:07 GMT]]></title><description><![CDATA[<p dir="auto">Blättert das skript alleine weiter ?</p>
]]></description><link>https://forum.iobroker.net/post/1339304</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339304</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 16:41:07 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:33:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/holly200289" aria-label="Profile: holly200289">@<bdi>holly200289</bdi></a></p>
<p dir="auto">ja, hol es dir nochmal von github.<br />
da habe ich es soeben korrigiert.<br />
ansonsten kannst du den fehler daran erkennen</p>
<p dir="auto">die folgende zeile</p>
<pre><code>    #&lt;%- widgetid % &gt; img.rssfeed {
</code></pre>
<p dir="auto">muss wie folgt sein</p>
<pre><code>    #&lt;%- widgetid %&gt; img.rssfeed {
</code></pre>
<p dir="auto">zwischen dem % und der schließenden klammer &gt; darf kein leerzeichen sein.<br />
das hat wie gedacht ein autoformatter von markdown in vscode verursacht.</p>
]]></description><link>https://forum.iobroker.net/post/1339302</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339302</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 12 May 2026 16:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Rssfeed geordnet anzeigen lassen on Tue, 12 May 2026 16:29:03 GMT]]></title><description><![CDATA[<pre><code>code_text
```&lt;!--
 available variables:
 widgetid      -&gt;  id of the widget
 rss.articles  -&gt;  all articles as array, details see Article Helper widget
 style         -&gt;  all style settings for the widget

 all variables are read only
--&gt;

&lt;style&gt;
    #&lt;%- widgetid % &gt; img {
        width: calc(&lt;%- style.width || '230px' %&gt; - 15px);
        height: auto;
    }
    #&lt;%- widgetid % &gt; img.rssfeed {
        width: auto;
        height: auto;
    }

    .container {
        overflow: hidden;
        height: 100%;
    }
    .content {
        position: relative;
        border: 1px solid #ccc;
        overflow: scroll;
        height: 90%;
    }

    .slide {
        position: absolute;
        display: none;
    }

    .slide.active {
        display: contents;
    }

    .controls {
        margin-top: 10px;
    }
&lt;/style&gt;

&lt;div class="container"&gt;
    &lt;div class="content"&gt;
        &lt;% rss.articles.forEach(function(item){ %&gt;
        &lt;div class="article slide"&gt;
            &lt;p&gt;
                &lt;small&gt;&lt;%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %&gt;&lt;/small&gt;
            &lt;/p&gt;
            &lt;h3&gt;&lt;%- item.title %&gt;&lt;/h3&gt;
            &lt;p&gt;&lt;%- item.description %&gt;&lt;/p&gt;
            &lt;div style="clear:both;"&gt;&lt;/div&gt;
        &lt;/div&gt;
        &lt;% }); %&gt;
    &lt;/div&gt;
    &lt;div class="controls"&gt;
        &lt;button onclick="prevSlide()"&gt;Zurück&lt;/button&gt;
        &lt;button onclick="nextSlide()"&gt;Weiter&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    currentSlide = 0;
    slides = document.querySelectorAll('.slide');

    function showSlide(index) {
        slides.forEach((slide, i) =&gt; {
            if (i === index) {
                slide.classList.add('active');
            } else {
                slide.classList.remove('active');
            }
        });
    }

    function prevSlide() {
        currentSlide = currentSlide &gt; 0 ? currentSlide - 1 : slides.length - 1;
        showSlide(currentSlide);
    }

    function nextSlide() {
        currentSlide = currentSlide &lt; slides.length - 1 ? currentSlide + 1 : 0;
        showSlide(currentSlide);
    }
    showSlide(currentSlide);
&lt;/script&gt;</code></pre>
]]></description><link>https://forum.iobroker.net/post/1339300</link><guid isPermaLink="true">https://forum.iobroker.net/post/1339300</guid><dc:creator><![CDATA[holly200289]]></dc:creator><pubDate>Tue, 12 May 2026 16:29:03 GMT</pubDate></item></channel></rss>