<?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[Wie lege ich den datenpunkt an?]]></title><description><![CDATA[<p dir="auto">Hallo Zusammen, ich probiere gerade ein über KI erstelltes Script für meine Einspeisung. Ich möchte gerne das Script so haben das es mir täglich die KWh udn die € ausgibt und es soll mir dann jeden Tag auch die addierte Summe (kumulativ) von den tagen zuvor für KWh und € ausgeben. Nun habe ich mal anhand der Datenpunkte ein Sript erstellen lassen...leider weiss ich aber nicht wie ich den Datenpunkt "'Einspeisung Jahr gesamt'" und "'Einspeisung Jahr gesamt (€)'" anlegen muss -&gt;</p>
<pre><code>// ── Jahres-Datenpunkte anlegen (falls nicht vorhanden) ─────────
createState(DP_JAHR_KWH, {
    name: 'Einspeisung Jahr gesamt',
    type: 'number',
    role: 'value.energy',
    unit: 'kWh',
    read: true,
    write: true,
    def: 0
});

createState(DP_JAHR_EURO, {
    name: 'Einspeisung Jahr gesamt (€)',
    type: 'number',
    role: 'value.money',
    unit: '€',
    read: true,
    write: true,
    def: 0
});
</code></pre>
<p dir="auto">Hier mal das ganze Script bis dahin..</p>
<p dir="auto">Kann hier bitte mal ein Scriptler drüberschauen und mir das erklären bitte.<br />
Über ne Info herzlichen Dank.</p>
<pre><code>// ═══════════════════════════════════════════════════════════════
// Einspeisung – Tageswerte + robuste Jahressumme
// ═══════════════════════════════════════════════════════════════

// ── Deine vorhandenen Datenpunkte ──────────────────────────────
const DP_HEUTE_KWH  = '0_userdata.0.Einspeisung.heute_kWh';
const DP_HEUTE_EURO = '0_userdata.0.Einspeisung.heute_euro';

// ── Zielstruktur ───────────────────────────────────────────────
const DP_PREFIX     = '0_userdata.0.Einspeisung.Tage.';
const DP_JAHR_KWH   = '0_userdata.0.Einspeisung.jahr_kWh';
const DP_JAHR_EURO  = '0_userdata.0.Einspeisung.jahr_euro';

// ── Jahres-Datenpunkte anlegen (falls nicht vorhanden) ─────────
createState(DP_JAHR_KWH, {
    name: 'Einspeisung Jahr gesamt',
    type: 'number',
    role: 'value.energy',
    unit: 'kWh',
    read: true,
    write: true,
    def: 0
});

createState(DP_JAHR_EURO, {
    name: 'Einspeisung Jahr gesamt (€)',
    type: 'number',
    role: 'value.money',
    unit: '€',
    read: true,
    write: true,
    def: 0
});

// ═══════════════════════════════════════════════════════════════
// Datum erzeugen → 2026-04-09
// ═══════════════════════════════════════════════════════════════
function getDatum() {
    const d = new Date();
    return d.getFullYear() + '-' +
        String(d.getMonth() + 1).padStart(2, '0') + '-' +
        String(d.getDate()).padStart(2, '0');
}

// ═══════════════════════════════════════════════════════════════
// Tageswerte speichern
// ═══════════════════════════════════════════════════════════════
function speichereTag() {

    const datum = getDatum();

    const kwh  = parseFloat(getState(DP_HEUTE_KWH).val)  || 0;
    const euro = parseFloat(getState(DP_HEUTE_EURO).val) || 0;

    const dpKwh  = DP_PREFIX + datum + '_kWh';
    const dpEuro = DP_PREFIX + datum + '_euro';

    createState(dpKwh, {
        name: 'Einspeisung ' + datum,
        type: 'number',
        role: 'value.energy',
        unit: 'kWh',
        read: true,
        write: false
    }, () =&gt; setState(dpKwh, kwh, true));

    createState(dpEuro, {
        name: 'Vergütung ' + datum,
        type: 'number',
        role: 'value.money',
        unit: '€',
        read: true,
        write: false
    }, () =&gt; setState(dpEuro, euro, true));

    log(`📅 ${datum}: ${kwh} kWh | ${euro} € gespeichert`, 'info');

    jahressummeNeuBerechnen();
}

// ═══════════════════════════════════════════════════════════════
// ROBUSTE Jahressumme (aus allen Tagen neu berechnet)
// ═══════════════════════════════════════════════════════════════
function jahressummeNeuBerechnen() {

    const jahr = new Date().getFullYear();
    const states = $('state[id=' + DP_PREFIX + '*]');

    let sumKwh = 0;
    let sumEuro = 0;

    states.each(function (id) {

        if (!id.includes(jahr)) return;

        const val = parseFloat(getState(id).val) || 0;

        if (id.endsWith('_kWh')) {
            sumKwh += val;
        } else if (id.endsWith('_euro')) {
            sumEuro += val;
        }
    });

    sumKwh  = Math.round(sumKwh * 100) / 100;
    sumEuro = Math.round(sumEuro * 100) / 100;

    setState(DP_JAHR_KWH, sumKwh, true);
    setState(DP_JAHR_EURO, sumEuro, true);

    log(`📊 Jahr ${jahr}: ${sumKwh} kWh | ${sumEuro} €`, 'info');
}

// ═══════════════════════════════════════════════════════════════
// Täglich ausführen (23:55 Uhr)
// ═══════════════════════════════════════════════════════════════
schedule('55 23 * * *', speichereTag);

// Beim Start einmal berechnen (wichtig!)
jahressummeNeuBerechnen();

log('✅ Einspeisungs-Script aktiv', 'info');
</code></pre>
]]></description><link>https://forum.iobroker.net/topic/84255/wie-lege-ich-den-datenpunkt-an</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 22:32:41 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/84255.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Apr 2026 09:09:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Fri, 10 Apr 2026 09:38:38 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/chrunchy" aria-label="Profile: Chrunchy">@<bdi>Chrunchy</bdi></a> <a href="/post/1333798">sagte</a>:</p>
<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/1333624">sagte</a>:</p>
<pre><code>@Chrunchy [sagte]: Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt.
</code></pre>
<p dir="auto">Wie kommst du darauf?</p>
</blockquote>
<p dir="auto">Hatt das hier (<a href="https://forum.iobroker.net/topic/75919/createstate-deprecated">https://forum.iobroker.net/topic/75919/createstate-deprecated</a>) so verstanden.</p>
</blockquote>
<p dir="auto">Das eine ist Adapterentwicklung das andere Javascript-Adapter - ich benutze in beiden "extendObject" - für nicht Adapterentwickler ist <code>createStates()</code> aber besser.</p>
]]></description><link>https://forum.iobroker.net/post/1333801</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333801</guid><dc:creator><![CDATA[ticaki]]></dc:creator><pubDate>Fri, 10 Apr 2026 09:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Fri, 10 Apr 2026 09:29:37 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/1333624">sagte</a>:</p>
<pre><code>@Chrunchy [sagte]: Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt.
</code></pre>
<p dir="auto">Wie kommst du darauf?</p>
</blockquote>
<p dir="auto">Hatt das hier (<a href="https://forum.iobroker.net/topic/75919/createstate-deprecated">https://forum.iobroker.net/topic/75919/createstate-deprecated</a>) so verstanden.</p>
]]></description><link>https://forum.iobroker.net/post/1333798</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333798</guid><dc:creator><![CDATA[Chrunchy]]></dc:creator><pubDate>Fri, 10 Apr 2026 09:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 18:04:20 GMT]]></title><description><![CDATA[<p dir="auto">o.k. danke für die Info</p>
]]></description><link>https://forum.iobroker.net/post/1333703</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333703</guid><dc:creator><![CDATA[Kusselin]]></dc:creator><pubDate>Thu, 09 Apr 2026 18:04:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 17:05:48 GMT]]></title><description><![CDATA[<p dir="auto">ja. Allerdings wirst du auf Dauer keinen Spaß haben, denn da wird ja jeden Tag mindestens ein weiterer Datenpunkt angelegt. Wenn du daraus eine Historie ableiten willst, völlig ungeeignet - wurde aber schon weiter oben angesprochen.</p>
<p dir="auto">Ro75.</p>
]]></description><link>https://forum.iobroker.net/post/1333698</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333698</guid><dc:creator><![CDATA[Ro75]]></dc:creator><pubDate>Thu, 09 Apr 2026 17:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 13:30:08 GMT]]></title><description><![CDATA[<p dir="auto">Nee isses nicht..sonst würd ich doch nicht fragen....<br />
O.K. nochmal für mich...im Script ist das hier hinterlegt:</p>
<pre><code>// ── Jahres-Datenpunkte anlegen (falls nicht vorhanden) ─────────
createState(DP_JAHR_KWH, {
    name: 'Einspeisung Jahr gesamt',
    type: 'number',
    role: 'value.energy',
    unit: 'kWh',
    read: true,
    write: true,
    def: 0
});

createState(DP_JAHR_EURO, {
    name: 'Einspeisung Jahr gesamt (€)',
    type: 'number',
    role: 'value.money',
    unit: '€',
    read: true,
    write: true,
    def: 0
});
</code></pre>
<p dir="auto">das heisst doch aber das das Script den Datenpunkt schon automatisch anlegt...da muss ich doch nichts mehr in 0_userdata anlegen...oder?</p>
]]></description><link>https://forum.iobroker.net/post/1333667</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333667</guid><dc:creator><![CDATA[Kusselin]]></dc:creator><pubDate>Thu, 09 Apr 2026 13:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 13:22:58 GMT]]></title><description><![CDATA[<p dir="auto">Na GANZ genau so wie in  deinem Script. Das sollte doch aber klar sein.</p>
]]></description><link>https://forum.iobroker.net/post/1333665</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333665</guid><dc:creator><![CDATA[warp735]]></dc:creator><pubDate>Thu, 09 Apr 2026 13:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 12:01:59 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/1333633">sagte</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> [sagte]: aber das raff ich</p>
</blockquote>
<p dir="auto">Was raffst du nicht?<br />
Der Kommentar in Zeile 14 beschreibt lediglich die Wirkung der nachfolgenden zwei <em>createState()</em>.</p>
</blockquote>
<p dir="auto">O.K. ich dachte immer wenn das da steht muss ich es auch anlegen....</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/da_woody" aria-label="Profile: da_Woody">@<bdi>da_Woody</bdi></a> <a href="/post/1333634">sagte</a>:</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> erstell dir in 0_userdata einen DP, den kannste dann verwenden...<br />
<img src="/assets/uploads/files/1775734314856-b3f5142c-f178-461d-8080-4a65a25852cd-image.jpeg" alt="b3f5142c-f178-461d-8080-4a65a25852cd-image.jpeg" class=" img-fluid img-markdown" /></p>
</blockquote>
<p dir="auto">Wenn ich mir einen datenpunkt da anlege...wie soll der heissen???? udn wie verwende ich den dann?</p>
]]></description><link>https://forum.iobroker.net/post/1333640</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333640</guid><dc:creator><![CDATA[Kusselin]]></dc:creator><pubDate>Thu, 09 Apr 2026 12:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 11:32:19 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> erstell dir in 0_userdata einen DP, den kannste dann verwenden...<br />
<img src="/assets/uploads/files/1775734314856-b3f5142c-f178-461d-8080-4a65a25852cd-image.jpeg" alt="b3f5142c-f178-461d-8080-4a65a25852cd-image.jpeg" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.iobroker.net/post/1333634</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333634</guid><dc:creator><![CDATA[da_Woody]]></dc:creator><pubDate>Thu, 09 Apr 2026 11:32:19 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 11:30:35 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> [sagte]: aber das raff ich</p>
</blockquote>
<p dir="auto">Was raffst du nicht?<br />
Der Kommentar in Zeile 14 beschreibt lediglich die Wirkung der nachfolgenden zwei <em>createState()</em>.</p>
]]></description><link>https://forum.iobroker.net/post/1333633</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333633</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Thu, 09 Apr 2026 11:30:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 11:23:45 GMT]]></title><description><![CDATA[<p dir="auto">sorry paul aber das raff ich nicht..tue mir immer schwer und muss immer noch nach all den Jahren schwierig nachfragen hier...</p>
]]></description><link>https://forum.iobroker.net/post/1333630</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333630</guid><dc:creator><![CDATA[Kusselin]]></dc:creator><pubDate>Thu, 09 Apr 2026 11:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 11:16:13 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> [sagte]: Script mir ja sagt hier</p>
</blockquote>
<p dir="auto"><a href="https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#createstate" rel="nofollow ugc">createState(id, common)</a> erstellt von sich aus nur nicht vorhandene Datenpunkte.</p>
]]></description><link>https://forum.iobroker.net/post/1333626</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333626</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Thu, 09 Apr 2026 11:16:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 10:51:09 GMT]]></title><description><![CDATA[<p dir="auto">Ja aber muss ich die datenpunkte neu anlegen erst also diese hier?<br />
Einspeisung Jahr gesamt<br />
Einspeisung Jahr gesamt (€)</p>
<p dir="auto">das raff ich nicht weil das Script mir ja sagt hier -&gt;</p>
<pre><code>// ── Jahres-Datenpunkte anlegen (falls nicht vorhanden) ─────────
</code></pre>
<p dir="auto">Das verstehe ich nicht....</p>
]]></description><link>https://forum.iobroker.net/post/1333625</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333625</guid><dc:creator><![CDATA[Kusselin]]></dc:creator><pubDate>Thu, 09 Apr 2026 10:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 10:45:56 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/chrunchy" aria-label="Profile: Chrunchy">@<bdi>Chrunchy</bdi></a> [sagte]: Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt.</p>
</blockquote>
<p dir="auto">Wie kommst du darauf?</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> [sagte]: Datenpunkt "'Einspeisung Jahr gesamt'" und "'Einspeisung Jahr gesamt (€)'" anlegen muss</p>
</blockquote>
<p dir="auto">Ändere common.write in <em>false</em>.</p>
<p dir="auto">Für die Ermittlung von Periodenwerten inkl. Kosten gibt es den Adapter <a href="https://github.com/DrozmotiX/ioBroker.sourceanalytix" rel="nofollow ugc">Sourceanalytix</a>.</p>
]]></description><link>https://forum.iobroker.net/post/1333624</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333624</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Thu, 09 Apr 2026 10:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lege ich den datenpunkt an? on Thu, 09 Apr 2026 09:48:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kusselin" aria-label="Profile: Kusselin">@<bdi>Kusselin</bdi></a> ist nicht ganz deine Frage, aber wenn du etwas grafisches möchtest (grafana und influxdb) kann ich dir folgendes von <a class="plugin-mentions-user plugin-mentions-a" href="/user/haus-automatisierung" aria-label="Profile: haus-automatisierung">@<bdi>haus-automatisierung</bdi></a> empfehlen:<br />
<a href="https://haus-automatisierung.com/software/influxdb/2023/05/11/influxdb2-pv-dashboard.html" rel="nofollow ugc">https://haus-automatisierung.com/software/influxdb/2023/05/11/influxdb2-pv-dashboard.html</a></p>
<p dir="auto">Zu deiner Frage...<br />
In ioBroker wird die Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt.</p>
<p dir="auto">Beispiel:</p>
<pre><code>// Beispiel für 0_userdata.0
setObjectNotExists('0_userdata.0.Test.Variable', {
    common: { name: 'Test Variable', type: 'boolean', role: 'switch' },
    type: 'state'
});

</code></pre>
<p dir="auto">Bei deinen Datenpunkten sollte role:'value' die richtige Option sein.</p>
]]></description><link>https://forum.iobroker.net/post/1333615</link><guid isPermaLink="true">https://forum.iobroker.net/post/1333615</guid><dc:creator><![CDATA[Chrunchy]]></dc:creator><pubDate>Thu, 09 Apr 2026 09:48:11 GMT</pubDate></item></channel></rss>