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. [gelöst]Mit Verzögerung Wert schreiben

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst]Mit Verzögerung Wert schreiben

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
11 Beiträge 4 Kommentatoren 421 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.
  • M Offline
    M Offline
    mguenther
    schrieb am zuletzt editiert von mguenther
    #1

    Hallo Zusammen,
    ich habe die Logik mit dem timeout immer noch nicht ganz verstanden. Ich lasse mir alle 5min einen Wert aus dem Internet abrufen und schreibe mir den in eine Variable WERT (Zahl). Wenn ich diesen in eine Datenbank schreibe, dann sehe ich, dass nicht nur der tatsächliche Wert, sondern auch immer ein Wert 0 mitübertragen wird. Den würde ich gerne "abfangen".
    84a34f0a-4ccf-4d76-b77f-a1c22a4cb1ef-grafik.png

    Problem: Der Wert kann auch tatsächlich 0 sein.
    Idee: Mein Ansatz wäre jetzt, ich würde den Wert zeitersetzt schreiben. Wie muss der Code-Schnipsel aussehen, wenn ich den Wert 0 nur in die Variable WERT schreiben will, wenn dieser sich z.B. für 5sek nicht ändert? Ansonsten setze den realen Wert.

    danke
    Marcus

    OliverIOO 1 Antwort Letzte Antwort
    0
    • M mguenther

      Hallo Zusammen,
      ich habe die Logik mit dem timeout immer noch nicht ganz verstanden. Ich lasse mir alle 5min einen Wert aus dem Internet abrufen und schreibe mir den in eine Variable WERT (Zahl). Wenn ich diesen in eine Datenbank schreibe, dann sehe ich, dass nicht nur der tatsächliche Wert, sondern auch immer ein Wert 0 mitübertragen wird. Den würde ich gerne "abfangen".
      84a34f0a-4ccf-4d76-b77f-a1c22a4cb1ef-grafik.png

      Problem: Der Wert kann auch tatsächlich 0 sein.
      Idee: Mein Ansatz wäre jetzt, ich würde den Wert zeitersetzt schreiben. Wie muss der Code-Schnipsel aussehen, wenn ich den Wert 0 nur in die Variable WERT schreiben will, wenn dieser sich z.B. für 5sek nicht ändert? Ansonsten setze den realen Wert.

      danke
      Marcus

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @mguenther
      du versuchst mE ein Symptom zu behandeln, anstatt doe ursache zu finden.
      Warum schreibt es den immer 0. Den Zeitwerten nach schreibt er genau 1ms immer vorher die 0 bevor er den richtigen Wert schreibt.
      Zeig mal deinen Code. Evtl. ist da etwas krumm.
      Falls es tatsächlich nicht beheben lässt, überlege dir mal anhand welcher Kriterien der Code feststellen kann welches nun der richtige Wert ist.
      bspw 0 oder 1259. du hast ja geschrieben 0 kann auch sein.

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      M 2 Antworten Letzte Antwort
      0
      • OliverIOO OliverIO

        @mguenther
        du versuchst mE ein Symptom zu behandeln, anstatt doe ursache zu finden.
        Warum schreibt es den immer 0. Den Zeitwerten nach schreibt er genau 1ms immer vorher die 0 bevor er den richtigen Wert schreibt.
        Zeig mal deinen Code. Evtl. ist da etwas krumm.
        Falls es tatsächlich nicht beheben lässt, überlege dir mal anhand welcher Kriterien der Code feststellen kann welches nun der richtige Wert ist.
        bspw 0 oder 1259. du hast ja geschrieben 0 kann auch sein.

        M Offline
        M Offline
        mguenther
        schrieb am zuletzt editiert von
        #3

        @OliverIO
        der Wert wird über den Adapter tankerkoenig so übermittelt - und ich reagiere bei Änderung des Wertes. Und der Wert wird alle 5min übertragen und springt am Anfang immer auf den Wert 0 - da kann ich gar nichts anpassen.

        HomoranH 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @mguenther
          du versuchst mE ein Symptom zu behandeln, anstatt doe ursache zu finden.
          Warum schreibt es den immer 0. Den Zeitwerten nach schreibt er genau 1ms immer vorher die 0 bevor er den richtigen Wert schreibt.
          Zeig mal deinen Code. Evtl. ist da etwas krumm.
          Falls es tatsächlich nicht beheben lässt, überlege dir mal anhand welcher Kriterien der Code feststellen kann welches nun der richtige Wert ist.
          bspw 0 oder 1259. du hast ja geschrieben 0 kann auch sein.

          M Offline
          M Offline
          mguenther
          schrieb am zuletzt editiert von mguenther
          #4

          @OliverIO
          und der erste Wert ist immer die "falsche" 0, der richtige Wert ist immer der 2.

          1 Antwort Letzte Antwort
          0
          • M mguenther

            @OliverIO
            der Wert wird über den Adapter tankerkoenig so übermittelt - und ich reagiere bei Änderung des Wertes. Und der Wert wird alle 5min übertragen und springt am Anfang immer auf den Wert 0 - da kann ich gar nichts anpassen.

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #5

            @mguenther sagte in Mit Verzögerung Wert schreiben:

            da kann ich gar nichts anpassen.

            sicher???

            Wie sieht denn deine Konfig hier aus?
            Tanker_null.png

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            M 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @mguenther sagte in Mit Verzögerung Wert schreiben:

              da kann ich gar nichts anpassen.

              sicher???

              Wie sieht denn deine Konfig hier aus?
              Tanker_null.png

              M Offline
              M Offline
              mguenther
              schrieb am zuletzt editiert von
              #6

              @Homoran
              natürlich nicht so... Der Haken beim Zurücksetzen war noch drin.... Ich habe ihn rausgenommen und teste. Glaubt mir, ich habe alle Einstellmöglichkeiten und Anleitungen zum Adapter gelesen und war mir sicher, alles richtig eingestellt zu haben :( Man sieht den Wald vor lauter Bäumen nicht...

              Unabhängig davon, wie kann ich denn einen Wert, wenn er sich nicht ändert, erst nach einer gewissen Zeit schreiben?

              HomoranH 1 Antwort Letzte Antwort
              0
              • M mguenther

                @Homoran
                natürlich nicht so... Der Haken beim Zurücksetzen war noch drin.... Ich habe ihn rausgenommen und teste. Glaubt mir, ich habe alle Einstellmöglichkeiten und Anleitungen zum Adapter gelesen und war mir sicher, alles richtig eingestellt zu haben :( Man sieht den Wald vor lauter Bäumen nicht...

                Unabhängig davon, wie kann ich denn einen Wert, wenn er sich nicht ändert, erst nach einer gewissen Zeit schreiben?

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #7

                @mguenther sagte in Mit Verzögerung Wert schreiben:

                wie kann ich denn einen Wert, wenn er sich nicht ändert, erst nach einer gewissen Zeit schreiben?

                wenn ich wüsste was du GENAU willst.

                Im History Adapter z.B. kann man einstellen: "nur Änderungen loggen" und dann noch "trotzdem alle x Sekunden bei gleichem Wert"

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                M 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @mguenther sagte in Mit Verzögerung Wert schreiben:

                  wie kann ich denn einen Wert, wenn er sich nicht ändert, erst nach einer gewissen Zeit schreiben?

                  wenn ich wüsste was du GENAU willst.

                  Im History Adapter z.B. kann man einstellen: "nur Änderungen loggen" und dann noch "trotzdem alle x Sekunden bei gleichem Wert"

                  M Offline
                  M Offline
                  mguenther
                  schrieb am zuletzt editiert von mguenther
                  #8

                  @Homoran
                  ich meinte eigentlich einen datenpunkt schreiben. Geht mir gar nicht so um die Darstellung mittels der Daten aus history oder sql. Ich habe die Logik bei javascript an der Stelle einfach noch nicht verstanden, wie ich z.B. über einen "timer" erst nach einer Weile einen sich nicht ändernden Wert schreibe.
                  Bsp. Ein Sensor hat den Wert 5. Jetzt ändert sich dieser Wert für z.B. 10sec nicht, dann soll er in eine Variable bzw. datenpunkt geschrieben werden. Ändert er sich aber innerhalb der 10sec, dann nicht.

                  Jetzt klarer?

                  HomoranH paul53P 2 Antworten Letzte Antwort
                  0
                  • M mguenther

                    @Homoran
                    ich meinte eigentlich einen datenpunkt schreiben. Geht mir gar nicht so um die Darstellung mittels der Daten aus history oder sql. Ich habe die Logik bei javascript an der Stelle einfach noch nicht verstanden, wie ich z.B. über einen "timer" erst nach einer Weile einen sich nicht ändernden Wert schreibe.
                    Bsp. Ein Sensor hat den Wert 5. Jetzt ändert sich dieser Wert für z.B. 10sec nicht, dann soll er in eine Variable bzw. datenpunkt geschrieben werden. Ändert er sich aber innerhalb der 10sec, dann nicht.

                    Jetzt klarer?

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #9

                    @mguenther sagte in Mit Verzögerung Wert schreiben:

                    Jetzt klarer?

                    Ja ;-)

                    Ich bin weiß Gott nicht der Skripter vor dem Herrn.
                    Aber ich fürchte du musst dann alle 10 Sekunden den Wert abfragen und mit dem letzten Wert vergleichen.

                    Die Verzögerung schreibt nur Verzögert den "alten" Wert.

                    Oder du musst auf Änderung triggern und die Zeit zwischen den Änderungen berechnen.

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • M mguenther

                      @Homoran
                      ich meinte eigentlich einen datenpunkt schreiben. Geht mir gar nicht so um die Darstellung mittels der Daten aus history oder sql. Ich habe die Logik bei javascript an der Stelle einfach noch nicht verstanden, wie ich z.B. über einen "timer" erst nach einer Weile einen sich nicht ändernden Wert schreibe.
                      Bsp. Ein Sensor hat den Wert 5. Jetzt ändert sich dieser Wert für z.B. 10sec nicht, dann soll er in eine Variable bzw. datenpunkt geschrieben werden. Ändert er sich aber innerhalb der 10sec, dann nicht.

                      Jetzt klarer?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #10

                      @mguenther sagte in Mit Verzögerung Wert schreiben:

                      ändert sich dieser Wert für z.B. 10sec nicht, dann soll er in eine Variable bzw. datenpunkt geschrieben werden. Ändert er sich aber innerhalb der 10sec, dann nicht.

                      var timer;
                      on(idQuelle, function(dp) { // triggert auf Wertänderung
                          if(timer) clearTimeout(timer); // stoppt Timeout, wenn Wertänderung innerhalb der Verzögerungszeit
                          timer = setTimeout(function() {
                              setState(idZiel, dp.state.val);
                          }, 10000);
                      });
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      M 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @mguenther sagte in Mit Verzögerung Wert schreiben:

                        ändert sich dieser Wert für z.B. 10sec nicht, dann soll er in eine Variable bzw. datenpunkt geschrieben werden. Ändert er sich aber innerhalb der 10sec, dann nicht.

                        var timer;
                        on(idQuelle, function(dp) { // triggert auf Wertänderung
                            if(timer) clearTimeout(timer); // stoppt Timeout, wenn Wertänderung innerhalb der Verzögerungszeit
                            timer = setTimeout(function() {
                                setState(idZiel, dp.state.val);
                            }, 10000);
                        });
                        
                        M Offline
                        M Offline
                        mguenther
                        schrieb am zuletzt editiert von
                        #11

                        @paul53
                        danke - verflucht nochmal...

                        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

                        697

                        Online

                        32.6k

                        Benutzer

                        82.2k

                        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