Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [erledigt]Objekt-Struktur on/subscribe()?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [erledigt]Objekt-Struktur on/subscribe()?

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

      Hallo zusammen,

      ich habe mal wieder ein kleines Verständnisproblem:

      Mit einem on/subscribe bekomme ich Zugriff auf Daten, die in der "normalen" Struktur des Objektes (im admin unter 'Objekte') nicht zu sehen sind.

      z.B. obj.oldState.ts oder obj.newState.ts

      Fragen:

      1.) Wo sind diese Daten gespeichert?

      2.) Wie kann ich ausserhalb eines subscribe auf diese Daten zugreifen?

      Konkret möchte ich in einem schedule folgendes machen:

      var obj = getObject('hm-rpc.0.hm...');
      var oldTimestamp = obj.oldState.ts;
      

      Das funktioniert leider nicht und gibt nur ein 'undefined' zurück?

      Vielen Dank für jede Hilfe!

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @Stmiko:

        1.) Wo sind diese Daten gespeichert? `
        Bei Standardeinstellung in der Datei "iobroker-data/states.json".
        @Stmiko:

        2.) Wie kann ich ausserhalb eines subscribe auf diese Daten zugreifen? `
        Auf die newState-Werte mit (z.B. ts):

        var t = getState(id).ts;
        

        Die oldState-Werte sind nur per on() / subscribe() verfügbar.

        1 Reply Last reply Reply Quote 0
        • S
          Stmiko last edited by

          Hallo Paul,

          ok, vielen Dank für die Klarstellung.

          Schade das man an die oldState nicht "normal" herankommt, aber es geht halt nicht alles 🙂

          1 Reply Last reply Reply Quote 0
          • P
            Pman last edited by

            @Stmiko:

            Hallo Paul,

            ok, vielen Dank für die Klarstellung.

            Schade das man an die oldState nicht "normal" herankommt, aber es geht halt nicht alles 🙂 `

            oldState kann es in dem Sinne ja nur bei einer Änderung geben. Was du meinst ist History, wo alte Werte dauerhaft gespeichert werden.

            1 Reply Last reply Reply Quote 0
            • Bluefox
              Bluefox last edited by

              @Stmiko:

              Hallo Paul,

              ok, vielen Dank für die Klarstellung.

              Schade das man an die oldState nicht "normal" herankommt, aber es geht halt nicht alles 🙂 `
              Du kannst selbst oldValue implementieren:

              var oldValue = null;
              on('hm-rpc.0.hm...', function (obj) {
                   console.log('New value = ' + obj.state.val + ', old value = ' + oldValue);
                   oldValue = obj.state.val;
              });
              
              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                Wenn man unbedingt asynchron an die neuen und alten Zustände ran will, dann würde ich es so machen:

                var oldState = null;
                var newState = null;
                
                on('hm-rpc.0.hm...', function (obj) {
                     newState = obj.state;
                     oldState = obj.oldState;
                });
                

                Dann kann man nach der ersten Zustandsänderung (mit if(newState) prüfen !) jeweils mit .val, .ts oder .lc auf die Elemente zugreifen.

                1 Reply Last reply Reply Quote 0
                • S
                  Stmiko last edited by

                  Vielen Dank für eure Hilfe.

                  So wie von Paul beschrieben , habe ich es jetzt gemacht und es funktioniert wunderbar!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  1.0k
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  1145
                  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