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. [Vorlage] Alias per Skript erzeugen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

[Vorlage] Alias per Skript erzeugen

Geplant Angeheftet Gesperrt Verschoben JavaScript
314 Beiträge 38 Kommentatoren 63.3k Aufrufe 66 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.
  • lobomauL lobomau

    Ich habe in meinen Alias folgenden Fehler. Im Script muss da wohl etwas angepasst werden. Weiß jemand was? Als Beispiel habe ich einen Alias error hingeschrieben. Ist bei fast allen anderen im Script auch so.

    Alias subscription error. Please check your alias definitions: sourceId=tesla-motors.0.LRW3E7EK4MC387xxx.charge_state.usable_battery_level, sourceObj={"type":"state","common":{"name":"usable_battery_level","role":"value","type":"number","write":false,"read":true},"native":{},"from":"system.adapter.tesla-motors.0","user":"system.user.admin","ts":1644763935883,"_id":"tesla-motors.0.LRW3E7EK4MC387xxx.charge_state.usable_battery_level","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
    

    Script:

    // Originalversion: User Paul53, https://forum.iobroker.net/topic/27295/vorlage-alias-per-skript-erzeugen
    // Angepasst an die asynchrone Eigenschaft von Javascript, kleine Ergänzungen.
    
    const vin = "LRW3E7EK4MC387xxx"; // VIN des Teslas eintragen 
    const prefix = 'alias.0.';
    const custhist = {
         /* "history.0": {
            "enabled": true,
            "changesOnly": true,
            "debounce": "200",
            "maxLength": "960",
            "retention": "1209600",
            "changesRelogInterval": "0",
            "changesMinDelta": 0,
            "aliasId": ""
          }, */
          "influxdb.0": {
            "enabled": true,
            "changesOnly": true,
            "debounce": "200",
            "retention": "63072000", 
            "changesRelogInterval": "0",
            "changesMinDelta": 0,
            "storageType": "",
            "aliasId": ""
          }
        };
     
    // Aliasdefinition als Array of Objects
    var aa = [
    /***
    {
        idOrigin : prefix + '',      // Orignal-Datenpunkt
        idRead : '',        // Status-Datenpunkt, wenn Status und Kommando getrennt. Leer wenn keine Trennung
        idAlias : prefix + '',       // Alias-Datenpunkt
        recreate : false,   // true: evtl. existierender Alias wird gelöscht - EXPERIMENTAL
        extend : true,      // true: evtl. existierender Alias wird ergänzt - EXPERIMENTAL: extendObject() statt setObject()
        typeAlias : '',     // Datentyp für Alias: number, boolean, mixed
        read : '',          // "val < 20 ? true : false" // Erkennung "Aus" --> false erfolgt automatisch
        write : '',         // "val ? 'Ein' : 'Aus'"
        nameAlias : '',     // Bezeichnung
        role : '',          // ioBroker Rolle
        desc : '',          // Beschreibung
        min : 0,            // Minimalwert, nur bei Datentyp number
        max : 100,          // Maximalwert, nur bei Datentyp number
        unit : '',          // Einheit bei Datentyp number: %, W, °C, usw.
        states : '',        // {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
        custom : [];        // leeres Array wird automatisch gesetzt, falls nichts angegeben. Verhindert doppelte Ausführung von
        history, ...
        raum : '',          // enum.room, Groß-/Kleinschreibung in der ID beachten
        gewerk : '',        // enum.function, Groß-/Kleinschreibung in der ID beachten
        owner : '',         // Owner, etwa system.user.admin
        group : '',         // Group, etwa system.group.familie
    },
    ***/
     
    // ---------------------------------------------------------------------------
    // Tesla charge
    // ----------------------------------------------------------------------------
    {
    	idAlias : prefix + 'Tesla.charge_state.charge_port_latch',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charge_port_latch',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charge_port_latch',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.battery_heater_on',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.battery_heater_on',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla battery_heater_on',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.battery_level',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.battery_level',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla battery_level',
        unit : '%',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.battery_range_km',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.battery_range_km',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla battery_range',
        unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.charge_energy_added',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charge_energy_added',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charge_energy_added',
        unit : 'kWh',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.charge_limit_soc',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charge_limit_soc',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charge_limit_soc',
        unit : '%',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.charge_km_added_rated',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charge_miles_added_rated',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charge_km_added_rated',
        unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.charge_rate',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charge_rate',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charge_rate',
        //unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.charger_power',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charger_power',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charger_power',
        //unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.charging_state',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.charging_state',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla charging_state',
        //unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.est_battery_range_km',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.est_battery_range_km',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla est_battery_range_km',
        unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.fast_charger_present',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.fast_charger_present',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla fast_charger_present',
        //unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.ideal_battery_range_km',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.ideal_battery_range_km',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla ideal_battery_range_km',
        unit : 'km',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.minutes_to_full_charge',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.minutes_to_full_charge',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla minutes_to_full_charge',
        unit : 'min',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.preconditioning_enabled',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.preconditioning_enabled',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla preconditioning_enabled',
        //unit : 'min',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    {
    	idAlias : prefix + 'Tesla.charge_state.usable_battery_level',
    	idOrigin : 'tesla-motors.0.' + vin + '.charge_state.usable_battery_level',
    	recreate : true,
    	extend : true,
    	nameAlias : 'Tesla usable_battery_level',
        unit : '%',
    	raum : 'tesla',
    	custom : custhist,
    	owner : "system.user.admin",
    	group : "system.group.user"
    },
    ];
     
     
    // ******************************
     
    // -------------------------------------------------
    // -------------------------------------------------
    function alias2enum(a, en, cb) {
        cb = (typeof(cb) === 'function') ? cb : function() {};
        if (en) {
            var o = getObject(en); 
            if(o) {
                if (!o.common.members.includes(a)) {
                    o.common.members.push(a);
                    setObject(en, o, function(e, o) { cb(); });
                } else cb();
            } else {
                log('alias2enum: ' + en + ' cannot get object', 'warn');
                cb();
            }
    	} else {
            log('alias2enum: ' + en + ' is invalid', 'warn');
            cb();
        }
    }    
     
     
    // ---------------------------------------------------
    // ---------------------------------------------------
    function createAlias(o, cb) {
        var obj = {};
        
        cb = (typeof(cb) === 'function') ? cb : function() {};
     
        if (!o || ! o.idOrigin || !o.idAlias) {
            log(o, 'error');
        }
        
        if (!existsState(o.idOrigin)) {
            log(o.idOrigin + ' existiert nicht', 'warn');
            cb();
            return;
        }
     
        if (existsState(o.idAlias)) {
            if (o.recreate) {
                log(o.idAlias + ' wird gelöscht', 'warn');    
                // EXPERIMENTAL
                // deleteObject() gibt keinen Fehler aus, löscht aber auch nicht.
                // falsche Anwendung? --> Recherchieren... ;-)
                // workaround: recreate auf false und extend auf true setzen.
                deleteObject(o.idAlias, false, function(err, obj) {
                    o.recreate = false;
                    o.extend = true;
                    createAlias(o, cb);
                    return;
                });
            } else if (!o.extend) {
                log(o.idAlias + ' schon vorhanden')
                cb();
                return;
            } else {
                log(o.idAlias + ' wird ergänzt');
            }
        } else {
            log(o.idAlias + ' wird angelegt');
        }
     
        obj.type = 'state';
        obj.common = getObject(o.idOrigin).common;
        obj.acl = getObject(o.idOrigin).acl;
        obj.common.alias = {};
     
        if(o.idRead) {
            obj.common.alias.id = {};
            obj.common.alias.id.read = o.idRead;
            obj.common.alias.id.write = o.idOrigin;
            obj.common.read = true;
        } else obj.common.alias.id = o.idOrigin;
        
        if(o.typeAlias) obj.common.type = o.typeAlias;
        if(obj.common.read !== false && o.read) obj.common.alias.read = o.read;
        if(obj.common.write !== false && o.write) obj.common.alias.write = o.write;
        if(o.nameAlias) obj.common.name = o.nameAlias;
        if(o.role) obj.common.role = o.role;
        if(o.desc) obj.common.desc = o.desc;
        if(o.min !== undefined) obj.common.min = o.min;
        if(o.max !== undefined) obj.common.max = o.max;
        if(o.unit) obj.common.unit = o.unit;
        if(o.states) obj.common.states = o.states;
        if(o.owner && obj.acl.owner) obj.acl.owner = o.owner;
        if(o.group && obj.acl.ownerGroup) obj.acl.ownerGroup = o.group;
      
        if(o.custom) {
            obj.common.custom = o.custom;
        } else {
            obj.common.custom = [];
        }
        
        obj.native = {};
    	
        // EXPERIMENTAL
        // Auswirkung von extendObject() auf Historydaten?
        extendObject(o.idAlias, obj, function(e, oa) {
            if (e) {
                log('Alias ' + o.idAlias + ' nicht angelegt - Fehler ' + e, 'error');
                cb();
                return;
            }
            log(o.idAlias + ' wird zum Raum ' + o.raum + ' hinzugefügt', 'info');
            alias2enum(o.idAlias, 'enum.rooms.' + o.raum, function() {
                if (o.gewerk) {
                    log(o.idAlias + ' wird zur Funktion ' + o.gewerk + ' hinzugefügt', 'info');
                    alias2enum(o.idAlias, 'enum.funtions.' + o.gewerk, cb);
                } else cb();
            });
        }); 
    }
     
     
    // ---------------------------------------------------
    // ---------------------------------------------------
    function createAliases() {
    	if (!aa) return;
    	if (!aa.length) return;
    	createAlias(aa.shift(), createAliases);
    }
     
     
    // *******************************
     
    createAliases();
    
    GarfonsoG Offline
    GarfonsoG Offline
    Garfonso
    Developer
    schrieb am zuletzt editiert von
    #286

    @lobomau said in [Vorlage] Alias per Skript erzeugen:

    tesla-motors.0.LRW3E7EK4MC387xxx.charge_state.usable_battery_level

    gibt es das Objekt tesla-motors.0.LRW3E7EK4MC387xxx.charge_state.usable_battery_level denn?

    Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

    Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

    lobomauL 1 Antwort Letzte Antwort
    0
    • GarfonsoG Garfonso

      @lobomau said in [Vorlage] Alias per Skript erzeugen:

      tesla-motors.0.LRW3E7EK4MC387xxx.charge_state.usable_battery_level

      gibt es das Objekt tesla-motors.0.LRW3E7EK4MC387xxx.charge_state.usable_battery_level denn?

      lobomauL Offline
      lobomauL Offline
      lobomau
      schrieb am zuletzt editiert von
      #287

      @garfonso ja, nur die xxx habe ich hier anonymisiert. Die Aliase funktioneren ansonsten auch. Kommt halt nur dieser Fehler. Bzw. ich hab in log grad geschaut und heute war der Fehler noch nicht.

      Host: NUC8i3 mit Proxmox:

      • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
      • Slave: Pi4
      H 1 Antwort Letzte Antwort
      0
      • lobomauL lobomau

        @garfonso ja, nur die xxx habe ich hier anonymisiert. Die Aliase funktioneren ansonsten auch. Kommt halt nur dieser Fehler. Bzw. ich hab in log grad geschaut und heute war der Fehler noch nicht.

        H Offline
        H Offline
        homecineplexx
        schrieb am zuletzt editiert von
        #288

        kann man zb unter einem Alias Ordner, wo von einem Device Alias-Datenpunkte liegen auch einen nicht Alias anlegen, dem ich einen Namen vergeben kann, den ich auch verwenden kann?

        lobomauL 1 Antwort Letzte Antwort
        0
        • H homecineplexx

          kann man zb unter einem Alias Ordner, wo von einem Device Alias-Datenpunkte liegen auch einen nicht Alias anlegen, dem ich einen Namen vergeben kann, den ich auch verwenden kann?

          lobomauL Offline
          lobomauL Offline
          lobomau
          schrieb am zuletzt editiert von lobomau
          #289

          @homecineplexx kann man erstmal machen. Ob es funktioniert und welche Nachteile es hat kann ich nicht sagen. Eigentlich hat man dafür ja "0_userdata".

          Mal testweise angelegt:
          83aaa6ba-7ef9-490c-8bd5-06d9a79ee04a-image.png

          admin warnt natürlich dass hier ein Alias ohne Ziel ist:

          
          admin.0
          2022-02-18 10:00:46.889	warn	Alias alias.0.Neuer_Ordner.Test has no target 9
          

          Host: NUC8i3 mit Proxmox:

          • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
          • Slave: Pi4
          H 1 Antwort Letzte Antwort
          0
          • lobomauL lobomau

            @homecineplexx kann man erstmal machen. Ob es funktioniert und welche Nachteile es hat kann ich nicht sagen. Eigentlich hat man dafür ja "0_userdata".

            Mal testweise angelegt:
            83aaa6ba-7ef9-490c-8bd5-06d9a79ee04a-image.png

            admin warnt natürlich dass hier ein Alias ohne Ziel ist:

            
            admin.0
            2022-02-18 10:00:46.889	warn	Alias alias.0.Neuer_Ordner.Test has no target 9
            
            H Offline
            H Offline
            homecineplexx
            schrieb am zuletzt editiert von
            #290

            @lobomau said in [Vorlage] Alias per Skript erzeugen:

            "0_userdata".

            ja mag schon sein, aber ich hab ehrlich gesagt keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata, was aus meiner Sicht auch keinen Sinn ergibt, wenn ich was suche.

            also per JavaScript konnte ich zwar so ein Objekt anlegen, aber keinen Wert zuweisen

            paul53P da_WoodyD 2 Antworten Letzte Antwort
            0
            • H homecineplexx

              @lobomau said in [Vorlage] Alias per Skript erzeugen:

              "0_userdata".

              ja mag schon sein, aber ich hab ehrlich gesagt keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata, was aus meiner Sicht auch keinen Sinn ergibt, wenn ich was suche.

              also per JavaScript konnte ich zwar so ein Objekt anlegen, aber keinen Wert zuweisen

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

              @homecineplexx sagte: keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata,

              Das lässt sich nicht vermeiden. Möglichst identische Ordner-Strukturen für beides verwenden.

              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
              • H homecineplexx

                @lobomau said in [Vorlage] Alias per Skript erzeugen:

                "0_userdata".

                ja mag schon sein, aber ich hab ehrlich gesagt keine lust, dass ich teile eines Devices im Alias habe und andere wiederrum im userdata, was aus meiner Sicht auch keinen Sinn ergibt, wenn ich was suche.

                also per JavaScript konnte ich zwar so ein Objekt anlegen, aber keinen Wert zuweisen

                da_WoodyD Offline
                da_WoodyD Offline
                da_Woody
                schrieb am zuletzt editiert von
                #292

                @homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:

                keine lust

                ist mal keine gute einstellung...
                aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon?

                gruß vom Woody
                HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                paul53P H 2 Antworten Letzte Antwort
                0
                • da_WoodyD da_Woody

                  @homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:

                  keine lust

                  ist mal keine gute einstellung...
                  aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon?

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

                  @da_woody sagte: machst dann einen alias davon?

                  Ist auch eine Variante, die allerdings Ressourcen verschwendet.

                  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

                  da_WoodyD 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @da_woody sagte: machst dann einen alias davon?

                    Ist auch eine Variante, die allerdings Ressourcen verschwendet.

                    da_WoodyD Offline
                    da_WoodyD Offline
                    da_Woody
                    schrieb am zuletzt editiert von
                    #294

                    @paul53 klar, aber wenn wer keine lust hat... ;)

                    gruß vom Woody
                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                    1 Antwort Letzte Antwort
                    0
                    • da_WoodyD da_Woody

                      @homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:

                      keine lust

                      ist mal keine gute einstellung...
                      aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon?

                      H Offline
                      H Offline
                      homecineplexx
                      schrieb am zuletzt editiert von
                      #295

                      @da_woody said in [Vorlage] Alias per Skript erzeugen:

                      @homecineplexx sagte in [Vorlage] Alias per Skript erzeugen:

                      keine lust

                      ist mal keine gute einstellung...
                      aber, warum legst du den DP nicht in userdate.0 an und machst dann einen alias davon?

                      das ist vielleicht eine gute Idee....ab und zu ist man so verbissen in eine Idee, dass man das rundherum nicht sieht...danke

                      1 Antwort Letzte Antwort
                      2
                      • paul53P paul53

                        @Troya sagte:

                        Kannst du dein Script damit erweitern?

                        Versuche es bitte selbst mit folgenden Erweiterungen:

                        var raum, gewerk; // Zeile 6 ergänzen
                        
                        // raum = 'EG_Flur'; // Zeile 18
                        // gewerk = 'Licht'; // Zeile 19
                        
                        // am Ende der Funktion createAlias() ergänzen (hinter setObject())
                              if(raum && getObject('enum.rooms.' + raum)) {
                                 let obj = getObject('enum.rooms.' + raum)
                                 obj.common.members.push(idDst);
                                 setObject('enum.rooms.' + raum, obj);
                              }
                              if(gewerk && getObject('enum.functions.' + gewerk)) {
                                 let obj = getObject('enum.functions.' + gewerk)
                                 obj.common.members.push(idDst);
                                 setObject('enum.functions.' + gewerk, obj);
                              }
                        
                        C Offline
                        C Offline
                        CBMOD
                        schrieb am zuletzt editiert von CBMOD
                        #296

                        @paul53

                             let obj = getObject('enum.functions.' + gewerk)
                             obj.common.members.push(idDst);
                             setObject('enum.functions.' + gewerk, obj);
                        

                        das setzen des Gewerks (Function) mit setObject funktioniert ! - aber wie kann ich es via script wieder entfernen?
                        bei dem Versuch mit delete object löscht es mir das komplette Gewerk

                        da_WoodyD paul53P 2 Antworten Letzte Antwort
                        0
                        • C CBMOD

                          @paul53

                               let obj = getObject('enum.functions.' + gewerk)
                               obj.common.members.push(idDst);
                               setObject('enum.functions.' + gewerk, obj);
                          

                          das setzen des Gewerks (Function) mit setObject funktioniert ! - aber wie kann ich es via script wieder entfernen?
                          bei dem Versuch mit delete object löscht es mir das komplette Gewerk

                          da_WoodyD Offline
                          da_WoodyD Offline
                          da_Woody
                          schrieb am zuletzt editiert von
                          #297

                          @cbmod das script in allen ehren, aber warum verwendest du nicht den Alias Manager?

                          gruß vom Woody
                          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                          F 1 Antwort Letzte Antwort
                          0
                          • C CBMOD

                            @paul53

                                 let obj = getObject('enum.functions.' + gewerk)
                                 obj.common.members.push(idDst);
                                 setObject('enum.functions.' + gewerk, obj);
                            

                            das setzen des Gewerks (Function) mit setObject funktioniert ! - aber wie kann ich es via script wieder entfernen?
                            bei dem Versuch mit delete object löscht es mir das komplette Gewerk

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

                            @cbmod sagte: wie kann ich es via script wieder entfernen?

                            Objekt einlesen, Element im Array obj.common.members löschen und Objekt schreiben.

                            @da_woody sagte in [Vorlage] Alias per Skript erzeugen:

                            warum verwendest du nicht den Alias Manager?

                            Ja, mittlerweile gibt es Adapter zum Alias erzeugen.

                            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

                            da_WoodyD 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @cbmod sagte: wie kann ich es via script wieder entfernen?

                              Objekt einlesen, Element im Array obj.common.members löschen und Objekt schreiben.

                              @da_woody sagte in [Vorlage] Alias per Skript erzeugen:

                              warum verwendest du nicht den Alias Manager?

                              Ja, mittlerweile gibt es Adapter zum Alias erzeugen.

                              da_WoodyD Offline
                              da_WoodyD Offline
                              da_Woody
                              schrieb am zuletzt editiert von
                              #299

                              @paul53 ich denke, du kannst damit leben. ich hab ja auch mit deinem script angefangen, darum "in allen ehren" :)
                              mit dem adapter ist aber auch das bearbeiten der aliase viel einfacher...
                              trotzdem danke für dein script damals!

                              gruß vom Woody
                              HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • da_WoodyD da_Woody

                                @paul53 ich denke, du kannst damit leben. ich hab ja auch mit deinem script angefangen, darum "in allen ehren" :)
                                mit dem adapter ist aber auch das bearbeiten der aliase viel einfacher...
                                trotzdem danke für dein script damals!

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

                                @da_woody sagte: ich denke, du kannst damit leben.

                                Ja, natürlich. Ich verwende auch den Alias-Manager.

                                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
                                1
                                • da_WoodyD da_Woody

                                  @cbmod das script in allen ehren, aber warum verwendest du nicht den Alias Manager?

                                  F Offline
                                  F Offline
                                  FuXXz2
                                  schrieb am zuletzt editiert von
                                  #301

                                  @da_woody Mit dem Alias Manager kann ich auch mit EINEM Mausklick, in meinem Fall, 90 Aliase erstellen?:thinking_face:

                                  Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden.

                                  da_WoodyD 1 Antwort Letzte Antwort
                                  0
                                  • F FuXXz2

                                    @da_woody Mit dem Alias Manager kann ich auch mit EINEM Mausklick, in meinem Fall, 90 Aliase erstellen?:thinking_face:

                                    Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden.

                                    da_WoodyD Offline
                                    da_WoodyD Offline
                                    da_Woody
                                    schrieb am zuletzt editiert von
                                    #302

                                    @fuxxz2 mit einem mausklick? wie stellst du dir das vor?

                                    in meinem Fall, 90 Aliase erstellen?

                                    90? :D sparsamst hast du 4-6 aliase pro gerät, außer du willst nur schalten und keine anderen infos.
                                    du musst dir mal eine struktur überlegen. dann nimmst du ein gerät in deinen objekten, z.b.
                                    bee8085d-6999-4d4a-a91a-780b36112bbf-grafik.png
                                    trägst da deine struktur ein
                                    63874111-d85a-47a5-8fa1-eb7a9176e501-grafik.png b1c112a4-707e-4b3b-bd4b-620adbeddf31-grafik.png c3486d9d-de80-4f57-9bb5-d63aa1c3dcb5-grafik.png
                                    suchst dir die DP aus, die du brauchst und bekommst
                                    1c93b8c4-40ab-49a9-b01d-a480d3a73dff-grafik.png

                                    gruß vom Woody
                                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                                    F 1 Antwort Letzte Antwort
                                    0
                                    • da_WoodyD da_Woody

                                      @fuxxz2 mit einem mausklick? wie stellst du dir das vor?

                                      in meinem Fall, 90 Aliase erstellen?

                                      90? :D sparsamst hast du 4-6 aliase pro gerät, außer du willst nur schalten und keine anderen infos.
                                      du musst dir mal eine struktur überlegen. dann nimmst du ein gerät in deinen objekten, z.b.
                                      bee8085d-6999-4d4a-a91a-780b36112bbf-grafik.png
                                      trägst da deine struktur ein
                                      63874111-d85a-47a5-8fa1-eb7a9176e501-grafik.png b1c112a4-707e-4b3b-bd4b-620adbeddf31-grafik.png c3486d9d-de80-4f57-9bb5-d63aa1c3dcb5-grafik.png
                                      suchst dir die DP aus, die du brauchst und bekommst
                                      1c93b8c4-40ab-49a9-b01d-a480d3a73dff-grafik.png

                                      F Offline
                                      F Offline
                                      FuXXz2
                                      schrieb am zuletzt editiert von FuXXz2
                                      #303

                                      @da_woody Ich muss dann wohl leider mit dem Umstand leben, der Einzige zu sein, der mit dem Alias-Manager so gar nicht klar kommt.
                                      Egal was ich da drin mache, danach geht bei mir immer gar nix mehr. Da hilft meist nur, alle Aliase löschen und dann das Script für Aliase erstellen einmal neu zu starten. Dann habe ich zumindest alles wieder da :)

                                      Erstelle ich nun einen Alias automatisch, ein Shelly z.B.
                                      Dann kann ich irgendwie keine Ordner anlegen, zudem möchte ich einfach nur den shelly.0.SHSW-1#40F5201DDADA#1.Relay0.Switch Datenpunkt als Alias.
                                      Und zwar in diesem Format:
                                      alias.0.Licht.KZ-Spiel_Wandlampe
                                      Screenshot 2022-10-23 021027.png

                                      Bei einem Sonoff das gleiche Spiel, er nennt den Alias dann XX POWER
                                      Screenshot 2022-10-23 021502.png

                                      Das heißt, obwohl ich nur einen Datenpunkt als Alias pro Gerät möchte, muss ich manuell den Ordner anpassen und den Namen.

                                      Daher zu meiner ursprünglichen Frage:
                                      Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden.

                                      da_WoodyD 1 Antwort Letzte Antwort
                                      0
                                      • F FuXXz2

                                        @da_woody Ich muss dann wohl leider mit dem Umstand leben, der Einzige zu sein, der mit dem Alias-Manager so gar nicht klar kommt.
                                        Egal was ich da drin mache, danach geht bei mir immer gar nix mehr. Da hilft meist nur, alle Aliase löschen und dann das Script für Aliase erstellen einmal neu zu starten. Dann habe ich zumindest alles wieder da :)

                                        Erstelle ich nun einen Alias automatisch, ein Shelly z.B.
                                        Dann kann ich irgendwie keine Ordner anlegen, zudem möchte ich einfach nur den shelly.0.SHSW-1#40F5201DDADA#1.Relay0.Switch Datenpunkt als Alias.
                                        Und zwar in diesem Format:
                                        alias.0.Licht.KZ-Spiel_Wandlampe
                                        Screenshot 2022-10-23 021027.png

                                        Bei einem Sonoff das gleiche Spiel, er nennt den Alias dann XX POWER
                                        Screenshot 2022-10-23 021502.png

                                        Das heißt, obwohl ich nur einen Datenpunkt als Alias pro Gerät möchte, muss ich manuell den Ordner anpassen und den Namen.

                                        Daher zu meiner ursprünglichen Frage:
                                        Kann ich eigentlich den Teil mit "nameAlias" mit mehreren Aliasen füllen? Ich möchte, dass einige Geräte in zwei Funktionen aufgenommen werden.

                                        da_WoodyD Offline
                                        da_WoodyD Offline
                                        da_Woody
                                        schrieb am zuletzt editiert von da_Woody
                                        #304

                                        @fuxxz2 0594d1db-76c7-4c2f-9e46-339957d944ad-grafik.png
                                        wo ist das problem? hab gerade testweise ein raumlicht (shelly1) genommen. ist der selbe wie der:
                                        de3b6a92-e40c-478e-b91b-82d70f344fcf-grafik.png
                                        funktioniert astrein...

                                        gruß vom Woody
                                        HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                                        F 1 Antwort Letzte Antwort
                                        0
                                        • da_WoodyD da_Woody

                                          @fuxxz2 0594d1db-76c7-4c2f-9e46-339957d944ad-grafik.png
                                          wo ist das problem? hab gerade testweise ein raumlicht (shelly1) genommen. ist der selbe wie der:
                                          de3b6a92-e40c-478e-b91b-82d70f344fcf-grafik.png
                                          funktioniert astrein...

                                          F Offline
                                          F Offline
                                          FuXXz2
                                          schrieb am zuletzt editiert von
                                          #305

                                          @da_woody Wenn ich eine ID auswähle, zb. shelly.0.SHSW-1#40F5201DDADA#1.Relay0
                                          Dann schlägt erzeugt er folgenden Alias
                                          alias.0.Channel Relay0.Switch

                                          Der Alias sollte aber alias.0.Licht.KZ-Wandlampe sein

                                          da_WoodyD 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

                                          775

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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