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.7k

  • 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.
  • 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

                      817

                      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