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. Leere Ordner aus Objekt-Struktur löschen

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

Leere Ordner aus Objekt-Struktur löschen

Scheduled Pinned Locked Moved JavaScript
10 Posts 5 Posters 801 Views 5 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.
  • M Offline
    M Offline
    MeinhardRisch
    wrote on last edited by
    #1

    Hallo,

    als Java-Anfänger benötige ich bitte mal Eure Hilfe. Ich benutze Bluetooth zur Anwesenheitserkennung. Das funktioniert mit OMG auf einem ESP32 sehr gut. Das Gateway schickt Daten von anwesenden Handys über MQTT an ioBroker und ich kann dies dann dort weiter verarbeiten. Leider aber erfasst der Chip natürlich auch allerlei andere Geräte, aber deren Objekt-Datenpunkte lasse ich nachts einfach per kleinem Javascript löschen. Soweit so - so gut. Leider bleiben aber dann in der Objekt-Ordner-Struktur leere Verzeichnisse (Ordner). Und genau die möchte ich irgendwie löschen. Also konkrete Frage:

    Wie lösche ich mittels Java leere Order in der Objekt-Struktur?

    Für Eure Hilfe sag ich schon jetzt vielen Dank!!! :-)

    arteckA geschildG liv-in-skyL 3 Replies Last reply
    0
    • M MeinhardRisch

      Hallo,

      als Java-Anfänger benötige ich bitte mal Eure Hilfe. Ich benutze Bluetooth zur Anwesenheitserkennung. Das funktioniert mit OMG auf einem ESP32 sehr gut. Das Gateway schickt Daten von anwesenden Handys über MQTT an ioBroker und ich kann dies dann dort weiter verarbeiten. Leider aber erfasst der Chip natürlich auch allerlei andere Geräte, aber deren Objekt-Datenpunkte lasse ich nachts einfach per kleinem Javascript löschen. Soweit so - so gut. Leider bleiben aber dann in der Objekt-Ordner-Struktur leere Verzeichnisse (Ordner). Und genau die möchte ich irgendwie löschen. Also konkrete Frage:

      Wie lösche ich mittels Java leere Order in der Objekt-Struktur?

      Für Eure Hilfe sag ich schon jetzt vielen Dank!!! :-)

      arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      wrote on last edited by
      #2

      @meinhardrisch sagte in Leere Ordner aus Objekt-Struktur löschen:

      Java-Anfänger

      zuerst was ist es denn Java oder JavaScript .. das sind 2 verschiedene paar Schuhe

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      M 1 Reply Last reply
      0
      • arteckA arteck

        @meinhardrisch sagte in Leere Ordner aus Objekt-Struktur löschen:

        Java-Anfänger

        zuerst was ist es denn Java oder JavaScript .. das sind 2 verschiedene paar Schuhe

        M Offline
        M Offline
        MeinhardRisch
        wrote on last edited by
        #3

        @arteck Hi artec,
        es ist JavaScript.
        Hier das kurze Listing:
        log('Löschen ungewollter Objekte vom OMG gestartet');

        $('mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03.*').each(function(id, i) {
        //var dpType = getObject(id).common.type;
        console.log(id + ': ' + typeof getState(id).val);
        let simpleString = id;
        if(simpleString.indexOf("C47C8D6DAEEC") < 0){
        console.log(id + " wird gelöscht.");
        deleteObject(id);
        }
        })

        Vielleicht hilft Dir das ...

        Beste Grüße

        arteckA 1 Reply Last reply
        1
        • M MeinhardRisch

          @arteck Hi artec,
          es ist JavaScript.
          Hier das kurze Listing:
          log('Löschen ungewollter Objekte vom OMG gestartet');

          $('mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03.*').each(function(id, i) {
          //var dpType = getObject(id).common.type;
          console.log(id + ': ' + typeof getState(id).val);
          let simpleString = id;
          if(simpleString.indexOf("C47C8D6DAEEC") < 0){
          console.log(id + " wird gelöscht.");
          deleteObject(id);
          }
          })

          Vielleicht hilft Dir das ...

          Beste Grüße

          arteckA Offline
          arteckA Offline
          arteck
          Developer Most Active
          wrote on last edited by
          #4

          @meinhardrisch

          code und logs bitte in code tag
          5cbde28a-163b-4993-8323-daaea54d1755-grafik.png

          das währe der ordner oder ?

          mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03
          

          zigbee hab ich, zwave auch, nuc's genauso und HA auch

          M 2 Replies Last reply
          0
          • arteckA arteck

            @meinhardrisch

            code und logs bitte in code tag
            5cbde28a-163b-4993-8323-daaea54d1755-grafik.png

            das währe der ordner oder ?

            mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03
            
            M Offline
            M Offline
            MeinhardRisch
            wrote on last edited by
            #5

            @arteck Sorry, werde Code demnächst passend einfügen. Nein, es ist zum Beispiel:
            Ordner: mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03.409DD4A879EF
            Datenpunkt: mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03.409DD4A879EF.model

            Der Datenpunkt wird dann gelöscht, der Ordner bleibt dann aber leer stehen.

            Danke für deine Unterstützung ;-)

            fhainzF 1 Reply Last reply
            0
            • arteckA arteck

              @meinhardrisch

              code und logs bitte in code tag
              5cbde28a-163b-4993-8323-daaea54d1755-grafik.png

              das währe der ordner oder ?

              mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03
              
              M Offline
              M Offline
              MeinhardRisch
              wrote on last edited by
              #6

              @arteck 2022-05-16_183924.jpg 2022-05-16_184154.jpg

              1 Reply Last reply
              0
              • M MeinhardRisch

                @arteck Sorry, werde Code demnächst passend einfügen. Nein, es ist zum Beispiel:
                Ordner: mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03.409DD4A879EF
                Datenpunkt: mqtt.0.OMGhome.OpenMQTTGateway.BTtoMQTT03.409DD4A879EF.model

                Der Datenpunkt wird dann gelöscht, der Ordner bleibt dann aber leer stehen.

                Danke für deine Unterstützung ;-)

                fhainzF Offline
                fhainzF Offline
                fhainz
                wrote on last edited by
                #7

                @meinhardrisch sagte in Leere Ordner aus Objekt-Struktur löschen:

                Der Datenpunkt wird dann gelöscht, der Ordner bleibt dann aber leer stehen.

                Ich stehe aktuell vor dem selben Problem.. Die Datenpunkte werden gelöscht, der leerer Ordner bleibt bestehen.

                Hast du eine Lösung gefunden oder jemand anders eine Idee?

                1 Reply Last reply
                0
                • M MeinhardRisch

                  Hallo,

                  als Java-Anfänger benötige ich bitte mal Eure Hilfe. Ich benutze Bluetooth zur Anwesenheitserkennung. Das funktioniert mit OMG auf einem ESP32 sehr gut. Das Gateway schickt Daten von anwesenden Handys über MQTT an ioBroker und ich kann dies dann dort weiter verarbeiten. Leider aber erfasst der Chip natürlich auch allerlei andere Geräte, aber deren Objekt-Datenpunkte lasse ich nachts einfach per kleinem Javascript löschen. Soweit so - so gut. Leider bleiben aber dann in der Objekt-Ordner-Struktur leere Verzeichnisse (Ordner). Und genau die möchte ich irgendwie löschen. Also konkrete Frage:

                  Wie lösche ich mittels Java leere Order in der Objekt-Struktur?

                  Für Eure Hilfe sag ich schon jetzt vielen Dank!!! :-)

                  geschildG Offline
                  geschildG Offline
                  geschild
                  wrote on last edited by
                  #8

                  @meinhardrisch said in Leere Ordner aus Objekt-Struktur löschen:

                  Das funktioniert mit OMG auf einem ESP32 sehr gut

                  Die Anwendung interessiert mit. Wo kann ich im Netz etwas dazu, ggf. Quellcode, finden. Googeln mit 'OMG' führt zu "Oh my God".

                  1 Reply Last reply
                  0
                  • M MeinhardRisch

                    Hallo,

                    als Java-Anfänger benötige ich bitte mal Eure Hilfe. Ich benutze Bluetooth zur Anwesenheitserkennung. Das funktioniert mit OMG auf einem ESP32 sehr gut. Das Gateway schickt Daten von anwesenden Handys über MQTT an ioBroker und ich kann dies dann dort weiter verarbeiten. Leider aber erfasst der Chip natürlich auch allerlei andere Geräte, aber deren Objekt-Datenpunkte lasse ich nachts einfach per kleinem Javascript löschen. Soweit so - so gut. Leider bleiben aber dann in der Objekt-Ordner-Struktur leere Verzeichnisse (Ordner). Und genau die möchte ich irgendwie löschen. Also konkrete Frage:

                    Wie lösche ich mittels Java leere Order in der Objekt-Struktur?

                    Für Eure Hilfe sag ich schon jetzt vielen Dank!!! :-)

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by liv-in-sky
                    #9

                    @meinhardrisch

                    ich bekomme auch immer datenpunkte und ordner in meinem mqtt.0 verzeichnis

                    lasse dieses script laufen

                    evtl kannst du da was nutzen

                    async function deleteFolder(folder){
                      // await deleteObjectAsync("mqtt.0.1$_1_1_xiaomiantenna",true);
                       log(folder)
                       let dpsInFolder = $(folder+'.*');
                       log(JSON.stringify(dpsInFolder))
                     //  for ( let i=0; i<dpsInFolder.length;i++){ //log(getObject(dpsInFolder[i]).type)
                     //      if (existsState(dpsInFolder[i]) && getObject(dpsInFolder[i]).type=="state") {log(dpsInFolder[i],"warn"); await deleteStateAsync(dpsInFolder[i]);}
                      // }
                       await deleteObjectAsync(folder,true);
                    }
                    
                    //deleteFolder('mqtt.0.1$_1_1_xiaomiantenna')
                    schedule("47 9 * * *", function (obj) {
                    let theValOld="xxx";
                    $('mqtt.0.*').each(function(id, i) { 
                       let splittet=id.split('.');
                       let theVal=splittet[0]+'.'+splittet[1]+'.'+splittet[2]
                       if(theValOld!=theVal && theVal!='mqtt.0.Regensensor' && theVal!='mqtt.0.esp7segment' && theVal!='mqtt.0.galaxyS9' 
                                            && theVal!='mqtt.0.galaxyS9' && theVal!='mqtt.0.tablettest' && theVal!='mqtt.0.xiaomi' && theVal!='mqtt.0.entfernungsampel'
                                            && theVal!='mqtt.0.xiaomiantenna' && theVal!='mqtt.0.telegraf' && theVal!='mqtt.0.ld2410motion' && theVal!='mqtt.0.pflanzenampel'
                                            && theVal!='mqtt.0.entfernungswemos' && splittet.length>=4){
                      // log(theVal)
                       theValOld=theVal
                     //  log(id+"  "+getObject(id).type)
                    // log(i.toString())
                     /* if(getObject(id).type=="state")*/ /*if(i<500)*/  deleteFolder(theVal)
                       }
                      // log(splittet.length)
                      // log(JSON.stringify(getObject(id)));
                       //if(getObject(id).common.type=="folder") log(id)
                    })
                    })
                    

                    ps: das auskommentierte kannste ja löschen :-)

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    1 Reply Last reply
                    1
                    • fhainzF Offline
                      fhainzF Offline
                      fhainz
                      wrote on last edited by
                      #10

                      @liv-in-sky

                      Vielen Dank, jetzt funktioniert es auch bei mir.
                      Mein Fehler war, ich habe den 2 Parameter bei deleteObject (rekursives löschen) nicht angegeben.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      795

                      Online

                      32.4k

                      Users

                      81.5k

                      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