<?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[getState liefert anders Ergebnis als bei Objekt]]></title><description><![CDATA[<p dir="auto">Ich habe eine Liste mit Elementen als Objekt abglegt. "0_userdata.0.Strom.Strom_Tageswerte"</p>
<p dir="auto">[11.5,10.64,10.47,10.6,10.72,11.84,15.01,16.37,17.17,14.93,13.95,12.92,12,11.22,10.63,10.61,11.92,14.04,15.01,17.1,17.32,17.74,15.9,15]</p>
<p dir="auto">Wenn ich dann bei diese Liste auslese, als liste_test abspeichere und auf Element 2, 100 drauf schreibe. Wird scheinbar auch die liste von "0_userdata.0.Strom.Strom_Tageswerte" geändert</p>
<p dir="auto">liste_test = getState("0_userdata.0.Strom.Strom_Tageswerte").val</p>
<p dir="auto">liste_test[2]=100;</p>
<p dir="auto"><a href="http://console.info" rel="nofollow ugc">console.info</a>(getState("0_userdata.0.Strom.Strom_Tageswerte").val);<br />
<a href="http://console.info" rel="nofollow ugc">console.info</a>(liste_test);</p>
<p dir="auto">Ergebins im log<br />
javascript.0	09:42:46.741	info</p>
<p dir="auto">[<br />
11.5, 10.64,   100,  10.6,<br />
10.72, 11.84, 15.01, 16.37,<br />
17.17, 14.93, 13.95, 12.92,<br />
12, 11.22, 10.63, 10.61,<br />
11.92, 14.04, 15.01,  17.1,<br />
17.32, 17.74,  15.9,    15<br />
]</p>
<p dir="auto">javascript.0	09:42:46.741	info</p>
<p dir="auto">[<br />
11.5, 10.64,   100,  10.6,<br />
10.72, 11.84, 15.01, 16.37,<br />
17.17, 14.93, 13.95, 12.92,<br />
12, 11.22, 10.63, 10.61,<br />
11.92, 14.04, 15.01,  17.1,<br />
17.32, 17.74,  15.9,    15]</p>
<p dir="auto">Hat jemand eine Idee warum das so ist. Im Objektbaum sehe ich nach wie vor die ursprüngliche Liste.<br />
Wenn ich denn JavaScrip Adapter neu startet liefert getState auch wieder das richtige ergebnis.</p>
]]></description><link>https://forum.iobroker.net/topic/84178/getstate-liefert-anders-ergebnis-als-bei-objekt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 07:58:58 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/84178.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 31 Mar 2026 07:52:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 16:55:42 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/paul53" aria-label="Profile: paul53">@<bdi>paul53</bdi></a> <a href="/post/1332439">sagte</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oliverio" aria-label="Profile: OliverIO">@<bdi>OliverIO</bdi></a> [sagte]: Meinung das das der Adapter machen muss.</p>
</blockquote>
<p dir="auto">Als Javascript-Programmierer sollte man wissen, dass Arrays und Objekte referenziert werden.</p>
</blockquote>
<p dir="auto">Das weiß ich schon,<br />
Aber mehrfaches lesen eines datenpunkts sollte konsistent auch den echten Inhalt des datenpunkts liefern, auch wenn man in die variable das zwischenzeitlich was reinschreibt.<br />
Die meisten Nutzer wissen ja nix vom caching, welches sich ja auch noch an und ausschalten lässt.</p>
]]></description><link>https://forum.iobroker.net/post/1332445</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332445</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 31 Mar 2026 16:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 16:55:09 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oliverio" aria-label="Profile: OliverIO">@<bdi>OliverIO</bdi></a> [sagte]: Meinung das das der Adapter machen muss.</p>
</blockquote>
<p dir="auto">Als Javascript-Programmierer sollte man wissen, dass Arrays und Objekte referenziert werden.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ticaki" aria-label="Profile: ticaki">@<bdi>ticaki</bdi></a> <a href="/post/1332435">sagte</a>:<br />
Das getState liefert doch ein array, oder?</p>
</blockquote>
<p dir="auto"><em>getState(id)</em> liefert das <a href="https://www.iobroker.net/#de/documentation/basics/states.md" rel="nofollow ugc">Zustands-Objekt</a> (state) eines Datenpunktes. Das Array steht in <em>getState(id).val</em>, wenn der Datenpunkt vom Typ "array" ist.</p>
]]></description><link>https://forum.iobroker.net/post/1332439</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332439</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Tue, 31 Mar 2026 16:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 16:11:44 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 />
Das müsste beides funktionieren, in deinem Beispiel würde es aber keinen Fehler geben wenn in <code>.val</code> mist drin steht. Das getState liefert doch ein array, oder? Ich persönlich speichere nur stringifizierte Json und Arrays in der StatesDB. (und states haben immer die role json, type string)</p>
]]></description><link>https://forum.iobroker.net/post/1332435</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332435</guid><dc:creator><![CDATA[ticaki]]></dc:creator><pubDate>Tue, 31 Mar 2026 16:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 15:52:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ticaki" aria-label="Profile: ticaki">@<bdi>ticaki</bdi></a><br />
Deins ist richtiger<br />
Aber letze geschweifte Klammer vor das .val</p>
<pre><code>
const a = {...getState("0_userdata.0.Strom.Strom_Tageswerte")}.val;

</code></pre>
<p dir="auto"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring" rel="nofollow ugc">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring</a></p>
<p dir="auto">Slice funktioniert das nicht nur bei arrays?<br />
Da kommt doch ein Objekt zurück</p>
<p dir="auto">Dennoch bin ich der Meinung das das der Adapter machen muss.<br />
Sonst ist das Ergebnis unvorsehbar,<br />
Wie dieser thread auch beweist</p>
<p dir="auto">Da müsste man auf GitHub einen issue aufmachen</p>
]]></description><link>https://forum.iobroker.net/post/1332433</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332433</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 31 Mar 2026 15:52:50 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 15:43:22 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/paul53" aria-label="Profile: paul53">@<bdi>paul53</bdi></a><br />
Danke!</p>
]]></description><link>https://forum.iobroker.net/post/1332432</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332432</guid><dc:creator><![CDATA[GeraldK66]]></dc:creator><pubDate>Tue, 31 Mar 2026 15:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 15:17:25 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/geraldk66" aria-label="Profile: GeraldK66">@<bdi>GeraldK66</bdi></a> [sagte]: wie erstelle ich dann eine lokale Liste?</p>
</blockquote>
<p dir="auto"><a href="https://www.mediaevent.de/javascript/array-slice.html" rel="nofollow ugc">Siehe hier</a>.</p>
<pre><code>const liste_test = getState("0_userdata.0.Strom.Strom_Tageswerte").val.slice();
</code></pre>
]]></description><link>https://forum.iobroker.net/post/1332424</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332424</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Tue, 31 Mar 2026 15:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 15:04:39 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oliverio" aria-label="Profile: OliverIO">@<bdi>OliverIO</bdi></a> <a href="/post/1332419">sagte</a>:</p>
<pre><code>liste_test = …{getState("0_userdata.0.Strom.Strom_Tageswerte")}.val

</code></pre>
</blockquote>
<p dir="auto">Habs auch nicht getestet aber</p>
<pre><code>const a = getState("0_userdata.0.Strom.Strom_Tageswerte").val
const b = {...a};
// müsste zusammengefasst doch so aussehen oder?
const a = {...getState("0_userdata.0.Strom.Strom_Tageswerte").val};
</code></pre>
]]></description><link>https://forum.iobroker.net/post/1332422</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332422</guid><dc:creator><![CDATA[ticaki]]></dc:creator><pubDate>Tue, 31 Mar 2026 15:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 14:34:48 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/geraldk66" aria-label="Profile: GeraldK66">@<bdi>GeraldK66</bdi></a><br />
Konnte es nicht ausprobieren, aber theoretisch so</p>
<pre><code>liste_test = …{getState("0_userdata.0.Strom.Strom_Tageswerte")}.val

</code></pre>
]]></description><link>https://forum.iobroker.net/post/1332419</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332419</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 31 Mar 2026 14:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 14:07:20 GMT]]></title><description><![CDATA[<p dir="auto">Und wie erstelle ich dann eine lokale Liste?</p>
]]></description><link>https://forum.iobroker.net/post/1332416</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332416</guid><dc:creator><![CDATA[GeraldK66]]></dc:creator><pubDate>Tue, 31 Mar 2026 14:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 14:03:30 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/geraldk66" aria-label="Profile: GeraldK66">@<bdi>GeraldK66</bdi></a> [sagte]: ist liste_test nicht die lokale liste</p>
</blockquote>
<p dir="auto">Nein,</p>
<blockquote>
<p dir="auto">paul53 <a href="/post/1332350">sagte</a>:<br />
Die Variable liste_test zeigt in den Puffer der Javascript-Instanz.</p>
</blockquote>
]]></description><link>https://forum.iobroker.net/post/1332415</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332415</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Tue, 31 Mar 2026 14:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 13:55:25 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/paul53" aria-label="Profile: paul53">@<bdi>paul53</bdi></a><br />
Ich dachte mit diesem Befehl mach ich das</p>
<p dir="auto">liste_test = getState("0_userdata.0.Strom.Strom_Tageswerte").val</p>
<p dir="auto">ist liste_test nicht die lokale liste</p>
]]></description><link>https://forum.iobroker.net/post/1332411</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332411</guid><dc:creator><![CDATA[GeraldK66]]></dc:creator><pubDate>Tue, 31 Mar 2026 13:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 13:53:44 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/geraldk66" aria-label="Profile: GeraldK66">@<bdi>GeraldK66</bdi></a> [sagte: nur was bei liste_test geändert und nicht bei der ursprünglichen Liste.</p>
</blockquote>
<p dir="auto">Du hast die Änderung im Puffer der Javascript-Instanz gemacht.<br />
Will man eine Liste nur lokal bearbeiten, muss man sie erst in eine lokale Liste kopieren.</p>
]]></description><link>https://forum.iobroker.net/post/1332410</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332410</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Tue, 31 Mar 2026 13:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 13:47:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/paul53" aria-label="Profile: paul53">@<bdi>paul53</bdi></a></p>
<p dir="auto">Das verstehe ich jetzt nicht</p>
<pre><code>liste_test = getState("0_userdata.0.Strom.Strom_Tageswerte").val
liste_test[2]=100;

console.info(getState("0_userdata.0.Strom.Strom_Tageswerte").val);
console.info(liste_test);
</code></pre>
<p dir="auto">Ich hab mir eine Liste erstellt und diese hier "0_userdata.0.Strom.Strom_Tageswerte" abgespeichert.</p>
<p dir="auto">Nun wollte ich diese Liste mit getState auslesen und in eine lokale liste abspeichern, dann  gewisse Elemente ändern und dann mit setState bei einen anderen Objekt abspeicher.</p>
<p dir="auto">Es kommt mir aber komisch vor, dass getState("0_userdata.0.Strom.Strom_Tageswerte").val, das selbe Ergebnis liefert als liste_test.<br />
Ich hab ja nur was bei liste_test geändert und nicht bei der ursprünglichen Liste.</p>
]]></description><link>https://forum.iobroker.net/post/1332404</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332404</guid><dc:creator><![CDATA[GeraldK66]]></dc:creator><pubDate>Tue, 31 Mar 2026 13:47:07 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 09:10:28 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oliverio" aria-label="Profile: OliverIO">@<bdi>OliverIO</bdi></a> [sagte]: Höre ich zum ersten Mal das das im Adapter so ist.</p>
</blockquote>
<p dir="auto">Das war schon immer so. Die Variable <em>liste_test</em> zeigt in den Puffer der Javascript-Instanz.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/geraldk66" aria-label="Profile: GeraldK66">@<bdi>GeraldK66</bdi></a> <a href="/post/1332336">sagte</a>:<br />
Im Objektbaum sehe ich nach wie vor die ursprüngliche Liste.</p>
</blockquote>
<p dir="auto">Das ist die Liste im js-controller (Admin-Puffer). Wenn man die Liste mit <em>setState("0_userdata.0.Strom.Strom_Tageswerte", liste_test, true)</em> schreibt, stimmen beide Listen wieder überein.</p>
]]></description><link>https://forum.iobroker.net/post/1332350</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332350</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Tue, 31 Mar 2026 09:10:28 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 08:53:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/fernetmenta" aria-label="Profile: FernetMenta">@<bdi>FernetMenta</bdi></a></p>
<p dir="auto">Aber der Adapter sollte so ja nicht reagieren.<br />
Er sollte nur de-referenzierte Objekte herausgeben.<br />
Höre ich zum ersten Mal das das im Adapter so ist. Das müsste doch vorher schon jemand aufgefallen sein</p>
]]></description><link>https://forum.iobroker.net/post/1332348</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332348</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 31 Mar 2026 08:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 08:26:20 GMT]]></title><description><![CDATA[<p dir="auto">Wenn man den Javascript-Adapter nicht auf alle States subscribed, dürfte das so auch nicht auftreten, weil der Adapter dann keine eigenen Objekte auf die States vorhält. Man muss dann aber mit den async Funktionen von set/get State arbeiten.</p>
]]></description><link>https://forum.iobroker.net/post/1332342</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332342</guid><dc:creator><![CDATA[FernetMenta]]></dc:creator><pubDate>Tue, 31 Mar 2026 08:26:20 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 08:17:58 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> Nein, das ist die Natur von JS. Die Zuweisung übergibt eine Referenz auf ein Objekt, darum sehen wir in beiden logs die 100. Das Objekt in diesem Fall ist aber nicht das, was man im Objektbaum sieht. Darum steht da auch noch der unveränderte Wert.</p>
]]></description><link>https://forum.iobroker.net/post/1332341</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332341</guid><dc:creator><![CDATA[FernetMenta]]></dc:creator><pubDate>Tue, 31 Mar 2026 08:17:58 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 08:07:38 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/fernetmenta" aria-label="Profile: FernetMenta">@<bdi>FernetMenta</bdi></a> <a href="/post/1332338">sagte</a>:</p>
<p dir="auto"><a href="https://www.geeksforgeeks.org/javascript/pass-by-value-and-pass-by-reference-in-javascript/" rel="nofollow ugc">https://www.geeksforgeeks.org/javascript/pass-by-value-and-pass-by-reference-in-javascript/</a></p>
</blockquote>
<p dir="auto">Das wäre dann aber ein Problem des Adapters</p>
]]></description><link>https://forum.iobroker.net/post/1332339</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332339</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 31 Mar 2026 08:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 07:59:33 GMT]]></title><description><![CDATA[<p dir="auto"><a href="https://www.geeksforgeeks.org/javascript/pass-by-value-and-pass-by-reference-in-javascript/" rel="nofollow ugc">https://www.geeksforgeeks.org/javascript/pass-by-value-and-pass-by-reference-in-javascript/</a></p>
]]></description><link>https://forum.iobroker.net/post/1332338</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332338</guid><dc:creator><![CDATA[FernetMenta]]></dc:creator><pubDate>Tue, 31 Mar 2026 07:59:33 GMT</pubDate></item><item><title><![CDATA[Reply to getState liefert anders Ergebnis als bei Objekt on Tue, 31 Mar 2026 08:07:03 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/geraldk66" aria-label="Profile: GeraldK66">@<bdi>GeraldK66</bdi></a></p>
<p dir="auto">Das 2. Element ist doch 100.<br />
JavaScript fängt mit 0 zum zählen bei arrays an.<br />
Also 0,1,2….</p>
<p dir="auto">Gib mal direkt nach dem lesen und vor dem ändern noch die Liste aus. Nur um sicher zu gehen.</p>
<p dir="auto">Das ändern der variable löst eigentlich keine Änderung des datenpunkts aus. Da muss man schon bewusst schreiben.<br />
Evtl ist es ein caching Problem</p>
]]></description><link>https://forum.iobroker.net/post/1332337</link><guid isPermaLink="true">https://forum.iobroker.net/post/1332337</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Tue, 31 Mar 2026 08:07:03 GMT</pubDate></item></channel></rss>