Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script für Ordner löschen auf einem NAS

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script für Ordner löschen auf einem NAS

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      Nordischerjung last edited by Nordischerjung

      Moin,

      ich habe mehrere Kameras (Reolink), die per Motion auf meinem NAS Aufzeichnungen speichern, Nun möchte ich diese gerne über die VIS manuell löschen.
      Die Ordner Struktur ist folgende :
      Videos/Kamera Eingang/2023 /04
      Ich möchte nun über ein Dropdown einmal die Kamera auswählen (also Ordner zB Kamera Eingang) dann welches Jahr (zb 2023) und welcher Monat (zB 04)
      Wenn ich diese Dropdowns ausgewählt habe möchte ich einen Button betätigen und diesen eingestellten Ordner dann löschen. Wie kann ich das am Besten mit Blockly oder Javascript lösen? Ich habe Datenpunkte Kamera Name als String, Jahr als Number und Moinat als Number. Wie baue ich jetzt den Ordnernamen zusammen? Wie kann ich auf NAS zugreifen?

      T 1 Reply Last reply Reply Quote 0
      • T
        TT-Tom @Nordischerjung last edited by

        @nordischerjung

        Ich habe Datenpunkte Kamera Name als String, Jahr als Number und Moinat als Number. Wie baue ich jetzt den Ordnernamen zusammen? Wie kann ich auf NAS zugreifen?

        Steht in diesem Datenpunkten die Daten schon drin oder sollen dort die Daten aus den Dropdown-Menü rein?

        Ist der Pfad auf dem NAS gemountet ins Iobroker System??

        N 1 Reply Last reply Reply Quote 0
        • N
          Nordischerjung @TT-Tom last edited by

          @tt-tom Moin,

          ja in den DPs steht dann schon zb Kamera Eingang in dem anderen 2023 und in dem anderen 04 drin

          leider geht das Mounten nicht, da iobroker in einem Unprivileged LXC läuft. Habe schon viel versucht, aber scheinbar geht es damit nicht, oder ich zu dusselig ( Was hier sehr naheliegen könnte 🙂 )

          maximal1981 T 2 Replies Last reply Reply Quote 0
          • maximal1981
            maximal1981 @Nordischerjung last edited by maximal1981

            @nordischerjung wenn du nicht zur NAS kommst, kannst auch nichts löschen

            EDIT: am host könntest du es mounten und ein bindmount machen

            N 1 Reply Last reply Reply Quote 0
            • N
              Nordischerjung @maximal1981 last edited by

              @maximal1981 sagte in Script für Ordner löschen auf einem NAS:

              EDIT: am host könntest du es mounten und ein bindmount machen

              wie geht das?

              maximal1981 1 Reply Last reply Reply Quote 0
              • maximal1981
                maximal1981 @Nordischerjung last edited by

                @nordischerjung dafür gibt es google und das proxmox Forum

                https://forum.proxmox.com/threads/mount-nfs-share-on-host-and-create-a-mount-point-in-a-unprivileged-container.119603/

                ein wenig kann man sich auch selbst durcharbeiten, wenn man schon die Begrifflichkeiten hat

                1 Reply Last reply Reply Quote 0
                • T
                  TT-Tom @Nordischerjung last edited by

                  @nordischerjung

                  Also dein Button muss in ein Datenpunkt schreiben, diesen nutzt du dann als Trigger. Die anderen Datepunkte nutzt du mit dem Textbaustein „ erstelle Text aus“ und setzt den Pfad zusammen.

                  Aber erst musst du das Problem mit dem Zugriff lösen und da kann ich dir leider nicht weiter helfen. Habe keine Container.

                  N 1 Reply Last reply Reply Quote 0
                  • N
                    Nordischerjung @TT-Tom last edited by

                    @tt-tom soweit habe ich es schon

                    fa60abeb-ba87-4418-9713-75eef7746c6f-image.png

                    nur wie lautet der Löschbefehl, muss ich es dann mit dem exec Baustein machen?

                    Ja, das mounten ist natürlich noch das Problem. Ich hatte schon viel in den Foren gesucht und probiert, aber mit Backitup hatte ich es einfach nicht geschafft. Deshalb nutze ich dort immer noch FTP

                    T 1 Reply Last reply Reply Quote 0
                    • N
                      Nordischerjung last edited by Nordischerjung

                      Ich habe es jetzt erst einmal per FTP gelöst. Das funktioniert auch schon.

                      f9d355a4-9987-4cbf-8abc-d387780fbc98-image.png

                      const ftp = require('ftp');
                      
                      function deleteFolderOnNAS(folderPath) {
                      
                      console.log (folderPath);
                      
                      
                      const config = {
                        host: '192.168.170.70',
                        port: 21,
                        user: 'xxx',
                        password: 'xxx',
                      };
                      
                      const client = new ftp();
                      
                      client.on('ready', () => {
                      
                      console.log('Verbindung zum NAS per FTP erfolgreich hergestellt.');
                        client.list(folderPath, (err, list) => {
                          if (err) {
                            console.error('Fehler beim Überprüfen des Ordners:', err);
                            client.end();
                            return;
                          }
                      
                          if (list.length === 0) {
                            console.error('Der zu löschende Ordner existiert nicht, oder ist Leer');
                            client.end();
                            return;
                          }
                      
                          client.rmdir(folderPath, true, (err) => {
                            if (err) {
                              console.error('Fehler beim Löschen des Ordners:', err);
                            } else {
                              console.log('Ordner erfolgreich gelöscht.');
                            }
                      
                            client.end();
                          });
                        });
                      });
                      
                      client.on('error', (err) => {
                        console.error('Fehler beim Verbindungsaufbau:', err);
                      });
                      
                      client.connect(config);
                      }
                      
                      const folderPath = '/Videos/' + Kamera + '/' + Jahr + '/' + Monat; // Pfad zum zu löschenden Ordner
                      
                      deleteFolderOnNAS(folderPath);
                      

                      Ich würde jetzt gerne nur die Verbindungsmeldungen

                      Verbindung zum NAS per FTP erfolgreich hergestellt. oder 
                      Fehler beim Verbindungsaufbau 
                      

                      in die Varibale "Verbindung" schreiben

                      Und die anderen 3 (Fehler beim löschen usw) in die Var "Ordnervorh" schreiben.

                      Wie geht das denn?

                      Einfach mit

                      console.log('Verbindung zum NAS per FTP erfolgreich hergestellt.');
                      Verbindung = 'Verbindung zum NAS per FTP erfolgreich hergestellt.' ;
                      

                      hat es nicht funktioniert. Der LOG Eintrag kam aber

                      PS an dem Baustein hatte ich natürlich Variablen dran an Verbindung und Ordnervorh

                      T 2 Replies Last reply Reply Quote 0
                      • T
                        TT-Tom @Nordischerjung last edited by

                        @nordischerjung

                        Schau es mir heute Abend an, am Handy ist doof.

                        1 Reply Last reply Reply Quote 0
                        • T
                          TT-Tom @Nordischerjung last edited by

                          @nordischerjung

                          zum Ausführen benötigst du den exec Baustein.

                          hier Info zum EXEC Baustein

                          hier info zum Löschen unter Linux, damit muss aber dein Verzeichnis unter ioBroker gemountet sein

                          1 Reply Last reply Reply Quote 0
                          • T
                            TT-Tom @Nordischerjung last edited by TT-Tom

                            @nordischerjung sagte in Script für Ordner löschen auf einem NAS:

                            in die Varibale "Verbindung" schreiben
                            Und die anderen 3 (Fehler beim löschen usw) in die Var "Ordnervorh" schreiben.
                            Wie geht das denn?

                            möchtest du diese als Rückmeldung haben oder übergeben?

                            hier Findest du noch mal infos zu den Funktion

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            451
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            blockly javascript
                            3
                            12
                            453
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo