Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Fragen / Antworten rund um die neue Alias Funktion

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fragen / Antworten rund um die neue Alias Funktion

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      CruziX @apollon77 last edited by CruziX

      @apollon77 Die Idee mit dem Default Eintrag ist ja nicht schlecht, wie bei userdata

      1 Reply Last reply Reply Quote 0
      • G
        guergen @apollon77 last edited by

        @apollon77 Perfekt... gewusst wo!
        Danke!

        1 Reply Last reply Reply Quote 0
        • hg6806
          hg6806 Most Active last edited by

          Leider habe ich ein generelles Verständnisproblem bei Alias.

          Erstellt wird es doch wenn ich in einem Datenpunkt ein Alias-ID angeben wie z.B. hier:

          2020-03-20 19_26_38-objects - ioBroker.jpg

          Nun sollte doch in Objekten ein Alias.0 Ordner erstellt werden. Ist aber nicht der Fall:

          2020-03-20 19_28_58-objects - ioBroker.jpg

          Oder muss ich für jeden Alias ein eigenes Script schreiben wie in der Doku?

          Nehmen wir mal an ich habe einen Datenpunkt wie in meinem Fall vom Smartmeter Adapter.
          Der Datenpunkt wird oft verwendet in Javascript, VIS und anderen Adaptern.
          Wenn ich jetzt einen Alias Datenpunkt setze, muss ich doch trotzdem überall, also in VIS Javascript und anderen Adaptern den original Smartmeter Datenpunkt gegen den Alias ersetzen. Die Arbeit bleibt mir nicht erspart.
          Doch sollte sich jetzt der Smartmeter Datenpunkt ändern brauche ich nur den neuen Smartmeter Datenpunkt auf den Alias setzen, oder?
          Habe ich das so richtig verstanden?

          SBorg 1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active @hg6806 last edited by

            @hg6806 sagte in Fragen / Antworten rund um die neue Alias Funktion:

            Habe ich das so richtig verstanden?

            Ja, unter anderem. Du kannst natürlich auch Werte konvertieren, Berechnungen durchführen...

            @hg6806 sagte in Fragen / Antworten rund um die neue Alias Funktion:

            Nun sollte doch in Objekten ein Alias.0 Ordner erstellt werden. Ist aber nicht der Fall:

            Nein, du bist im History-Adapter. Dort wird mit dem Alias nur der Name geändert. Im History würdest du also nicht smartmeter.1......value finden, sondern die Alias-Bezeichnung Smartmeter1_Momentane_Gesamtleistung
            Ist halt ggf. mit dieser Bezeichnung besser zu identifizieren 😉

            Der Alias wird direkt unter "Objekte" angelegt.

            1 Reply Last reply Reply Quote 0
            • hg6806
              hg6806 Most Active last edited by hg6806

              Sorry, jetzt verstehe ich gar nichts.
              Wo finde ich den Alias, den ich in History angelegt habe?
              Der Name steht unverändert in den Objekten.

              2020-03-21 09_02_03-objects - ioBroker.jpg

              Und wie lege ich nun ein Alias für einen Datenpunkt an?
              Unter Objekte finde ich nichts.

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @hg6806 last edited by paul53

                @hg6806 sagte:

                Unter Objekte finde ich nichts.

                Siehe hier

                @hg6806 sagte in Fragen / Antworten rund um die neue Alias Funktion:

                Wo finde ich den Alias, den ich in History angelegt habe?

                Der History-Alias hat nichts mit dem alias.0 des js-controllers zu tun. Er ist im Datenpunkt-Objekt unter common.custom['history.0'].aliasId hinterlegt.

                    "custom": {
                      "history.0": {
                        "enabled": true,
                        "changesOnly": true,
                        "debounce": "1000",
                        "maxLength": "10",
                        "retention": "259200",
                        "changesRelogInterval": 0,
                        "changesMinDelta": 0,
                        "aliasId": ""
                      },
                
                1 Reply Last reply Reply Quote 0
                • hg6806
                  hg6806 Most Active last edited by

                  Sorry, aber ich verstehe noch immer nicht wie man überhaupt ein Alias anlegt.
                  Geht das händisch über den Scriptteil?

                  Und was bringt dann ein Alias Eintrag im History?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @hg6806 last edited by

                    @hg6806 sagte in Fragen / Antworten rund um die neue Alias Funktion:

                    Alias anlegt.
                    Geht das händisch über den Scriptteil?

                    Ja, das geht manuell im Tab "Objekte". Dann muss man unter common noch den alias-Teil hinzufügen. Beispiel:

                      "common": {
                        "name": "Licht Haustür",
                        "role": "switch",
                        "type": "boolean",
                        "desc": "Manuell erzeugt",
                        "read": true,
                        "write": true,
                        "def": false, // Das Komma hinter false und die folgende alias.id nachträglich hinzugefügt
                        "alias": {
                          "id": "sonoff.0.Licht-Haustuere.POWER"
                        }
                    

                    Einfacher ist es sicherlich mit der Script-Vorlage.

                    1 Reply Last reply Reply Quote 0
                    • hg6806
                      hg6806 Most Active last edited by

                      Dann ist der Aufwand für mich viel zu groß.
                      Interessant wäre es halt beim Smartmeter Adapter gewesen, aber wenn ich händisch den Alias erst erstellen muss, dann noch an allen Stellen den Smartmeter Datenpunkt gegen den Alias auszutauschen ist es doch einfacher direkt den alten Smartmeter Datenpkt gegen den neuen auszutauschen.
                      Und es ist doch (hoffentlich) sehr unwahrscheinlich dass durch ein Update des Smartmeter Adapters sich nochmal die Datenpunkte ändern.

                      Ich verstehe halt von Software nicht so viel und müsste mich zudem erstmal in das einzufügende Script eindenken.

                      1 Reply Last reply Reply Quote 0
                      • hg6806
                        hg6806 Most Active last edited by

                        Noch eine Sache die ich nicht verstanden habe.
                        Wenn ich nun für einen Datenpunkt ein Alias erstelle und sich der Datenpunkt dann ändert (aber der Alias soll gleich bleiben) muss ich doch für den neuen Datenpunkt das Alias-Script rüberkopieren in den neuen Datenpunkt, oder?
                        Weil hier immer nur steht dass man die ID ändern muss.

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @hg6806 last edited by

                          @hg6806 sagte:

                          Alias erstelle und sich der Datenpunkt dann ändert (aber der Alias soll gleich bleiben) muss ich doch für den neuen Datenpunkt das Alias-Script rüberkopieren in den neuen Datenpunkt, oder?

                          Wenn sich der Original-Datenpunkt (die ID) ändert, muss nur die ID im Alias-Datenpunkt angepasst werden.

                              "alias": {
                                "id": "sonoff.0.Licht-Haustuere.POWER" // Nach Gerätetausch anpassen
                              }
                          
                          1 Reply Last reply Reply Quote 0
                          • hg6806
                            hg6806 Most Active last edited by

                            Aber ich dachte das trägt man in den Datenpunkt des Geräts ein hinten bei RAW?

                            Denn ich habe ja noch gar kein Alias Datenpunkt.

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @hg6806 last edited by

                              @hg6806 sagte:

                              Aber ich dachte das trägt man in den Datenpunkt des Geräts ein hinten bei RAW?

                              Nein, das ist so beim Adapter ioBroker.linkeddevices, nicht aber beim Alias.

                              hg6806 1 Reply Last reply Reply Quote 0
                              • hg6806
                                hg6806 Most Active @paul53 last edited by

                                @paul53 sagte in Fragen / Antworten rund um die neue Alias Funktion:

                                ioBroker.linkeddevices

                                Was ist das denn?

                                Dann habe ich noch immer nicht verstanden wie man überhaupt ein Alias Datenpunkt anlegt.

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @hg6806 last edited by

                                  @hg6806 sagte:

                                  nicht verstanden wie man überhaupt ein Alias Datenpunkt anlegt.

                                  Zeige mal einen Datenpunkt zu dem Du einen Alias erstellen möchtest.

                                  1 Reply Last reply Reply Quote 0
                                  • hg6806
                                    hg6806 Most Active last edited by

                                    Hier sind zwei Screenshots:

                                    2020-03-21 20_40_12-objects - ioBroker.jpg

                                    2020-03-21 20_40_38-objects - ioBroker.jpg

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @hg6806 last edited by paul53

                                      @hg6806
                                      Dann kopiere das Script, passe die Alias-ID und den Namen an und starte das Script.

                                      // Original-Datenpunkt
                                      const idOrigin = 'smartmeter.0.1-0:1_8_0_255.value';
                                       
                                      // Alias-Datenpunkt
                                      const idAlias = 'smartmeter.zaehler_1.bezug_total';
                                      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                                      // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                                      nameAlias = 'Zähler 1 Bezug total';
                                      desc = 'per Script erstellt';
                                      // typeAlias = 'boolean'; // oder 'number'
                                      // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                                      // write = "val ? 'Ein' : 'Aus'";
                                      // role = 'indicator';
                                      // min = 0; // nur Zahlen
                                      // max = 100; // nur Zahlen
                                      // unit = '%'; // nur für Zahlen
                                      // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                                      custom = []; // verhindert doppelte Ausführung von history, ...
                                      // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                                      // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                                      
                                      function createAlias(idSrc, idDst) {
                                         if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                                         else {
                                            var obj = {};
                                            obj.type = 'state';
                                            obj.common = getObject(idSrc).common;
                                            obj.common.alias = {};
                                            obj.common.alias.id = idSrc;
                                            if(typeAlias) obj.common.type = typeAlias;
                                            if(obj.common.read !== false && read) obj.common.alias.read = read;
                                            if(obj.common.write !== false && write) obj.common.alias.write = write;
                                            if(nameAlias) obj.common.name = nameAlias;
                                            if(role) obj.common.role = role;
                                            if(desc) obj.common.desc = desc;
                                            if(min !== undefined) obj.common.min = min;
                                            if(max !== undefined) obj.common.max = max;
                                            if(unit) obj.common.unit = unit;
                                            if(states) obj.common.states = states;
                                            if(custom && obj.common.custom) obj.common.custom = custom;
                                            obj.native = {};
                                            setObject(idDst, obj);
                                            if(raum && 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);
                                            }
                                         } 
                                      }
                                       
                                      createAlias(idOrigin, 'alias.0.' + idAlias);
                                      

                                      Anschließend die Instanz admin.0 neu starten (nicht stoppen !).

                                      hg6806 1 Reply Last reply Reply Quote 0
                                      • hg6806
                                        hg6806 Most Active @paul53 last edited by

                                        @paul53
                                        Danke, aber wohin kopieren? Als normales Javascript?

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @hg6806 last edited by

                                          @hg6806 sagte:

                                          Als normales Javascript?

                                          Ja.

                                          1 Reply Last reply Reply Quote 0
                                          • hg6806
                                            hg6806 Most Active last edited by hg6806

                                            Danke, hat soweit geklappt.
                                            Nun habe ich doch angefangen alle Smartmeterwerte in Alias zu schreiben.
                                            Damit ich einen Überblick bekomme habe ich sogar mal eine Excel Übersicht darüber erstellt.

                                            Fragen dazu, kann man hier die Alias-Werte auch runden, bzw die Nachkommastellen angeben?
                                            Ich habe mit den original Smartmeterwerten immer das Problem, dass durch die vielen Nachkommastellen die History-Werte immer sehr groß werden.

                                            Noch etwas off-topic. Kann man bei den Datenwerten irgendwie herausfinden wo die Werte überall benutzt werden? Vis, Flot, Javascript, etc.

                                            paul53 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            607
                                            Online

                                            31.8k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            alias js-controller
                                            87
                                            615
                                            140366
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo