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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Javascript 6.1.0 - Neue Funktionen (Beta)

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                          • L
                            Labersack @paul53 last edited by Labersack

                            @paul53
                            Das hatte ich auch schon probiert, damit klappt es teilweise.
                            Es wird die Struktur wie aus deinem vorletzten Post erzeugt.
                            Setzten des Alias auf 50 setzt ...Commands.brightness auf 127,5, bis dahin wie gewünscht.
                            Im ...Info.screenBrightness steht aber dann 10 und vermutlich dadurch im alias 3,921...%
                            Das Tablett selber schaltet übrigens auf ziemlich Dunkel, also das ist eher 10 als 127,5 (von 255).

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

                              @labersack muss da vllt noch ein Math.floor() dazu? Weil ich eher annehme das kommawerte nicht unterstützt sind. Sind es vllt genau die kommawerte die das Problem sind?

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

                                @apollon77
                                Tatsächlich hat der Adapter mit Probleme mit Dezimalwerten: wenn ich in den direkten DP vom Adapter 127.5 schreibe, setzt er die Helligkeit auch auf falsche Werte.
                                Ich habe den Alias deswegen auf math.Round angepasst, trotzdem kann ich über den Alias nicht die Helligkeit korrekt steuern, sobald ich auf Prozent umrechne. Wenn ich als Wert 0-255 belasse, klappt es einwandfrei.
                                Zusätzliche Schwierigkeit könnte auch sein, dass die Rückmeldung in INFO bis zu 10 Sekunden nach Setzten des COMMANDS kommt, also nicht wegen Alias, sondern bei dem Adapter an sich. Man kann die Zeit im Adapter zwar auch kürzer einstellen, aber das habe ich aus Erfahrungen der Vergangenheit auf 10s stehen.

                                Wenn ich den DP wie folgt erstellen lasse:

                                {
                                  "common": {
                                    "type": "number",
                                    "unit": "%",
                                    "alias": {
                                      "id": {
                                        "read": "fullybrowser.0.10_1_2_103.Info.screenBrightness",
                                        "write": "fullybrowser.0.10_1_2_103.Commands.screenBrightness"
                                      },
                                      "read": "math.Round(val/2.55)",
                                      "write": "math.Round(val*2.55)"
                                    },
                                    "name": "screenBrightness",
                                    "role": "value"
                                  },
                                  "native": {},
                                  "type": "state",
                                  "from": "system.adapter.javascript.0",
                                  "user": "system.user.admin",
                                  "ts": 1671117642794,
                                  "_id": "alias.0.0_Test.Maverick.Helligkeit",
                                  "acl": {
                                    "object": 1636,
                                    "state": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator"
                                  }
                                }
                                

                                Dann kann ich nichts steuern. Gesetzte Werte im Alias werden nicht nach COMMANDS geschrieben. Auch direkt in den DP COMMANDS geschriebene Werte kommen nicht im Alias an, aber steuern die Helligkieit und kommen nach ein paar Sekunden in INFO.

                                Ohne math.Round oder math.Floor klappt es, aber eben mit falschen Werten. Habe ich noch einen Syntax-Fehler beim Runden? Sieht für mich eigentlich richtig aus....

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

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

                                  Ich habe den Alias deswegen auf math.Round angepasst, trotzdem kann ich über den Alias nicht die Helligkeit korrekt steuern, sobald ich auf Prozent umrechne. Wenn ich als Wert 0-255 belasse, klappt es einwandfrei.

                                  Und warum nicht?

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

                                    @labersack sagte: Habe ich noch einen Syntax-Fehler beim Runden?

                                    Ja.

                                    Math.round
                                    
                                    L 1 Reply Last reply Reply Quote 1
                                    • L
                                      Labersack @paul53 last edited by Labersack

                                      @paul53
                                      🤦‍♂️
                                      Au Mann, groß/klein falschrum. Doof Ich.

                                      Kaum macht man's richtig, schon funktioniert's.
                                      Danke.

                                      Das Problem war also tatsächlich dass der Adapter mit Dezimalzahlen nicht klarkommt, und die Lösung war das Runden auf Ganzzahlen (was auch funktioniert, wenn man Groß-/Kleinschreibung korrekt anwendet).

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

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

                                        Das Problem war also tatsächlich dass der Adapter mit Dezimalzahlen nicht klarkommt, und die Lösung war das Runden auf Ganzzahlen (was auch funktioniert, wenn man Groß-/Kleinschreibung korrekt anwendet).

                                        Dann gern ein issue anlegen beim Adapter, da kann der Dev was tun

                                        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

                                        884
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

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