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. ioBroker Allgemein
  4. Alias über script anlegen - wo sind die Ordner?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Alias über script anlegen - wo sind die Ordner?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
aliasordner
6 Beiträge 2 Kommentatoren 486 Aufrufe 3 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.
  • B Offline
    B Offline
    brokeling
    schrieb am zuletzt editiert von brokeling
    #1

    Hier z. B. mein Script code:

    // Original-Datenpunkt
    const idOrigin = 'deconz.0.Lights.7.on'; 
    // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
    // Bei Nicht-Verwendung Leerstring '' zuweisen
    const idRead = ''; //'knx.0.Wohnen.Licht.Esstisch_Status'/*Wohnen Licht Esstisch Status*/;
     
    // Alias-A Licht 
    const idAlias = 'Licht Wintergarten;
    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
    // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
    nameAlias = 'A Licht Wintergarten';
    desc = 'per Script erstellt';
    // typeAlias = 'boolean'; // oder 'number'
    //read = "Math.round(0+3 * val)/100"; // a und b durch Zahlen ersetzen !
    //write = "val ? true : true";
    //role = 'value';
    // min = 0; // nur Zahlen
    // max = 100; // nur Zahlen
    //unit = '°C'; // 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 = 'wintergarten'; // 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);
    

    Leider scheinen in Objekte keine Ordner "Zimmer und Licht" erstellt zu werden - was ich eigentlich dachte - wie bekomme ich sie denn in Ordner (Objekte Flutlicht und Licht Terrasse)?

    8313358e-1c8a-4a2e-a609-1c6bc1bbf7c2-grafik.png

    paul53P 1 Antwort Letzte Antwort
    0
    • B brokeling

      Hier z. B. mein Script code:

      // Original-Datenpunkt
      const idOrigin = 'deconz.0.Lights.7.on'; 
      // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
      // Bei Nicht-Verwendung Leerstring '' zuweisen
      const idRead = ''; //'knx.0.Wohnen.Licht.Esstisch_Status'/*Wohnen Licht Esstisch Status*/;
       
      // Alias-A Licht 
      const idAlias = 'Licht Wintergarten;
      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
      // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
      nameAlias = 'A Licht Wintergarten';
      desc = 'per Script erstellt';
      // typeAlias = 'boolean'; // oder 'number'
      //read = "Math.round(0+3 * val)/100"; // a und b durch Zahlen ersetzen !
      //write = "val ? true : true";
      //role = 'value';
      // min = 0; // nur Zahlen
      // max = 100; // nur Zahlen
      //unit = '°C'; // 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 = 'wintergarten'; // 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);
      

      Leider scheinen in Objekte keine Ordner "Zimmer und Licht" erstellt zu werden - was ich eigentlich dachte - wie bekomme ich sie denn in Ordner (Objekte Flutlicht und Licht Terrasse)?

      8313358e-1c8a-4a2e-a609-1c6bc1bbf7c2-grafik.png

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

      @brokeling sagte:

      wie bekomme ich sie denn in Ordner (Objekte Flutlicht und Licht Terrasse)?

      Durch Punkt in der Alias-ID, z.B. "Licht.Wintergarten" erzeugt den Datenpunkt "Wintergarten" im Ordner "Licht".

      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

      B 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @brokeling sagte:

        wie bekomme ich sie denn in Ordner (Objekte Flutlicht und Licht Terrasse)?

        Durch Punkt in der Alias-ID, z.B. "Licht.Wintergarten" erzeugt den Datenpunkt "Wintergarten" im Ordner "Licht".

        B Offline
        B Offline
        brokeling
        schrieb am zuletzt editiert von
        #3

        @paul53
        also so:

        const idAlias = 'Licht.Wintergarten.Licht Wintergarten';
        
        paul53P 1 Antwort Letzte Antwort
        1
        • B brokeling

          @paul53
          also so:

          const idAlias = 'Licht.Wintergarten.Licht Wintergarten';
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @brokeling sagte:

          also so:

          Weshalb doppelt ? Und bitte keine Leerzeichen in IDs verwenden ! "Licht Wintergarten" sollte der Name (nameAlias) sein.

          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

          B 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @brokeling sagte:

            also so:

            Weshalb doppelt ? Und bitte keine Leerzeichen in IDs verwenden ! "Licht Wintergarten" sollte der Name (nameAlias) sein.

            B Offline
            B Offline
            brokeling
            schrieb am zuletzt editiert von
            #5

            @paul53
            o.k., muss ich ausprobieren - danke!

            B 1 Antwort Letzte Antwort
            0
            • B brokeling

              @paul53
              o.k., muss ich ausprobieren - danke!

              B Offline
              B Offline
              brokeling
              schrieb am zuletzt editiert von brokeling
              #6

              Also das geht schon sehr gut!
              Aber eigentlich möchte ich es so erzeugen, dass ich für ein Alias Objekt z. B. 3 Zustände auf gleicher Ebene habe (die weiteren Zustände habe ich unter "Geräte" vergeben), ich denke so wäre es sinnvollr:

              1. Set
              2. Dimmwert oder Farbe...
              3. reachable?

              Jetzt habe ich aber eine (unerwünschte) Hierarchie:
              b3cc5acd-e152-4dc1-853d-0a0f97171f19-grafik.png

              Was kann man eigentlich unter "working", "maintain", "error" vergeben?

              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
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              614

              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