Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. [gelöst] Zeitstempel anpassen für Vergleich

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Zeitstempel anpassen für Vergleich

    This topic has been deleted. Only users with topic management privileges can see it.
    • Claus1985 0
      Claus1985 0 last edited by Claus1985 0

      Hallo Zusammen,

      folgendes Problem. Ich möchte die Zeitstempel "letzte Änderung" von zwei Werten miteinander vergleichen und wenn diese gleich sind etwas ausführen.

      Problem ist, dass die Zeitstempel zu genau sind und das damit unmöglich ist.

      Gibt es eine Möglichkeit die Zeit auf Sekunden aufzurunden um die Werte dann miteinander vergleichen zu können?

      Danke und Gruß,

      Claus

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Claus1985 0 last edited by Homoran

        @claus1985-0 du brauchst doch nur auf eine Differenz zwischen +/- xyz Millisekunden zu prüfen
        Betrag von (TSa-TSb) < x msec

        Claus1985 0 1 Reply Last reply Reply Quote 0
        • Claus1985 0
          Claus1985 0 @Homoran last edited by Claus1985 0

          @homoran Ich glaube ich verstehe die Logik hinter dem "letzte Änderung" Wert noch nicht.. Wenn ich bei den Objekten gucke steht da im Klartext der letzte Änderungszeitpunkt und der unterscheidet sich zwischen den beiden Werten nur in Millisekunden:

          Bildschirmfoto 2024-01-04 um 14.07.44.png

          Wenn ich mir die Werte im Debug ausgeben lasse, sind die allerdings Grund verschieden:

          Bildschirmfoto 2024-01-04 um 13.58.03.png
          Bildschirmfoto 2024-01-04 um 13.59.00.png

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Claus1985 0 last edited by Homoran

            @claus1985-0 sagte in Zeitstempel anpassen für Vergleich:

            Wenn ich mir die Werte im Debug ausgeben lasse, sind die allerdings Grund verschieden:

            das ist der Unixtimestamp in Millisekunden (seit dem 01.01.1970)
            die musst du subtrahieren und erhältst eine Differenz in Millisekunden

            Möglich, dass ich nicht alles richtig entziffern konnte.
            bitte keibe Screenshots von code
            Diesen als Text in code-tags posten!

            Claus1985 0 1 Reply Last reply Reply Quote 0
            • Claus1985 0
              Claus1985 0 @Homoran last edited by

              @homoran Hm irgendwie scheint da was in Blockly falsch zu laufen..
              Ich verwende folgenden Code:

              on({ id: 'loxone.0.1add0b61-0042-12f2-ffff59e675957bea.AI6.rgb' /* Alle Lampen in WZ, EZ u. Flur EG: Stehlampen EZ: RGB */, change: 'ne' }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                console.warn(getState('loxone.0.1add0b61-0042-12f2-ffff59e675957bea.AI6.level').ts);
              });
              

              Wenn ich im Objekte Browser gucke, zeigt er mir die richtige Zeit an, wenn ich den Unix Timestamp umwandle ist der Timestamp 3 Minuten alt..

              Gibt es da etwas zu beachten was ich übersehe?

              H 1 Reply Last reply Reply Quote 0
              • H
                homecineplexx @Claus1985 0 last edited by

                @claus1985-0 said in Zeitstempel anpassen für Vergleich:

                on({ id: 'loxone.0.1add0b61-0042-12f2-ffff59e675957bea.AI6.rgb' /* Alle Lampen in WZ, EZ u. Flur EG: Stehlampen EZ: RGB */, change: 'ne' }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                console.warn(getState('loxone.0.1add0b61-0042-12f2-ffff59e675957bea.AI6.level').ts);
                });

                Dir ist aber schon bewusst, dass du den Zeitstempel von .level nur dann holst, wenn sich .rgb geändert hat? Sind 2 verschiedene Datenpunkte!

                Claus1985 0 1 Reply Last reply Reply Quote 0
                • Claus1985 0
                  Claus1985 0 @homecineplexx last edited by

                  @homecineplexx Hab den Fehler gefunden... Das Skript hat die Werte bei Veränderung quasi sofort gelesen. Das Problem war, dass der Adapter der die Werte liefert 50ms Zeit benötigt um die Werte zu aktualisieren. D.h. das Skript hat immer den vorherigen Wert gegriffen weil der Adapter zu langsam war.. Hab nun ein Delay von 50ms eingebaut und es funktioniert wie es soll.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  941
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  324
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo