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. Entwicklung
  4. Wie kann ich im Adapter regelmäßig abfragen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.3k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Wie kann ich im Adapter regelmäßig abfragen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
4 Beiträge 3 Kommentatoren 520 Aufrufe
  • Ä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.
  • K Offline
    K Offline
    Karl_999
    schrieb am zuletzt editiert von
    #1

    Ich habe es dank eurer Hilfe geschafft, einen ersten Adapter zu bauen. Dieser wird über eine Schedule aufgerufen und funktioniert soweit.

    Nun möchte ich gerne Befehlseingaben an den Adapter einbauen. Dazu ist ein Schedule sehr ungeeignet, da der Befehl dann erst zum Zeitpunkt des Schedules verarbeitet wird.

    Ich muss nuna lso einen Dämon bauen.

    Die Abfrage des Befehls dürfte kein Problem darstellen.

    Wie kann ich aber die - bereits jetzt gelesenen - Daten weiter zyklisch abfragen?

    JS bietet ja leider kein delay() an, das einfach in einer Dauerschleife wartet.

    Wie realisiert ihr solche Punkte?

    Gibt es irgendwo Beispiele dafür?

    1 Antwort Letzte Antwort
    0
    • apollon77A Online
      apollon77A Online
      apollon77
      schrieb am zuletzt editiert von
      #2

      Am besten alles in eine Funktion und diese dann mit setTimeout verzögert aufrufen. Das ist quasi das Delay Nach dem du suchst.

      Gesendet vom Handy …

      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
      • htreckslerH Offline
        htreckslerH Offline
        htrecksler
        Forum Testing
        schrieb am zuletzt editiert von
        #3

        ich mache das in meinem Adapter um die MinMax Tageswerte zu ermitteln.

        timerMinMax = setInterval(MinMaxSchreiben, 1 *60000);
        
        

        MinMaxSchreiben ist dann die eigentliche Funktion.

        const utils =    require(__dirname + '/lib/utils'); // Get common adapter utils
        
        const adapter = new utils.Adapter('mygeneral');
        var SunCalc = require('suncalc');
        var Math = require('mathjs');
        var timerMinMax = null;
        
        adapter.on('unload', function (callback) {
            try {
                adapter.log.info('cleaned everything up...');
                callback();
            } catch (e) {
                callback();
            }
        	if (timerMinMax) {
                clearInterval(timerMinMax);
                timerMinMax = 0;
            }
        
        });
        
        

        Gruss Hermann

        ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

        1 Antwort Letzte Antwort
        0
        • apollon77A Online
          apollon77A Online
          apollon77
          schrieb am zuletzt editiert von
          #4

          SetIntervall geht WENN du alles was da drin passiert unter Kontrolle hast. Sobald du aber zb externer Daten abfragst (request) ist setTimeout gefährlich weil es ihm egal ist ob der vorherige Lauf fertig war oder nicht. Er startet einfach den nächsten.

          Wenn zb ein request in nen Timeout läuft weil die Webseite langsam ist dann stauen sich ggf requests auf.

          Also nachdenken ob setIntervall sinnvoll ist.

          Ich nutze daher meistens eine setTimeout der am Ende der Funktion einfach neu gesetzt wird. Damit ist sichergestellt das immer nur eins passiert.

          Gesendet vom Handy …

          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
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          630

          Online

          32.7k

          Benutzer

          82.3k

          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