Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. extendObject vs. setObjectNotExists

    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

    extendObject vs. setObjectNotExists

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

      Hallo zusammen,

      eine Verständnisfrage (ich hoffe, ich bin in der richtigen Rubrik):

      setObjectNotExists tut nur etwas, wenn das Objekt/state noch nicht exisitiert.
      extendObject aktualisiert ein Object/state mit den übergebenen Daten.

      Wenn ich extendObject nutzt, dann wird ein evtl. vorhandenes Logging laut Log unterbrochen udn wieder aufgesetzt (wobei ich nicht immer disabled/enabled-Pärchen sehe).

      1. Ist es bedenklich, wenn nicht immer disabled/enabled-Pärchen erscheinen?
      2. Sollten zu viele extenObject-Aufrufe vermieden werden (update alle paar Minuten)?
      3. Legt extendObject auch ein Objekt/state an, wenn es noch nicht existiert? Oder muss dann immer setObjectNotExists und extendObject gerufen werden?

      In den Doku wurde ich diesbezüglich nicht fündig.

      Viele Grüße
      Sneak-L8

      Jey Cee 1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer @Sneak-L8 last edited by

        @Sneak-L8 sagte in extendObject vs. setObjectNotExists:

        Legt extendObject auch ein Objekt/state an, wenn es noch nicht existiert? Oder muss dann immer setObjectNotExists und extendObject gerufen werden?

        extendObject legt ein Objekt an wenn es nicht vorhanden ist.

        @Sneak-L8 sagte in extendObject vs. setObjectNotExists:

        Sollten zu viele extenObject-Aufrufe vermieden werden (update alle paar Minuten)?

        Hm da stellt sich mir die Frage ob das nicht eher in einen State geschrieben werden sollte. Im Objekt sind normal Statische Daten. Warum genau wird das Objekt alle paar Minuten Aktualisiert?

        S 1 Reply Last reply Reply Quote 0
        • S
          Sneak-L8 @Jey Cee last edited by

          @Jey-Cee Danke für die Erläuterung.
          Es sind eigentlich states. Dort will ich "unit" aktualsieren. Und bei Channels (das sit doch der richtige Name für einen "Ordner" in dem States enthalten sind?) die Beschreibung.
          Ich habe bisher nur rausgefunden, dass man das mittels ExtendObject machen muss. Wenn das anders geht, dann mach ich das gerne.

          Jey Cee paul53 2 Replies Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer @Sneak-L8 last edited by

            @Sneak-L8 ok unit ist teil vom Objekt, wenn es nötig ist die Abhängig vom Wert zu ändern musst du das so machen.

            Ja Channels enthalten states das ist richtig.

            S 1 Reply Last reply Reply Quote 0
            • S
              Sneak-L8 @Jey Cee last edited by

              @Jey-Cee Danke. Dann muss ich mir also keine Sorgen machen, wenn ich hier immer Meldungen im Log sehe?

              2020-11-13 11:24:33.616 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.charger.status.cruisingRangeStatusData.primaryEngineRange.content, Alias=false
              2020-11-13 11:24:33.641 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.charger.status.batteryStatusData.stateOfCharge.content, Alias=false
              2020-11-13 11:24:34.221 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsCarCaptured
              2020-11-13 11:24:34.226 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsTssReceivedUtc
              2020-11-13 11:24:34.234 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.value
              2020-11-13 11:24:34.235 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.textId
              2020-11-13 11:24:34.259 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field02.value, Alias=false
              2020-11-13 11:24:34.331 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field05.value, Alias=false
              2020-11-13 11:24:31.915 - info: vw-connect.0 (3351) is car locked: 2 yes/no true
              2020-11-13 11:30:31.163 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.charger.status.cruisingRangeStatusData.primaryEngineRange.content, Alias=false
              2020-11-13 11:30:31.219 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.charger.status.batteryStatusData.stateOfCharge.content, Alias=false
              2020-11-13 11:30:31.869 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.position.parkingTimeUTC, Alias=false
              2020-11-13 11:30:32.214 - info: vw-connect.0 (3351) outside temp: 2816
              2020-11-13 11:30:34.168 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsCarCaptured
              2020-11-13 11:30:34.170 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsTssReceivedUtc
              2020-11-13 11:30:34.173 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.value
              2020-11-13 11:30:34.189 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.textId
              2020-11-13 11:30:34.210 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field02.value, Alias=false
              2020-11-13 11:30:34.265 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field05.value, Alias=false
              2020-11-13 11:30:32.466 - info: vw-connect.0 (3351) is car locked: 2 yes/no true
              2020-11-13 11:31:38.799 - info: info.0 (9025) Popup news was read...
              2020-11-13 11:36:30.960 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.position.parkingTimeUTC, Alias=false
              2020-11-13 11:36:31.887 - info: vw-connect.0 (3351) outside temp: 2816
              2020-11-13 11:36:34.105 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsCarCaptured
              2020-11-13 11:36:34.108 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsTssReceivedUtc
              2020-11-13 11:36:34.117 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.value
              2020-11-13 11:36:34.120 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.textId
              2020-11-13 11:36:34.145 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field02.value, Alias=false
              2020-11-13 11:36:34.224 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field05.value, Alias=false
              2020-11-13 11:36:31.978 - info: vw-connect.0 (3351) is car locked: 2 yes/no true
              2020-11-13 11:42:32.249 - info: vw-connect.0 (3351) outside temp: 2816
              2020-11-13 11:42:34.003 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.charger.status.cruisingRangeStatusData.primaryEngineRange.content, Alias=false
              2020-11-13 11:42:34.050 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.charger.status.batteryStatusData.stateOfCharge.content, Alias=false
              2020-11-13 11:42:34.094 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.position.parkingTimeUTC, Alias=false
              2020-11-13 11:42:34.527 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsCarCaptured
              2020-11-13 11:42:34.529 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsTssReceivedUtc
              2020-11-13 11:42:34.542 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.value
              2020-11-13 11:42:34.546 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.textId
              2020-11-13 11:42:34.584 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field02.value, Alias=false
              2020-11-13 11:42:32.378 - info: vw-connect.0 (3351) is car locked: 2 yes/no true
              2020-11-13 11:42:34.651 - info: sql.0 (26442) enabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field05.value, Alias=false
              2020-11-13 11:48:32.145 - info: vw-connect.0 (3351) outside temp: 2816
              2020-11-13 11:48:34.052 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsCarCaptured
              2020-11-13 11:48:34.055 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.tsTssReceivedUtc
              2020-11-13 11:48:34.068 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.value
              2020-11-13 11:48:34.074 - info: sql.0 (26442) disabled logging of vw-connect.0.WVWZZZAUZJW906020.status.data08.field01.textId
              

              Nicht dass die Aufzeichnung in sql.0 flöten geht ...

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Sneak-L8 last edited by

                @Sneak-L8 sagte:

                Dort will ich "unit" aktualsieren.

                Welchen Grund kann es geben, die "unit" zu ändern ?

                S Jey Cee 2 Replies Last reply Reply Quote 0
                • S
                  Sneak-L8 @paul53 last edited by

                  @paul53 Es sind generische Daten von extern. Diese werden in States gemappt. Ich kann mir nicht sicher sein, dass die Einheit des Wertes sich in dem entfernten API ändert. Deswegen will ich sie (ggfs. auch zusammen mit dem Wert) aktualisieren.
                  Den wert kann ich mit setState ändern, aber die unit m.W. nicht.

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Sneak-L8 last edited by

                    @Sneak-L8 sagte:

                    Ich kann mir nicht sicher sein, dass die Einheit des Wertes sich in dem entfernten API ändert.

                    Dann prüfst Du hoffentlich, ob sich die "unit" geändert hat, bevor sie per extendObject() überschrieben wird ?

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Sneak-L8 @paul53 last edited by

                      @paul53 Nein, warum sollte ich? Stellt das ein Problem dar? Dann müsste ich zusätzlich im Adapter die Werte erstmal auslesen und dann updaten. Da das über Callback geht ist das dann recht aufwändig ...

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Sneak-L8 last edited by

                        @Sneak-L8 sagte:

                        Dann müsste ich zusätzlich im Adapter die Werte erstmal auslesen und dann updaten.

                        Man kann sich die "unit" auch in Variablen merken. Objekte sollten quasi-statisch bleiben, da sie sonst zu oft in die Datei/Datenbank geschrieben werden.

                        S 1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer @paul53 last edited by

                          @paul53 sagte in extendObject vs. setObjectNotExists:

                          @Sneak-L8 sagte:

                          Dort will ich "unit" aktualsieren.

                          Welchen Grund kann es geben, die "unit" zu ändern ?

                          Bei EnOcean gibt es dafür 2 Szenarien:

                          1. die Unit kann im Gerät ausgewählt werden werden.
                          2. die Einheit hängt vom Wert ab. z.B Wh werden beim Überschreiten von 1000 in kWh übertragen, die Unit wird dann sepperat mit gesendet.

                          @Sneak-L8 sagte in extendObject vs. setObjectNotExists:

                          Da das über Callback geht ist das dann recht aufwändig .

                          Dafür gibt es Promises und Await/Async.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Jey Cee last edited by

                            @Jey-Cee sagte:

                            die Unit kann im Gerät ausgewählt werden werden.

                            Die Auswahl wird man nicht ständig ändern.

                            @Jey-Cee sagte in extendObject vs. setObjectNotExists:

                            die Einheit hängt vom Wert ab. z.B Wh werden beim Überschreiten von 1000 in kWh übertragen, die Unit wird dann sepperat mit gesendet.

                            Dann kann man den Wert auch in die Unit des Datenpunktes umrechnen.

                            1 Reply Last reply Reply Quote 0
                            • S
                              Sneak-L8 @paul53 last edited by

                              @paul53 sagte in extendObject vs. setObjectNotExists:

                              @Sneak-L8 sagte:

                              Dann müsste ich zusätzlich im Adapter die Werte erstmal auslesen und dann updaten.

                              Man kann sich die "unit" auch in Variablen merken. Objekte sollten quasi-statisch bleiben, da sie sonst zu oft in die Datei/Datenbank geschrieben werden.

                              Danke für den Hinweis. Ja, ich könnte sie beim Start des Adapters aus den States einlesen und dann nur aktualisieren, wenn sie sich ändern. Promises und Await/Async sagt mir nicht so viel, da müsste ich mich erst einlesen.
                              Aber ich sollte es auf jeden Fall umstellen, wenn durch den Extend die Daten dann jedes Mal neu in die DB geschrieben werden. Da will ich nicht zum Messie werden ...

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              596
                              Online

                              31.9k
                              Users

                              80.2k
                              Topics

                              1.3m
                              Posts

                              adapter
                              3
                              13
                              496
                              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