Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] Script zum Aufräumen in Aufzählungen

NEWS

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

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

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

[Vorlage] Script zum Aufräumen in Aufzählungen

Scheduled Pinned Locked Moved JavaScript
javascript
4 Posts 2 Posters 687 Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by paul53
    #1

    Das folgende Script, angeregt durch die Diskussion in einem anderen Thema, löscht nicht mehr vorhandene Objekt-IDs aus den Mitgliederlisten der Aufzählungen.

    // Säubern der Enums von nicht mehr existierenden Objekt-IDs
    const enums = ['rooms','functions']; // kann ergänzt werden
    
    function cleanEnums() {
        let enumList = [];
        if(typeof enums == 'string') enumList = getEnums(enums);
        else {
            for(let i = 0; i < enums.length; i++) {
                let list = getEnums(enums[i]);
                for(let j = 0; j < list.length; j++) {
                    enumList.push(list[j]);
                }
            }
        }
        for(let i = 0; i < enumList.length; i++) {
            let idEnum = enumList[i].id;
            let members = enumList[i].members;
            let change = false;
            for(let j = 0; j < members.length; j++) {
                if(!existsObject(members[j])) {
                    change = true;
                    log('Objekt ' + members[j] + ' wird aus ' + idEnum + ' gelöscht');
                    members.splice(j, 1);
                    j--;
                }
            }
            if(change) extendObject(idEnum, {common: {members: members}});
        }
    }
    
    cleanEnums();
    

    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

    sigi234S 1 Reply Last reply
    1
    • paul53P paul53

      Das folgende Script, angeregt durch die Diskussion in einem anderen Thema, löscht nicht mehr vorhandene Objekt-IDs aus den Mitgliederlisten der Aufzählungen.

      // Säubern der Enums von nicht mehr existierenden Objekt-IDs
      const enums = ['rooms','functions']; // kann ergänzt werden
      
      function cleanEnums() {
          let enumList = [];
          if(typeof enums == 'string') enumList = getEnums(enums);
          else {
              for(let i = 0; i < enums.length; i++) {
                  let list = getEnums(enums[i]);
                  for(let j = 0; j < list.length; j++) {
                      enumList.push(list[j]);
                  }
              }
          }
          for(let i = 0; i < enumList.length; i++) {
              let idEnum = enumList[i].id;
              let members = enumList[i].members;
              let change = false;
              for(let j = 0; j < members.length; j++) {
                  if(!existsObject(members[j])) {
                      change = true;
                      log('Objekt ' + members[j] + ' wird aus ' + idEnum + ' gelöscht');
                      members.splice(j, 1);
                      j--;
                  }
              }
              if(change) extendObject(idEnum, {common: {members: members}});
          }
      }
      
      cleanEnums();
      
      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      wrote on last edited by
      #2

      @paul53

      Super, geht auch eine Ausgabe in einen DP wieviel und welche DP gelöscht wurden?

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      paul53P 1 Reply Last reply
      0
      • sigi234S sigi234

        @paul53

        Super, geht auch eine Ausgabe in einen DP wieviel und welche DP gelöscht wurden?

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #3

        @sigi234 sagte:

        geht auch eine Ausgabe in einen DP wieviel und welche DP gelöscht wurden?

        Sicher geht auch eine Ausgabe in einen Datenpunkt. Genügt das Log 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

        sigi234S 1 Reply Last reply
        0
        • paul53P paul53

          @sigi234 sagte:

          geht auch eine Ausgabe in einen DP wieviel und welche DP gelöscht wurden?

          Sicher geht auch eine Ausgabe in einen Datenpunkt. Genügt das Log nicht ?

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          wrote on last edited by
          #4

          @paul53 sagte in [Vorlage] Script zum Aufräumen in Aufzählungen:

          Genügt das Log nicht ?

          Wenn ich das Log lösche kann ich es nicht mehr nachvollziehen.
          Ist aber nicht so Wichtig.

          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Immer Daten sichern!

          1 Reply Last reply
          0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          585

          Online

          32.8k

          Users

          82.7k

          Topics

          1.3m

          Posts
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Home
          • Recent
          • Tags
          • Unread 0
          • Categories
          • Unreplied
          • Popular
          • GitHub
          • Docu
          • Hilfe