Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Javascript 6.1.0 - Neue Funktionen (Beta)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript 6.1.0 - Neue Funktionen (Beta)

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

      @bananajoe ja. As i remember

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @apollon77 last edited by Homoran

        @apollon77 sagte in Javascript 6.1.0 - Neue Funktionen (Beta):

        As i remember

        geht das bei dir auch schon los? :duckundwech:

        M 1 Reply Last reply Reply Quote 1
        • M
          Marty56 @Homoran last edited by Marty56

          @appollon

          Hi,

          Da ich immer diese massenhaften Abstürze bei den Aliases habe, möchte ich mein Alias Genierungsscript jetzt auf das offizielle API umstellen.
          Leider kappiere ich die Syntax nicht richtig.

          Alle Beispiele sollen überschreiben eines existierenden Alias enforcen.

          Beispiel 1.
          Ich möchte z.B. einen Wert invertieren.

          createAlias('alias.0.Test.test', 'hm-rpc.0.KEQ0172616.1.STATE',true, 
               {alias: { read: '!val'}
               })
          

          wird schon in der Syntax nicht angenommen.

          Beispiel 2:

          Und ich würde gerne den Typ des Alias ändern.
          Use Case. Es wird die Batterie in % gemessen im Original Datenpunkt und es soll ein Alias erzeugt werden, der boolean ausgibt, z.B. "low_bat".

          Irgendwie so

          createAlias('OG_Taster_3_LOWBAT', 'zigbee.0.943469fffe668b6a.battery',true, 
          {   
              name: "Zigbee Taster am Sofa im OG",
              type: "mixed",
              unit: "",
              alias: { read: "val < 20 ? true : false"}
          })
          

          letztlich soll der Alias so aussehen

          {
            "type": "state",
            "common": {
              "name": "Zigbee Taster am Sofa im OG",
              "type": "mixed",
              "unit": "",
              "read": true,
              "write": false,
              "role": "value.battery",
              "min": 0,
              "max": 100,
              "icon": "img/battery_p.png",
              "alias": {
                "id": "zigbee.0.943469fffe668b6a.battery",
                "read": "val < 20 ? true : false"
              }
            },
            "from": "system.adapter.javascript.0",
            "user": "system.user.admin",
            "ts": 1667491683697,
            "_id": "alias.0.OG_Taster_3_LOWBAT",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
          
          apollon77 1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 @Marty56 last edited by apollon77

            @marty56 Ok, da muss ggf Doku erweitert werden.

            Die Alias Definition ist immer der ZWEITE parameter.

            Also "nur ne ID" wird zu {alias: {id: aliasId}} im common.

            Wenn Du an der Alias definition rumschrauben willst dann musst du das als zweiten Parameter angeben, also in deinem Fall

            createAlias('alias.0.Test.test', {id:'hm-rpc.0.KEQ0172616.1.STATE', read:'!val'},true, 
            

            bzw im zweiten Fall:

            createAlias('alias.0.Test.geraet_low_bat', {id: 'zigbee.0.00158d0002a1a494.battery',read: "val < 20 ? true : false" },true, 
            
            {   type: "mixed",
                unit: "%",
            })
            

            PS: ich hab es innden javascript docs noch erwähnt, wobei da schon stand:

            • alias: can be either an existing state id as string or a object with full alias definition including read/write ids and read/write functions.

            Jetzt ist noch ein "Not: Alias definitions can not be set as part of the common parameter!" dazugekommen.

            M 1 Reply Last reply Reply Quote 2
            • M
              Marty56 @apollon77 last edited by

              @apollon77 Danke für die Erklärungen.

              Ich habe jetzt all meine Aliases auf das neue API umgestellt, alle alten Aliases gelöscht und dann wieder neu generiert.

              Leider ist dieser allgemeine, sporadische Alias Error immer noch da. Schade.

              2022-11-05 07:19:34.891 - error: admin.0 (516) Alias subscription error. Please check your alias definitions: sourceId=zigbee.0.00158d0003e57190.transition_time, sourceObj={"type":"state","common":{"name":"Transition time","type":"number","unit":"sec","read":false,"write":true,"role":"state"},"native":{},"from":"system.adapter.zigbee.0","user":"system.user.admin","ts":1653374903543,"_id":"zigbee.0.00158d0003e57190.transition_time","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
              2022-11-05 07:19:34.891 - error: admin.0 (516) Alias subscription error. Please check your alias definitions: sourceId=zigbee.0.00158d0003e57190.available, sourceObj={"type":"state","common":{"name":"Available","type":"boolean","read":true,"write":false,"role":"state"},"native":{},"from":"system.adapter.zigbee.0","user":"system.user.admin","ts":1653374903521,"_id":"zigbee.0.00158d0003e57190.available","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
              
              apollon77 1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 @Marty56 last edited by

                @marty56 Am Ende wegen dem Fehler wieder die Frage: Kannst du klar reprduzieren wann und warum es kommt?

                M 1 Reply Last reply Reply Quote 0
                • M
                  Marty56 @apollon77 last edited by

                  @apollon77
                  Ich habe nochmal ein bisschen geforscht.

                  Ich habe 380 Aliases. Davon sind 308 direkt unter alias.0.
                  Die anderen 80 sind in Unterverzeichnissen.
                  Alle Aliases, die in Unterverzeichnissen gespeichert sind, kommen in den Error Logs nicht vor, die anderen 308 werden alle als Error geloggt.

                  Vielleicht hängt es mit der Menge der Aliases zusammen, die unter einem Verzeichnis gespeichert werden können.

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

                    @marty56 Menge sollte nicht ... Auch die Lokation sollte an sich egal sein ... und mit nem adapterstart von dem Adapter der meckert ists wider weg für ne weile, korrekt?

                    M Pedder007 2 Replies Last reply Reply Quote 0
                    • M
                      Marty56 @apollon77 last edited by

                      @apollon77

                      Es kommt bei mir unregelmäßig, so ca. 1 -2 pro Tag.
                      Ich kann es nicht mit einem Adapterstart in Zusammenhang bringen.

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

                        @apollon77, ich hänge mich hier mal mit dran, da das 'Problem' (hat bisher keinen Einfluss auf irgendwelche Funktionalitäten), bei mir auch auftritt:
                        Fehlermeldung, z. B.:

                        Alias subscription error. Please check your alias definitions: sourceId=deconz.0.Lights.58.on, sourceObj={"type":"state","common":{"name":"BlitzPlug05 AL on","type":"boolean","role":"switch","read":true,"write":true},"native":{},"from":"system.adapter.deconz.0","user":"system.user.admin","ts":1653067264363,"_id":"deconz.0.Lights.58.on","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}}
                        

                        oder auch:

                        Alias subscription error. Please check your alias definitions: sourceId=deconz.0.Sensors.87.consumption, sourceObj={"type":"state","common":{"name":"Consumption 87 consumption","type":"number","role":"value.power.consumption","read":true,"write":false,"unit":"Wh","def":0},"native":{},"from":"system.adapter.deconz.0","user":"system.user.admin","ts":1653210287074,"_id":"deconz.0.Sensors.87.consumption","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
                        

                        Ich habe zwar (noch) nicht so viele Aliase, aber auch eine eigene Struktur in den Aliasen angelegt, da ich da sonst nichts wiederfinde 😉
                        Also neben:
                        alias.0.[Ein Alias]

                        auch so etwas wie:
                        alias.Licht.[[verschiedene Aliase]
                        alias.Remote.[versch. Aliase)
                        alias.Schalt.[versch. Aliase]
                        usw.

                        Ich stelle die Fehlermeldungen meist fest, wenn ich irgendwas an meinen Blocklys editiert habe, oder aber auch, wie gerade eben, wenn ich ein paar überflüssig gewordene Variablen gelöscht habe (Umzug von javascript.0.[ordner].[irgendwas] nach '0_userdata.0.[ordner].[irgendwas]).
                        Allerdings hatten diese Änderungen rein gar nichts mit den im Log angezeigten Alias-Fehlermeldungen zu tun.

                        Ohne jegliches Zutun scheinen die Meldungen nicht zu kommen, zumindest habe ich das bisher bei sporadischen Blicken aufs Log nicht feststellen können.

                        Ein Gedanke: Müsste ich meine Aliasstruktur evtl. eine Ebene tiefer hängen? - also immer zusätzlich noch ein '.0.' einschieben?

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

                          @pedder007 sagte: alias.Licht.[[verschiedene Aliase]

                          Alle Alias-Objekte müssen unter "alias.0" erstellt werden. Im Tab "Objekte" geht es auch nicht anders. Wie hast Du sie erstellt?

                          Pedder007 2 Replies Last reply Reply Quote 0
                          • Pedder007
                            Pedder007 @paul53 last edited by

                            @paul53 danke, das ging schnell 🙂

                            Wie meinst Du das genau?
                            Muss ich die '.0.' immer dazwischen haben, oder müssen ALLE Aliase immer direkt unter '.0.' definiert sein?
                            Weil wenn letzteres, also ohne weitere Zwischenebene (Kategorisierung), wird das aber schnell extrem unübersichtlich.

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

                              @paul53 said in Javascript 6.1.0 - Neue Funktionen (Beta):

                              Wie hast Du sie erstellt?

                              über die Umbenennungs-Funktion, bzw. dann später einfach kopiert und auf andere Objekte umdefiniert

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

                                @pedder007 sagte: Muss ich die '.0.' immer dazwischen haben

                                Ja.

                                @pedder007 sagte in Javascript 6.1.0 - Neue Funktionen (Beta):

                                müssen ALLE Aliase immer direkt unter '.0.' definiert sein?

                                Nein, möglichst keine: Immer eine Objektstruktur verwenden!

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

                                  @paul53 ok, Gott sei Dank 😰
                                  Sonst würde ich da gar nichts mehr finden 😉
                                  Dann mache ich mich mal daran das alles eine Ebene tiefer zu hängen und hoffe, dass das, das Alias-Fehlerproblem behebt.
                                  Besser jetzt, als wäre ich schon komplett durch damit.

                                  Es lebe die '0'.

                                  Danke Dir @paul53!

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

                                    @apollon77 Danke schön, bin jetzt auf v6.1.3 läuft alles top bis jetzt.👍
                                    Grüße
                                    Fabio

                                    L 1 Reply Last reply Reply Quote 0
                                    • L
                                      Labersack @Fabio last edited by Labersack

                                      Ich habe mir einen Alias für die Helligkeitssteuerung der Tablets gemacht. Da über den FullyAdapter Read und Write verschiedene DPs sind, verwende ich dafür

                                      createAlias('0_Test.Maverick.Helligkeit', {id: {read: 'fullybrowser.0.10_1_2_103.Info.screenBrightness', write: 'fullybrowser.0.10_1_2_103.Commands.screenBrightness'}},ForceCreate, 
                                      {   type: "number",
                                          unit: "%"
                                      });
                                      
                                      

                                      (ForceCreate ist eine vorher gesetzte Variable, momentan auf true)
                                      Das klappt bis dahin auch gut und die Helligkeit lässt sich steuern und anzeigen. Allerdings ist die Helligkeit hier 0-255, ich hätte aber gerne 0-100%. Also muss ich nach meinem Verständnis noch

                                      read: "val/2.55",
                                      write: "val*2.55"
                                      

                                      einfügen. Aber an welcher Stelle genau? Meine Versuche bis jetzt mit verschiedenen Positionen waren erfolglos.

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

                                        @labersack sagte: Aber an welcher Stelle genau?

                                        Unter common.alias:

                                          "alias": {
                                            "id": {
                                              "read": "fullybrowser.0.10_1_2_103.Info.screenBrightness",
                                              "write": "fullybrowser.0.10_1_2_103.Commands.screenBrightness"
                                            },
                                            "read": "val/2.55",
                                            "write": "val*2.55"
                                          }
                                        
                                        L 1 Reply Last reply Reply Quote 0
                                        • L
                                          Labersack @paul53 last edited by

                                          @paul53
                                          Ja, als Ergebnis.
                                          Nur wo im createAlias-Befehl?

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

                                            @labersack sagte: wo im createAlias-Befehl?

                                            createAlias('0_Test.Maverick.Helligkeit', {
                                                id: {
                                                    read: 'fullybrowser.0.10_1_2_103.Info.screenBrightness', 
                                                    write: 'fullybrowser.0.10_1_2_103.Commands.screenBrightness'
                                                },
                                                read: "val/2.55",
                                                write: "val*2.55"
                                            }, ForceCreate, {   
                                                type: "number",
                                                unit: "%"
                                            });
                                            
                                            L 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

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

                                            525
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            52
                                            3608
                                            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