Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst ]Name vom Objekt oberhalb

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[gelöst ]Name vom Objekt oberhalb

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
11 Beiträge 3 Kommentatoren 651 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • cashC Offline
    cashC Offline
    cash
    Most Active
    schrieb am zuletzt editiert von cash
    #1

    Ich bräuchte da mal wieder Hilfe.

    Ich habe einen Datenpunkt z. B.

    var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
    

    wie gelange ich per Javascript zum Objekt oberhalb um dort mittels common.name den Namen des Gerätes herauszufinden?

    Damit es deutlicher wird hier noch ein Bild:

    Bildschirmfoto 2019-03-15 um 18.52.12.png

    paul53P 1 Antwort Letzte Antwort
    0
    • AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #2

      String nehmen, nach '.' aufspalten, das letzte Element im Array wegwerfen, mit '.' dazwischen wieder zusammen bauen

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      1 Antwort Letzte Antwort
      0
      • cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #3

        sorry ich verstehe nur Bahnhof?
        Was heißt String nehmen? Aufspalten ist ok.

        .split('.')
        

        was wegwerfen und was zusammenbauen?

        1 Antwort Letzte Antwort
        0
        • cashC Offline
          cashC Offline
          cash
          Most Active
          schrieb am zuletzt editiert von cash
          #4
          var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
          var split = id_Sonos_Coordinator.split('.');
          log(split);
          
          
          
          

          ergibt:

          Script.js.Test.Test_Name_ermitteln: sonos,0,root,192_168_178_35,coordinator
          
          AsgothianA 1 Antwort Letzte Antwort
          0
          • cashC cash

            Ich bräuchte da mal wieder Hilfe.

            Ich habe einen Datenpunkt z. B.

            var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
            

            wie gelange ich per Javascript zum Objekt oberhalb um dort mittels common.name den Namen des Gerätes herauszufinden?

            Damit es deutlicher wird hier noch ein Bild:

            Bildschirmfoto 2019-03-15 um 18.52.12.png

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @cash Vorschlag:

                var parent = id.substring(0, id.lastIndexOf('.'));
                var name = getObject(parent).common.name;
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • cashC Offline
              cashC Offline
              cash
              Most Active
              schrieb am zuletzt editiert von
              #6

              ok und ein

              log(split[0]+'.'+split[1]+'.'+split[2]+'.'+split[3]);
              

              ergibt:

              sonos.0.root.192_168_178_35
              

              nur einfach ein .common.name daran funktioniert nicht...

              1 Antwort Letzte Antwort
              0
              • cashC cash
                var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
                var split = id_Sonos_Coordinator.split('.');
                log(split);
                
                
                
                

                ergibt:

                Script.js.Test.Test_Name_ermitteln: sonos,0,root,192_168_178_35,coordinator
                
                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                schrieb am zuletzt editiert von Asgothian
                #7

                @cash soweit schon so schön. Wenn du jetzt aus dem array das du bekommst den letzten Eintrag (das 'coordinator' wegnimmst, dann kannst du das ganze per

                split.length --
                id = split.join('.') 
                

                dann hast du die id des Objekts darüber.

                an den Namen kommst du meines Wissens über getObject(id).common.name

                @paul53 sagte in Name vom Objekt oberhalb:

                @cash Vorschlag:
                var parent = id.substring(0, id.lastIndexOf('.'));
                var name = getObject(parent).common.name;

                oder so :)

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                1 Antwort Letzte Antwort
                0
                • cashC Offline
                  cashC Offline
                  cash
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 das funktioniert leider nicht:

                  var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
                  var split = id_Sonos_Coordinator.split('.');
                  //log(split);
                  //log(split[0]+'.'+split[1]+'.'+split[2]+'.'+split[3]);
                  var devid = id_Sonos_Coordinator.substring(0, id_Sonos_Coordinator.lastIndexOf('.'));
                  var name = getObject(devid).common.name;
                  log('Name: ' +name);
                  

                  Ergibt keine Ausgabe im Log.

                  1 Antwort Letzte Antwort
                  0
                  • cashC Offline
                    cashC Offline
                    cash
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @Asgothian said in Name vom Objekt oberhalb:

                    split.length --
                    id = split.join('.')

                    ja das funktioniert:

                    var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
                    var split = id_Sonos_Coordinator.split('.');
                    //log(split);
                    //log(split[0]+'.'+split[1]+'.'+split[2]+'.'+split[3]);
                    var devid = id_Sonos_Coordinator.substring(0, id_Sonos_Coordinator.lastIndexOf('.'));
                    //var name = getObject(devid).common.name;
                    //log('Name: ' +name);
                    split.length --
                    var id = split.join('.')
                    log('id: ' +id);
                    log(getObject(id).common.name);
                    

                    Ok muss mal drüber googeln. Das join verstehe ich. da .length -- verstehe ich nicht. Bin halt leider kein Programmierer.

                    Danke auf jeden Fall

                    1 Antwort Letzte Antwort
                    0
                    • AsgothianA Offline
                      AsgothianA Offline
                      Asgothian
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      das ist eigentlich ganz einfach..

                      split.length gibt die die Länge des Arrays zurück, das du durch das aufsplitten bekommen hast
                      das -- reduziert den um 1, sprich der letzte Eintrag im Array fällt weg.
                      das join fuegt dann die verbleibenden wieder zusammen.

                      A.

                      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                      1 Antwort Letzte Antwort
                      0
                      • cashC Offline
                        cashC Offline
                        cash
                        Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @Asgothian Vielen Dank für die Erklärung und die Geduld
                        @paul53 auch Dir vielen Dank. Deine Lösung funktionierte genauso. Keine Ahnung was ich da beim ersten Versuch falsch gemacht habe.

                        Ich habe jetzt nochmal beide Sachen getestet und vorlagen verstanden. So sind beide Lösungen logisch.

                        Hier also nochmal die beiden Lösungsmöglichkeiten:

                        var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/;
                        
                        //Methode 1
                        var devid = id_Sonos_Coordinator.substring(0, id_Sonos_Coordinator.lastIndexOf('.'));
                        var common_name1 = getObject(devid).common.name;
                        log('Name Methode1: '+common_name1);
                        
                        //Methode 2
                        var split = id_Sonos_Coordinator.split('.');
                        split.length --
                        var id = split.join('.')
                        var common_name = getObject(id).common.name;
                        log('Name Methode2: ' +common_name);
                        
                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        615

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe