Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] desc aus Datenpunk auslesen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    895

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] desc aus Datenpunk auslesen

Geplant Angeheftet Gesperrt Verschoben JavaScript
11 Beiträge 5 Kommentatoren 579 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • I Offline
    I Offline
    iob69
    schrieb am zuletzt editiert von iob69
    #1

    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 Antwort Letzte Antwort
    0
    • I 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 Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #2

      @iob69

      let desc = getObject(id).common.name
      

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      I 1 Antwort Letzte Antwort
      2
      • M MCU

        @iob69

        let desc = getObject(id).common.name
        
        I Offline
        I Offline
        iob69
        schrieb am zuletzt editiert von iob69
        #3

        @mcu
        Vielen Dank. Das funktioniert. :+1:
        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?

        paul53P 1 Antwort Letzte Antwort
        0
        • I iob69

          @mcu
          Vielen Dank. Das funktioniert. :+1:
          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?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

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

          Siehe Doku.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          I 1 Antwort Letzte Antwort
          0
          • paul53P paul53

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

            Siehe Doku.

            I Offline
            I Offline
            iob69
            schrieb am zuletzt editiert von
            #5

            @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 CeeJ paul53P 2 Antworten Letzte Antwort
            0
            • I iob69

              @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 CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              schrieb am zuletzt editiert von
              #6

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

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              I 1 Antwort Letzte Antwort
              2
              • Jey CeeJ Jey Cee

                @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 Offline
                I Offline
                iob69
                schrieb am zuletzt editiert von
                #7

                @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 Antwort Letzte Antwort
                0
                • I iob69

                  @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. ?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #8

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

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  I 1 Antwort Letzte Antwort
                  1
                  • paul53P 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 Offline
                    I Offline
                    iob69
                    schrieb am zuletzt editiert von iob69
                    #9

                    @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 CeeJ haus-automatisierungH 2 Antworten Letzte Antwort
                    0
                    • I 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 CeeJ Online
                      Jey CeeJ Online
                      Jey Cee
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @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
                      }
                      

                      Persönlicher Support
                      Spenden -> paypal.me/J3YC33

                      1 Antwort Letzte Antwort
                      1
                      • I 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

                        haus-automatisierungH Offline
                        haus-automatisierungH Offline
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @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).

                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                        📚 Meine inoffizielle ioBroker Dokumentation

                        1 Antwort Letzte Antwort
                        1
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        317

                        Online

                        32.6k

                        Benutzer

                        82.1k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe