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. JavaScript
  5. Wie kann man einem Scheduler Callback einen Wert übergeben?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    385

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    606

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Wie kann man einem Scheduler Callback einen Wert übergeben?

Geplant Angeheftet Gesperrt Verschoben JavaScript
2 Beiträge 1 Kommentatoren 96 Aufrufe 1 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 Offline
    B Offline
    burningfrog
    schrieb am zuletzt editiert von
    #1

    Hi Zusammen,
    ich habe einen Skript Frage, hoffentlich hat einer eine gute Idee dazu. Ich möchte dynamisch viele Scheduler anlegen, die dann im Callback jeweils einen übergebenen datapoint state setzen.

    Leider sehe ich keine Möglichkeit dem Callback den Wert zu übergeben. Habt Ihr ne Idee bzw. vielleicht eine Alternative Lösung?

    Hier meine Ausgangssituation:

    Array mit den Einträgen für die Schedules angelegt werden sollen:

    var list = [ 
    {time:"21:31", dp_execute:"a"},
    {time:"21:32", dp_execute:"b"},
    {time:"21:33", dp_execute:"c"},
    ];
    

    In einer Schleife legen ich alle Scheduler an.

    for (var i=0; i<list.length;i++) {
        var item = list[i];
        schedule('{"time":{"exactTime":true,"start":"'+item.time+'"},"period":{"days":1}}', 
            function () {
                console.log(item.dp_execute);
            });
    }
    

    Der Callback gibt den letzten Inhalt der var item aus:

    20:33:00.011	info	javascript.0 (2568927) script.js.licht.test: c
    20:34:00.008	info	javascript.0 (2568927) script.js.licht.test: c
    ...
    

    Habt Ihr ne Idee wie ich dem Callback die variable item übergeben kann damit a,b,c anstelle von c,c,c ausgegben würde.

    Danke für Eure Tipps.
    Tobias

    B 1 Antwort Letzte Antwort
    0
    • B burningfrog

      Hi Zusammen,
      ich habe einen Skript Frage, hoffentlich hat einer eine gute Idee dazu. Ich möchte dynamisch viele Scheduler anlegen, die dann im Callback jeweils einen übergebenen datapoint state setzen.

      Leider sehe ich keine Möglichkeit dem Callback den Wert zu übergeben. Habt Ihr ne Idee bzw. vielleicht eine Alternative Lösung?

      Hier meine Ausgangssituation:

      Array mit den Einträgen für die Schedules angelegt werden sollen:

      var list = [ 
      {time:"21:31", dp_execute:"a"},
      {time:"21:32", dp_execute:"b"},
      {time:"21:33", dp_execute:"c"},
      ];
      

      In einer Schleife legen ich alle Scheduler an.

      for (var i=0; i<list.length;i++) {
          var item = list[i];
          schedule('{"time":{"exactTime":true,"start":"'+item.time+'"},"period":{"days":1}}', 
              function () {
                  console.log(item.dp_execute);
              });
      }
      

      Der Callback gibt den letzten Inhalt der var item aus:

      20:33:00.011	info	javascript.0 (2568927) script.js.licht.test: c
      20:34:00.008	info	javascript.0 (2568927) script.js.licht.test: c
      ...
      

      Habt Ihr ne Idee wie ich dem Callback die variable item übergeben kann damit a,b,c anstelle von c,c,c ausgegben würde.

      Danke für Eure Tipps.
      Tobias

      B Offline
      B Offline
      burningfrog
      schrieb am zuletzt editiert von
      #2

      @burningfrog

      neuer Scope für item, damit scheint es zu gehen:

      var list = [ 
      {time:"22:33", dp_execute:"a"},
      {time:"22:34", dp_execute:"b"},
      {time:"22:35", dp_execute:"c"},
      ];
      
      for (var i=0; i<list.length;i++) {
          var item = list[i];
          
          (function(item) {
              schedule('{"time":{"exactTime":true,"start":"'+item.time+'"},"period":{"days":1}}',
                  function () {
                      console.log(item.dp_execute);
                  }
              );
          })(item);
      }
      
      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

      813

      Online

      32.6k

      Benutzer

      81.9k

      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