Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    684

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Alias über script anlegen - wo sind die Ordner?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
aliasordner
6 Beiträge 2 Kommentatoren 529 Aufrufe 3 Beobachtet
  • Ä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: Asus PN 42 / N100 / 8 GB / 500 GB

      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: Asus PN 42 / N100 / 8 GB / 500 GB

          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

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              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

              438

              Online

              32.9k

              Benutzer

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