<?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[Zentrale Scripts mit Funktionen oder Konstanten in ioBroker]]></title><description><![CDATA[<p dir="auto">Hallo zusammen,</p>
<p dir="auto">ich möchte in ioBroker ein oder zwei Scripte erstellen in denen ich für mein Projekt allgemeine Konstanten und Funktionen hinterlegen kann und von anderen Java-Scripten darauf zugreifen. Ich habe dazu im Ordner "Allgemeine Scripte (common)" das Script GPS_Config angleget</p>
<pre><code>// --------------------------------------------------------------------------
// global/GPS_Config
// 2026-06-12a: zentrale GPS Konfiguration
// --------------------------------------------------------------------------
var GPS_Config = {
    LatHome:        47.3
    LonHome:        7.8
    RadiusHome:     500,
    MaxJump:        200,
    NightStart:     21,
    NightEnd:       7,
    PauseThreshold: 2 * 3600 * 1000
};

function haversine(lat1, lon1, lat2, lon2) {
    const R = 6371000;
    const toRad = x =&gt; x * Math.PI / 180;
    const dLat = toRad(lat2 - lat1);
    const dLon = toRad(lon2 - lon1);
    const a = Math.sin(dLat/2) * Math.sin(dLat/2)
            + Math.cos(toRad(lat1)) * Math.cos(toRad(lat2))
            * Math.sin(dLon/2) * Math.sin(dLon/2);
    return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
}

</code></pre>
<p dir="auto">Wenn ich auf die Werte und Funktionen mit</p>
<pre><code>log(GPS_Config.LatHome);      
log(haversine(47.0, 7.0, 47.1, 7.1).toFixed(0) + 'm');
</code></pre>
<p dir="auto">zugreifen will bekomme ich</p>
<pre><code>javascript.0	17:08:09.742	error Error: ReferenceError: GPS_Config is not defined
javascript.0	17:08:09.742	error at script.js.GPS_Test:2:5
javascript.0	17:08:09.742	error at script.js.GPS_Test:9:3
javascript.0	17:08:09.742	error at Script.runInContext (node:vm:149:12)
</code></pre>
<p dir="auto">Gibt es eine Möglichkeit zentrale Konstanten und Funktionen zu definieren?</p>
<p dir="auto">Danke und Grüße<br />
Gerd</p>
]]></description><link>https://forum.iobroker.net/topic/84757/zentrale-scripts-mit-funktionen-oder-konstanten-in-iobroker</link><generator>RSS for Node</generator><lastBuildDate>Sat, 13 Jun 2026 10:33:21 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/84757.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Jun 2026 15:13:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 16:04:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/norwegen60" aria-label="Profile: Norwegen60">@<bdi>Norwegen60</bdi></a></p>
<p dir="auto">das ist vernachlässigbar, wenn du da nicht tonnen von text oder komplexe objekte ablegst.</p>
<p dir="auto">ein einzelne number konstante verbraucht max 8 Byte<br />
text ca 20-30 Bytes für die Verwaltung eines Strings plus 1 byte für einfache Zeichen oder 2-4 Bytes für unicode zeichen</p>
]]></description><link>https://forum.iobroker.net/post/1344111</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344111</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Fri, 12 Jun 2026 16:04:07 GMT</pubDate></item><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 16:00:53 GMT]]></title><description><![CDATA[<p dir="auto">Also der Tip mit Experten-Modus hat funktioniert. Danke.<br />
Mein Script funktioniert jetzt auch. Incl. der Konstanten.<br />
Wenn die Konstanten in jedes Script kopiert werden, benötigt das wahrscheinlich schon RAM, aber bei 10 Scripts dürfte das überschaubar sein. Auch wenn nicht alle Konstanten in allen Scripts benötigt werden. Wäre aber schon mal interessant.<br />
Ich könnte die Konstanten mal raus schmeißen. Kann ich den RAM-Verbrauch irgendwo sehen? free -h ist da wohl etwas zu grob</p>
]]></description><link>https://forum.iobroker.net/post/1344106</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344106</guid><dc:creator><![CDATA[Norwegen60]]></dc:creator><pubDate>Fri, 12 Jun 2026 16:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 15:38:01 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/norwegen60" aria-label="Profile: Norwegen60">@<bdi>Norwegen60</bdi></a> [sagte]: Gibt es einen Grund dass dort keine Konstanten definiert werden sollen.</p>
</blockquote>
<p dir="auto">Ich denke, dass Konstanten in jedem Skript RAM belegen, was auf <em>getState(id)</em> allerdings auch zutrifft.</p>
]]></description><link>https://forum.iobroker.net/post/1344099</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344099</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Fri, 12 Jun 2026 15:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 15:30:18 GMT]]></title><description><![CDATA[<p dir="auto">Ich weiß, ich könnte die Werte auch in Datenpunkte auslagern, aber der Weg über eine zentrale Config erschien mir für diese spezifischen Werte übersichtlicher als immer über GetState().val darauf zuzugreifen</p>
]]></description><link>https://forum.iobroker.net/post/1344098</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344098</guid><dc:creator><![CDATA[Norwegen60]]></dc:creator><pubDate>Fri, 12 Jun 2026 15:30:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 15:25:58 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/norwegen60" aria-label="Profile: Norwegen60">@<bdi>Norwegen60</bdi></a></p>
<p dir="auto">wie paul schon geschrieben hat, werden die globalskripte einfach nur intern vor jedes skript kopiert. das jeweilige skript läuft in seinem eigenen namensraum und weiß von den anderen skripten/global skripten erst einmal nichts.<br />
dh  Werte die in variablen gespeichert werden, stehen den anderen skripten nicht zur verfügung.<br />
dazu müsste man ein separates skript schreiben mit welchem man mit messageTo und onMessage kommunizieren kann. Wobei da sich eher Datenpunkte anbieten.</p>
<p dir="auto">Aber für Konstanten und allgemeine Funktionen die zustandslos arbeiten ist das so ok</p>
]]></description><link>https://forum.iobroker.net/post/1344096</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344096</guid><dc:creator><![CDATA[OliverIO]]></dc:creator><pubDate>Fri, 12 Jun 2026 15:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 15:25:57 GMT]]></title><description><![CDATA[<p dir="auto">Vielen Dank für die schnelle Antwort. Gibt es einen Grund dass dort keine Konstanten definiert werden sollen. Es handelt sich um ein geschlossenes Projekt das auf dem Raspberry läuft. Die Anzahl der Scripte wird wohl bei 10 +/- liegen</p>
]]></description><link>https://forum.iobroker.net/post/1344095</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344095</guid><dc:creator><![CDATA[Norwegen60]]></dc:creator><pubDate>Fri, 12 Jun 2026 15:25:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zentrale Scripts mit Funktionen oder Konstanten in ioBroker on Fri, 12 Jun 2026 15:23:03 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/norwegen60" aria-label="Profile: Norwegen60">@<bdi>Norwegen60</bdi></a> [sagte: Gibt es eine Möglichkeit zentrale Konstanten und Funktionen zu definieren?</p>
</blockquote>
<p dir="auto">Häufig verwendete eigene Funktionen werden in Skripten unter der Gruppe "global" (Expertenmodus) definiert.<br />
Globale Skripte werden vor dem Kompilieren <strong>in alle anderen Skripte kopiert</strong> und dort ausgeführt.</p>
]]></description><link>https://forum.iobroker.net/post/1344092</link><guid isPermaLink="true">https://forum.iobroker.net/post/1344092</guid><dc:creator><![CDATA[paul53]]></dc:creator><pubDate>Fri, 12 Jun 2026 15:23:03 GMT</pubDate></item></channel></rss>