<?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[Javascript ausführen nach Uhrzeit]]></title><description><![CDATA[<p dir="auto">Hallo zusammen,</p>
<p dir="auto">ich benutze im Schlafzimmer ein echo show 5 als Wecker. Da ich immer verschiedene Weckzeiten habe, stelle ich das Wecker jeden Abend neu, z. B. "Alexa stelle ein Wecker um 8 Uhr".</p>
<p dir="auto">Ich würde gerne ein Script herstellen der mein Badezimmerheizung (Homematic) 2 Std. vor Weckzeit auf 23 grad stellt.</p>
<p dir="auto">Ich habe bereits ein Script herstellt der triggert wenn eine neue Wecker gesetzt wird und Status und Uhrzeit auf zwei Datenpunkte schreibt:</p>
<pre><code>on(/^alexa2\.0\.Echo-Devices\..+\.Alarm\..+\.enabled/, function (obj) {
    var dpWeckerAktiv = "0_userdata.0.Heizung.weckerSchalzimmerAktiv";
    var dpUhrzeit = "0_userdata.0.Heizung.weckerUhrzeit";
    if (!existsState(dpWeckerAktiv)) {
        createState(dpWeckerAktiv, {name: "weckerSchalzimmerAktiv", role: "state", type: "boolean", read: true, write: true})
    }
    if (!existsState(dpUhrzeit)) {
        createState(dpUhrzeit, {name: "weckerUhrzeit", role: "state", type: "mixed", read: true, write: true})
    }
    if (obj.state.val) {
        setState(dpWeckerAktiv, true);
        setState(dpUhrzeit, getState(obj.channelId + ".time").val);
    }
    else {
        setState(dpWeckerAktiv, false);
    }  
});
</code></pre>
<p dir="auto">Hat jemand eine Idee wie ich an Badezimmerthermostat den neue Solltemperatur senden kann wenn</p>
<p dir="auto">Datenpunkt '0_userdata.0.Heizung.weckerSchalzimmerAktiv' == true<br />
und Aktulle Uhrzeit 2 Stunden vor Datempunkt 'weckerUhrzeit' ist?</p>
<p dir="auto">Vielen dank im Voraus.</p>
]]></description><link>https://forum.iobroker.net/topic/62295/javascript-ausführen-nach-uhrzeit</link><generator>RSS for Node</generator><lastBuildDate>Tue, 12 May 2026 20:44:29 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/62295.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Jan 2023 19:08:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Javascript ausführen nach Uhrzeit on Sun, 22 Jan 2023 10:25:55 GMT]]></title><description><![CDATA[<p dir="auto">Hallo zusammen,</p>
<p dir="auto">ich bin selber zu einer Lösung gekommen.</p>
<p dir="auto">Falls jemand eine bessere Einsatz hat werde ich mich darüber freuen.</p>
<p dir="auto">Falls jemand Interesse hat hier meine Lösung:</p>
<p dir="auto">2 Scripten, einer prüft ob eine neue Wecker gestellt wurde falls ja wird ein zweiter Script wird aktiviert der jede Minute prüft ob aktuelle Uhrzeit 2 stunden vor Weckzeit ist. Wenn die 2 Stunden erreicht werden dann wird der 2. Script deaktiviert und die Temperatur in Badezimmer auf 23 grad gestellt.</p>
<p dir="auto">Script Prüfung nach neue Wecker:</p>
<pre><code>on(/^alexa2\.0\.Echo-Devices\..+\.Alarm\..+\.enabled/, function (obj) {
    var weckerAktivDp = "0_userdata.0.Heizung.weckerAktiveDp";
    var obWecker = obj.channelId;
    var wecker = obWecker + ".nextTriggerDate";

    if (!existsState(weckerAktivDp)) {
        createState(weckerAktivDp, {name: "weckerAktivDp", role: "state", type: "string", read: true, write: true})
    }

    if (obj.state.val) {
        setState("javascript.0.scriptEnabled.Heizung.BadHeizungVorWeckzeitNeu",true);
        setState(weckerAktivDp, wecker);
        log("timer eingeschaltet");

    }
    else {
        setState("javascript.0.scriptEnabled.Heizung.BadHeizungVorWeckzeitNeu",false);
        log("timer ausgeschaltet");
    }  
});
</code></pre>
<p dir="auto">Script countdown bis die 2 Stunden vor Weckzeit erreicht werden:</p>
<pre><code>schedule("*/60 * * * * *", async function () {
    var sollTemp = 23;
    var dp = getState("0_userdata.0.Heizung.weckerAktiveDp").val;
    var startDate = new Date(getState(dp).val);
    startDate.setHours(startDate.getHours()-2);
    var currentDate = new Date();
    var sDate = startDate.getTime();
    var cDate = currentDate.getTime();

    if (sDate &lt; cDate) {
        setState("hm-rpc.1.INT0000001.1.SET_TEMPERATURE",sollTemp);
        setState("javascript.0.scriptEnabled.Heizung.BadHeizungVorWeckzeitNeu",false);
    }
});
</code></pre>
<p dir="auto">Schöne Sonntag an alle.</p>
]]></description><link>https://forum.iobroker.net/post/933275</link><guid isPermaLink="true">https://forum.iobroker.net/post/933275</guid><dc:creator><![CDATA[gcaruso]]></dc:creator><pubDate>Sun, 22 Jan 2023 10:25:55 GMT</pubDate></item></channel></rss>