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.1k

[Vorlage] Alias per Skript erzeugen

Geplant Angeheftet Gesperrt Verschoben JavaScript
314 Beiträge 38 Kommentatoren 63.4k 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.
  • paul53P paul53

    @marty56 sagte: Wäre es möglich, dass man per Script einen Alias löscht und dann wieder neu anlegt?

    Man kann das Script durch Auskommentieren von 3 Zeilen so ändern, dass es überschreibt: Im Orginal Zeilen 29, 30 und 73.
    Anschließend nicht vergessen, die Änderung rückgängig zu machen!

    M Offline
    M Offline
    Marty56
    schrieb am zuletzt editiert von
    #277

    @paul53 Danke funktioniert super.

    HW:NUC (16 GB Ram)
    OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

    M 1 Antwort Letzte Antwort
    0
    • M Marty56

      @paul53 Danke funktioniert super.

      M Offline
      M Offline
      Marty56
      schrieb am zuletzt editiert von
      #278

      @paul53

      Beim Erzeugen für den alias eines Homematic Temperaturfühlers bekomme ich

      javascript.0	2021-02-16 09:34:13.603	warn	(6593) This object will not be created in future versions. Please report this to the developer.
      javascript.0	2021-02-16 09:34:13.603	warn	(6593) Object alias.0.AS_Thermo_TEMPERATURE is invalid: obj.common.custom has an invalid type! Expected "object", received "object"
      

      Bei allen meinen Datenpunkten ist
      custom = [];

      Mir ist nicht klar, was ich hier eintragen soll

      Dieselbe Ausgabe bekomme ich beim Strommessgerät.

      HW:NUC (16 GB Ram)
      OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

      B paul53P 2 Antworten Letzte Antwort
      0
      • M Marty56

        @paul53

        Beim Erzeugen für den alias eines Homematic Temperaturfühlers bekomme ich

        javascript.0	2021-02-16 09:34:13.603	warn	(6593) This object will not be created in future versions. Please report this to the developer.
        javascript.0	2021-02-16 09:34:13.603	warn	(6593) Object alias.0.AS_Thermo_TEMPERATURE is invalid: obj.common.custom has an invalid type! Expected "object", received "object"
        

        Bei allen meinen Datenpunkten ist
        custom = [];

        Mir ist nicht klar, was ich hier eintragen soll

        Dieselbe Ausgabe bekomme ich beim Strommessgerät.

        B Offline
        B Offline
        bishop
        schrieb am zuletzt editiert von
        #279

        @marty56

        wie in meinem Post oben

        ist nicht das Script von hier!

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          Marty56
          schrieb am zuletzt editiert von
          #280

          @bishop mit

          custom = undefined
          

          funktioniert es.

          HW:NUC (16 GB Ram)
          OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

          B 1 Antwort Letzte Antwort
          0
          • M Marty56

            @bishop mit

            custom = undefined
            

            funktioniert es.

            B Offline
            B Offline
            bishop
            schrieb am zuletzt editiert von
            #281

            @marty56

            gut zu wissen!

            Danke

            1 Antwort Letzte Antwort
            0
            • M Marty56

              @paul53

              Beim Erzeugen für den alias eines Homematic Temperaturfühlers bekomme ich

              javascript.0	2021-02-16 09:34:13.603	warn	(6593) This object will not be created in future versions. Please report this to the developer.
              javascript.0	2021-02-16 09:34:13.603	warn	(6593) Object alias.0.AS_Thermo_TEMPERATURE is invalid: obj.common.custom has an invalid type! Expected "object", received "object"
              

              Bei allen meinen Datenpunkten ist
              custom = [];

              Mir ist nicht klar, was ich hier eintragen soll

              Dieselbe Ausgabe bekomme ich beim Strommessgerät.

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

              @marty56 sagte: is invalid: obj.common.custom has an invalid type! Expected "object", received "object"

              Ändere Zeile 23 in

              custom = {}; // verhindert doppelte Ausführung von history, ...
              

              Die neuen Versionen des js-controller unterscheiden zwischen array und und object, das kein Array ist.

              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

              JoJo58J 1 Antwort Letzte Antwort
              1
              • B bishop

                @paul53

                ich wollte gestern mal wieder paar Aliases anlegen lassen mit deinem Script hat auch immer wunderbar funktioniert!
                Jetzt ist es aber so dass ich ein Fehler bekomme..

                2021-02-10 21:30:11.239 - info: javascript.0 (1231) script.js.common.Aliases_erstellen_neu: Created Alias-State alias.0.Batterien_Prozent.JanRemote
                2021-02-10 21:30:11.239 - warn: javascript.0 (1231) Object alias.0.Batterien_Prozent.JanRemote is invalid: obj.common.custom has an invalid type! Expected "object", received "object"
                2021-02-10 21:30:11.240 - warn: javascript.0 (1231) This object will not be created in future versions. Please report this to the developer.
                
                

                kann gerade nicht den Teil des Scriptes liefern da ich nicht zu hause bin, werde ich nachreichen wenn es benötigt wird.
                Ich versteh den Fehler so das er "object" erwartet aber ein "object" bekommt also eigentlich doch richtig oder?

                Ist ein Zigbee DP der Prozent liefert, gleiche DP werden aber erstellt.

                M Offline
                M Offline
                Michi68
                schrieb am zuletzt editiert von
                #283

                @bishop
                du hast ja auch das Script von CruziX benutzt wenn ich das richtig sehe, hatte eben die gleichen Fehler hab dann
                Zeile 172

                obj.common.custom = []; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                

                in

                obj.common.custom = {}; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                

                also die [] gegen die {} getauscht
                dann sollte es wieder gehen, kannst du ja mal Testen, hab sonst von Javascript keine ahnung.
                einfach mal ausprobiert und es ging
                hat mich gerade @Paul53 drauf gebracht Danke dafür

                Gruß Michael

                B 1 Antwort Letzte Antwort
                0
                • M Michi68

                  @bishop
                  du hast ja auch das Script von CruziX benutzt wenn ich das richtig sehe, hatte eben die gleichen Fehler hab dann
                  Zeile 172

                  obj.common.custom = []; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                  

                  in

                  obj.common.custom = {}; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                  

                  also die [] gegen die {} getauscht
                  dann sollte es wieder gehen, kannst du ja mal Testen, hab sonst von Javascript keine ahnung.
                  einfach mal ausprobiert und es ging
                  hat mich gerade @Paul53 drauf gebracht Danke dafür

                  Gruß Michael

                  B Offline
                  B Offline
                  bishop
                  schrieb am zuletzt editiert von
                  #284

                  @michi68

                  Danke, funktioniert :)

                  lobomauL 1 Antwort Letzte Antwort
                  0
                  • B bishop

                    @michi68

                    Danke, funktioniert :)

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

                    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();
                    

                    Host: NUC8i3 mit Proxmox:

                    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                    • Slave: Pi4
                    GarfonsoG 1 Antwort Letzte Antwort
                    0
                    • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          1.0k

                                          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