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. Erstellen eines eigenen Objekt

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    834

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Erstellen eines eigenen Objekt

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 487 Aufrufe 1 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.
  • O Offline
    O Offline
    Oskar
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich habe mal eine Anfängerfrage zu eigenen Objekten, wie erstelle ich eigene Objekte, Beispiel ich habe diese Objekte erstellt und möchte gerne, daß der Eintrag vom unteren Beispiel erscheint
    Anmerkung 2020-08-25 112210.png
    diesen Lx Wert
    ![Anmerkung 2020-08-25 112014.png]
    (/assets/uploads/files/1598347683423-anmerkung-2020-08-25-112014.png)
    Danke im voraus, lg Oskar

    HomoranH 1 Antwort Letzte Antwort
    0
    • O Oskar

      Hallo,
      ich habe mal eine Anfängerfrage zu eigenen Objekten, wie erstelle ich eigene Objekte, Beispiel ich habe diese Objekte erstellt und möchte gerne, daß der Eintrag vom unteren Beispiel erscheint
      Anmerkung 2020-08-25 112210.png
      diesen Lx Wert
      ![Anmerkung 2020-08-25 112014.png]
      (/assets/uploads/files/1598347683423-anmerkung-2020-08-25-112014.png)
      Danke im voraus, lg Oskar

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @Oskar da ist wohl irgendetwas schief gelaufen

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      O 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @Oskar da ist wohl irgendetwas schief gelaufen

        O Offline
        O Offline
        Oskar
        schrieb am zuletzt editiert von
        #3

        @Homoran
        Hallo, ja das stimmt, da ist einiges schief gelaufen, deshalb nochmals:
        ich habe mal eine Anfängerfrage zu eigenen Objekten, wie erstelle ich eigene Objekte, Beispiel ich habe dieses Objekte erstellt und will gerne, dass der Eintrag vom unteren Beispiel erscheint
        diesen Lx Wert, daß er den Luxwert übernimmt
        Anmerkung 2020-08-25 112210.png

        Anmerkung 2020-08-25 112014.png
        Der Luxwert sollte in dem eigenen Objekt übernommen werden,

        ich hoffe jetzt ist es verständlich und es kann mir jemand einen Tip geben, lg Oskar

        paul53P 1 Antwort Letzte Antwort
        0
        • O Oskar

          @Homoran
          Hallo, ja das stimmt, da ist einiges schief gelaufen, deshalb nochmals:
          ich habe mal eine Anfängerfrage zu eigenen Objekten, wie erstelle ich eigene Objekte, Beispiel ich habe dieses Objekte erstellt und will gerne, dass der Eintrag vom unteren Beispiel erscheint
          diesen Lx Wert, daß er den Luxwert übernimmt
          Anmerkung 2020-08-25 112210.png

          Anmerkung 2020-08-25 112014.png
          Der Luxwert sollte in dem eigenen Objekt übernommen werden,

          ich hoffe jetzt ist es verständlich und es kann mir jemand einen Tip geben, lg Oskar

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

          @Oskar sagte:

          Der Luxwert sollte in dem eigenen Objekt übernommen werden,

          Dann benötigt man ein Script / Blockly.
          Ohne Script geht es mit Alias-Datenpunkt.

          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

          O 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Oskar sagte:

            Der Luxwert sollte in dem eigenen Objekt übernommen werden,

            Dann benötigt man ein Script / Blockly.
            Ohne Script geht es mit Alias-Datenpunkt.

            O Offline
            O Offline
            Oskar
            schrieb am zuletzt editiert von
            #5

            @paul53
            Hallo, gibt es da noch eine Erklärung wie man den Alias-Datenpunkt erstellen kann,

            lg Oskar

            paul53P 1 Antwort Letzte Antwort
            0
            • O Oskar

              @paul53
              Hallo, gibt es da noch eine Erklärung wie man den Alias-Datenpunkt erstellen kann,

              lg Oskar

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

              @Oskar sagte:

              wie man den Alias-Datenpunkt erstellen kann

              Du kannst das folgende Script verwenden, nachdem Du idOrigin und idAlias angepasst hast.

              // Original-Datenpunkt
              const idOrigin = 'knx.0.Wohnen.Licht.Esstisch_Taster'; 
              // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
              // Bei Nicht-Verwendung Leerstring '' zuweisen
              const idRead = ''; //'knx.0.Wohnen.Licht.Esstisch_Status';
               
              // Alias-Datenpunkt
              const idAlias = 'Beleuchtung.Buero';
              var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
              // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
              nameAlias = 'Beleuchtungsstärke';
              desc = 'per Script erstellt';
              // typeAlias = 'boolean'; // oder 'number'
              // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
              // write = "val ? true : true";
              // role = 'switch';
              // min = 0; // nur Zahlen
              // max = 100; // nur Zahlen
              // unit = '%'; // nur für Zahlen
              // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
              // custom = []; // verhindert doppelte Ausführung von history, ...
              // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
              // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
              
              // Ab hier nichts ändern !!
              function createAlias(idDst, idSrc, idRd) {
                 if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                 else {
                    var obj = {};
                    obj.type = 'state';
                    obj.common = getObject(idSrc).common;
                    obj.common.alias = {};
                    if(idRd) {
                        obj.common.alias.id = {};
                        obj.common.alias.id.read = idRd;
                        obj.common.alias.id.write = idSrc;
                        obj.common.read = true;
                    } else obj.common.alias.id = idSrc;
                    if(typeAlias) obj.common.type = typeAlias;
                    if(obj.common.read !== false && read) obj.common.alias.read = read;
                    if(obj.common.write !== false && write) obj.common.alias.write = write;
                    if(nameAlias) obj.common.name = nameAlias;
                    if(role) obj.common.role = role;
                    if(desc) obj.common.desc = desc;
                    if(min !== undefined) obj.common.min = min;
                    if(max !== undefined) obj.common.max = max;
                    if(unit) obj.common.unit = unit;
                    if(states) obj.common.states = states;
                    if(custom && obj.common.custom) obj.common.custom = custom;
                    obj.native = {};
                    setObject(idDst, obj);
                    if(raum && existsObject('enum.rooms.' + raum)) {
                       let obj = getObject('enum.rooms.' + raum)
                       obj.common.members.push(idDst);
                       setObject('enum.rooms.' + raum, obj);
                    }
                    if(gewerk && existsObject('enum.functions.' + gewerk)) {
                       let obj = getObject('enum.functions.' + gewerk)
                       obj.common.members.push(idDst);
                       setObject('enum.functions.' + gewerk, obj);
                    }
                 } 
              }
               
              createAlias('alias.0.' + idAlias, idOrigin, idRead);
              

              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

              O 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @Oskar sagte:

                wie man den Alias-Datenpunkt erstellen kann

                Du kannst das folgende Script verwenden, nachdem Du idOrigin und idAlias angepasst hast.

                // Original-Datenpunkt
                const idOrigin = 'knx.0.Wohnen.Licht.Esstisch_Taster'; 
                // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                // Bei Nicht-Verwendung Leerstring '' zuweisen
                const idRead = ''; //'knx.0.Wohnen.Licht.Esstisch_Status';
                 
                // Alias-Datenpunkt
                const idAlias = 'Beleuchtung.Buero';
                var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                nameAlias = 'Beleuchtungsstärke';
                desc = 'per Script erstellt';
                // typeAlias = 'boolean'; // oder 'number'
                // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                // write = "val ? true : true";
                // role = 'switch';
                // min = 0; // nur Zahlen
                // max = 100; // nur Zahlen
                // unit = '%'; // nur für Zahlen
                // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                // custom = []; // verhindert doppelte Ausführung von history, ...
                // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                
                // Ab hier nichts ändern !!
                function createAlias(idDst, idSrc, idRd) {
                   if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                   else {
                      var obj = {};
                      obj.type = 'state';
                      obj.common = getObject(idSrc).common;
                      obj.common.alias = {};
                      if(idRd) {
                          obj.common.alias.id = {};
                          obj.common.alias.id.read = idRd;
                          obj.common.alias.id.write = idSrc;
                          obj.common.read = true;
                      } else obj.common.alias.id = idSrc;
                      if(typeAlias) obj.common.type = typeAlias;
                      if(obj.common.read !== false && read) obj.common.alias.read = read;
                      if(obj.common.write !== false && write) obj.common.alias.write = write;
                      if(nameAlias) obj.common.name = nameAlias;
                      if(role) obj.common.role = role;
                      if(desc) obj.common.desc = desc;
                      if(min !== undefined) obj.common.min = min;
                      if(max !== undefined) obj.common.max = max;
                      if(unit) obj.common.unit = unit;
                      if(states) obj.common.states = states;
                      if(custom && obj.common.custom) obj.common.custom = custom;
                      obj.native = {};
                      setObject(idDst, obj);
                      if(raum && existsObject('enum.rooms.' + raum)) {
                         let obj = getObject('enum.rooms.' + raum)
                         obj.common.members.push(idDst);
                         setObject('enum.rooms.' + raum, obj);
                      }
                      if(gewerk && existsObject('enum.functions.' + gewerk)) {
                         let obj = getObject('enum.functions.' + gewerk)
                         obj.common.members.push(idDst);
                         setObject('enum.functions.' + gewerk, obj);
                      }
                   } 
                }
                 
                createAlias('alias.0.' + idAlias, idOrigin, idRead);
                
                O Offline
                O Offline
                Oskar
                schrieb am zuletzt editiert von
                #7

                @paul53
                Hallo, das habe ich leider noch nicht verstanden, gibt es eine einfachere Erklärung?

                Lg Oskar

                paul53P 1 Antwort Letzte Antwort
                0
                • O Oskar

                  @paul53
                  Hallo, das habe ich leider noch nicht verstanden, gibt es eine einfachere Erklärung?

                  Lg Oskar

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

                  @Oskar sagte:

                  das habe ich leider noch nicht verstanden

                  Kopiere das Script aus dem Forum in den Javascript-Editor und passe die IDs für idOrigin und idAlias an. Danach starte das Script (kann anschließend wieder gestoppt werden) und der Alias-Datenpunkt wird erstellt.
                  Alternativ kann man Alias-Datenpunkte auch manuell erstellen, was aber viel mehr Kenntnisse voraussetzt.

                  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

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


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  890

                  Online

                  32.6k

                  Benutzer

                  82.0k

                  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