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. ioBroker Allgemein
  4. ehemalige Historydaten finden

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    151

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

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

ehemalige Historydaten finden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
148 Beiträge 7 Kommentatoren 9.3k Aufrufe 7 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.
  • HomoranH Homoran

    @mcu sagte in ehemalige Historydaten finden:

    War directDelete auf true?

    natürlich nicht!

    deswegen "wären weg"

    M Offline
    M Offline
    MCU
    schrieb am zuletzt editiert von MCU
    #108

    @homoran Zeig mal die Einstellungen von den DPs(findOldDPs) als Bild.

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

    HomoranH 1 Antwort Letzte Antwort
    0
    • M MCU

      @homoran War directDelete auf true?
      95771294-9e8f-4214-8a44-d34eb1a23996-image.png
      Dann sind die 10 Dateien weg.

      Dürften eigentlich nicht gelöscht, da ja der aliasID von dem CYCLE -> 43579 war?
      Und du hast useAliasIdInEnabled auf true gehabt!
      38b67aa5-6099-42b7-aa9e-de7b59a0f9e6-image.png

      HomoranH Offline
      HomoranH Offline
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #109

      @mcu sagte in ehemalige Historydaten finden:

      Und du hast useAliasIdInEnabled auf true gehabt!

      nee, das hatte ich noch nicht ganz verstanden was die Optionen alles machen.
      wollte ich morgen noch mal angehen.

      dann lösvht er doch die aktuellen....

      kein Support per PN! - Fragen im Forum stellen -

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      M 2 Antworten Letzte Antwort
      0
      • HomoranH Homoran

        @mcu sagte in ehemalige Historydaten finden:

        Und du hast useAliasIdInEnabled auf true gehabt!

        nee, das hatte ich noch nicht ganz verstanden was die Optionen alles machen.
        wollte ich morgen noch mal angehen.

        dann lösvht er doch die aktuellen....

        M Offline
        M Offline
        MCU
        schrieb am zuletzt editiert von
        #110

        @homoran Steht in der Doku, also im Link.

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

        HomoranH 1 Antwort Letzte Antwort
        0
        • M MCU

          @homoran Steht in der Doku, also im Link.

          HomoranH Offline
          HomoranH Offline
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #111

          @mcu sagte in ehemalige Historydaten finden:

          @homoran Steht in der Doku, also im Link.

          Ich weiß! DANKE!
          Da hast du ja einiges ergänzt

          kein Support per PN! - Fragen im Forum stellen -

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • M MCU

            @homoran Zeig mal die Einstellungen von den DPs(findOldDPs) als Bild.

            HomoranH Offline
            HomoranH Offline
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #112

            @mcu sagte in ehemalige Historydaten finden:

            @homoran Zeig mal die Einstellungen von den DPs(findOldDPs) als Bild.

            Screenshot_20221106-221702_Firefox.jpg

            ich stell jetzt auf alias um und seh mir das mal an

            EDIT
            da war nicht viel
            javascript.1 2022-11-06 22:18:35.629 info script.js.historyLeichen104: Nicht aktive DPs in den ausgewählten Verzeichnissen: 0

            kein Support per PN! - Fragen im Forum stellen -

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @mcu sagte in ehemalige Historydaten finden:

              Und du hast useAliasIdInEnabled auf true gehabt!

              nee, das hatte ich noch nicht ganz verstanden was die Optionen alles machen.
              wollte ich morgen noch mal angehen.

              dann lösvht er doch die aktuellen....

              M Offline
              M Offline
              MCU
              schrieb am zuletzt editiert von
              #113

              @homoran sagte in ehemalige Historydaten finden:

              dann lösvht er doch die aktuellen....

              Also wenn der "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" aktuelle DP ist und der "hm-rega.0.43579" der alte, dann werden alle neuen Daten zurzeit in die Datei vom alten DP geschrieben. Richtig?

              Dann müsste man doch vorher die Daten vom alten DP "hm-rega.0.43579" auf den neuen DP "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" kopieren?

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

              M HomoranH 2 Antworten Letzte Antwort
              0
              • M MCU

                @homoran sagte in ehemalige Historydaten finden:

                dann lösvht er doch die aktuellen....

                Also wenn der "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" aktuelle DP ist und der "hm-rega.0.43579" der alte, dann werden alle neuen Daten zurzeit in die Datei vom alten DP geschrieben. Richtig?

                Dann müsste man doch vorher die Daten vom alten DP "hm-rega.0.43579" auf den neuen DP "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" kopieren?

                M Offline
                M Offline
                MCU
                schrieb am zuletzt editiert von MCU
                #114

                @Homoran Hast du denn jetzt erstmal ne Sicherung gemacht, bevor du weiter Einstellungen probierst?

                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
                • M MCU

                  @homoran sagte in ehemalige Historydaten finden:

                  dann lösvht er doch die aktuellen....

                  Also wenn der "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" aktuelle DP ist und der "hm-rega.0.43579" der alte, dann werden alle neuen Daten zurzeit in die Datei vom alten DP geschrieben. Richtig?

                  Dann müsste man doch vorher die Daten vom alten DP "hm-rega.0.43579" auf den neuen DP "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" kopieren?

                  HomoranH Offline
                  HomoranH Offline
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #115

                  @mcu sagte in ehemalige Historydaten finden:

                  Also wenn der "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" aktuelle DP ist und der "hm-rega.0.43579" der alte, dann werden alle neuen Daten zurzeit in die Datei vom alten DP geschrieben. Richtig?

                  so hab ich es verstanden!

                  @mcu sagte in ehemalige Historydaten finden:

                  Dann müsste man doch vorher die Daten vom alten DP "hm-rega.0.43579" auf den neuen DP "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" kopieren?

                  aber wenn ich useAliasIdInEnabled nutze wird der alte ja nicht gelöscht.

                  und der neue auch nicht

                  so muss es IMHO auch laufen.

                  @mcu sagte in ehemalige Historydaten finden:

                  @Homoran Hast du denn jetzt erstmal ne Sicherung gemacht, bevor du weiter Einstellungen probierst?

                  nöö, futsch is futsch !
                  aber ich habe gerade erstcden ersten scharfen lauf gemacht un vorher alle IDs beim Dry Run kontrolliert.

                  ich mache jetzt eh Schluss

                  kein Support per PN! - Fragen im Forum stellen -

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  M 1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @mcu sagte in ehemalige Historydaten finden:

                    Also wenn der "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" aktuelle DP ist und der "hm-rega.0.43579" der alte, dann werden alle neuen Daten zurzeit in die Datei vom alten DP geschrieben. Richtig?

                    so hab ich es verstanden!

                    @mcu sagte in ehemalige Historydaten finden:

                    Dann müsste man doch vorher die Daten vom alten DP "hm-rega.0.43579" auf den neuen DP "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" kopieren?

                    aber wenn ich useAliasIdInEnabled nutze wird der alte ja nicht gelöscht.

                    und der neue auch nicht

                    so muss es IMHO auch laufen.

                    @mcu sagte in ehemalige Historydaten finden:

                    @Homoran Hast du denn jetzt erstmal ne Sicherung gemacht, bevor du weiter Einstellungen probierst?

                    nöö, futsch is futsch !
                    aber ich habe gerade erstcden ersten scharfen lauf gemacht un vorher alle IDs beim Dry Run kontrolliert.

                    ich mache jetzt eh Schluss

                    M Offline
                    M Offline
                    MCU
                    schrieb am zuletzt editiert von
                    #116

                    @homoran Es dürfte keine Dateien mit dem neuen DP "hm-rega.0.KEQ1065589.0.DUTY_CYCLE" geben! Da ja ein aliasID besteht und dessen Name für die Benennung der Dateien genutzt wird.
                    Also bei den DPs vorsichtig sein. Es muss erst kopiert werden, sonst sind die Daten weg.
                    Also als erstes morgen eine Sicherung machen!

                    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
                    • M Offline
                      M Offline
                      Matt77CHE
                      schrieb am zuletzt editiert von
                      #117

                      Hallo zusammen

                      Ich möchte gerne dieses Thema wieder aufgreifen - ich habe die Beiträge durchgeschaut und das Skript für die Löschung nicht mehr aktiver DPs gesucht.

                      Entweder bin ich zu müde, brauche eine neue Brille - oder einfach zu doof, denn das Skript habe ich nicht gefunden.....

                      Ich wäre euch dankbar, wenn mir jemand zeigen könnte, wo das Skript sich befindet; evtl gibt es ja auch schon eine neue Version - das Thema ist ja doch schon etwas älter....

                      Besten Dank für eure Mithilfe
                      Matt

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • M Matt77CHE

                        Hallo zusammen

                        Ich möchte gerne dieses Thema wieder aufgreifen - ich habe die Beiträge durchgeschaut und das Skript für die Löschung nicht mehr aktiver DPs gesucht.

                        Entweder bin ich zu müde, brauche eine neue Brille - oder einfach zu doof, denn das Skript habe ich nicht gefunden.....

                        Ich wäre euch dankbar, wenn mir jemand zeigen könnte, wo das Skript sich befindet; evtl gibt es ja auch schon eine neue Version - das Thema ist ja doch schon etwas älter....

                        Besten Dank für eure Mithilfe
                        Matt

                        HomoranH Offline
                        HomoranH Offline
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #118

                        @matt77che sagte in ehemalige Historydaten finden:

                        Entweder bin ich zu müde, brauche eine neue Brille - oder einfach zu doof, denn das Skript habe ich nicht gefunden.....

                        habe eben gesucht und den Link dazu gefunden im Thread.
                        Leider läuft der ins Leere.
                        In der Sammlung von @mcu gibt's nur ne 404 😞

                        kein Support per PN! - Fragen im Forum stellen -

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        M 1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @matt77che sagte in ehemalige Historydaten finden:

                          Entweder bin ich zu müde, brauche eine neue Brille - oder einfach zu doof, denn das Skript habe ich nicht gefunden.....

                          habe eben gesucht und den Link dazu gefunden im Thread.
                          Leider läuft der ins Leere.
                          In der Sammlung von @mcu gibt's nur ne 404 😞

                          M Offline
                          M Offline
                          MCU
                          schrieb am zuletzt editiert von MCU
                          #119

                          @homoran Welcher Link ist das?
                          Die nicht jarvis spezifischen sind umgezogen.

                          https://mcuiobroker.gitbook.io/iobroker-tipps

                          https://mcuiobroker.gitbook.io/iobroker-tipps/tipps/scripte-blockly-javascript/javascript/history-adapter/nicht-mehr-geloggte-dps-in-history-verzeichnissen-finden

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

                          M 2 Antworten Letzte Antwort
                          2
                          • M MCU

                            @homoran Welcher Link ist das?
                            Die nicht jarvis spezifischen sind umgezogen.

                            https://mcuiobroker.gitbook.io/iobroker-tipps

                            https://mcuiobroker.gitbook.io/iobroker-tipps/tipps/scripte-blockly-javascript/javascript/history-adapter/nicht-mehr-geloggte-dps-in-history-verzeichnissen-finden

                            M Offline
                            M Offline
                            Matt77CHE
                            schrieb am zuletzt editiert von
                            #120

                            @mcu

                            Vielen Dank :+1:

                            Habe es gefunden bei deinem neuen Link

                            1 Antwort Letzte Antwort
                            0
                            • M MCU

                              @homoran Welcher Link ist das?
                              Die nicht jarvis spezifischen sind umgezogen.

                              https://mcuiobroker.gitbook.io/iobroker-tipps

                              https://mcuiobroker.gitbook.io/iobroker-tipps/tipps/scripte-blockly-javascript/javascript/history-adapter/nicht-mehr-geloggte-dps-in-history-verzeichnissen-finden

                              M Offline
                              M Offline
                              Matt77CHE
                              schrieb am zuletzt editiert von
                              #121

                              @mcu

                              Ich habe den
                              History-Adapter V3.0.1
                              Javascript-adapter V8.8.3

                              und bekomme folgende Fehlermeldung im Javascript-Adapter :

                              14.10.2024, 19:46:32.458	[error]: javascript.0 (436) script.js.common.Alte_history_dp_löschen: TypeError: Cannot read properties of undefined (reading 'length')
                              14.10.2024, 19:46:32.459	[error]: javascript.0 (436)     at script.js.common.Alte_history_dp_löschen:238:18
                              14.10.2024, 19:46:32.986	[error]: host.iobroker Caught by controller[0]:     at script.js.common.Alte_history_dp_löschen:239:18
                              

                              Habe ich da was falsch gemacht?

                              • habe das Script im allgemeinen Ordner vom Javascript-Adapter in ein Java-script - Skript eingefügt; das Script ausgeführt und dann den Start-Button gedrückt.....
                              HomoranH M 2 Antworten Letzte Antwort
                              0
                              • M Matt77CHE

                                @mcu

                                Ich habe den
                                History-Adapter V3.0.1
                                Javascript-adapter V8.8.3

                                und bekomme folgende Fehlermeldung im Javascript-Adapter :

                                14.10.2024, 19:46:32.458	[error]: javascript.0 (436) script.js.common.Alte_history_dp_löschen: TypeError: Cannot read properties of undefined (reading 'length')
                                14.10.2024, 19:46:32.459	[error]: javascript.0 (436)     at script.js.common.Alte_history_dp_löschen:238:18
                                14.10.2024, 19:46:32.986	[error]: host.iobroker Caught by controller[0]:     at script.js.common.Alte_history_dp_löschen:239:18
                                

                                Habe ich da was falsch gemacht?

                                • habe das Script im allgemeinen Ordner vom Javascript-Adapter in ein Java-script - Skript eingefügt; das Script ausgeführt und dann den Start-Button gedrückt.....
                                HomoranH Offline
                                HomoranH Offline
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #122

                                @matt77che sagte in ehemalige Historydaten finden:

                                und dann den Start-Button gedrückt..

                                hast du die notwendigen Werte in die Datenpunkte eingetragen?

                                kein Support per PN! - Fragen im Forum stellen -

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                M 1 Antwort Letzte Antwort
                                0
                                • M Matt77CHE

                                  @mcu

                                  Ich habe den
                                  History-Adapter V3.0.1
                                  Javascript-adapter V8.8.3

                                  und bekomme folgende Fehlermeldung im Javascript-Adapter :

                                  14.10.2024, 19:46:32.458	[error]: javascript.0 (436) script.js.common.Alte_history_dp_löschen: TypeError: Cannot read properties of undefined (reading 'length')
                                  14.10.2024, 19:46:32.459	[error]: javascript.0 (436)     at script.js.common.Alte_history_dp_löschen:238:18
                                  14.10.2024, 19:46:32.986	[error]: host.iobroker Caught by controller[0]:     at script.js.common.Alte_history_dp_löschen:239:18
                                  

                                  Habe ich da was falsch gemacht?

                                  • habe das Script im allgemeinen Ordner vom Javascript-Adapter in ein Java-script - Skript eingefügt; das Script ausgeführt und dann den Start-Button gedrückt.....
                                  M Offline
                                  M Offline
                                  MCU
                                  schrieb am zuletzt editiert von
                                  #123

                                  @matt77che Muss ich mir anschauen, komme aber erst Mittwoch dazu.

                                  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
                                  • HomoranH Homoran

                                    @matt77che sagte in ehemalige Historydaten finden:

                                    und dann den Start-Button gedrückt..

                                    hast du die notwendigen Werte in die Datenpunkte eingetragen?

                                    M Offline
                                    M Offline
                                    Matt77CHE
                                    schrieb am zuletzt editiert von
                                    #124

                                    @homoran
                                    dirStart 0
                                    dirEnd 10 ?

                                    Ja

                                    HomoranH 1 Antwort Letzte Antwort
                                    0
                                    • M Matt77CHE

                                      @homoran
                                      dirStart 0
                                      dirEnd 10 ?

                                      Ja

                                      HomoranH Offline
                                      HomoranH Offline
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #125

                                      @matt77che sagte in ehemalige Historydaten finden:

                                      @homoran
                                      dirStart 0
                                      dirEnd 10 ?

                                      Ja

                                      ich weiss nicht mehr alles, bitte zeigen!

                                      auch was in

                                      @matt77che sagte in ehemalige Historydaten finden:

                                      script.js.common.Alte_history_dp_löschen:239:18

                                      steht

                                      kein Support per PN! - Fragen im Forum stellen -

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      M 2 Antworten Letzte Antwort
                                      0
                                      • HomoranH Homoran

                                        @matt77che sagte in ehemalige Historydaten finden:

                                        @homoran
                                        dirStart 0
                                        dirEnd 10 ?

                                        Ja

                                        ich weiss nicht mehr alles, bitte zeigen!

                                        auch was in

                                        @matt77che sagte in ehemalige Historydaten finden:

                                        script.js.common.Alte_history_dp_löschen:239:18

                                        steht

                                        M Offline
                                        M Offline
                                        Matt77CHE
                                        schrieb am zuletzt editiert von
                                        #126

                                        @homoran

                                        // ********************************
                                        // findOldHistoryDPs v1.0.5
                                        // Copyright ©MCU
                                        // ********************************
                                        // v1.0.1 directDelete-> true  Möglichkeit die DatenDateien direkt löschen
                                        // v1.0.2 aliasId berücksichtigt bei enabledDPs
                                        // v1.0.3 zusätzliche Funktion listHistoryDPsWithaliasId('history.0');
                                        // v1.0.4 zusätzlich: fillAlias -> alle aktiven history-DPs mit alias in Array withAliasIdInEnabled
                                        //        fillEnabled_DPs -> nur die akitven History DPs in Array füllen -> enabled_DPs
                                        //        useAliasIdInEnabled -> true -> AliasId wird in enabled_DPs verwendet (was richtig ist, da die history-Werte mit alias geschrieben werden)
                                        // v1.0.5 zusätzliche Funktion: alias-Suche in allen ioBroker-DPs (unabhängig von history)
                                        
                                        let findOldDP                       = '0_userdata.0.history.findOldDPs';
                                        let findOldDPs_Old                  = findOldDP + '.old_DPs';
                                        let findOldDPs_Enabled              = findOldDP + '.enabled_DPs';
                                        let findOldDPs_InDB                 = findOldDP + '.inDB_DPS';
                                        let findOldDPs_BeginTS              = findOldDP + '.dirStart';
                                        let findOldDPs_EndTS                = findOldDP + '.dirEnd';
                                        let findOldDPs_Start                = findOldDP + '.start';
                                        let findOldDPs_DirectDel            = findOldDP + '.directDelete';
                                        let findOldDPs_fillEnabled          = findOldDP + '.fillEnabled_DPs';
                                        let findOldDPs_fillAlias            = findOldDP + '.fillWithAliasId';
                                        let findoldDPs_withAliasId          = findOldDP + '.withAliasId_DPs';
                                        let findOldDPs_useAliasInEnabled    = findOldDP + '.useAliasIdInEnabled';
                                        
                                        let findOldDPs_aliasDPs             = findOldDP + '.aliasDPs';
                                        let findOldDPs_aliasDPs_search      = findOldDP + '.aliasDPs_search'; 
                                        createStateAsync(findOldDPs_aliasDPs, {read: true, write: true, name: "ioBroker-DPs mit aliasId (unabhängig history)", type: "string", role: "text", def: JSON.stringify([]) });
                                        createStateAsync(findOldDPs_aliasDPs_search, {read: true, write: true, name: "Start Suche aliasIds in all ioBroker DPs", type: "boolean", role: "button", def: false });
                                        
                                        let dbNamespace = 'history.0';
                                        
                                        
                                        //createStateAsync(findOldDPs_Old, {read: true, write: true, name: "JSON für nicht genutzte DPs noch in DB", type: "string", role: "text", def: JSON.stringify([]) });
                                        createStateAsync(findOldDPs_Enabled, {read: true, write: true, name: "Aktive History-DPs in DB", type: "string", role: "text", def: JSON.stringify([]) });
                                        createStateAsync(findoldDPs_withAliasId, {read: true, write: true, name: "Aktive History-DPs mit aliasId", type: "string", role: "text", def: JSON.stringify([]) });
                                        //createStateAsync(findOldDPs_InDB, {read: true, write: true, name: "Genutzte DPs in DB", type: "string", role: "text", def: JSON.stringify([]) });
                                        createStateAsync(findOldDPs_BeginTS, {read: true, write: true, name: "Startverzeichnis", type: "number", role: "", def: 0 });
                                        createStateAsync(findOldDPs_EndTS, {read: true, write: true, name: "Endverzeichnis", type: "number", role: "", def: 10 }); //new Date().getTime()
                                        createStateAsync(findOldDPs_Start, {read: true, write: true, name: "Start Suche", type: "boolean", role: "button", def: false });
                                        createStateAsync(findOldDPs_fillEnabled, {read: true, write: true, name: "enabled_DPs suchen", type: "boolean", role: "button", def: false });
                                        createStateAsync(findOldDPs_fillAlias, {read: true, write: true, name: "withAliasId suchen", type: "boolean", role: "button", def: false });
                                        createStateAsync(findOldDPs_DirectDel, {read: true, write: true, name: "!!! Daten direkt löschen !!!", type: "boolean", role: "", def: false });
                                        createStateAsync(findOldDPs_useAliasInEnabled, {read: true, write: true, name: "AliasId in Enabled_DPs", type: "boolean", role: "", def: false });
                                        
                                        on({id: findOldDPs_Start, change: "any"}, function (obj) {
                                            let value = obj.state.val;
                                            if (value){
                                                //setState(findOldDPs_EndTS,parseInt(new Date().getTime()),false);
                                                getEnabledHistoryDPs(dbNamespace);
                                                let fromDir = getState(findOldDPs_BeginTS).val;
                                                let toDir = getState(findOldDPs_EndTS).val;
                                                setTimeout(function(){
                                                    searchDir(fromDir,toDir);
                                                },5000);
                                                setStateDelayed(findOldDPs_Start,false,3000,false);
                                            }
                                        });
                                        
                                        on({id: findOldDPs_fillEnabled, change: "any"}, function (obj) {
                                            let value = obj.state.val;
                                            if (value){
                                                getEnabledHistoryDPs(dbNamespace);
                                                setStateDelayed(findOldDPs_fillEnabled,false,3000,false);
                                            }
                                        });
                                        
                                        on({id: findOldDPs_fillAlias, change: "any"}, function (obj) {
                                            let value = obj.state.val;
                                            if (value){
                                                listHistoryDPsWithaliasId(dbNamespace);
                                                setStateDelayed(findOldDPs_fillAlias,false,3000,false);
                                            }
                                        });
                                        
                                        on({id: findOldDPs_aliasDPs_search, change: "any"}, function (obj) {
                                            let value = obj.state.val;
                                            if (value){
                                                findDPsWithAliasId(); 
                                                setStateDelayed(findOldDPs_aliasDPs_search,false,3000,false);
                                            }
                                        });
                                        //listHistoryDPsWithaliasId('history.0');
                                        
                                        function listHistoryDPsWithaliasId(adp){
                                            let arr =[];
                                            sendTo(adp, 'getEnabledDPs', {}, function (result) {
                                                let count = 0;
                                                for ( let dp in result){
                                                    let dpHistoryAlias = getObject(dp).common.custom[adp].aliasId;
                                                    if (dpHistoryAlias != '' && dpHistoryAlias != undefined){
                                                        arr.push({'dpId':dp,'aliasId':dpHistoryAlias});
                                                        count++;
                                                    }
                                                }
                                                log('Anzahl der aktiv geloggten DPs mit aliasId: '+count);        
                                                // setStateAsync(findOldDPs_Enabled,JSON.stringify(arr),false);
                                                //log(JSON.stringify(arr));
                                                setState(findoldDPs_withAliasId,JSON.stringify(arr),false);
                                            });
                                        }
                                        
                                        //findDPsWithAliasId(); 
                                        
                                        function findDPsWithAliasId(){
                                            let allDPs = $('*');
                                            let arr = [];
                                            log('Anzahl der States: '+allDPs.length);
                                            for (let i=0;i<allDPs.length;i++){
                                                if (existsObject(allDPs[i])){
                                                    if (getObject(allDPs[i]).common != undefined){
                                                        if (getObject(allDPs[i]).common.alias!= undefined){
                                                            let aliasId = getObject(allDPs[i]).common.alias.id;
                                                            if (aliasId != undefined){
                                                                //log(allDPs[i] +' mit aliasId: '+aliasId);
                                                                //break;
                                                                arr.push({'id':allDPs[i],'aliasId':aliasId});
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            //log(arr);
                                            setState(findOldDPs_aliasDPs,JSON.stringify(arr),false);
                                        }
                                        
                                        
                                        /*
                                        setTimeout(function(){
                                            getEnabledHistoryDPs(db);
                                            getHistoryDPinDB(db);
                                        },3000);
                                        */
                                        
                                        // getEnabledHistoryDPs('history.0');
                                        
                                        function getEnabledHistoryDPs(adp){
                                            let arr =[];
                                            let useAliasIdInenabled = getState(findOldDPs_useAliasInEnabled).val;
                                            sendTo(adp, 'getEnabledDPs', {}, function (result) {
                                                let count = 0;
                                                for ( let dp in result){
                                                    let dpHistoryAlias = getObject(dp).common.custom[adp].aliasId;
                                                    if (dpHistoryAlias != '' && dpHistoryAlias != undefined && useAliasIdInenabled){
                                                        arr.push(dpHistoryAlias);
                                                    }else{
                                                        arr.push(dp);
                                                    }
                                                    count++;
                                                }
                                                log('Anzahl der aktiv geloggten DPs: '+count);        
                                                setStateAsync(findOldDPs_Enabled,JSON.stringify(arr),false);
                                            });
                                        }
                                        
                                        // getHistoryDPinDB('history.0');
                                        
                                        function getHistoryDPinDB(db){
                                            //Die 50 zuletzt gespeicherte Ereignisse für alle IDs holen:
                                            let beginTS = getState(findOldDPs_BeginTS).val;
                                            if (beginTS == 0){
                                                beginTS = parseInt(new Date().getTime()) - 30*24*60*60*1000;
                                            }
                                            let endTS = getState(findOldDPs_EndTS).val;
                                            if(endTS == 0){
                                                endTS = parseInt(new Date().getTime());
                                            }
                                            sendTo(db, 'getHistory', {
                                                id: '*',
                                                options: {
                                                    begin: beginTS,
                                                    end:   endTS,
                                                    /* count:     50,*/
                                                    addId:     true
                                                }
                                            }, function (result) {
                                                let dpArr =[];
                                                let count = 0;
                                                for (var i = 0; i < result.result.length; i++) {
                                                    if (!isObjInArray(dpArr,result.result[i].id)){
                                                        dpArr.push(result.result[i].id);
                                                        count++;
                                                    }
                                                    //console.log(JSON.stringify(result.result[i]) + ' ' + new Date(result.result[i].ts).toISOString());
                                                }
                                                dpArr = dpArr.sort(function(a, b) {
                                                        return a > b;
                                                        });
                                                setStateAsync(findOldDPs_InDB,JSON.stringify(dpArr),false);
                                                //log('Anzahl der DPs in dem durchsuchten Bereich:'+count);
                                                log(count+' unterschiedliche DPs in "inDB" von '+ formatDate(beginTS,'DD.MM.YYYY hh:mm:ss')+' - '+formatDate(endTS,'DD.MM.YYYY hh:mm:ss'));
                                                //Vergleich der DPs
                                                let nonActiveArr = [];
                                                let activeDPs = JSON.parse(getState(findOldDPs_Enabled).val);
                                                for (let i=0; i< dpArr.length;i++){
                                                    // dpArr[i]
                                                    let vorhanden = false;
                                                    for (let  j=0; j< activeDPs.length;j++ ){
                                                        if (dpArr[i] === activeDPs[j]){
                                                            vorhanden = true;
                                                            break; // vorhanden
                                                        }
                                                    }
                                                    if (!vorhanden){
                                                        // wird nicht mehr geloggt von active
                                                        nonActiveArr.push(dpArr[i]);
                                                    }
                                                }
                                                setState(findOldDPs_Old,JSON.stringify(nonActiveArr),false);
                                            });
                                        }
                                        
                                        
                                        
                                        
                                        function isObjInArray(arr,itemObj){
                                            if (arr.length>0){
                                                for (let x=0;x<arr.length-1;x++){
                                                    if (JSON.stringify(arr[x]) === JSON.stringify(itemObj)){
                                                        return true;
                                                    }
                                                }
                                                return false;
                                            }else{
                                                return false;
                                            }
                                        }
                                        
                                        // searchDir(0,10);
                                        
                                        function searchDir(fromDir, toDir){
                                            let fs = require('fs');
                                            let activeDPs = JSON.parse(getState(findOldDPs_Enabled).val);
                                            let notActiveDPs = [];
                                            let sysAdaptDir = getObject('system.adapter.'+dbNamespace).native.storeDir;
                                            fs.readdir(sysAdaptDir , function (erro, file) {
                                                log(file.length+' Verzeichnisse wurde(n) gelesen!');
                                                log('fromDir und toDir dürfen nur im Bereich von 0 bis '+file.length +' sein! Bitte in 10er-Schritten verwenden!');
                                                log('Es wurde ein Bereich von '+fromDir +' bis '+ toDir+' gewählt-> es dauert '+(toDir-fromDir)*2 +' Sekunden');
                                                if (fromDir <0 || toDir >file.length){
                                        
                                                }else{
                                                    for (let j=fromDir; j<toDir; j++){
                                                        //log(file[j]);
                                                        if (file[j].indexOf('.')>=0 && file[j].length >8){
                                        
                                                        }else{
                                                            fs.readdir(sysAdaptDir+'/'+file[j] , function (error, files) {
                                                                log(files.length+' DPs im Verzeichnis: '+file[j]);
                                                                for (let i=0;i< files.length; i++){
                                                                    let dpFiles = files[i].substring(8,files[i].length-5);
                                                                    if (isObjInArray(activeDPs,dpFiles)){
                                                                    }else{
                                                                        notActiveDPs.push({'id':dpFiles,'dir':file[j]});
                                                                    }
                                                                }
                                                            });
                                                            //fs.unlinkSync('/opt/iobroker/iobroker-data/files/vis.0/'+jarvisDirName+'/'+files[i]+'/'+file[j]);
                                                        }
                                                    }
                                                    setTimeout(function(){
                                                        log('Nicht aktive DPs in den ausgewählten Verzeichnissen: '+notActiveDPs.length);
                                                        let olddir= '';
                                                        let directDelete = getState(findOldDPs_DirectDel).val;
                                                        for (let i=0;i<notActiveDPs.length;i++){
                                                            if (directDelete){
                                                                // Direkt löschen
                                                                fs.unlinkSync(sysAdaptDir+'/'+notActiveDPs[i].dir+'/history.'+notActiveDPs[i].id+'.json');
                                                            }
                                                            if (notActiveDPs[i].dir != olddir){
                                                                if (directDelete){
                                                                    log('Im Verzeichnis: '+notActiveDPs[i].dir +' folgende Dateien sind gelöscht!:','warn');
                                                                }else{
                                                                    log('Im Verzeichnis: '+notActiveDPs[i].dir +' können folgende Dateien gelöscht werden:','warn');
                                                                }
                                                                olddir = notActiveDPs[i].dir;
                                                            }
                                                            log(notActiveDPs[i].id);
                                                        }
                                                    },2000 * (toDir-fromDir)); // file.length
                                                }
                                            });
                                            
                                        }
                                        
                                        HomoranH 1 Antwort Letzte Antwort
                                        0
                                        • M Matt77CHE

                                          @homoran

                                          // ********************************
                                          // findOldHistoryDPs v1.0.5
                                          // Copyright ©MCU
                                          // ********************************
                                          // v1.0.1 directDelete-> true  Möglichkeit die DatenDateien direkt löschen
                                          // v1.0.2 aliasId berücksichtigt bei enabledDPs
                                          // v1.0.3 zusätzliche Funktion listHistoryDPsWithaliasId('history.0');
                                          // v1.0.4 zusätzlich: fillAlias -> alle aktiven history-DPs mit alias in Array withAliasIdInEnabled
                                          //        fillEnabled_DPs -> nur die akitven History DPs in Array füllen -> enabled_DPs
                                          //        useAliasIdInEnabled -> true -> AliasId wird in enabled_DPs verwendet (was richtig ist, da die history-Werte mit alias geschrieben werden)
                                          // v1.0.5 zusätzliche Funktion: alias-Suche in allen ioBroker-DPs (unabhängig von history)
                                          
                                          let findOldDP                       = '0_userdata.0.history.findOldDPs';
                                          let findOldDPs_Old                  = findOldDP + '.old_DPs';
                                          let findOldDPs_Enabled              = findOldDP + '.enabled_DPs';
                                          let findOldDPs_InDB                 = findOldDP + '.inDB_DPS';
                                          let findOldDPs_BeginTS              = findOldDP + '.dirStart';
                                          let findOldDPs_EndTS                = findOldDP + '.dirEnd';
                                          let findOldDPs_Start                = findOldDP + '.start';
                                          let findOldDPs_DirectDel            = findOldDP + '.directDelete';
                                          let findOldDPs_fillEnabled          = findOldDP + '.fillEnabled_DPs';
                                          let findOldDPs_fillAlias            = findOldDP + '.fillWithAliasId';
                                          let findoldDPs_withAliasId          = findOldDP + '.withAliasId_DPs';
                                          let findOldDPs_useAliasInEnabled    = findOldDP + '.useAliasIdInEnabled';
                                          
                                          let findOldDPs_aliasDPs             = findOldDP + '.aliasDPs';
                                          let findOldDPs_aliasDPs_search      = findOldDP + '.aliasDPs_search'; 
                                          createStateAsync(findOldDPs_aliasDPs, {read: true, write: true, name: "ioBroker-DPs mit aliasId (unabhängig history)", type: "string", role: "text", def: JSON.stringify([]) });
                                          createStateAsync(findOldDPs_aliasDPs_search, {read: true, write: true, name: "Start Suche aliasIds in all ioBroker DPs", type: "boolean", role: "button", def: false });
                                          
                                          let dbNamespace = 'history.0';
                                          
                                          
                                          //createStateAsync(findOldDPs_Old, {read: true, write: true, name: "JSON für nicht genutzte DPs noch in DB", type: "string", role: "text", def: JSON.stringify([]) });
                                          createStateAsync(findOldDPs_Enabled, {read: true, write: true, name: "Aktive History-DPs in DB", type: "string", role: "text", def: JSON.stringify([]) });
                                          createStateAsync(findoldDPs_withAliasId, {read: true, write: true, name: "Aktive History-DPs mit aliasId", type: "string", role: "text", def: JSON.stringify([]) });
                                          //createStateAsync(findOldDPs_InDB, {read: true, write: true, name: "Genutzte DPs in DB", type: "string", role: "text", def: JSON.stringify([]) });
                                          createStateAsync(findOldDPs_BeginTS, {read: true, write: true, name: "Startverzeichnis", type: "number", role: "", def: 0 });
                                          createStateAsync(findOldDPs_EndTS, {read: true, write: true, name: "Endverzeichnis", type: "number", role: "", def: 10 }); //new Date().getTime()
                                          createStateAsync(findOldDPs_Start, {read: true, write: true, name: "Start Suche", type: "boolean", role: "button", def: false });
                                          createStateAsync(findOldDPs_fillEnabled, {read: true, write: true, name: "enabled_DPs suchen", type: "boolean", role: "button", def: false });
                                          createStateAsync(findOldDPs_fillAlias, {read: true, write: true, name: "withAliasId suchen", type: "boolean", role: "button", def: false });
                                          createStateAsync(findOldDPs_DirectDel, {read: true, write: true, name: "!!! Daten direkt löschen !!!", type: "boolean", role: "", def: false });
                                          createStateAsync(findOldDPs_useAliasInEnabled, {read: true, write: true, name: "AliasId in Enabled_DPs", type: "boolean", role: "", def: false });
                                          
                                          on({id: findOldDPs_Start, change: "any"}, function (obj) {
                                              let value = obj.state.val;
                                              if (value){
                                                  //setState(findOldDPs_EndTS,parseInt(new Date().getTime()),false);
                                                  getEnabledHistoryDPs(dbNamespace);
                                                  let fromDir = getState(findOldDPs_BeginTS).val;
                                                  let toDir = getState(findOldDPs_EndTS).val;
                                                  setTimeout(function(){
                                                      searchDir(fromDir,toDir);
                                                  },5000);
                                                  setStateDelayed(findOldDPs_Start,false,3000,false);
                                              }
                                          });
                                          
                                          on({id: findOldDPs_fillEnabled, change: "any"}, function (obj) {
                                              let value = obj.state.val;
                                              if (value){
                                                  getEnabledHistoryDPs(dbNamespace);
                                                  setStateDelayed(findOldDPs_fillEnabled,false,3000,false);
                                              }
                                          });
                                          
                                          on({id: findOldDPs_fillAlias, change: "any"}, function (obj) {
                                              let value = obj.state.val;
                                              if (value){
                                                  listHistoryDPsWithaliasId(dbNamespace);
                                                  setStateDelayed(findOldDPs_fillAlias,false,3000,false);
                                              }
                                          });
                                          
                                          on({id: findOldDPs_aliasDPs_search, change: "any"}, function (obj) {
                                              let value = obj.state.val;
                                              if (value){
                                                  findDPsWithAliasId(); 
                                                  setStateDelayed(findOldDPs_aliasDPs_search,false,3000,false);
                                              }
                                          });
                                          //listHistoryDPsWithaliasId('history.0');
                                          
                                          function listHistoryDPsWithaliasId(adp){
                                              let arr =[];
                                              sendTo(adp, 'getEnabledDPs', {}, function (result) {
                                                  let count = 0;
                                                  for ( let dp in result){
                                                      let dpHistoryAlias = getObject(dp).common.custom[adp].aliasId;
                                                      if (dpHistoryAlias != '' && dpHistoryAlias != undefined){
                                                          arr.push({'dpId':dp,'aliasId':dpHistoryAlias});
                                                          count++;
                                                      }
                                                  }
                                                  log('Anzahl der aktiv geloggten DPs mit aliasId: '+count);        
                                                  // setStateAsync(findOldDPs_Enabled,JSON.stringify(arr),false);
                                                  //log(JSON.stringify(arr));
                                                  setState(findoldDPs_withAliasId,JSON.stringify(arr),false);
                                              });
                                          }
                                          
                                          //findDPsWithAliasId(); 
                                          
                                          function findDPsWithAliasId(){
                                              let allDPs = $('*');
                                              let arr = [];
                                              log('Anzahl der States: '+allDPs.length);
                                              for (let i=0;i<allDPs.length;i++){
                                                  if (existsObject(allDPs[i])){
                                                      if (getObject(allDPs[i]).common != undefined){
                                                          if (getObject(allDPs[i]).common.alias!= undefined){
                                                              let aliasId = getObject(allDPs[i]).common.alias.id;
                                                              if (aliasId != undefined){
                                                                  //log(allDPs[i] +' mit aliasId: '+aliasId);
                                                                  //break;
                                                                  arr.push({'id':allDPs[i],'aliasId':aliasId});
                                                              }
                                                          }
                                                      }
                                                  }
                                              }
                                              //log(arr);
                                              setState(findOldDPs_aliasDPs,JSON.stringify(arr),false);
                                          }
                                          
                                          
                                          /*
                                          setTimeout(function(){
                                              getEnabledHistoryDPs(db);
                                              getHistoryDPinDB(db);
                                          },3000);
                                          */
                                          
                                          // getEnabledHistoryDPs('history.0');
                                          
                                          function getEnabledHistoryDPs(adp){
                                              let arr =[];
                                              let useAliasIdInenabled = getState(findOldDPs_useAliasInEnabled).val;
                                              sendTo(adp, 'getEnabledDPs', {}, function (result) {
                                                  let count = 0;
                                                  for ( let dp in result){
                                                      let dpHistoryAlias = getObject(dp).common.custom[adp].aliasId;
                                                      if (dpHistoryAlias != '' && dpHistoryAlias != undefined && useAliasIdInenabled){
                                                          arr.push(dpHistoryAlias);
                                                      }else{
                                                          arr.push(dp);
                                                      }
                                                      count++;
                                                  }
                                                  log('Anzahl der aktiv geloggten DPs: '+count);        
                                                  setStateAsync(findOldDPs_Enabled,JSON.stringify(arr),false);
                                              });
                                          }
                                          
                                          // getHistoryDPinDB('history.0');
                                          
                                          function getHistoryDPinDB(db){
                                              //Die 50 zuletzt gespeicherte Ereignisse für alle IDs holen:
                                              let beginTS = getState(findOldDPs_BeginTS).val;
                                              if (beginTS == 0){
                                                  beginTS = parseInt(new Date().getTime()) - 30*24*60*60*1000;
                                              }
                                              let endTS = getState(findOldDPs_EndTS).val;
                                              if(endTS == 0){
                                                  endTS = parseInt(new Date().getTime());
                                              }
                                              sendTo(db, 'getHistory', {
                                                  id: '*',
                                                  options: {
                                                      begin: beginTS,
                                                      end:   endTS,
                                                      /* count:     50,*/
                                                      addId:     true
                                                  }
                                              }, function (result) {
                                                  let dpArr =[];
                                                  let count = 0;
                                                  for (var i = 0; i < result.result.length; i++) {
                                                      if (!isObjInArray(dpArr,result.result[i].id)){
                                                          dpArr.push(result.result[i].id);
                                                          count++;
                                                      }
                                                      //console.log(JSON.stringify(result.result[i]) + ' ' + new Date(result.result[i].ts).toISOString());
                                                  }
                                                  dpArr = dpArr.sort(function(a, b) {
                                                          return a > b;
                                                          });
                                                  setStateAsync(findOldDPs_InDB,JSON.stringify(dpArr),false);
                                                  //log('Anzahl der DPs in dem durchsuchten Bereich:'+count);
                                                  log(count+' unterschiedliche DPs in "inDB" von '+ formatDate(beginTS,'DD.MM.YYYY hh:mm:ss')+' - '+formatDate(endTS,'DD.MM.YYYY hh:mm:ss'));
                                                  //Vergleich der DPs
                                                  let nonActiveArr = [];
                                                  let activeDPs = JSON.parse(getState(findOldDPs_Enabled).val);
                                                  for (let i=0; i< dpArr.length;i++){
                                                      // dpArr[i]
                                                      let vorhanden = false;
                                                      for (let  j=0; j< activeDPs.length;j++ ){
                                                          if (dpArr[i] === activeDPs[j]){
                                                              vorhanden = true;
                                                              break; // vorhanden
                                                          }
                                                      }
                                                      if (!vorhanden){
                                                          // wird nicht mehr geloggt von active
                                                          nonActiveArr.push(dpArr[i]);
                                                      }
                                                  }
                                                  setState(findOldDPs_Old,JSON.stringify(nonActiveArr),false);
                                              });
                                          }
                                          
                                          
                                          
                                          
                                          function isObjInArray(arr,itemObj){
                                              if (arr.length>0){
                                                  for (let x=0;x<arr.length-1;x++){
                                                      if (JSON.stringify(arr[x]) === JSON.stringify(itemObj)){
                                                          return true;
                                                      }
                                                  }
                                                  return false;
                                              }else{
                                                  return false;
                                              }
                                          }
                                          
                                          // searchDir(0,10);
                                          
                                          function searchDir(fromDir, toDir){
                                              let fs = require('fs');
                                              let activeDPs = JSON.parse(getState(findOldDPs_Enabled).val);
                                              let notActiveDPs = [];
                                              let sysAdaptDir = getObject('system.adapter.'+dbNamespace).native.storeDir;
                                              fs.readdir(sysAdaptDir , function (erro, file) {
                                                  log(file.length+' Verzeichnisse wurde(n) gelesen!');
                                                  log('fromDir und toDir dürfen nur im Bereich von 0 bis '+file.length +' sein! Bitte in 10er-Schritten verwenden!');
                                                  log('Es wurde ein Bereich von '+fromDir +' bis '+ toDir+' gewählt-> es dauert '+(toDir-fromDir)*2 +' Sekunden');
                                                  if (fromDir <0 || toDir >file.length){
                                          
                                                  }else{
                                                      for (let j=fromDir; j<toDir; j++){
                                                          //log(file[j]);
                                                          if (file[j].indexOf('.')>=0 && file[j].length >8){
                                          
                                                          }else{
                                                              fs.readdir(sysAdaptDir+'/'+file[j] , function (error, files) {
                                                                  log(files.length+' DPs im Verzeichnis: '+file[j]);
                                                                  for (let i=0;i< files.length; i++){
                                                                      let dpFiles = files[i].substring(8,files[i].length-5);
                                                                      if (isObjInArray(activeDPs,dpFiles)){
                                                                      }else{
                                                                          notActiveDPs.push({'id':dpFiles,'dir':file[j]});
                                                                      }
                                                                  }
                                                              });
                                                              //fs.unlinkSync('/opt/iobroker/iobroker-data/files/vis.0/'+jarvisDirName+'/'+files[i]+'/'+file[j]);
                                                          }
                                                      }
                                                      setTimeout(function(){
                                                          log('Nicht aktive DPs in den ausgewählten Verzeichnissen: '+notActiveDPs.length);
                                                          let olddir= '';
                                                          let directDelete = getState(findOldDPs_DirectDel).val;
                                                          for (let i=0;i<notActiveDPs.length;i++){
                                                              if (directDelete){
                                                                  // Direkt löschen
                                                                  fs.unlinkSync(sysAdaptDir+'/'+notActiveDPs[i].dir+'/history.'+notActiveDPs[i].id+'.json');
                                                              }
                                                              if (notActiveDPs[i].dir != olddir){
                                                                  if (directDelete){
                                                                      log('Im Verzeichnis: '+notActiveDPs[i].dir +' folgende Dateien sind gelöscht!:','warn');
                                                                  }else{
                                                                      log('Im Verzeichnis: '+notActiveDPs[i].dir +' können folgende Dateien gelöscht werden:','warn');
                                                                  }
                                                                  olddir = notActiveDPs[i].dir;
                                                              }
                                                              log(notActiveDPs[i].id);
                                                          }
                                                      },2000 * (toDir-fromDir)); // file.length
                                                  }
                                              });
                                              
                                          }
                                          
                                          HomoranH Offline
                                          HomoranH Offline
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von Homoran
                                          #127

                                          @matt77che da steht kein length an der genannten Stelle

                                          @matt77che sagte in ehemalige Historydaten finden:

                                          let fs = require('fs');

                                          kann es sein, dass du fs noch als npm modul hinzufügen musst?

                                          kein Support per PN! - Fragen im Forum stellen -

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          M 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          262

                                          Online

                                          32.7k

                                          Benutzer

                                          82.4k

                                          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