Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] Speicherort eigene Dateien/Files ?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

[Gelöst] Speicherort eigene Dateien/Files ?

Scheduled Pinned Locked Moved JavaScript
37 Posts 7 Posters 4.3k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M MCU

    @wendy2702

    /opt/iobroker/iobroker-data/files/0_userdata.0
    
    /* falls man vis instaliert hat */
    /opt/iobroker/iobroker-data/files/vis.0
    
    
    haus-automatisierungH Online
    haus-automatisierungH Online
    haus-automatisierung
    Developer Most Active
    wrote on last edited by
    #5

    @mcu Diese Ordner im Dateisystem sollte man aber manuell nie schreiben und einfach komplett in Ruhe lassen. Zumal diese gar nicht existieren wenn man zB Redis verwendet.

    Wenn man etwas speichern will, immer mit den ioBroker Funktionen arbeiten (CLI, Dateien-Tab im Admin, JavaScript-Adapter, usw).

    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
    📚 Meine inoffizielle ioBroker Dokumentation

    wendy2702W 1 Reply Last reply
    0
    • M MCU

      @wendy2702 js-controller-Version?
      node: v18.20.2, js-controller: 5.0.19

      wendy2702W Online
      wendy2702W Online
      wendy2702
      wrote on last edited by
      #6

      @mcu Sorry, nicht drüber nachgedacht.

      JS Controller: 5.0.19
      NodeJS: v18.20.2

      Bitte keine Fragen per PN, die gehören ins Forum!

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

      M 1 Reply Last reply
      0
      • wendy2702W wendy2702

        @mcu Sorry, nicht drüber nachgedacht.

        JS Controller: 5.0.19
        NodeJS: v18.20.2

        M Online
        M Online
        MCU
        wrote on last edited by
        #7

        @wendy2702 Was willst du denn mit den Dateien machen?
        Du schreibst sie mit writeFile in das entsprechende Verzeichnis?

        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 Reply Last reply
        0
        • haus-automatisierungH haus-automatisierung

          @mcu Diese Ordner im Dateisystem sollte man aber manuell nie schreiben und einfach komplett in Ruhe lassen. Zumal diese gar nicht existieren wenn man zB Redis verwendet.

          Wenn man etwas speichern will, immer mit den ioBroker Funktionen arbeiten (CLI, Dateien-Tab im Admin, JavaScript-Adapter, usw).

          wendy2702W Online
          wendy2702W Online
          wendy2702
          wrote on last edited by wendy2702
          #8

          @haus-automatisierung sagte in Speicherort eigene Dateien/Files ?:

          Wenn man etwas speichern will, immer mit den ioBroker Funktionen arbeiten (CLI, Dateien-Tab im Admin, JavaScript-Adapter, usw).

          Sorry verstehe ich als Script legasteniker nicht.

          Mal hier das Script welches nach Update z.B. jetzt nicht mehr funktioniert weil Permission denied:

          // -------------------------------------------------------------------------
          // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei
          // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet
          // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und
          // gesendet.
          // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt
          // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten
          // Uhula 2017.11
          // -------------------------------------------------------------------------
          
          // -------------------------------------------------------------------------
          // Konfiguration
          // -------------------------------------------------------------------------
                // Objekt-ID des Bewegungsmelders
          const oidLichtBewmelderTuer = "hm-rpc.0.PEQ0390697.1.MOTION";
                // URL zur Kamera umn ein Image (jpg) zu erhalten
          const cam_url = "http://192.168.178.54:8765/picture/4/current/";
                // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren
          const dest_path = '/opt/iobroker/iobroker-data/files/_temp/eingangstuer/';
                // Anzahl der Bilder, die vorgehalten werden sollen
          const imageCountMax = 8;                
                // Prefix für die Bildnamen
          const imageNamePre = "Haustuer_Einfahrt_"; 
          
          // -------------------------------------------------------------------------
          // Scriptteil
          // -------------------------------------------------------------------------
          var request = require('request');
          var fs      = require('fs');
          
          // Bild an telegram schicken 
          function sendImage (path) { 
              try {
                  var stats = fs.statSync(path);
                  var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1);
                  sendTo('telegram.0', {
                      text:                   path,
                      caption:                msg, 
                      disable_notification:   true,
                      user: 'Mirko',
                  });
              }
              catch(err) { if (err.code != "ENOENT") log(err); }     
          }
          
          // löscht eine Datei synchron (wartet auf das Ergebnis)
          function fsUnlinkSync(path) {
              try {
                  var stats = fs.statSync(path);
                  try { fs.unlinkSync(path); }
                  catch(err) { if (err.code != "ENOENT") log(err); }     
              }
              catch(err) { if (err.code != "ENOENT") log(err); }
          }
          
          // benennt eine Datei synchron um (wartet auf das Ergebnis)
          function fsRenameSync(oldPath, newPath) {
              try {
                  var stats = fs.statSync(oldPath);
                  try { fs.renameSync(oldPath, newPath); }
                  catch(err) { if (err.code != "ENOENT") log(err); }     
              }
              catch(err) { if (err.code != "ENOENT") log(err); }
          }
          
          // Bild speichern und senden
          function saveImage() {
              // Bild imageCountMax-1 löschen
              fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" );
              // Bilder 0..imageCountMax-2 umbenennen
              for (var i=imageCountMax-4; i >= 0; i-- ) { 
                  fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg"); 
              }
              // Bild 0 löschen
              var fname = imageNamePre + "0.jpg";
              fsUnlinkSync( fname );
              // Bild holen und speichern
              request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                  fs.writeFile(dest_path + fname, body, 'binary', function(err) {
                      if (err) {
                          log('Fehler beim Bild speichern: ' + err, 'warn');
                      } else {
                          // dem Filesystem 2 Sek Zeit zum Speichern lassen
                          setTimeout(function() { sendImage(dest_path + fname); }, 2000); 
                      }
                  }); 
              });
          }
          
          // sofort ein Bild senden und nach 3 Sek erneut
          //function onEvent() {
          //    saveImage();
          //    setTimeout(function() { saveImage(); }, 10 * 300); 
          //}
          
          // sofort ein Bild senden und nach 3 Sek erneut
          function onEvent() {
          saveImage();
          setTimeout(function() { saveImage(); }, 3 * 1000);
          setTimeout(function() { saveImage(); }, 6 * 1000);
          setTimeout(function() { saveImage(); }, 9 * 1000);
          }
          
          
          // Ereignisroutine
          //on({id: oidLichtBewmelderTuer, val: true}, function (obj) {
          //    onEvent( obj );
          on({id: 'hm-rpc.0.PEQ0390697.1.MOTION', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("hm-rpc.0.PEQ0390697.1.MOTION").val === true && getState("hm-rpc.0.NEQ1110202.1.STATE").val === false)
            onEvent( obj );
          });
          
          // manuelle Ausführung (Test)
          onEvent();
          

          Das lief so seit 2017 bis eben heute.

          Was müsste denn geändert werden?

          EDIT: das request depreceated ist weiss ich und baue das auch gerade um.

          Bitte keine Fragen per PN, die gehören ins Forum!

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

          M 1 Reply Last reply
          0
          • wendy2702W wendy2702

            @haus-automatisierung sagte in Speicherort eigene Dateien/Files ?:

            Wenn man etwas speichern will, immer mit den ioBroker Funktionen arbeiten (CLI, Dateien-Tab im Admin, JavaScript-Adapter, usw).

            Sorry verstehe ich als Script legasteniker nicht.

            Mal hier das Script welches nach Update z.B. jetzt nicht mehr funktioniert weil Permission denied:

            // -------------------------------------------------------------------------
            // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei
            // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet
            // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und
            // gesendet.
            // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt
            // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten
            // Uhula 2017.11
            // -------------------------------------------------------------------------
            
            // -------------------------------------------------------------------------
            // Konfiguration
            // -------------------------------------------------------------------------
                  // Objekt-ID des Bewegungsmelders
            const oidLichtBewmelderTuer = "hm-rpc.0.PEQ0390697.1.MOTION";
                  // URL zur Kamera umn ein Image (jpg) zu erhalten
            const cam_url = "http://192.168.178.54:8765/picture/4/current/";
                  // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren
            const dest_path = '/opt/iobroker/iobroker-data/files/_temp/eingangstuer/';
                  // Anzahl der Bilder, die vorgehalten werden sollen
            const imageCountMax = 8;                
                  // Prefix für die Bildnamen
            const imageNamePre = "Haustuer_Einfahrt_"; 
            
            // -------------------------------------------------------------------------
            // Scriptteil
            // -------------------------------------------------------------------------
            var request = require('request');
            var fs      = require('fs');
            
            // Bild an telegram schicken 
            function sendImage (path) { 
                try {
                    var stats = fs.statSync(path);
                    var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1);
                    sendTo('telegram.0', {
                        text:                   path,
                        caption:                msg, 
                        disable_notification:   true,
                        user: 'Mirko',
                    });
                }
                catch(err) { if (err.code != "ENOENT") log(err); }     
            }
            
            // löscht eine Datei synchron (wartet auf das Ergebnis)
            function fsUnlinkSync(path) {
                try {
                    var stats = fs.statSync(path);
                    try { fs.unlinkSync(path); }
                    catch(err) { if (err.code != "ENOENT") log(err); }     
                }
                catch(err) { if (err.code != "ENOENT") log(err); }
            }
            
            // benennt eine Datei synchron um (wartet auf das Ergebnis)
            function fsRenameSync(oldPath, newPath) {
                try {
                    var stats = fs.statSync(oldPath);
                    try { fs.renameSync(oldPath, newPath); }
                    catch(err) { if (err.code != "ENOENT") log(err); }     
                }
                catch(err) { if (err.code != "ENOENT") log(err); }
            }
            
            // Bild speichern und senden
            function saveImage() {
                // Bild imageCountMax-1 löschen
                fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" );
                // Bilder 0..imageCountMax-2 umbenennen
                for (var i=imageCountMax-4; i >= 0; i-- ) { 
                    fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg"); 
                }
                // Bild 0 löschen
                var fname = imageNamePre + "0.jpg";
                fsUnlinkSync( fname );
                // Bild holen und speichern
                request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                    fs.writeFile(dest_path + fname, body, 'binary', function(err) {
                        if (err) {
                            log('Fehler beim Bild speichern: ' + err, 'warn');
                        } else {
                            // dem Filesystem 2 Sek Zeit zum Speichern lassen
                            setTimeout(function() { sendImage(dest_path + fname); }, 2000); 
                        }
                    }); 
                });
            }
            
            // sofort ein Bild senden und nach 3 Sek erneut
            //function onEvent() {
            //    saveImage();
            //    setTimeout(function() { saveImage(); }, 10 * 300); 
            //}
            
            // sofort ein Bild senden und nach 3 Sek erneut
            function onEvent() {
            saveImage();
            setTimeout(function() { saveImage(); }, 3 * 1000);
            setTimeout(function() { saveImage(); }, 6 * 1000);
            setTimeout(function() { saveImage(); }, 9 * 1000);
            }
            
            
            // Ereignisroutine
            //on({id: oidLichtBewmelderTuer, val: true}, function (obj) {
            //    onEvent( obj );
            on({id: 'hm-rpc.0.PEQ0390697.1.MOTION', change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              if (getState("hm-rpc.0.PEQ0390697.1.MOTION").val === true && getState("hm-rpc.0.NEQ1110202.1.STATE").val === false)
              onEvent( obj );
            });
            
            // manuelle Ausführung (Test)
            onEvent();
            

            Das lief so seit 2017 bis eben heute.

            Was müsste denn geändert werden?

            EDIT: das request depreceated ist weiss ich und baue das auch gerade um.

            M Online
            M Online
            MCU
            wrote on last edited by
            #9

            @wendy2702 Du musst es mit writeFile speichern nicht mit fs.writeFile
            Versuch es mal hiermit

            /* directory ist das Verzeichnis ab 0_userdata.0 */
            /* z.B. let directory = '/telegram/' */
            /* so ungefähr ?  Nur mit writeFile werden entsprechende Berechtigungen gesetzt, nicht bei fs.writeFile */
             writeFile('0_userdata.0', directory + dateiname, Buffer.from(body, 'binary'), function (error) {
              if(error){
                log('fehler beim Bild speichern: ' +error ,'warn');
              }
            }
            

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

            wendy2702W 1 Reply Last reply
            0
            • M MCU

              @wendy2702 Du musst es mit writeFile speichern nicht mit fs.writeFile
              Versuch es mal hiermit

              /* directory ist das Verzeichnis ab 0_userdata.0 */
              /* z.B. let directory = '/telegram/' */
              /* so ungefähr ?  Nur mit writeFile werden entsprechende Berechtigungen gesetzt, nicht bei fs.writeFile */
               writeFile('0_userdata.0', directory + dateiname, Buffer.from(body, 'binary'), function (error) {
                if(error){
                  log('fehler beim Bild speichern: ' +error ,'warn');
                }
              }
              
              wendy2702W Online
              wendy2702W Online
              wendy2702
              wrote on last edited by
              #10

              @mcu Danke für deine Hilfe.

              Ich habe es einmal so probiert:

                  // Bild holen und speichern
                  request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                      writeFile(dest_path + fname, body, 'binary', function(err) {
                          if (err) {
                              log('Fehler beim Bild speichern: ' + err, 'warn');
                          } else {
                              // dem Filesystem 2 Sek Zeit zum Speichern lassen
                              setTimeout(function() { sendImage(dest_path + fname); }, 2000); 
                          }
                      }); 
                  });
              

              Und erhalte dann das im log:

              17:54:08.204	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
              17:54:08.205	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
              17:54:08.206	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
              17:54:08.206	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
              17:54:14.218	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
              17:54:14.218	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
              17:54:14.220	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
              17:54:14.220	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
              

              Und einmal so:

              // Bild holen und speichern
                  request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                       writeFile('0_userdata.0', directory + dateiname, Buffer.from(body, 'binary'), function (error) {
                           if(error){
                               log('fehler beim Bild speichern: ' +error ,'warn');
                          } else {
                              // dem Filesystem 2 Sek Zeit zum Speichern lassen
                              setTimeout(function() { sendImage(dest_path + fname); }, 2000); 
                          }
                      }); 
                  });
              

              Zusätzlich mal die Const für Dateiname und Directory angelegt, keine Ahnung ob das richtig ist:

              const directory = "test"
              
              const dateiname = "test_bild"
              

              Aber dann erhalte ich das im log:

              18:13:26.122	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
              18:13:26.122	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
              18:13:26.124	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
              18:13:26.124	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
              18:13:32.106	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
              18:13:32.106	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
              18:13:32.108	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
              18:13:32.108	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
              
              

              Keine Ahnung was da jetzt noch falsch ist. Für mich aktuell zu hoch.

              Bitte keine Fragen per PN, die gehören ins Forum!

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

              M 1 Reply Last reply
              0
              • wendy2702W wendy2702

                @mcu Danke für deine Hilfe.

                Ich habe es einmal so probiert:

                    // Bild holen und speichern
                    request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                        writeFile(dest_path + fname, body, 'binary', function(err) {
                            if (err) {
                                log('Fehler beim Bild speichern: ' + err, 'warn');
                            } else {
                                // dem Filesystem 2 Sek Zeit zum Speichern lassen
                                setTimeout(function() { sendImage(dest_path + fname); }, 2000); 
                            }
                        }); 
                    });
                

                Und erhalte dann das im log:

                17:54:08.204	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
                17:54:08.205	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
                17:54:08.206	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
                17:54:08.206	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
                17:54:14.218	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
                17:54:14.218	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
                17:54:14.220	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: Error: Parameter "filename" needs to be of type "string" but type "undefined" has been passed
                17:54:14.220	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:80:9)
                

                Und einmal so:

                // Bild holen und speichern
                    request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
                         writeFile('0_userdata.0', directory + dateiname, Buffer.from(body, 'binary'), function (error) {
                             if(error){
                                 log('fehler beim Bild speichern: ' +error ,'warn');
                            } else {
                                // dem Filesystem 2 Sek Zeit zum Speichern lassen
                                setTimeout(function() { sendImage(dest_path + fname); }, 2000); 
                            }
                        }); 
                    });
                

                Zusätzlich mal die Const für Dateiname und Directory angelegt, keine Ahnung ob das richtig ist:

                const directory = "test"
                
                const dateiname = "test_bild"
                

                Aber dann erhalte ich das im log:

                18:13:26.122	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
                18:13:26.122	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
                18:13:26.124	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
                18:13:26.124	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
                18:13:32.106	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
                18:13:32.106	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
                18:13:32.108	error	javascript.0 (97118) script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt: TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
                18:13:32.108	error	javascript.0 (97118) at Request._callback (script.js.common.Cameras.Telegramm_Screenshot_Haustuer_Einfahrt:84:66)
                
                

                Keine Ahnung was da jetzt noch falsch ist. Für mich aktuell zu hoch.

                M Online
                M Online
                MCU
                wrote on last edited by
                #11

                @wendy2702 sagte in Speicherort eigene Dateien/Files ?:

                const directory = "test" const dateiname = "test_bild"

                const directory = "/test/"
                 
                const dateiname = "test_bild.jpg"
                
                ....
                
                writeFile('0_userdata.0', directory + dateiname, body, function (error) {
                

                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 Reply Last reply
                0
                • wendy2702W Online
                  wendy2702W Online
                  wendy2702
                  wrote on last edited by wendy2702
                  #12

                  @mcu Wie oben geschrieben habe ich das directory nicht:

                  @mcu sagte in Speicherort eigene Dateien/Files ?:

                  0_userdata.0

                  Keine Ahnung warum nicht und auch nicht wann es erzeugt wird.

                  Unter Objekten gibt es den Ordner ja:

                  58d22ea0-67cf-45a6-a962-7e0e5ee85c3f-grafik.png

                  Bitte keine Fragen per PN, die gehören ins Forum!

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

                  M haus-automatisierungH 2 Replies Last reply
                  0
                  • wendy2702W wendy2702

                    @mcu Wie oben geschrieben habe ich das directory nicht:

                    @mcu sagte in Speicherort eigene Dateien/Files ?:

                    0_userdata.0

                    Keine Ahnung warum nicht und auch nicht wann es erzeugt wird.

                    Unter Objekten gibt es den Ordner ja:

                    58d22ea0-67cf-45a6-a962-7e0e5ee85c3f-grafik.png

                    M Online
                    M Online
                    MCU
                    wrote on last edited by MCU
                    #13

                    @wendy2702 Nein unter Files schauen
                    99ccb0e0-e50f-4aaf-9418-0a4489e672ce-image.png

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

                    wendy2702W 1 Reply Last reply
                    0
                    • M MCU

                      @wendy2702 Nein unter Files schauen
                      99ccb0e0-e50f-4aaf-9418-0a4489e672ce-image.png

                      wendy2702W Online
                      wendy2702W Online
                      wendy2702
                      wrote on last edited by wendy2702
                      #14

                      @mcu Da kommt bei mir dieser Fehler wenn ich den Ordner öffnen will:

                      1ddcfeeb-173a-4637-8f5e-7ef2f07f6985-grafik.png

                      EDIT: wenn ich den nur markieren und versuche einen weiteren Ordner darin zu erstellen kann ich im Eingabefeld keinen Namen eingeben und es blinkt nur der Cursor

                      2026181d-57b0-46b6-a732-51fc80674c31-F23B3DC8-C252-4E39-BA1B-02BACC05E915.GIF

                      Bitte keine Fragen per PN, die gehören ins Forum!

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

                      M 1 Reply Last reply
                      0
                      • wendy2702W wendy2702

                        @mcu Da kommt bei mir dieser Fehler wenn ich den Ordner öffnen will:

                        1ddcfeeb-173a-4637-8f5e-7ef2f07f6985-grafik.png

                        EDIT: wenn ich den nur markieren und versuche einen weiteren Ordner darin zu erstellen kann ich im Eingabefeld keinen Namen eingeben und es blinkt nur der Cursor

                        2026181d-57b0-46b6-a732-51fc80674c31-F23B3DC8-C252-4E39-BA1B-02BACC05E915.GIF

                        M Online
                        M Online
                        MCU
                        wrote on last edited by MCU
                        #15

                        @wendy2702 Schau mal auf der console unter

                        cd /opt/iobroker/iobroker-data/files/0_userdata.0
                        ls -l
                        

                        Hast du eigentlich den vis.0-Ordner?

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

                        wendy2702W 1 Reply Last reply
                        0
                        • M MCU

                          @wendy2702 Schau mal auf der console unter

                          cd /opt/iobroker/iobroker-data/files/0_userdata.0
                          ls -l
                          

                          Hast du eigentlich den vis.0-Ordner?

                          wendy2702W Online
                          wendy2702W Online
                          wendy2702
                          wrote on last edited by
                          #16

                          @mcu Ja, habe Ihn gerade manuell erstellt. Jetzt nochmal testen.

                          Melde mich.

                          Danke bis dahin

                          Bitte keine Fragen per PN, die gehören ins Forum!

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

                          1 Reply Last reply
                          0
                          • wendy2702W wendy2702

                            @mcu Wie oben geschrieben habe ich das directory nicht:

                            @mcu sagte in Speicherort eigene Dateien/Files ?:

                            0_userdata.0

                            Keine Ahnung warum nicht und auch nicht wann es erzeugt wird.

                            Unter Objekten gibt es den Ordner ja:

                            58d22ea0-67cf-45a6-a962-7e0e5ee85c3f-grafik.png

                            haus-automatisierungH Online
                            haus-automatisierungH Online
                            haus-automatisierung
                            Developer Most Active
                            wrote on last edited by
                            #17

                            @wendy2702 sagte in Speicherort eigene Dateien/Files ?:

                            Keine Ahnung warum nicht und auch nicht wann es erzeugt wird.

                            Unter Objekten gibt es den Ordner ja:

                            58d22ea0-67cf-45a6-a962-7e0e5ee85c3f-grafik.png

                            Objekte vom Typ folder "enthalten" nur andere Objekte (bzw. bilden eine Objekt-Hierarchie ab). Das hat nichts mit Dateien zu tun. Du hast nur das Meta-Objekt. Alles weitere passiert im Dateien-Tab. Bitte nicht Objekte mit Dateien verwechseln.

                            Ansonsten sind in der Dokumentation Beispiele. Du kannst mit node:fs natürlich aus anderen Quellen im Dateisystem Daten lesen und diese dann im ioBroker speichern. Aber eben mit writeFile unter Angabe des Meta-Objektes (wird null übergeben, gibt es einen Fallback auf 0_userdata.0).

                            https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#writefile

                            Ich habe das im ioBroker Master Kurs ausführlich rauf und runter erklärt wo wann welche Dateien liegen und warum man nicht direkt in /opt/iobroker/iobroker-data/files/ schreiben sollte. Macht man das, wird die Datei trotzdem nicht im Dateien-Tab auftauchen (weil die Metadaten fehlen, welche zu der Datei normalerweise geschrieben werden).

                            Und mach mal den Expertenmodus aus. Den braucht man in 99% der Fälle nicht.

                            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                            📚 Meine inoffizielle ioBroker Dokumentation

                            1 Reply Last reply
                            0
                            • wendy2702W wendy2702

                              Hi,

                              Bis zu meinem heutigen Javascript Adapter update konnte ich eigene Dateien ja z.B. hier Speichern:

                              /opt/iobroker/iobroker-data/files/_temp/eingangstuer/
                              

                              Jetzt ist der Zugriff ja verboten wenn ich z.B. aus einem Script dahin schreiben will.

                              Was ist denn der empfohlene Ordner / Pfad ?

                              EDIT: Und ist es richtig das ich hier auch keine Ordner mehr per Datei Manager erstellen kann?
                              0e482c1e-35f4-432d-b99b-eae9432e5bc0-grafik.png

                              Thx.

                              BananaJoeB Offline
                              BananaJoeB Offline
                              BananaJoe
                              Most Active
                              wrote on last edited by
                              #18

                              @wendy2702 bevor es zu kompliziert wird: Wenn ich das richtig sehe, speicherst du ein Bild der Kamera um es per Telegram zu senden?

                              Dann nimm doch als Pfad einfach
                              /tmp/NamedesBildes

                              Der /tmp ordner ist dafür da, ich mache das auch mit den Bilder per Telegram und speichere dort.
                              Nach einem reboot ist der Ordner halt leer, das Bild muss aber ja auch keinen reboot überleben.

                              Anders wäre es wenn du das Bild auch noch in der VIS verwenden wolltest.

                              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                              wendy2702W 1 Reply Last reply
                              1
                              • BananaJoeB BananaJoe

                                @wendy2702 bevor es zu kompliziert wird: Wenn ich das richtig sehe, speicherst du ein Bild der Kamera um es per Telegram zu senden?

                                Dann nimm doch als Pfad einfach
                                /tmp/NamedesBildes

                                Der /tmp ordner ist dafür da, ich mache das auch mit den Bilder per Telegram und speichere dort.
                                Nach einem reboot ist der Ordner halt leer, das Bild muss aber ja auch keinen reboot überleben.

                                Anders wäre es wenn du das Bild auch noch in der VIS verwenden wolltest.

                                wendy2702W Online
                                wendy2702W Online
                                wendy2702
                                wrote on last edited by
                                #19

                                @bananajoe Hi,

                                Danke für die einfache Lösung.

                                Mittlerweile hat mein Sohn sich der Sache angenommen und das Script direkt von "request" befreit.

                                @haus-automatisierung sagte in Speicherort eigene Dateien/Files ?:

                                Ich habe das im ioBroker Master Kurs ausführlich rauf und runter erklärt wo wann welche Dateien liegen und warum man nicht direkt in /opt/iobroker/iobroker-data/files/ schreiben sollte. Macht man das, wird die Datei trotzdem nicht im Dateien-Tab auftauchen (weil die Metadaten fehlen, welche zu der Datei normalerweise geschrieben werden).

                                Ja, das mag sein aber wenn ein Script so seit 2017 lief und es jetzt erst die restriktionen gibt ist das für nicht Javascript affine wie mich ein Problem.

                                Jetzt werden die Bilder in userdata ordner bzw. weiteren unterordnern gespeichert.

                                Allerdings erschließt sich mir hier noch nicht die logik warum die nur solange sichtbar sind wie da eine Datei drin liegt.

                                Aber das ist ein anderes Thema.

                                Bitte keine Fragen per PN, die gehören ins Forum!

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

                                M haus-automatisierungH 2 Replies Last reply
                                0
                                • wendy2702W wendy2702

                                  @bananajoe Hi,

                                  Danke für die einfache Lösung.

                                  Mittlerweile hat mein Sohn sich der Sache angenommen und das Script direkt von "request" befreit.

                                  @haus-automatisierung sagte in Speicherort eigene Dateien/Files ?:

                                  Ich habe das im ioBroker Master Kurs ausführlich rauf und runter erklärt wo wann welche Dateien liegen und warum man nicht direkt in /opt/iobroker/iobroker-data/files/ schreiben sollte. Macht man das, wird die Datei trotzdem nicht im Dateien-Tab auftauchen (weil die Metadaten fehlen, welche zu der Datei normalerweise geschrieben werden).

                                  Ja, das mag sein aber wenn ein Script so seit 2017 lief und es jetzt erst die restriktionen gibt ist das für nicht Javascript affine wie mich ein Problem.

                                  Jetzt werden die Bilder in userdata ordner bzw. weiteren unterordnern gespeichert.

                                  Allerdings erschließt sich mir hier noch nicht die logik warum die nur solange sichtbar sind wie da eine Datei drin liegt.

                                  Aber das ist ein anderes Thema.

                                  M Online
                                  M Online
                                  MCU
                                  wrote on last edited by
                                  #20

                                  @wendy2702 Dann stell bitte das fertige Script rein, damit andere die auf den Post stoßen den richtigen Ansatz haben. Danke.

                                  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 Reply Last reply
                                  1
                                  • wendy2702W Online
                                    wendy2702W Online
                                    wendy2702
                                    wrote on last edited by wendy2702
                                    #21

                                    Hier mal das Script, ist noch nicht komplett "aufgeräumt" aber da es morgen Früh auf Tour geht ist dafür jetzt keine Zeit mehr.

                                    
                                    
                                    // -------------------------------------------------------------------------
                                    // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei
                                    // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet
                                    // dieses via Telegram.0-Adapter.
                                    // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt
                                    // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten
                                    
                                    // -------------------------------------------------------------------------
                                     
                                    // -------------------------------------------------------------------------
                                    // Konfiguration
                                    // -------------------------------------------------------------------------
                                    const adapterId = "0_userdata.0";
                                    const adapterDir = `/opt/iobroker/iobroker-data/files/${adapterId}`;
                                    
                                    // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren
                                    const imageDir = '/cameras/garage_klein_einfahrt'
                                    // Prefix für die Bildnamen
                                    const imageNamePrefix = "Garage_Klein_Einfahrt"; 
                                    
                                    
                                          // Objekt-ID des Bewegungsmelders
                                    const oidLichtBewmelderTuer = "alias.0.Bewegungsmelder.Bewegungsmelder_Garage_Klein";
                                          // URL zur Kamera umn ein Image (jpg) zu erhalten
                                    const cam_url = "http://192.168.178.212/Streaming/channels/1/picture";
                                          // Anzahl der Bilder, die vorgehalten werden sollen
                                    const imageCountMax = 8;
                                    
                                    const cameraUsername = "mxxxxe";
                                    const cameraPassword = "ixxxx8";
                                    
                                     
                                    // -------------------------------------------------------------------------
                                    // Scriptteil
                                    // -------------------------------------------------------------------------
                                    const axios = require("axios");
                                    const fs = require("fs");
                                     
                                    // Bild an telegram schicken 
                                    function sendImage (path) { 
                                        try {
                                            var stats = fs.statSync(path);
                                            var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1);
                                    
                                            sendTo('telegram.0', {
                                                text:                   path,
                                                caption:                msg, 
                                                disable_notification:   true,
                                                user: 'Mirko',
                                            });
                                        }
                                        catch(err) { if (err.code != "ENOENT") log(err); }     
                                    }
                                     
                                    
                                     
                                    // Bild speichern und senden
                                    function saveImage() {
                                        // Bild imageCountMax-1 löschen
                                        delFile(adapterId, `${imageDir}/${imageNamePrefix}${imageCountMax - 1}.jpg`, function(err) {
                                            if (err) {
                                                log("Fehler beim löschen des alten Bildes: " + err);
                                            }
                                        });
                                    
                                        // Bilder 0..imageCountMax-2 umbenennen
                                        for (var i = imageCountMax - 2; i >= 0; i-- ) {
                                            renameFile(adapterId, `${imageDir}/${imageNamePrefix}${i}.jpg`, `${imageDir}/${imageNamePrefix}${i + 1}.jpg`, function (err) {
                                                if (err) {
                                                    log("Fehler beim umbennen: " + err, "error")
                                                }
                                            })
                                        }
                                    
                                        const latestFilePath = `${imageDir}/${imageNamePrefix}0.jpg`
                                        axios(
                                            cam_url,
                                            {
                                                responseType: "arraybuffer",
                                                auth: {
                                                    username: cameraUsername,
                                                    password: cameraPassword
                                                }
                                            }
                                        )
                                            .then(response => {
                                                writeFile(adapterId,  latestFilePath, response.data, function(err) {
                                                    if (err) {
                                                        log('Fehler beim Bild speichern: ' + err, 'warn');
                                                    } else {
                                                        sendImage(`${adapterDir}${latestFilePath}`);
                                                    }
                                                }); 
                                            });
                                    }
                                     
                                    // sofort ein Bild senden und nach 3 Sek erneut
                                    //function onEvent() {
                                    //    saveImage();
                                    //    setTimeout(function() { saveImage(); }, 10 * 300); 
                                    //}
                                     
                                    // sofort ein Bild senden und nach 3 Sek erneut
                                    function onEvent() {
                                        saveImage();
                                        setTimeout(function() { saveImage(); }, 3 * 1000);
                                        setTimeout(function() { saveImage(); }, 6 * 1000);
                                        setTimeout(function() { saveImage(); }, 9 * 1000);
                                    }
                                     
                                    on({ id: 'alias.0.Bewegungsmelder.Bewegungsmelder_Garage_Klein', change: "ne" }, function (obj) {
                                        var value = obj.state.val;
                                        var oldValue = obj.oldState.val;
                                        if (getState("alias.0.Bewegungsmelder.Bewegungsmelder_Garage_Klein").val === true)
                                            onEvent();
                                    });
                                     
                                    // manuelle Ausführung (Test)
                                    //onEvent();
                                    
                                    
                                    

                                    Bitte keine Fragen per PN, die gehören ins Forum!

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

                                    lobomauL 1 Reply Last reply
                                    1
                                    • wendy2702W wendy2702

                                      @bananajoe Hi,

                                      Danke für die einfache Lösung.

                                      Mittlerweile hat mein Sohn sich der Sache angenommen und das Script direkt von "request" befreit.

                                      @haus-automatisierung sagte in Speicherort eigene Dateien/Files ?:

                                      Ich habe das im ioBroker Master Kurs ausführlich rauf und runter erklärt wo wann welche Dateien liegen und warum man nicht direkt in /opt/iobroker/iobroker-data/files/ schreiben sollte. Macht man das, wird die Datei trotzdem nicht im Dateien-Tab auftauchen (weil die Metadaten fehlen, welche zu der Datei normalerweise geschrieben werden).

                                      Ja, das mag sein aber wenn ein Script so seit 2017 lief und es jetzt erst die restriktionen gibt ist das für nicht Javascript affine wie mich ein Problem.

                                      Jetzt werden die Bilder in userdata ordner bzw. weiteren unterordnern gespeichert.

                                      Allerdings erschließt sich mir hier noch nicht die logik warum die nur solange sichtbar sind wie da eine Datei drin liegt.

                                      Aber das ist ein anderes Thema.

                                      haus-automatisierungH Online
                                      haus-automatisierungH Online
                                      haus-automatisierung
                                      Developer Most Active
                                      wrote on last edited by
                                      #22

                                      @wendy2702 sagte in [Gelöst] Speicherort eigene Dateien/Files ?:

                                      Ja, das mag sein aber wenn ein Script so seit 2017 lief und es jetzt erst die restriktionen gibt ist das für nicht Javascript affine wie mich ein Problem.

                                      Verstehe ich, aber die Restriktionen auf das .../files/ Verzeichnis gab es schon immer - nur waren diese nicht vollständig umgesetzt. Und es war auch noch nie richtig da manuell mit node:fs zu schreiben.

                                      @wendy2702 sagte in [Gelöst] Speicherort eigene Dateien/Files ?:

                                      Allerdings erschließt sich mir hier noch nicht die logik warum die nur solange sichtbar sind wie da eine Datei drin liegt.

                                      Du meinst im Dateien-Tab?

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      wendy2702W 1 Reply Last reply
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @wendy2702 sagte in [Gelöst] Speicherort eigene Dateien/Files ?:

                                        Ja, das mag sein aber wenn ein Script so seit 2017 lief und es jetzt erst die restriktionen gibt ist das für nicht Javascript affine wie mich ein Problem.

                                        Verstehe ich, aber die Restriktionen auf das .../files/ Verzeichnis gab es schon immer - nur waren diese nicht vollständig umgesetzt. Und es war auch noch nie richtig da manuell mit node:fs zu schreiben.

                                        @wendy2702 sagte in [Gelöst] Speicherort eigene Dateien/Files ?:

                                        Allerdings erschließt sich mir hier noch nicht die logik warum die nur solange sichtbar sind wie da eine Datei drin liegt.

                                        Du meinst im Dateien-Tab?

                                        wendy2702W Online
                                        wendy2702W Online
                                        wendy2702
                                        wrote on last edited by
                                        #23

                                        @haus-automatisierung ja, im Dateien tab.

                                        Warum ist das so bzw. Wofür soll das gut sein?

                                        Einmal versehentlich tab geschlossen oder refresh und der/die Ordner sind wieder weg.

                                        Bitte keine Fragen per PN, die gehören ins Forum!

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

                                        haus-automatisierungH 1 Reply Last reply
                                        0
                                        • wendy2702W wendy2702

                                          @haus-automatisierung ja, im Dateien tab.

                                          Warum ist das so bzw. Wofür soll das gut sein?

                                          Einmal versehentlich tab geschlossen oder refresh und der/die Ordner sind wieder weg.

                                          haus-automatisierungH Online
                                          haus-automatisierungH Online
                                          haus-automatisierung
                                          Developer Most Active
                                          wrote on last edited by
                                          #24

                                          @wendy2702 sagte in [Gelöst] Speicherort eigene Dateien/Files ?:

                                          @haus-automatisierung ja, im Dateien tab.

                                          Du kannst hier umschalten, ob leere Ordner ausgeblendet werden sollen:

                                          Screenshot 2024-05-09 at 09.09.51.png

                                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                          📚 Meine inoffizielle ioBroker Dokumentation

                                          wendy2702W 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          829

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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