Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Frage zu "getIdByName()

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Frage zu "getIdByName()

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

      @paul53

      gestern Abend war das Brett vorm Kopf schon ziemlich dick 😵

      dde751e8-386e-4f0b-b43e-bd4aecfefbdd-image.png

      Ich möchte die Werte der beiden Datenpunkte der Funktion übergeben. Volume hier "56" und Dot ist "Echo-Buero".

      Erst als ich testweise auch mit deiner Variante Warnung erhalten habe ist mir aufgefallen, dass der Namen des Echos-Dot nicht eindeutig ist.
      Der kommt einmal unter "alexa2.0.Echo-Devices" und ein weiteres mal unter "alexa2.0.Smart-Home-Devices" vor.

      Schade - dann kann so nicht funktionieren. Bin mir auch unsicher, ob man den Namen unter "alexa2.0.Echo-Devices" manuell ändern kann - wird wahrscheinlich wieder überschrieben.

      LG

      ? 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @Guest last edited by

        @paul53

        ich bin leider immer noch mit dem Blockly zugange.

        Kann es sein das Namen kein ASCII 45 (-) enthalten sollte?

        "Echo-Schlafzimmer" führt zu State "undefined.Player.volume" not found

        "EchoSchlafzimmer" hingegen funktioniert.

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

          @muetzeheinrich sagte: Kann es sein das Namen kein ASCII 45 (-) enthalten sollte?

          Im Namen sind alle Zeichen möglich, das "-" sollte kein Problem sein.

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @paul53 last edited by

            @paul53

            .. habe es noch mal geprüft. Es ist wirklich so !

            "Echo-Buero" führt zur Warnung "State "undefined.Player.volume" not found"
            "EchoBuero" findet das Gerät und setzt volume.

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

              @muetzeheinrich
              Dann checke mal mit einem TestSkript, wenn der Name "Echo-Schlafzimmer" ist:

              log(getIdByName("Echo-Schlafzimmer"));
              
              ? 1 Reply Last reply Reply Quote 0
              • ?
                A Former User @paul53 last edited by

                @paul53 sagte in Frage zu "getIdByName():

                log(getIdByName("Echo-Schlafzimmer"));

                script.js.TEST.ss99: undefined

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

                  @muetzeheinrich sagte: script.js.TEST.ss99: undefined

                  Das Objekt mit dem Namen "Echo-Schlafzimmer" existiert?

                  ? 1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @paul53 last edited by

                    @paul53
                    b5f531b4-a77f-4270-af9e-5f3acad9b23b-image.png

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

                      @muetzeheinrich
                      Komisch: Ich habe es gerade mit einem Device-Namen "Echo-Schlafzimmer" getestet und es funktioniert.

                      ? 1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @paul53 last edited by

                        @paul53

                        "das gibst doch nicht" war meine erste Reaktion! Irgendwo muss aber ein Unterschied sein ..

                        {
                          "from": "system.adapter.alexa2.0",
                          "user": "system.user.admin",
                          "ts": 1613250245358,
                          "common": {
                            "name": "Echo-Schlafzimmer",
                            "read": true,
                            "write": false,
                            "icon": "icons/echo_dot3.png"
                          },
                          "native": {},
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                          },
                          "_id": "alexa2.0.Echo-Devices.G090Xxxxxxxxxxxxx",
                          "type": "device"
                        }
                        

                        log(getIdByName("Echo-Schlafzimmer")); erzeugt :
                        22:35:01.450 info javascript.0 (25703) script.js.TEST.ss99: undefined

                        ich weis gerade nicht weiter .

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @Guest last edited by

                          @paul53

                          Versuch mit "EchoSchlafzimmer gibt die ID wieder..

                          25703) script.js.TEST.ss99: alexa2.0.Echo-Devices.G090XG1103xxxxxxx
                          
                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Guest last edited by paul53

                            @muetzeheinrich sagte: Versuch mit "EchoSchlafzimmer gibt die ID wieder..

                            Starte mal nach Änderung in "Echo-Schlafzimmer" die Javascript-Instanz neu. Es ist offenbar ein Puffer-Problem.

                            ? 1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @paul53 last edited by A Former User

                              @paul53 sagte in Frage zu "getIdByName():

                              Starte mal nach Änderung in "Echo-Schlafzimmer" die Javascript-Instanz neu.

                              javascript.0	2021-02-13 23:03:40.095	info	(13206) script.js.TEST.ss99: registered 0 subscriptions and 0 schedules
                              javascript.0	2021-02-13 23:03:40.094	info	(13206) script.js.TEST.ss99: undefined
                              javascript.0	2021-02-13 23:03:40.086	info	(13206) Start javascript script.js.TEST.ss99
                              
                              ? paul53 2 Replies Last reply Reply Quote 0
                              • ?
                                A Former User @Guest last edited by

                                @paul53

                                b5b61f27-9059-4a31-87dd-251f5d60131a-image.png

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

                                  @muetzeheinrich sagte: script.js.TEST.ss99: undefined

                                  Mit?

                                  log(getIdByName("Echo-Schlafzimmer"));
                                  

                                  Ich habe "Echo-Schlafzimmer" in "Aussen / Garten" geändert und erst nach Neustart der Javascript-Instanz funktionierte

                                  log(getIdByName('Aussen / Garten'));
                                  
                                  ? 1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User @paul53 last edited by A Former User

                                    @paul53

                                    ! zuerst mal für vielen Dank für deine Zeit.

                                    Es ist so, wie du es geschrieben hast. Wenn die Javascript-Instanz nach umbennen von Namen neu gestartet wird, dann klappt es. Vielleicht wird ein cache neu erzeugt - habe es heute noch ein paar mal hin und her probiert. Sehr wahrscheinlich habe gestern die falsche JS-Instanz neu gestartet.

                                    Das löst leider mein ursprüngliches Problem der mehrfach vorkommenden Gerätenamen nicht. Ich habe nur wenig Javascript Kenntnis, für if then else reicht es aber 🙂 .
                                    Mit Versuch und Irrtum ist nun diese Blockly-Funktion entstanden , vielleicht geht es auch sicherer / einfacher

                                    var arr = getIdByName(echodot);
                                    
                                    if (arr != null) {
                                        for (var i = 0; i < arr.length; i++) {
                                            if (arr[i].indexOf("Echo-Devices") > -1) {
                                                setState(arr[i] + '.Player.volume', volume)
                                            }
                                        }
                                    } else { log ("Echo nicht vorhanden") }
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    850
                                    Online

                                    32.0k
                                    Users

                                    80.5k
                                    Topics

                                    1.3m
                                    Posts

                                    2
                                    18
                                    521
                                    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