<?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[subscribeForeignStates() und leerer Patter-String]]></title><description><![CDATA[<p dir="auto">In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.</p>
<p dir="auto">Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.</p>
<p dir="auto">Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).</p>
<p dir="auto">Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.</p>
]]></description><link>https://forum.iobroker.net/topic/84737/subscribeforeignstates-und-leerer-patter-string</link><generator>RSS for Node</generator><lastBuildDate>Sun, 14 Jun 2026 08:01:28 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/84737.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Jun 2026 07:39:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to subscribeForeignStates() und leerer Patter-String on Wed, 10 Jun 2026 14:29:26 GMT]]></title><description><![CDATA[<p dir="auto">Hab ich heute Vormittag schon gemacht.<br />
<a href="https://github.com/ioBroker/ioBroker.js-controller/issues/3325" rel="nofollow ugc">https://github.com/ioBroker/ioBroker.js-controller/issues/3325</a></p>
]]></description><link>https://forum.iobroker.net/post/1343728</link><guid isPermaLink="true">https://forum.iobroker.net/post/1343728</guid><dc:creator><![CDATA[tueftler17]]></dc:creator><pubDate>Wed, 10 Jun 2026 14:29:26 GMT</pubDate></item><item><title><![CDATA[Reply to subscribeForeignStates() und leerer Patter-String on Wed, 10 Jun 2026 14:27:49 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tueftler17" aria-label="Profile: tueftler17">@<bdi>tueftler17</bdi></a> <a href="/post/1343645">sagte</a>:</p>
<p dir="auto">In den letzten Tagen habe ich zusammen mit Dirk-Peter ein Problem in einem Adapter behoben. Dabei ist mir aufgefallen, dass ein Aufruf von subscribeForeignStates() mit einem leeren Pattern-String identisch wirkt wie mit einem '*'.</p>
<p dir="auto">Konkret war es hier dann so, dass unter bestimmten Umständen der User gar nicht die Möglichkeit haben einen State zum abonnieren einzutragen, daher der String leer geblieben ist und dann mit einem leeren String das subscribe aufgerufen wurde.</p>
<p dir="auto">Das führt bei einer größeren ioBroker-Installation zu einer "Event-Flut", die ein System deutlich verlangsamen kann. Ich hatte dann das Problem, dass teilweise auf Events erst nach 3 Sekunden reagiert wurde. Für technische Dinge mag das ja noch gehen, bei einem Lichtschalter hat es den WAF erheblich reduziert ;-).</p>
<p dir="auto">Daher mein Vorschlag: Ich empfehle einen Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung. Wenn man mit einem * aufruft hat kann das grundsätzlich Sinn haben, aber ich denke: Mit einem leeren String wird in der Regel ein Folgefehler sein.</p>
</blockquote>
<p dir="auto">Bitte  issue im js-controller anlegen.</p>
]]></description><link>https://forum.iobroker.net/post/1343726</link><guid isPermaLink="true">https://forum.iobroker.net/post/1343726</guid><dc:creator><![CDATA[mcm1957]]></dc:creator><pubDate>Wed, 10 Jun 2026 14:27:49 GMT</pubDate></item><item><title><![CDATA[Reply to subscribeForeignStates() und leerer Patter-String on Wed, 10 Jun 2026 14:12:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oliverio" aria-label="Profile: oliverio">@<bdi>oliverio</bdi></a><br />
Für meinen eigenen Adapter hätte ich ja gar keine Schmerzen damit. Und: Nachdem ich gesehen habe was passiert wenn man einen leeren String in den call gibt weiß ich zu 100%, dass ich das zu verhindern wissen werde. Meine Installation war durch den Fehler soweit kompromittiert, dass der WAF im Keller war und ich ernsthaft überlegt habe auf einen Konkurrenten zu ioBroker zu wechseln weil ich ein 3/4 Jahr das Problem nicht gefunden habe.</p>
<p dir="auto">Aber: Das Problem trat nicht in meinem Adapter auf und es gibt einen langen Thread dazu wo bei dem betroffenen Adapter schon länger über Performance-Themen gesprochen wurde. Da ist es bisher nicht aufgefallen. Mein Vorschlag ist daher für die gesamte Community gedacht, wenn es einen Eintrag im Log als Error gäbe: Dann wäre das Risiko deutlich geringer, dass dieses an anderen Stellen ebenfalls auffällt.</p>
<p dir="auto">Ich selber habe bei meinem System noch einen weiteren Fremd-Adapter im Verdacht das zu tun, aber da muss ich ran und ein paar debug-output-Zeilen "reinmogeln" und würde dann auch den Adapter-Entwickler anschreiben. Das sind aber alles Zufallsbefunde und kein strukturiertes Herangehen.</p>
<p dir="auto">Zwei Zeilen im ioBroker-Core könnten vielleicht zu einer echten Verbesserung führen.</p>
]]></description><link>https://forum.iobroker.net/post/1343723</link><guid isPermaLink="true">https://forum.iobroker.net/post/1343723</guid><dc:creator><![CDATA[tueftler17]]></dc:creator><pubDate>Wed, 10 Jun 2026 14:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to subscribeForeignStates() und leerer Patter-String on Wed, 10 Jun 2026 11:59:48 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tueftler17" aria-label="Profile: tueftler17">@<bdi>tueftler17</bdi></a></p>
<p dir="auto">Müsstest du als Adapter Entwickler nicht diesen Check einbauen?<br />
Man lässt Nutzer Eingaben eigentlich nicht ungeprüft auf System Funktionen los.</p>
<p dir="auto">Man könnte zb ersteinmal prüfen wie viele object ids die Eingabe ergibt und wenn es eine gewisse Grenze überschreitet einen warnhinweis auszugeben ob man das wirklich will</p>
]]></description><link>https://forum.iobroker.net/post/1343702</link><guid isPermaLink="true">https://forum.iobroker.net/post/1343702</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Wed, 10 Jun 2026 11:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to subscribeForeignStates() und leerer Patter-String on Wed, 10 Jun 2026 08:49:03 GMT]]></title><description><![CDATA[<p dir="auto">erledigt</p>
]]></description><link>https://forum.iobroker.net/post/1343657</link><guid isPermaLink="true">https://forum.iobroker.net/post/1343657</guid><dc:creator><![CDATA[tueftler17]]></dc:creator><pubDate>Wed, 10 Jun 2026 08:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to subscribeForeignStates() und leerer Patter-String on Wed, 10 Jun 2026 08:33:57 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/tueftler17" aria-label="Profile: tueftler17">@<bdi>tueftler17</bdi></a> [sagte]: Check bei subscribeForeignStates auf einen leeren String und entweder eine Warning- oder gar eine Error-Meldung.</p>
</blockquote>
<p dir="auto">Erstelle <a href="https://github.com/ioBroker/ioBroker.js-controller/issues" rel="nofollow ugc">Issue auf Github</a>.</p>
]]></description><link>https://forum.iobroker.net/post/1343654</link><guid isPermaLink="true">https://forum.iobroker.net/post/1343654</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Wed, 10 Jun 2026 08:33:57 GMT</pubDate></item></channel></rss>