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.
    • 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

                            965
                            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