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
    916

  • 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 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 Offline
          HomoranH Offline
          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 Offline
              HomoranH Offline
              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 Offline
                  HomoranH Offline
                  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

                      304

                      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