<?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[(gelöst) Zeitdifferenz in Bindings errechnen]]></title><description><![CDATA[<p dir="auto">ich möchte die Zeitdifferenz zwischen der letzten Aktualisierung eines DP und der aktuellen Zeit mittels eines Bindings in VIS errechnen. Mein Ansatz ist wie folgt:</p>
<ul>
<li>als aktuelle Zeit entnehme ich dem DP <code>javascript.0.variables.dayTime.lc</code> (der sollte ja minütlich aktualisiert werden)</li>
<li>DP ist ein HmIP-Fenstersensor</li>
</ul>
<p dir="auto">Im HTML-Widget errechne die Werte wie folgt:</p>
<pre><code>{wert1:hm-rpc.0.001234567890123.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;(((parseInt(wert2)-parseInt(wert1))/1000)/3600)/24}d
{wert3:hm-rpc.0.001234567890123.1.STATE.lc;wert4:javascript.0.variables.dayTime.lc;(((parseInt(wert4)-parseInt(wert3))/1000)/3600)%24}h    
{wert5:hm-rpc.0.001234567890123.1.STATE.lc;wert6:javascript.0.variables.dayTime.lc;(((parseInt(wert6)-parseInt(wert5))/1000)%3600)/60}m
</code></pre>
<p dir="auto">die Ausgabe ist VIS ist jedoch: <code>NaNd NaNh NaNm</code></p>
<p dir="auto">hat da evt. jemanden einen Tipp zur Lösung?</p>
<p dir="auto">BTW:<br />
das Widget <code>Last change Timestamp</code> mit "Als Intervall" habe ich gesehen: da stört mich jedoch die ellenlange Ausgabe <code>vor 4 Stunden und 42 Minuten</code></p>
]]></description><link>https://forum.iobroker.net/topic/42497/gelöst-zeitdifferenz-in-bindings-errechnen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 11:25:21 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/42497.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 21 Feb 2021 12:46:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Fri, 05 Mar 2021 15:22:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/sborg" aria-label="Profile: sborg">@<bdi>sborg</bdi></a><br />
so funktioniert es tatsächlich:</p>
<pre><code>{wert1:hm-rpc.0.00123456789012.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;parseInt((wert2-wert1)/(1000)/(3600)/(24))}d
{wert3:hm-rpc.0.00123456789012.1.STATE.lc;wert4:javascript.0.variables.dayTime.lc;parseInt((wert4-wert3)/(1000)/(3600)%(24))}h
{wert5:hm-rpc.0.00123456789012.1.STATE.lc;wert6:javascript.0.variables.dayTime.lc;parseInt((wert6-wert5)/(1000)%(3600)/(60))}m
</code></pre>
<p dir="auto">Vielen Dank!</p>
]]></description><link>https://forum.iobroker.net/post/592730</link><guid isPermaLink="true">https://forum.iobroker.net/post/592730</guid><dc:creator><![CDATA[ice987]]></dc:creator><pubDate>Fri, 05 Mar 2021 15:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Mon, 01 Mar 2021 18:39:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ice987" aria-label="Profile: ice987">@<bdi>ice987</bdi></a> sagte in <a href="/post/589084">Zeitdifferenz in Bindings errechnen</a>:</p>
<blockquote>
<p dir="auto">edoch muss ich nun noch runden, da sonst die Kommastellen angezeigt werden:</p>
</blockquote>
<p dir="auto">Das liegt am "falschen" Klammern. Du subtrahierst zwei Ganzzahlen (dessen Ergebnis wieder eine Ganzzahl ist), das konvertierst du dann als Ganzzahl und teilst dann, was eine Fließkommazahl zum Ergebnis hat, die du nun ganzzahlig rundest.</p>
<p dir="auto">Einfacher: <strong>parseInt((wert1-wert)/(1000)/(3600)/(24))</strong> oder weiter reduziert: <strong>parseInt((wert1-wert)/(86400000))</strong><br />
Das "parseInt" über die gesamte Berechnung = Ergebnis als Ganzzahl</p>
<p dir="auto">Zum eigentlichen Problem: ich kann es nicht nachstellen, funktioniert wie erwartet/gewünscht. Einzig den Homematic-Teil kann ich mangels Hardware nicht nachstellen. Hast du es mal mit einem anderen Datenpunkt (nicht aus Homematic) probiert?<br />
Aktuelles System ist es bei mir ebenfalls, bliebe ev. noch Linux (bei mir) oder Windows (darf aber auch keinen Unterschied machen)?</p>
]]></description><link>https://forum.iobroker.net/post/590648</link><guid isPermaLink="true">https://forum.iobroker.net/post/590648</guid><dc:creator><![CDATA[SBorg]]></dc:creator><pubDate>Mon, 01 Mar 2021 18:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Sat, 27 Feb 2021 16:17:16 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/sborg" aria-label="Profile: sborg">@<bdi>sborg</bdi></a></p>
<p dir="auto">wenn ich nur die Berechnung (alle in einem HTML-Widget) wie folgt laufen lasse bekomme ich <code>NaN</code></p>
<pre><code>{wert1:hm-rpc.0.00123456789012.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;Math.floor((((parseInt(wert2-wert1))/(1000))/(3600))/(24))}d
{wert3:hm-rpc.0.00123456789012.1.STATE.lc;wert4:javascript.0.variables.dayTime.lc;Math.floor((((parseInt(wert4-wert3))/(1000))/(3600))%(24))}h    
{wert5:hm-rpc.0.00123456789012.1.STATE.lc;wert6:javascript.0.variables.dayTime.lc;Math.floor((((parseInt(wert6-wert5))/(1000))%(3600))/(60))}m
</code></pre>
<p dir="auto">wenn ich jedoch die Berechnung inkl. der einzelnen DP's ohne Berechnung laufen lasse (alle in einem HTML-Widget), funktioniert es. Jedoch muss ich nun noch runden, da sonst die Kommastellen angezeigt werden:</p>
<pre><code>{wert1:hm-rpc.0.00123456789012.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;Math.floor((((parseInt(wert2-wert1))/(1000))/(3600))/(24))}d
{wert3:hm-rpc.0.00123456789012.1.STATE.lc;wert4:javascript.0.variables.dayTime.lc;Math.floor((((parseInt(wert4-wert3))/(1000))/(3600))%(24))}h    
{wert5:hm-rpc.0.00123456789012.1.STATE.lc;wert6:javascript.0.variables.dayTime.lc;Math.floor((((parseInt(wert6-wert5))/(1000))%(3600))/(60))}m
{javascript.0.variables.dayTime.lc}
{hm-rpc.0.00123456789012.1.STATE.lc}
</code></pre>
<p dir="auto">das System ist aktuell:<br />
vis: v1.3.4<br />
Node.js: v12.21.0<br />
NPM: 6.14.11<br />
JS-Controller: 3.2.16</p>
]]></description><link>https://forum.iobroker.net/post/589084</link><guid isPermaLink="true">https://forum.iobroker.net/post/589084</guid><dc:creator><![CDATA[ice987]]></dc:creator><pubDate>Sat, 27 Feb 2021 16:17:16 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Sat, 27 Feb 2021 09:42:35 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ice987" aria-label="Profile: ice987">@<bdi>ice987</bdi></a> <em>String</em> ist "ok" (ja, eigentlich falsch), denn Bindings werden <strong>immer</strong> als "String" gelesen.<br />
Nutzt du den aktuellen JS-Controller/JS?<br />
Ich habe es jetzt noch anders probiert, sogar mit "dayTime", funktioniert...<br />
Kann ich mir zwar nicht vorstellen, aber was ich nicht nachstellen kann ist HM, da ich keins habe/nutze. "dayTime" funktioniert, sonst alles richtig, deswegen nimm doch mal testweise einen anderen Nicht-HM-Datenpunkt.</p>
<p dir="auto">...oder noch testweise (beides in der Syntax identische Unix-Timestamps?):</p>
<pre><code>{hm-rpc.0.00123456789012.1.STATE.lc}
{javascript.0.variables.dayTime.lc}
</code></pre>
]]></description><link>https://forum.iobroker.net/post/588810</link><guid isPermaLink="true">https://forum.iobroker.net/post/588810</guid><dc:creator><![CDATA[SBorg]]></dc:creator><pubDate>Sat, 27 Feb 2021 09:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Fri, 26 Feb 2021 14:32:34 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/sborg" aria-label="Profile: sborg">@<bdi>sborg</bdi></a> sagte in <a href="/post/587047">Zeitdifferenz in Bindings errechnen</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ice987" aria-label="Profile: ice987">@<bdi>ice987</bdi></a> Ich habe es eben mal ausprobiert, so funktioniert es. "parseInt" ist doch nötig, da er beim teilen sonst direkt float aus dem Ergebnis macht:</p>
<pre><code>{v:0_userdata.0.xxx.lc;v1:0_userdata.0.yyy.lc; parseInt((v1-v)/(86400000))} Tage
</code></pre>
</blockquote>
<p dir="auto">ich krieg's nach wie vor nicht hin: auch dein genannter Vorschlag gibt (bei mir) <code>NaN Tage</code></p>
<p dir="auto">Meine Untersuchung:</p>
<pre><code>{v:hm-rpc.0.00123456789012.1.STATE.lc;typeof(v)}
</code></pre>
<p dir="auto">AUSGABE: <code>string</code></p>
<pre><code>{v1:javascript.0.variables.dayTime.lc;typeof(v1)}
</code></pre>
<p dir="auto">AUSGABE: <code>string</code></p>
<pre><code>{v:hm-rpc.0.00123456789012.1.STATE.lc;v1:javascript.0.variables.dayTime.lc;typeof(v1-v)}
</code></pre>
<p dir="auto">AUSGABE: <code>number</code></p>
<pre><code>{v:hm-rpc.0.00123456789012.1.STATE.lc;v1:javascript.0.variables.dayTime.lc;v1-v}
{v:hm-rpc.0.00123456789012.1.STATE.lc;v1:javascript.0.variables.dayTime.lc;(v1-v)}
{v:hm-rpc.0.00123456789012.1.STATE.lc;v1:javascript.0.variables.dayTime.lc;parseInt(v1-v)}
{v:hm-rpc.0.00123456789012.1.STATE.lc;v1:javascript.0.variables.dayTime.lc;parseInt(v1)-parseInt(v)}
</code></pre>
<p dir="auto">AUSGABE immer: <code>NaN</code></p>
<p dir="auto">irgendwie leuchtet mir das (noch) nicht ein...</p>
]]></description><link>https://forum.iobroker.net/post/588365</link><guid isPermaLink="true">https://forum.iobroker.net/post/588365</guid><dc:creator><![CDATA[ice987]]></dc:creator><pubDate>Fri, 26 Feb 2021 14:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Tue, 23 Feb 2021 19:20:25 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ice987" aria-label="Profile: ice987">@<bdi>ice987</bdi></a> Ich habe es eben mal ausprobiert, so funktioniert es. "parseInt" ist doch nötig, da er beim teilen sonst direkt float aus dem Ergebnis macht:</p>
<pre><code>{v:0_userdata.0.xxx.lc;v1:0_userdata.0.yyy.lc; parseInt((v1-v)/(86400000))} Tage

oder als Langversion:
{v:0_userdata.0.xxx.lc;v1:0_userdata.0.yyy.lc; parseInt((v1-v)/(1000)/(3600)/(24))} Tage
</code></pre>
]]></description><link>https://forum.iobroker.net/post/587047</link><guid isPermaLink="true">https://forum.iobroker.net/post/587047</guid><dc:creator><![CDATA[SBorg]]></dc:creator><pubDate>Tue, 23 Feb 2021 19:20:25 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Mon, 22 Feb 2021 14:59:29 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/sborg" aria-label="Profile: sborg">@<bdi>sborg</bdi></a><br />
Vielen Dank für deine Rückmeldung. Ich kriege auch die folgenden beiden Bindings nicht zum laufen. Als resultat erhalte ich immer <code>NaNd NaNh NaNm</code>:</p>
<pre><code>{wert1:hm-rpc.0.00123456789012.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;(((wert2-wert1)/(1000))/(3600))/(24)}d
{wert3:hm-rpc.0.00123456789012.1.STATE.lc;wert4:javascript.0.variables.dayTime.lc;(((wert4-wert3)/(1000))/(3600))%(24)}h    
{wert5:hm-rpc.0.00123456789012.1.STATE.lc;wert6:javascript.0.variables.dayTime.lc;(((wert6-wert5)/(1000))%(3600))/(60)}m
</code></pre>
<pre><code>{wert1:hm-rpc.0.00123456789012.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;(((parseInt(wert2)-parseInt(wert1))/(1000))/(3600))/(24)}d
{wert3:hm-rpc.0.00123456789012.1.STATE.lc;wert4:javascript.0.variables.dayTime.lc;(((parseInt(wert4)-parseInt(wert3))/(1000))/(3600))%(24)}h    
{wert5:hm-rpc.0.00123456789012.1.STATE.lc;wert6:javascript.0.variables.dayTime.lc;(((parseInt(wert6)-parseInt(wert5))/(1000))%(3600))/(60)}m
</code></pre>
<p dir="auto">gibt da evtl. einen weiteren Trick?</p>
]]></description><link>https://forum.iobroker.net/post/586343</link><guid isPermaLink="true">https://forum.iobroker.net/post/586343</guid><dc:creator><![CDATA[ice987]]></dc:creator><pubDate>Mon, 22 Feb 2021 14:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to (gelöst) Zeitdifferenz in Bindings errechnen on Sun, 21 Feb 2021 15:34:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ice987" aria-label="Profile: ice987">@<bdi>ice987</bdi></a> "Direkt" teilen geht IMO nicht, da er dies fehl interpretiert. Versuche mal:</p>
<pre><code>{wert1:hm-rpc.0.001234567890123.1.STATE.lc;wert2:javascript.0.variables.dayTime.lc;(((parseInt(wert2)-parseInt(wert1))/(1000))/(3600))/(24)}d
</code></pre>
<p dir="auto">Beim ".lc" müsste es auch direkt ohne "parseInt" funktionieren. Der wird gleich als Integer interpretiert.</p>
]]></description><link>https://forum.iobroker.net/post/585622</link><guid isPermaLink="true">https://forum.iobroker.net/post/585622</guid><dc:creator><![CDATA[SBorg]]></dc:creator><pubDate>Sun, 21 Feb 2021 15:34:45 GMT</pubDate></item></channel></rss>