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. channelName von einem State holen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    848

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

channelName von einem State holen

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 4 Kommentatoren 410 Aufrufe 3 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.
  • 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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            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 Online
              mcm1957M Online
              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 Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

              LESEN - gute Forenbeitrage

              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

              725

              Online

              32.6k

              Benutzer

              82.1k

              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