Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. channelName von einem State holen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.5k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    663

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

channelName von einem State holen

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 4 Kommentatoren 471 Aufrufe 3 Beobachtet
  • Ä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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von
    #1

    Hallo, wenn ich eine on() funktion habe, kann ich mir ja bspw. mit dp.channelName den Wert des Kanalnamens ausgeben lassen.

    Nun habe ich einen selector und nutze die each funktion.

    Habe ich hier auch über die Id, die Möglichekeit an den channelName herade zu kommen, oder muss quasie den Aufbau der ID wissen und mir somit die ObjectId und somit das Object des Channels holen?

    Bspw.

    
    
    // Ids zuweisen
    const Searchstring = 'firmware';
    const ExecuteString = 'firmwareupdate';
    
    // Selector für neue Firmware erstellen
    const selectorNeueFirmware = $(`state[id=shelly.*.${Searchstring}]`);
    
    // Schedules beim Skriptstart erzeugen:
    selectorNeueFirmware.each((id,i)=>{
        if(getState(id).val){
            const DeviceId = id.substring(0,id.length - Searchstring.length -1);
            const DeviceObject = getObject(DeviceId);
            log(`The Firmware for ${DeviceObject.common.name} will be updatet.`);
            setState(DeviceId + '.' + ExecuteString,true);
        }
    });
    
    
    
    M paul53P 2 Antworten Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, wenn ich eine on() funktion habe, kann ich mir ja bspw. mit dp.channelName den Wert des Kanalnamens ausgeben lassen.

      Nun habe ich einen selector und nutze die each funktion.

      Habe ich hier auch über die Id, die Möglichekeit an den channelName herade zu kommen, oder muss quasie den Aufbau der ID wissen und mir somit die ObjectId und somit das Object des Channels holen?

      Bspw.

      
      
      // Ids zuweisen
      const Searchstring = 'firmware';
      const ExecuteString = 'firmwareupdate';
      
      // Selector für neue Firmware erstellen
      const selectorNeueFirmware = $(`state[id=shelly.*.${Searchstring}]`);
      
      // Schedules beim Skriptstart erzeugen:
      selectorNeueFirmware.each((id,i)=>{
          if(getState(id).val){
              const DeviceId = id.substring(0,id.length - Searchstring.length -1);
              const DeviceObject = getObject(DeviceId);
              log(`The Firmware for ${DeviceObject.common.name} will be updatet.`);
              setState(DeviceId + '.' + ExecuteString,true);
          }
      });
      
      
      
      M Offline
      M Offline
      MCU
      schrieb am zuletzt editiert von MCU
      #2

      @ben1983 gelöscht

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      1 Antwort Letzte Antwort
      0
      • Ben1983B Ben1983

        Hallo, wenn ich eine on() funktion habe, kann ich mir ja bspw. mit dp.channelName den Wert des Kanalnamens ausgeben lassen.

        Nun habe ich einen selector und nutze die each funktion.

        Habe ich hier auch über die Id, die Möglichekeit an den channelName herade zu kommen, oder muss quasie den Aufbau der ID wissen und mir somit die ObjectId und somit das Object des Channels holen?

        Bspw.

        
        
        // Ids zuweisen
        const Searchstring = 'firmware';
        const ExecuteString = 'firmwareupdate';
        
        // Selector für neue Firmware erstellen
        const selectorNeueFirmware = $(`state[id=shelly.*.${Searchstring}]`);
        
        // Schedules beim Skriptstart erzeugen:
        selectorNeueFirmware.each((id,i)=>{
            if(getState(id).val){
                const DeviceId = id.substring(0,id.length - Searchstring.length -1);
                const DeviceObject = getObject(DeviceId);
                log(`The Firmware for ${DeviceObject.common.name} will be updatet.`);
                setState(DeviceId + '.' + ExecuteString,true);
            }
        });
        
        
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @ben1983 sagte: Aufbau der ID wissen und mir somit die ObjectId und somit das Object des Channels holen?

        Beim "channelName" handelt es sich eigentlich um den "parentName"

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

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

        Ben1983B 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @ben1983 sagte: Aufbau der ID wissen und mir somit die ObjectId und somit das Object des Channels holen?

          Beim "channelName" handelt es sich eigentlich um den "parentName"

          function parentName(id) {
              id = id.substring(0, id.lastIndexOf('.'));
              if(existsObject(id)) return getObject(id).common.name;
          }
          
          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          schrieb am zuletzt editiert von
          #4

          @paul53 OK, ich dachte man bekommt hier irgendwie (wie beim on()) mit, was der channelName ist.
          Wenn dieser vielleicht 2-3 Ebenen ober drüber ist (egal wie es definiert ist, ich weiß), dann muss man halt da suchen. Danke.

          paul53P mcm1957M 2 Antworten Letzte Antwort
          0
          • Ben1983B Ben1983

            @paul53 OK, ich dachte man bekommt hier irgendwie (wie beim on()) mit, was der channelName ist.
            Wenn dieser vielleicht 2-3 Ebenen ober drüber ist (egal wie es definiert ist, ich weiß), dann muss man halt da suchen. Danke.

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

            @ben1983 sagte: Wenn dieser vielleicht 2-3 Ebenen ober drüber ist

            Dann funktioniert auch channelName von on() nicht.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

            1 Antwort Letzte Antwort
            1
            • Ben1983B Ben1983

              @paul53 OK, ich dachte man bekommt hier irgendwie (wie beim on()) mit, was der channelName ist.
              Wenn dieser vielleicht 2-3 Ebenen ober drüber ist (egal wie es definiert ist, ich weiß), dann muss man halt da suchen. Danke.

              mcm1957M Offline
              mcm1957M Offline
              mcm1957
              schrieb am zuletzt editiert von mcm1957
              #6

              @ben1983
              nur falls es nicht klar ist
              Ein state muss sich nicht unterhalb eines devices oder channels befinden.

              Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
              Support Repositoryverwaltung.

              Wer 'nen Kaffee spendieren will: https://paypal.me

              LESEN - gute Forenbeitrage

              1 Antwort Letzte Antwort
              0

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              363

              Online

              32.9k

              Benutzer

              82.9k

              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