Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] desc aus Datenpunk auslesen

    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] desc aus Datenpunk auslesen

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

      Hallo,
      ich erstelle mir viele ähnliche Datenpunkte, welche ich mit "desc" näher beschreibe mit:

      createState(id, 0, false, {type: 'number', desc: dpDesc});
      

      aber beim lesen der Datenpunkte komme ich nicht mehr an "desc" ran:
      Da motzt der compiler.

      titles.each(function (id, i) {
         //let state = getState(id).common.desc; // compilerfehler bei ".common": Property 'common' does not exist on type 'State<any>
         let state = getState(id);
         console.log(state);
      

      Und wenn ich den state, den ich mit getState gekriegt hab ausdrucke bekomme ich auch kein desc:

      {
        val: 0,
        ack: true,
        ts: 1750006620561,
        q: 0,
        c: 'script.js.Eigene_Scripte.Run.Boerse.BoersenkurseSPI',
        from: 'system.adapter.javascript.0',
        user: 'system.user.admin',
        lc: 1750006620561
      }
      
      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @iob69 last edited by

        @iob69

        let desc = getObject(id).common.name
        
        I 1 Reply Last reply Reply Quote 2
        • I
          iob69 @MCU last edited by iob69

          @mcu
          Vielen Dank. Das funktioniert. 👍
          Nur zum Verständnis: Was ist der Unterschied zwischen getState und getObject.
          getState liefert doch auch ein "Objekt" oder zumindest was, das wie ein Objekt aussieht.
          Wenn ich die zwei vergleiche:

          getState:

          {
            val: 0,
            ack: true,
            ts: 1750006620561,
            q: 0,
            c: 'script.js.Eigene_Scripte.Run.Boerse.BoersenkurseSPI',
            from: 'system.adapter.javascript.0',
            user: 'system.user.admin',
            lc: 1750006620561
          }
          

          und getObject:

          {
            common: {
              type: 'number',
              desc: 'ZWM, Zwahlen & Mayr SA',
              name: '0_userdata.0.Boerse.SIX.SPI.Titles.ZWM',
              role: 'state'
            },
            native: {},
            type: 'state',
            from: 'system.adapter.javascript.0',
            user: 'system.user.admin',
            ts: 1750006619687
          }
          

          Dann sieht man im einen eine Teilmenge des jeweils anderen.
          Das heisst, in getObject ist nicht alles vorhanden, jedoch ein Teil von getState und Umgekehrt, aber jeder hat Teile des jeweils anderen?
          Wie muss man sich das Ganze vorstellen?
          Gibt es da ein Objekt welches alles beinhaltet?

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

            @iob69 sagte: Gibt es da ein Objekt welches alles beinhaltet?

            Siehe Doku.

            I 1 Reply Last reply Reply Quote 0
            • I
              iob69 @paul53 last edited by

              @paul53
              Da steig ich eben nicht ganz durch.
              Beim statischen Objekt vom Typ state stimmt das ja mit dem Resultat von getState überein mit ausnahme von "expire". Das ist wohl optional.

              Aber danach steht dort: "Attribute des statischen Objektes sind id, type = 'state', common, native"
              For common, native und type: ok,
              aber wo ist id?

              Und bei meinem Objekt finden sich auch noch "from", "user" und ts. ?

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

                @iob69 Der Unterschied ist das Objekt stellt den State dar bzw. beschreibt ihn und seine Funktion, während der State zwar auch ein Objekt ist das jedoch nur Informationen zum Wert speichert. Also wann wurde der Wert geschrieben, von wo wurde er geschrieben usw.

                I 1 Reply Last reply Reply Quote 2
                • I
                  iob69 @Jey Cee last edited by

                  @jey-cee
                  Ok, ich stell mir das so vor wie bei Objektorientierten Sprachen wie typescript die (statische) Klasse und das (dynamische) Objekt.
                  Da sieht es aber so aus, dass hier offenbar das Objekt statisch ist? Ein bisschen verwirrend, aber ich glaub ich hab's so einigermassen begriffen.

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

                    @iob69 sagte: wo ist id?

                    Ist doch als Teil des statischen Objektes beschrieben.

                    Attribute des statischen Objektes sind id, type = 'state', common, native.

                    getObject(id) zeigt die ID nicht an, da das Objekt über die ID adressiert wurde.

                    @iob69 sagte: finden sich auch noch "from", "user" und ts. ?

                    Das sind automatisch beim Erstellen des Objektes erzeugte Eigenschaften, die die Art und den Zeitpunkt der Erstellung anzeigen.

                    I 1 Reply Last reply Reply Quote 1
                    • I
                      iob69 @paul53 last edited by iob69

                      @paul53
                      @Jey-Cee
                      Danke für die Antworten. Ich komme so weiter.
                      Weiss jemand noch, ob man beim Erstellen eines Status diesen gleich in die history aufnehmen kann (programmatisch) und wenn ja, wie man die Parameter (wie geloggt wird) mitgeben kann?
                      Oder anders gesagt, kann man Datenpunkte programmatisch in die History einbinden, oder geht das nur per Hand mit dem "Zahnrad" in den Objekten?

                      Ah, ich glaub das geht mit dem "Aktivieren" in der Doku:
                      https://www.iobroker.net/#de/adapters/adapterref/iobroker.history/README.md

                      Jey Cee haus-automatisierung 2 Replies Last reply Reply Quote 0
                      • Jey Cee
                        Jey Cee Developer @iob69 last edited by

                        @iob69 sagte in [gelöst] desc aus Datenpunk auslesen:

                        Oder anders gesagt, kann man Datenpunkte programmatisch in die History einbinden, oder geht das nur per Hand mit dem "Zahnrad" in den Objekten?

                        Du musst das Objekt entsprechend anpassen. Dafür gibt es Custom.
                        Hier mal ein Beispiel für ein Objekt bei dem SQL Aktiviert ist:

                        {
                          "type": "state",
                          "common": {
                            "name": "PIR Status",
                            "role": "sensor.motion",
                            "type": "boolean",
                            "read": true,
                            "write": false,
                            "custom": {
                              "sql.0": {
                                "enabled": true,
                                "storageType": "",
                                "counter": false,
                                "aliasId": "",
                                "changesOnly": true,
                                "debounce": 0,
                                "changesRelogInterval": "0",
                                "changesMinDelta": 0,
                                "retention": "63072000"
                              }
                            }
                          },
                          "native": {},
                          "_id": "enocean.0.0085230e.PIRS",
                          "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                          },
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1655843993485
                        }
                        
                        1 Reply Last reply Reply Quote 1
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @iob69 last edited by

                          @iob69 sagte in [gelöst] desc aus Datenpunk auslesen:

                          Weiss jemand noch, ob man beim Erstellen eines Status diesen gleich in die history aufnehmen kann (programmatisch) und wenn ja, wie man die Parameter (wie geloggt wird) mitgeben kann?

                          Am einfachsten per sendTo an die History-Instanz: https://github.com/ioBroker/ioBroker.history/blob/master/docs/de/README.md#verlaufsprotokollierung-über-javascript

                          Ich würde nicht direkt die custom Optionen auf dem Objekt setzen (ggf. bekommt das die Instanz dann gar nicht mit und würde das Objekt erst nach einem Neustart der Instanz berücksichtigen).

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          773
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          5
                          11
                          255
                          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