Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. admin Files/Dateien Dateibrowser zeigt nicht alle Dateien

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    admin Files/Dateien Dateibrowser zeigt nicht alle Dateien

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

      Hallo zusammen,

      leider hat sich da in einiger Zeit nichts getan und meine Suchbegriffe haben keinen hilfreichen Post hervorbringen...

      Mit einem JS-Skript speichere ich JPG Dateien in den Ordner "0_userdata.0/VTO/VTO_${i}.jpg"
      In Der Benutzeroberfläche wird mir aber nur eine Datei in diesem Ordner angezeigt, obwohl in SSH mehr vorhanden sind. Einen Unterschied in den Dateien, oder Berechtigungen kann ich nicht feststellen...

      e9d91bb2-1839-4316-9708-8a2b0ce7eb4e-image.png

      75093a14-392b-4191-af83-e2654364ceeb-image.png

      Kann das jemand nachvollziehen, bzw. ist das Verhalten "normal"?

      Homoran Thomas Braun liv-in-sky 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @h07d0q last edited by

        @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

        leider hat sich da in einiger Zeit nichts getan

        wie meinen?

        @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

        und meine Suchbegriffe haben keinen hilfreichen Post hervorbringen...

        welche?

        @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

        den Ordner "0_userdata.0/VTO/VTO_${i}.jpg"

        laut Screenshot heisst der anders.

        Außerdem wären das Datenpunkte, das ist kein ^Ordner" sondern ein Objekt.

        @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

        Mit einem JS-Skript speichere i

        wie??
        Das Skript zu zeigen wäre hilfreich

        https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1

        H 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @h07d0q last edited by

          @h07d0q

          Du siehst die Berechtigungen doch gar nicht.
          Stichwort ACLs. Aber einem root muss ich das ja nicht erklären.

          1 Reply Last reply Reply Quote 0
          • H
            h07d0q @Homoran last edited by h07d0q

            @homoran
            Lange nichts getan heißt ich hatte das Problem schon im April, habe es aber als Nebensache abgetan und auf Updates gehofft.

            Die Suchbegriffe die mir dazu einfielen:
            "Dateien" da der Menüpunkt so heißt
            "Files" weil da die Dateien abgelegt wurden
            "Dateibrowser" weil das die Funktion ist
            "nicht alle" weil das mein Problem ist

            Ergab in Summe nichts Hilfreiches 🙂

            Dass der Ordner im Dateibrowser anders heißt ist schon irgendwie einsichtig, aber es gibt auch keinen "Benutzerdateien" und er zeigt ja eine Datei an.
            Ich habe die Datei testweise per SSH gelöscht, dann war sie auch weg!
            Also -> Guter Tipp

            Das Skript sieht so aus:

            const __dirname = '/opt/iobroker/iobroker-data/files/';
            
            for (let i = 1; i < 4; i++) {
                let destination = path.join(__dirname, `0_userdata.0/VTO/VTO_${i}.jpg`);
                this.digestClient
                .fetch(`http://${this.dahua_host}/cgi-bin/snapshot.cgi`)
                .then((r) => {
                    return r.buffer();
                })
                .then((buf) => {
                    fs.writeFile(destination, buf, 'binary', function (err) {
                        if (err) {
                            console.error(err);
                            console.error('Error saving snapshot to disk', err);
                        } else {
                            if (LOG_INFO) console.log('Snapshot saved: ' + destination);
                            /*
                            sendTo("telegram", "send", {
                              text: destination
                            });
                            */
                        }
                    });
                });
                await new Promise(resolve => setTimeout(resolve, 2000));
            }
            

            Die Abfall.ics wird so gespeichert (damit bin ich auf den Pfad gekommen):

            writeFile("0_userdata.0", "/Abfall.ics", body);
            

            @Thomas-Braun
            Die Berechtigungen im Screenshot zeigen mir, dass es wie erwartet vom User iobroker erstellt und "geownt" wird. Alle haben das Recht zu lesen.
            e546c95d-8eb5-462e-b867-1f61f87c989f-image.png
            Lesezugriff auf die eine angezeigte Datei hat funktioniert. Das Löschen auch.

            Ich weiß nicht welche Ordner man in dem Dateibrowser erwarten kann/soll, aber die Ordner shelly.0, vis, vis.0 und web habe ich alle auch nicht angelegt und werden angezeigt. Die ganzen anderen Ordner der anderen Adapter sieht man aber nicht.
            Da ich die einzige, sichtbare Datei gelöscht habe, wird mir auch der Ordner "VTO" nicht mehr angezeigt und ich kann nicht mal testweise eine Datei dahin aus dem Dateibrowser hochladen.

            Glasfaser Homoran 2 Replies Last reply Reply Quote 0
            • Glasfaser
              Glasfaser @h07d0q last edited by

              @h07d0q

              Einen Unterschied in den Dateien, oder Berechtigungen kann ich nicht feststellen...

              wird per .. ins Verzeichniss geschrieben

              iobroker file write
              
              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @h07d0q last edited by

                @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

                Dass der Ordner im Dateibrowser anders heißt ist schon irgendwie einsichtig,

                welcher Dateibrowser?
                stammt dein Screenshot nicht aus den Objects?

                H 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @h07d0q last edited by liv-in-sky

                  @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

                  Kann das jemand nachvollziehen, bzw. ist das Verhalten "normal"?

                  du sicherst dateien in den systemordner userdata ? dafür ist der nicht gedacht. systemordner sind tabu für solche speicherungen (/opt/iobroker/iobroker-data/files/0_userdata.0/VTO....)

                  du kannst das alles in einen eigenen ordner auf linux ebene speichern - außerhalb des iobroker ordners - oder du speicherst (nicht mit fs.write ! sondern mit writeFile() ) unter dem vis.0 adapter-dateipfad - dort werden files gespeichert, die in der vis gebraucht werden

                  daher kommt auch das verwirrende bild von deinem dateibrowser, dass ja eigentlich der objectbrowser ist und nicht dafür da ist, bilder anzuzeigen - zuminderst sollte man dann einen der entwickler fragen, ob das so in ordnung ist

                  bei einem update könnte es auch passieren, das in den systemordner alle dateien gelöscht werden

                  1 Reply Last reply Reply Quote 2
                  • H
                    h07d0q @Homoran last edited by

                    @homoran nö. Dateibrowser.
                    ddddeb81-4bd3-4c42-b0f1-7c6943583181-image.png
                    @liv-in-sky
                    Habe das Skript vom Systemordner "Benutzerdateien" (so ein bescheuerter Name für einen Systemordner) auf vis.0 angepasst..
                    Den Ordner VTO hab ich aus dem Webinterface erstellt, welcher im FS aber erst erstellt wird, wenn ich eine Datei darin platziere (deswegen die PDF darin).
                    Die danach mittels Skript erstellten Dateien werden nicht angezeigt.

                    Das Skript habe ich noch nach dem Post von @Glasfaser um ein "fs.readFileSync" erweitert. Ich kann auch gerne das komplette Skript reinstellen, aber das ist ziemlich groß...

                    Und für alle: Das ist ein Objektbrowser - kein Dateibrowser
                    23356de8-4d3a-4551-b44c-53636a0ba2fe-image.png

                    FredF 1 Reply Last reply Reply Quote 0
                    • FredF
                      FredF Most Active Forum Testing @h07d0q last edited by

                      @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

                      Habe das Skript vom Systemordner "Benutzerdateien"

                      Man beachte den unterschiedlichen Namen:
                      1b3a2103-9481-4170-ade7-0b1033546311-grafik.png

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        h07d0q @FredF last edited by h07d0q

                        @fredf ok und warum funktioniert es dann auch nicht mit dem Pfad vis.0?
                        Meinst du ich müsste dann unter "/opt/iobroker/iobroker-data/files/Benutzerdaten/VTO/telegram.gif" speichern bzw. "writeFile('Benutzerdaten', destination, buf, function (err) {" aufrufen?


                        Hab es vorerst gelöst bekommen und es würde bestimmt auch im Ordner Benutzerdaten bzw. 0_userdata.0 funktionieren:

                          async saveSnapshots() {
                            for (let i = 1; i < 4; i++) {
                                let destination = `/VTO/VTO_${i}.jpg`
                                // etwas angepasste Variable für writeFile statt fs.writeFile
                                //let destination = path.join(__dirname, `vis.0/VTO/VTO_${i}.jpg`);
                                this.digestClient
                                .fetch(`http://${this.dahua_host}/cgi-bin/snapshot.cgi`)
                                .then((r) => {
                                    return r.buffer();
                                })
                                .then((buf) => {
                                    writeFile('vis.0', destination, buf, function (err) {
                                    // so hat es nicht funktioniert:
                                    //fs.writeFile(destination, buf, 'binary', function (err) {
                                        if (err) {
                                            console.error(err);
                                            console.error('Error saving snapshot to disk', err);
                                        } else {
                                            if (LOG_INFO) console.debug('Snapshot saved: ' + destination);
                                            //war nicht notwendig, wurde ja schon von writeFile geschrieben
                                            //fs.readFileSync(destination);
                                        }
                                    });
                                });
                                await new Promise(resolve => setTimeout(resolve, 2000));
                            }
                            // Fotos wurden erstellt
                            // GIF erstellen
                            if (LOG_DEBUG) console.debug('telegram.gif erstellen...');
                            exec("ffmpeg -framerate 2 -pattern_type glob -i '/opt/iobroker/iobroker-data/files/vis.0/VTO/VTO_*.jpg' -y '/opt/iobroker/iobroker-data/files/vis.0/VTO/telegram.gif'", async function (error, result, stderr) {
                                //nach Erstellung per Telegram versenden
                                // die Datei telegram.gif ist nicht im Dateibrowser sichtbar
                                if (LOG_DEBUG) console.debug(stderr);
                                if (LOG_INFO) console.log('GIF erstellt. Telegram Nachricht versenden.');
                                sendTo("telegram", "send", {
                                    text: '/opt/iobroker/iobroker-data/files/vis.0/VTO/telegram.gif', caption: 'Haustür:'
                                });
                            });
                          }
                        
                        

                        voila, die Dateien tauchen auf:
                        8bb5a83d-c684-40d1-bcd1-e1902f1ae71f-image.png
                        Ne Idee was an den zwei Zeilen der Unterschied ist? Beide haben eine Datei erzeugt und man konnte weiter damit arbeiten, nur tauchten diese nicht im Dateibrowser auf.

                        Jetzt hänge ich noch an der von ffmpeg erstellten gif Datei... gibt's einen besseren Weg als diese irgendwo anders zu speichern und dann über readFile und writeFile in den Pfad schreiben zu lassen?

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @h07d0q last edited by

                          @h07d0q sagte in admin Files/Dateien Dateibrowser zeigt nicht alle Dateien:

                          Jetzt hänge ich noch an der von ffmpeg erstellten gif Datei... gibt's einen besseren Weg als diese irgendwo anders zu speichern und dann über readFile und writeFile in den Pfad schreiben zu lassen?

                          entweder du machst es über ein javascript - so wie du es beschrieben hast - oder du machst dir ein bash script welches den befehl von @Glasfaser nutzt https://forum.iobroker.net/post/871839
                          https://www.iobroker.net/docu/index-98.htm?page_id=3971&lang=de#iobroker_file_write

                          je nachdem, wie es für dich besser paßt

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

                          Support us

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

                          897
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          6
                          11
                          826
                          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