Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Alexa Wecker schaltet Beleuchtung an

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    340

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Alexa Wecker schaltet Beleuchtung an

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblockly
60 Beiträge 13 Kommentatoren 7.4k Aufrufe 13 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B bishop

    @xbow42
    würdest du mir dein blockly für den Wecker zur Verfügung stellen!?!
    Würde auch gerne auf ICal/Feiertage reagieren damit er den Wecker dann ausschaltet.

    Danke
    Grüße

    X Offline
    X Offline
    xbow42
    schrieb am zuletzt editiert von xbow42
    #51

    @bishop
    ich bin mir nicht sicher, ob du damit was anfangen kannst.
    so 1zu1 wird das nicht laufen da ich weitere Adapter nutze und manuell angelegte DP unter userdata.0 angelegt habe. Mein ICal-Adapter filtert auf "Urlaub".

    Die Funktion "chk_IsWorkingDay" , hilft dir vieleicht dein Script anzupassen.
    iobroker_script_chk_IsWorkingDay.png
    Edit optimierte chk_Funktion:

    <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defreturn" id="w)XegB]vEJkV_0eX]6Qc" x="462.99492026748976" y="-512.0510259487883">
     <field name="NAME">chk_isWorkingDay</field>
     <comment pinned="false" h="80" w="160">Funktion - Ist aktueller Tag ein Arbeitstag? (iCal/Feiertag-Adapter)</comment>
     <statement name="STACK">
       <block type="variables_set" id="i?z|+p`afay)h4l5A(M_">
         <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
         <value name="VALUE">
           <block type="logic_negate" id="6*qRRQ$aCx.:T03Eqv^o">
             <value name="BOOL">
               <block type="logic_operation" id="a#e8Ku_;:UcuHr).Gd(a" inline="false">
                 <field name="OP">OR</field>
                 <value name="A">
                   <block type="logic_operation" id="1Uq#I7@}iyEG27`^+T[m" inline="false">
                     <field name="OP">OR</field>
                     <value name="A">
                       <block type="get_value" id="H(*G_1H]p-.$3OI1P.Yc">
                         <field name="ATTR">val</field>
                         <field name="OID">feiertage.0.heute.boolean</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="get_value" id="_^95;?E8rUNUA0,t4M?G">
                         <field name="ATTR">val</field>
                         <field name="OID">ical.0.events.0.today.Urlaub</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <value name="B">
                   <block type="logic_operation" id="upyRkyiaX,bAwQ8E]WMR" inline="false">
                     <field name="OP">OR</field>
                     <value name="A">
                       <block type="logic_compare" id=".4o(!h+4!LE5wl4Z)5Bg">
                         <field name="OP">EQ</field>
                         <value name="A">
                           <block type="time_get" id="FLfeVsl:h(K*eqz,;:ev">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                             <field name="OPTION">wd</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="math_number" id="+W9B-clYl6nM3l2}|oqx">
                             <field name="NUM">0</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <value name="B">
                       <block type="logic_compare" id="m(L2ytt)gZ5cq2yL17dw">
                         <field name="OP">EQ</field>
                         <value name="A">
                           <block type="time_get" id="@nw.m$8S=3m|l}m}pB;c">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                             <field name="OPTION">wd</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="math_number" id="(~^XXmzPIC8fv7+,j~(F">
                             <field name="NUM">6</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="control" id="#7Yn85R$R|n#0oF*_1[v">
             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
             <field name="OID">0_userdata.0.Allgemein.IsWorkingDay</field>
             <field name="WITH_DELAY">FALSE</field>
             <value name="VALUE">
               <block type="variables_get" id="KlK$-Xp5Kx{O0yf;bNrT">
                 <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
               </block>
             </value>
           </block>
         </next>
       </block>
     </statement>
     <value name="RETURN">
       <block type="variables_get" id="[:l(YYM|Zjgm_D[zT0$p">
         <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
       </block>
     </value>
    </block>
    


    iobroker_AlexaWecker.txt

    Export DP_Wecker
    0_userdata.0.Geräte.Wecker.json

    B 1 Antwort Letzte Antwort
    0
    • X xbow42

      @bishop
      ich bin mir nicht sicher, ob du damit was anfangen kannst.
      so 1zu1 wird das nicht laufen da ich weitere Adapter nutze und manuell angelegte DP unter userdata.0 angelegt habe. Mein ICal-Adapter filtert auf "Urlaub".

      Die Funktion "chk_IsWorkingDay" , hilft dir vieleicht dein Script anzupassen.
      iobroker_script_chk_IsWorkingDay.png
      Edit optimierte chk_Funktion:

      <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defreturn" id="w)XegB]vEJkV_0eX]6Qc" x="462.99492026748976" y="-512.0510259487883">
       <field name="NAME">chk_isWorkingDay</field>
       <comment pinned="false" h="80" w="160">Funktion - Ist aktueller Tag ein Arbeitstag? (iCal/Feiertag-Adapter)</comment>
       <statement name="STACK">
         <block type="variables_set" id="i?z|+p`afay)h4l5A(M_">
           <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
           <value name="VALUE">
             <block type="logic_negate" id="6*qRRQ$aCx.:T03Eqv^o">
               <value name="BOOL">
                 <block type="logic_operation" id="a#e8Ku_;:UcuHr).Gd(a" inline="false">
                   <field name="OP">OR</field>
                   <value name="A">
                     <block type="logic_operation" id="1Uq#I7@}iyEG27`^+T[m" inline="false">
                       <field name="OP">OR</field>
                       <value name="A">
                         <block type="get_value" id="H(*G_1H]p-.$3OI1P.Yc">
                           <field name="ATTR">val</field>
                           <field name="OID">feiertage.0.heute.boolean</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="get_value" id="_^95;?E8rUNUA0,t4M?G">
                           <field name="ATTR">val</field>
                           <field name="OID">ical.0.events.0.today.Urlaub</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="B">
                     <block type="logic_operation" id="upyRkyiaX,bAwQ8E]WMR" inline="false">
                       <field name="OP">OR</field>
                       <value name="A">
                         <block type="logic_compare" id=".4o(!h+4!LE5wl4Z)5Bg">
                           <field name="OP">EQ</field>
                           <value name="A">
                             <block type="time_get" id="FLfeVsl:h(K*eqz,;:ev">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                               <field name="OPTION">wd</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id="+W9B-clYl6nM3l2}|oqx">
                               <field name="NUM">0</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <value name="B">
                         <block type="logic_compare" id="m(L2ytt)gZ5cq2yL17dw">
                           <field name="OP">EQ</field>
                           <value name="A">
                             <block type="time_get" id="@nw.m$8S=3m|l}m}pB;c">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                               <field name="OPTION">wd</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id="(~^XXmzPIC8fv7+,j~(F">
                               <field name="NUM">6</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
           </value>
           <next>
             <block type="control" id="#7Yn85R$R|n#0oF*_1[v">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">0_userdata.0.Allgemein.IsWorkingDay</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="variables_get" id="KlK$-Xp5Kx{O0yf;bNrT">
                   <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                 </block>
               </value>
             </block>
           </next>
         </block>
       </statement>
       <value name="RETURN">
         <block type="variables_get" id="[:l(YYM|Zjgm_D[zT0$p">
           <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
         </block>
       </value>
      </block>
      


      iobroker_AlexaWecker.txt

      Export DP_Wecker
      0_userdata.0.Geräte.Wecker.json

      B Offline
      B Offline
      bishop
      schrieb am zuletzt editiert von
      #52

      @xbow42
      werde mal schauen was ich verwenden kann!

      vielen dank

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        Paddex
        schrieb am zuletzt editiert von
        #53

        Hallo,

        ich möchte das Thema noch einmal aufgreifen und auch hier mal meine Frage stellen.
        Ich möchte bei mir eine Steuerung programmieren, die 30 Minuten vor dem ersten eingestellten Wecker die Heizung im Badezimmer anmachen soll.

        Dafür itteriere ich Nachts um 4 Uhr über alle Alarm-Ordner (später kann man den dies auch machen lassen, wenn z.B. in der Alexa Summery das Stichwort Wecker hällt). Suche die raus die "true" sind, packen sie dann in eine Liste welche ich dann sortiere.

        Dann siehe ich von der kleinsten Uhrzeit 30 Minuten ab und habe die Lösung :-)

        JUHU - dachte ich ...

        Leider musste ich feststellen, dass wenn ein neuer Wecker angelegt wird, das Script diesen nicht findet. Erst wenn ich den javascript Adapter neu starte, erst dann findet er den neuen Wecker.

        Hier erstmal mein Code:

        var lst_Alarme, lst_Weckzeiten, int_Anzahl, acID, i, str_Weckzeit, str_kleinsteWeckzeitMinus30Min, VorWecker1;
        
        function listsGetSortCompare(type, direction) {
          var compareFuncs = {
            "NUMERIC": function(a, b) {
                return Number(a) - Number(b); },
            "TEXT": function(a, b) {
                return a.toString() > b.toString() ? 1 : -1; },
            "IGNORE_CASE": function(a, b) {
                return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },
          };
          var compare = compareFuncs[type];
          return function(a, b) { return compare(a, b) * direction; }
        }
        
        
        // Alle Alarme von Schlafzimmer Echo Dot
        lst_Alarme = Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.alexa2.0.Echo-Devices.G09XXXXXXXXXX.Alarm.*.enabled]"));
        lst_Weckzeiten = [];
        int_Anzahl = 0;
        if (!lst_Alarme.length) {
          console.log('Keine Alarme gefunden');
        } else {
          for (var acID_index in lst_Alarme) {
            acID = lst_Alarme[acID_index];
            int_Anzahl = (typeof int_Anzahl == 'number' ? int_Anzahl : 0) + 1;
            console.log(([int_Anzahl,' - ',acID,' - ',getState(acID).val].join('')));
            if (getState(acID).val) {
              console.log(([acID,' - ',getState(acID).val].join('')));
              str_Weckzeit = getState((String(acID.slice(0, acID.length - 7)) + 'time')).val;
              lst_Weckzeiten.push(getDateObject(str_Weckzeit).getTime());
            }
          }
          if (!lst_Weckzeiten.length) {
            console.log('Keine AKTIVIERTEN Alarme gefunden');
          } else {
            console.log('fertige Liste durchsuchen');
            for (var i_index in lst_Weckzeiten) {
              i = lst_Weckzeiten[i_index];
              console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
            }
            console.log('sortierte  Liste');
            var i_list = lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1));
            for (var i_index2 in i_list) {
              i = i_list[i_index2];
              console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
            }
            console.log('kleinste Element');
            console.log(('' + formatDate(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])), "hh:mm:ss")));
            console.log('kleinste Element - 30 Minuten');
            str_kleinsteWeckzeitMinus30Min = ('' + formatDate(getDateObject((parseFloat(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])).getTime()) - 30 * 1000 * 60)), "hh:mm:ss"));
            console.log(str_kleinsteWeckzeitMinus30Min);
            console.log('kleinste Element - 30 Minuten');
            (function () {if (VorWecker1) {clearSchedule(VorWecker1); VorWecker1 = null;}})();
            VorWecker1 = schedule((getDateObject(str_kleinsteWeckzeitMinus30Min).getMinutes()).toString().trim() + ' ' + getDateObject(str_kleinsteWeckzeitMinus30Min).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
            });
          }
        }
        

        Und hier noch mal in zusammengesetztes Bild vom Blockly:

        BlocklyScriptAlexaWecker.png

        Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..

        Vielen Dank und ich bin gespannt

        dslraserD Dr. BakteriusD 2 Antworten Letzte Antwort
        0
        • P Paddex

          Hallo,

          ich möchte das Thema noch einmal aufgreifen und auch hier mal meine Frage stellen.
          Ich möchte bei mir eine Steuerung programmieren, die 30 Minuten vor dem ersten eingestellten Wecker die Heizung im Badezimmer anmachen soll.

          Dafür itteriere ich Nachts um 4 Uhr über alle Alarm-Ordner (später kann man den dies auch machen lassen, wenn z.B. in der Alexa Summery das Stichwort Wecker hällt). Suche die raus die "true" sind, packen sie dann in eine Liste welche ich dann sortiere.

          Dann siehe ich von der kleinsten Uhrzeit 30 Minuten ab und habe die Lösung :-)

          JUHU - dachte ich ...

          Leider musste ich feststellen, dass wenn ein neuer Wecker angelegt wird, das Script diesen nicht findet. Erst wenn ich den javascript Adapter neu starte, erst dann findet er den neuen Wecker.

          Hier erstmal mein Code:

          var lst_Alarme, lst_Weckzeiten, int_Anzahl, acID, i, str_Weckzeit, str_kleinsteWeckzeitMinus30Min, VorWecker1;
          
          function listsGetSortCompare(type, direction) {
            var compareFuncs = {
              "NUMERIC": function(a, b) {
                  return Number(a) - Number(b); },
              "TEXT": function(a, b) {
                  return a.toString() > b.toString() ? 1 : -1; },
              "IGNORE_CASE": function(a, b) {
                  return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },
            };
            var compare = compareFuncs[type];
            return function(a, b) { return compare(a, b) * direction; }
          }
          
          
          // Alle Alarme von Schlafzimmer Echo Dot
          lst_Alarme = Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.alexa2.0.Echo-Devices.G09XXXXXXXXXX.Alarm.*.enabled]"));
          lst_Weckzeiten = [];
          int_Anzahl = 0;
          if (!lst_Alarme.length) {
            console.log('Keine Alarme gefunden');
          } else {
            for (var acID_index in lst_Alarme) {
              acID = lst_Alarme[acID_index];
              int_Anzahl = (typeof int_Anzahl == 'number' ? int_Anzahl : 0) + 1;
              console.log(([int_Anzahl,' - ',acID,' - ',getState(acID).val].join('')));
              if (getState(acID).val) {
                console.log(([acID,' - ',getState(acID).val].join('')));
                str_Weckzeit = getState((String(acID.slice(0, acID.length - 7)) + 'time')).val;
                lst_Weckzeiten.push(getDateObject(str_Weckzeit).getTime());
              }
            }
            if (!lst_Weckzeiten.length) {
              console.log('Keine AKTIVIERTEN Alarme gefunden');
            } else {
              console.log('fertige Liste durchsuchen');
              for (var i_index in lst_Weckzeiten) {
                i = lst_Weckzeiten[i_index];
                console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
              }
              console.log('sortierte  Liste');
              var i_list = lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1));
              for (var i_index2 in i_list) {
                i = i_list[i_index2];
                console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
              }
              console.log('kleinste Element');
              console.log(('' + formatDate(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])), "hh:mm:ss")));
              console.log('kleinste Element - 30 Minuten');
              str_kleinsteWeckzeitMinus30Min = ('' + formatDate(getDateObject((parseFloat(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])).getTime()) - 30 * 1000 * 60)), "hh:mm:ss"));
              console.log(str_kleinsteWeckzeitMinus30Min);
              console.log('kleinste Element - 30 Minuten');
              (function () {if (VorWecker1) {clearSchedule(VorWecker1); VorWecker1 = null;}})();
              VorWecker1 = schedule((getDateObject(str_kleinsteWeckzeitMinus30Min).getMinutes()).toString().trim() + ' ' + getDateObject(str_kleinsteWeckzeitMinus30Min).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
              });
            }
          }
          

          Und hier noch mal in zusammengesetztes Bild vom Blockly:

          BlocklyScriptAlexaWecker.png

          Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..

          Vielen Dank und ich bin gespannt

          dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #54

          @paddex sagte in Alexa Wecker schaltet Beleuchtung an:

          Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..
          Vielen Dank und ich bin gespannt

          Vielleicht hilft Dir das hier

          https://forum.iobroker.net/post/608712

          1 Antwort Letzte Antwort
          0
          • P Paddex

            Hallo,

            ich möchte das Thema noch einmal aufgreifen und auch hier mal meine Frage stellen.
            Ich möchte bei mir eine Steuerung programmieren, die 30 Minuten vor dem ersten eingestellten Wecker die Heizung im Badezimmer anmachen soll.

            Dafür itteriere ich Nachts um 4 Uhr über alle Alarm-Ordner (später kann man den dies auch machen lassen, wenn z.B. in der Alexa Summery das Stichwort Wecker hällt). Suche die raus die "true" sind, packen sie dann in eine Liste welche ich dann sortiere.

            Dann siehe ich von der kleinsten Uhrzeit 30 Minuten ab und habe die Lösung :-)

            JUHU - dachte ich ...

            Leider musste ich feststellen, dass wenn ein neuer Wecker angelegt wird, das Script diesen nicht findet. Erst wenn ich den javascript Adapter neu starte, erst dann findet er den neuen Wecker.

            Hier erstmal mein Code:

            var lst_Alarme, lst_Weckzeiten, int_Anzahl, acID, i, str_Weckzeit, str_kleinsteWeckzeitMinus30Min, VorWecker1;
            
            function listsGetSortCompare(type, direction) {
              var compareFuncs = {
                "NUMERIC": function(a, b) {
                    return Number(a) - Number(b); },
                "TEXT": function(a, b) {
                    return a.toString() > b.toString() ? 1 : -1; },
                "IGNORE_CASE": function(a, b) {
                    return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },
              };
              var compare = compareFuncs[type];
              return function(a, b) { return compare(a, b) * direction; }
            }
            
            
            // Alle Alarme von Schlafzimmer Echo Dot
            lst_Alarme = Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.alexa2.0.Echo-Devices.G09XXXXXXXXXX.Alarm.*.enabled]"));
            lst_Weckzeiten = [];
            int_Anzahl = 0;
            if (!lst_Alarme.length) {
              console.log('Keine Alarme gefunden');
            } else {
              for (var acID_index in lst_Alarme) {
                acID = lst_Alarme[acID_index];
                int_Anzahl = (typeof int_Anzahl == 'number' ? int_Anzahl : 0) + 1;
                console.log(([int_Anzahl,' - ',acID,' - ',getState(acID).val].join('')));
                if (getState(acID).val) {
                  console.log(([acID,' - ',getState(acID).val].join('')));
                  str_Weckzeit = getState((String(acID.slice(0, acID.length - 7)) + 'time')).val;
                  lst_Weckzeiten.push(getDateObject(str_Weckzeit).getTime());
                }
              }
              if (!lst_Weckzeiten.length) {
                console.log('Keine AKTIVIERTEN Alarme gefunden');
              } else {
                console.log('fertige Liste durchsuchen');
                for (var i_index in lst_Weckzeiten) {
                  i = lst_Weckzeiten[i_index];
                  console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                }
                console.log('sortierte  Liste');
                var i_list = lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1));
                for (var i_index2 in i_list) {
                  i = i_list[i_index2];
                  console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                }
                console.log('kleinste Element');
                console.log(('' + formatDate(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])), "hh:mm:ss")));
                console.log('kleinste Element - 30 Minuten');
                str_kleinsteWeckzeitMinus30Min = ('' + formatDate(getDateObject((parseFloat(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])).getTime()) - 30 * 1000 * 60)), "hh:mm:ss"));
                console.log(str_kleinsteWeckzeitMinus30Min);
                console.log('kleinste Element - 30 Minuten');
                (function () {if (VorWecker1) {clearSchedule(VorWecker1); VorWecker1 = null;}})();
                VorWecker1 = schedule((getDateObject(str_kleinsteWeckzeitMinus30Min).getMinutes()).toString().trim() + ' ' + getDateObject(str_kleinsteWeckzeitMinus30Min).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                });
              }
            }
            

            Und hier noch mal in zusammengesetztes Bild vom Blockly:

            BlocklyScriptAlexaWecker.png

            Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..

            Vielen Dank und ich bin gespannt

            Dr. BakteriusD Online
            Dr. BakteriusD Online
            Dr. Bakterius
            Most Active
            schrieb am zuletzt editiert von
            #55

            @paddex Siehe auch: https://github.com/ioBroker/ioBroker.javascript/issues/109

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              Paddex
              schrieb am zuletzt editiert von
              #56

              Hallo und Danke,

              werde es jetzt die Tage versuch produktiev zu setzen. Erste Test waren schon mal erfolgreich.
              Wenn das Script um 4 Uhr laufen soll, dann lasse ich den Adapter jetzt einfach um 3:59 neu starten. Funktioniert super über den Expertenmodus in der Instanzenansicht.
              Noch mal Danke an alle.

              Gruß

              haselchenH 1 Antwort Letzte Antwort
              0
              • P Paddex

                Hallo und Danke,

                werde es jetzt die Tage versuch produktiev zu setzen. Erste Test waren schon mal erfolgreich.
                Wenn das Script um 4 Uhr laufen soll, dann lasse ich den Adapter jetzt einfach um 3:59 neu starten. Funktioniert super über den Expertenmodus in der Instanzenansicht.
                Noch mal Danke an alle.

                Gruß

                haselchenH Offline
                haselchenH Offline
                haselchen
                Most Active
                schrieb am zuletzt editiert von
                #57

                @apollon77

                Nimmt Amazon das übel wenn man wie @Paddex das macht und jede Nacht den Adapter neu startet?

                Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                apollon77A 1 Antwort Letzte Antwort
                0
                • haselchenH haselchen

                  @apollon77

                  Nimmt Amazon das übel wenn man wie @Paddex das macht und jede Nacht den Adapter neu startet?

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #58

                  @haselchen Sollte denen egal sein

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    Paddex
                    schrieb am zuletzt editiert von
                    #59

                    Wieso sollte Amazon einem das übel nehmen? ich starte den JavaScript Adapter neu, nicht den Alexa. Durch den Neustart kennt er die neuen Datenpunkte die Alexa bei jedem neuem Wecker anlegt.

                    haselchenH 1 Antwort Letzte Antwort
                    0
                    • P Paddex

                      Wieso sollte Amazon einem das übel nehmen? ich starte den JavaScript Adapter neu, nicht den Alexa. Durch den Neustart kennt er die neuen Datenpunkte die Alexa bei jedem neuem Wecker anlegt.

                      haselchenH Offline
                      haselchenH Offline
                      haselchen
                      Most Active
                      schrieb am zuletzt editiert von
                      #60

                      @paddex

                      Ich bin davon ausgegangen , dass du den Alexa Adapter neu startest.
                      Und da war meine Intention, dass Amazon das irgendwie mitbekommt und nach einer gewissen Zeit temporär den Zugang sperrt.

                      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      743

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe