Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Name von mehreren Objekten in einem Verzeichnis

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Name von mehreren Objekten in einem Verzeichnis

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

      @kusi sagte: anstelle des Datenpunkt-Namens dessen des Ordners anzuzeigen?

      Siehe hier

      K 1 Reply Last reply Reply Quote 1
      • K
        Kusi @paul53 last edited by

        @paul53

        Folgendes Problem habe ich bei gewissen Datenpunkten:
        Sämtliche Sensoren/Schalter habe ich im Alias-Manager hinzugefügt.

        Nun kommt bei gewissen Datenpunkten folgende Fehlermeldung:

        javascript.0
        2021-09-12 00:14:47.777	info	script.js.wichtige_Meldungen: Batteriestand niedrig: "Bewegungssensor Eingang aussen" %
        
        javascript.0
        2021-09-12 00:14:47.777	warn	at processTicksAndRejections (internal/process/task_queues.js:97:5)
        
        javascript.0
        2021-09-12 00:14:47.777	warn	at runMicrotasks (<anonymous>)
        
        javascript.0
        2021-09-12 00:14:47.777	warn	at script.js.wichtige_Meldungen:65:77
        
        javascript.0
        2021-09-12 00:14:47.776	warn	getState "alias.0.Sensor.Bewegungssensor Eingang aussen.battery" not found (3)
        

        Der Datenpunkt "alias.0.Sensor.Bewegungssensor Eingang aussen.battery" sieht aber wie folgt aus:

        {
          "type": "state",
          "common": {
            "name": "battery",
            "role": "value.battery",
            "type": "number",
            "unit": "%",
            "read": true,
            "write": false,
            "alias": {
              "id": "hue.0.Hue_outdoor_ambient_light_sensor.battery"
            }
          },
          "_id": "alias.0.Sensor.Bewegungssensor Eingang aussen.battery",
          "native": {},
          "from": "system.adapter.admin.0",
          "user": "system.user.admin",
          "ts": 1631398398059,
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        

        90150e38-fa45-461a-b0f5-70f186f987c1-image.png

        Woran kann das liegen?

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

          @kusi sagte: Woran kann das liegen?

          An Leerzeichen in der ID?

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

            @paul53 Nein, denn mit anderen Datenpunkten, welche Leerzeichen haben, funktioniert es.

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

              @kusi
              Das von mir gepostete Blockly enthält kein getState(id) auf einen Datenpunkt, außer auf die Listen. Was steht im Javascript-Code im Bereich der Zeile 65?

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

                @paul53 Folgendes sind die Zeilen 61-66:

                var id_list = Array.prototype.slice.apply($("alias.*.battery"));
                for (var id_index in id_list) {
                  id = id_list[id_index];
                  id_Ger_C3_A4tename_Batterie = await Ger_C3_A4tename(id);
                  console.log((['Batteriestand niedrig: "',id_Ger_C3_A4tename_Batterie,'" ',getState(id).val,' %'].join('')));
                }
                

                Hier der Teil vom Blockly:
                6da1a627-bec4-4475-98ec-84b1213c47c7-image.png

                Mit folgender JS-Funktion:

                id = id.substring(0, id.lastIndexOf('.'));
                if(existsObject(id)) return getObject(id).common.name;
                

                Wenn ich das Skript neu starte, dann kommt folgendes Debug:

                12.9.2021, 13:45:03.881	[info ]: javascript.0 (765) Stop script script.js.wichtige_Meldungen
                12.9.2021, 13:45:03.924	[info ]: javascript.0 (765) Start javascript script.js.wichtige_Meldungen
                12.9.2021, 13:45:03.981	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: registered 0 subscriptions and 2 schedules
                12.9.2021, 13:45:03.982	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Daniela Nachttischli" 11 %
                12.9.2021, 13:45:03.989	[warn ]: javascript.0 (765)     at script.js.wichtige_Meldungen:65:77
                12.9.2021, 13:45:03.990	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Garage Schalter"  %
                12.9.2021, 13:45:03.991	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Lena Schalter" 94 %
                12.9.2021, 13:45:03.992	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Storenschalter Küche" 59 %
                12.9.2021, 13:45:03.994	[warn ]: javascript.0 (765)     at script.js.wichtige_Meldungen:65:77
                12.9.2021, 13:45:03.995	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Bewegungssensor Eingang aussen"  %
                12.9.2021, 13:45:03.996	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Garderobe Türsensor" 100 %
                12.9.2021, 13:45:03.996	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Kellertüre" 100 %
                12.9.2021, 13:45:03.997	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Temperatur Keller" 85 %
                12.9.2021, 13:45:03.997	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Temperatur OG" 68 %
                12.9.2021, 13:45:03.998	[info ]: javascript.0 (765) script.js.wichtige_Meldungen: Batteriestand niedrig: "Temperatur Terrasse" 75 %
                

                Bei "Daniela Nachttischli" (Zeile 4) hatte ich den gleichen Fehler. Nach mehrmaligen löschen/erstellen des Alias war der Fehler plötzlich weg.

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

                  @kusi
                  Die Anführungszeichen innerhalb "erstelle Text aus" könnten Probleme machen.

                  K 1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @Kusi last edited by dslraser

                    @kusi
                    In Funktionen oder Variablen oder id's Umlaute und oder Leerzeichen und oder Sonderzeichen zu verwenden ist vielleicht auch nicht so gut...?
                    Ändere das mal ab, dann kannst Du das wenigstens als möglichen Fehler ausschließen.

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

                      @paul53
                      Mich irritiert vor allem der Log-Eintrag

                      javascript.0  2021-09-12 13:45:03.992	warn	getState "alias.0.Sensor.Bewegungssensor Eingang aussen.battery" not found (3)
                      

                      Warum not found wenn der Datenpunkt vorhanden ist?

                      @paul53 und @dslraser Entfernen von Umlauten, Leerzeichen und Anführungszeichen haben das Problem ebenfalls nicht behoben.

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

                        @kusi sagte: Entfernen von Umlauten, Leerzeichen und Anführungszeichen haben das Problem ebenfalls nicht behoben.

                        Dann bin ich mit meinem Latein am Ende. Starte mal die Javascript-Instanz neu.

                        K 1 Reply Last reply Reply Quote 1
                        • K
                          Kusi @paul53 last edited by

                          @paul53 sagte in Name von mehreren Objekten in einem Verzeichnis:

                          Starte mal die Javascript-Instanz neu

                          Das muss man jetzt nicht verstehen... Mit dem Neustart der Javascript-Instanz sind die Fehler behoben.

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

                            @kusi sagte in Name von mehreren Objekten in einem Verzeichnis:

                            Warum not found wenn der Datenpunkt vorhanden ist?

                            was steht denn im Zwischenspeicher wenn du die ID des Datenpunkts über das icon kopierst

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              Kusi @Homoran last edited by Kusi

                              @homoran sagte in Name von mehreren Objekten in einem Verzeichnis:

                              ID des Datenpunkts

                              alias.0.Sensor.Bewegungssensor Eingang aussen.battery

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

                                @kusi sagte: Mit dem Neustart der Javascript-Instanz sind die Fehler behoben.

                                Dann war der Puffer der Javascript-Instanz nicht aktuell, was mit dem Neustart der Instanz behoben wurde.

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

                                  @kusi sagte in Name von mehreren Objekten in einem Verzeichnis:

                                  @homoran sagte in Name von mehreren Objekten in einem Verzeichnis:

                                  ID des Datenpunkts

                                  alias.0.Sensor.Bewegungssensor Eingang aussen.battery

                                  ist jetzt zwar erledigt, aber da sind ja immer noch Leerzeichen

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    Kusi @Homoran last edited by Kusi

                                    @homoran das ist so. Ich habe 10 Sensoren/Schalter, bei 9 von 10 sind Leerzeichen vorhanden.
                                    Bei den 2 DP´s welche nicht gingen, habe ich die Aliasse gelöscht, OHNE Leerzeichen neu erstellt und getestet. Da dies keine Änderung brachte und 7 andere Aliasse trotz Leerzeichen einwandfrei funktionieren, habe ich wieder die Leerzeichen eingefügt.

                                    Thomas Braun 1 Reply Last reply Reply Quote 0
                                    • Thomas Braun
                                      Thomas Braun Most Active @Kusi last edited by

                                      @kusi

                                      Leerzeichen sind zu vermeiden.

                                      1 Reply Last reply Reply Quote 1
                                      • dslraser
                                        dslraser Forum Testing Most Active @paul53 last edited by

                                        @paul53 sagte in Name von mehreren Objekten in einem Verzeichnis:

                                        @kusi sagte: Mit dem Neustart der Javascript-Instanz sind die Fehler behoben.

                                        Dann war der Puffer der Javascript-Instanz nicht aktuell, was mit dem Neustart der Instanz behoben wurde.

                                        Bleibt das Problem dann für die Zukunft nicht trotzdem, also bezogen auf die Eingangsfrage ?
                                        Müsste dann nicht zwischendurch die JS-Instanz neu gestartet werden ?

                                        Eingangsfrage:

                                        Die Liste soll dynamisch gestaltet werden. Bedeutet: Füge ich ein Objekt hinzu, soll dann auch die Liste angepasst werden.

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

                                          @dslraser sagte: Bleibt das Problem dann für die Zukunft nicht trotzdem, also bezogen auf die Eingangsfrage ?

                                          Deshalb werden neue Datenpunkte nicht per $Selector, sondern per RegExp-Trigger hinzugefügt. Trigger verwenden die Puffer nicht. Das Skript von @Kusi hat wenig mit der Eingangsfrage zu tun.

                                          @paul53 sagte:

                                          Kommen dann Datenpunkte hinzu, können die per RegExp-Trigger detektiert und beide Listen ergänzt werden.

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          981
                                          Online

                                          31.7k
                                          Users

                                          79.6k
                                          Topics

                                          1.3m
                                          Posts

                                          6
                                          23
                                          866
                                          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