Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Datenpunkt als Datei speichern

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Datenpunkt als Datei speichern

    This topic has been deleted. Only users with topic management privileges can see it.
    • Cinimod
      Cinimod Most Active @ChrisBGL last edited by Cinimod

      @chrisbgl

      Das senden einer Datei kann man über den Standart "senden block" lösen, den einfach auf pushover stellen und als parameter "file" angeben.

      Bildschirmfoto 2022-12-07 um 21.55.29.png

      Das Speichern funktioniert etwa so:

      Bildschirmfoto 2022-12-07 um 22.01.00.png

      wget --output-document /opt/iobroker/meinverzeichnis/meinbild.jpg 'hier_der_Link_zum_Schnappschuss'
      
      Cinimod 1 Reply Last reply Reply Quote 0
      • Cinimod
        Cinimod Most Active @Cinimod last edited by

        wenn dein Schnappschuss Link in einem Datenpunkt steht kannst du es so machen:

        Bildschirmfoto 2022-12-07 um 22.16.24.png

        wget --output-document /opt/iobroker/meinverzeichnis/meinbild.jpg '
        
        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Cinimod last edited by

          @cinimod sagte in Datenpunkt als Datei speichern:

          wenn dein Schnappschuss Link in einem Datenpunkt steht

          nee, da liegt der Schnappschuss selber.
          Er hat keine Datei.
          Die würde er gerne erzeugen un sie zu verschicken.

          Cinimod 1 Reply Last reply Reply Quote 0
          • Cinimod
            Cinimod Most Active @Homoran last edited by Cinimod

            @homoran ja dann doch eher die erste Variante 💁‍♂️

            @ChrisBGL Stellt sich mir noch die Frage: Ist der SchnappschussName denn immer gleich ?

            Vielleicht zeigst mal was dann über Mqtt ankommt.

            C 1 Reply Last reply Reply Quote 0
            • C
              ChrisBGL @Cinimod last edited by ChrisBGL

              @cinimod Der Schnappschuss ist in dem Datenpunkt (nicht als Link). Deshalb möchte ich den Inhalt des Datenpunktes als Datei speichern.

              da5dc341-a413-4cab-bc29-59c1278870ed-image.png

              5c5a445a-f24c-451d-a681-cc01a39daecb-image.png

              C 1 Reply Last reply Reply Quote 0
              • C
                ChrisBGL @ChrisBGL last edited by

                Hat niemand eine Idee bzw. gibt es hier keine Möglichkeit? 😕

                crunchip 1 Reply Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active @ChrisBGL last edited by crunchip

                  @chrisbgl vllt https://forum.iobroker.net/post/852618 oder https://forum.iobroker.net/post/652107

                  C 1 Reply Last reply Reply Quote 0
                  • C
                    ChrisBGL @crunchip last edited by

                    @crunchip Danke, das hatte ich schon gelesen. Die anderen Nutzer haben es so gemacht, dass sie das Bild bei Auslösen des Events frisch von der Kamera oder Frigate ziehen. Das könnte ich auch machen, aber ist halt irgendwie unsinnig, wenn ich das Bild schon als Datenpunkt in iobroker drin habe. Ich kann es halt nur nicht speichern um es dann zu versenden.

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

                      @chrisbgl

                      ich mache sowas mit einem png file - ob das miteinem jfif auch geht, weiß ich nicht

                      mein dp sieht so aus:

                      Image 128.png

                      das script sichert letztlich diesen code in ein bild im vis-folder zur anzeige in der vis - du müßtest es halt versenden

                      teil script:

                      const fs = require('fs');
                      let myArrFiles=[] 
                      let counter=0 ;
                      let myPather='/opt/iobroker/iobroker-data/files/vis.0/armin/img'
                       
                       log("schreibe file mit " + nameOfPic)
                       //log(Buffer.from(x))
                      
                      
                      var data = x.replace(/^data:image\/\w+;base64,/, "");
                      //var buf = new Buffer(data, 'base64');
                      
                      
                      
                      //writeFile('vis.0',"/PicFromBrowserUpload/"+nameOfPic,Buffer.from(x), function (){
                      writeFile('vis.0','/armin/img/'+nameOfPic,Buffer.from(data,'base64'), function (){    
                      
                      
                      //fs.readdir('/opt/iobroker/iobroker-data/files/vis.0/PicFromBrowserUpload', (err, files) => {
                      fs.readdir(myPather, (err, files) => {    
                        if (err)
                          console.log(err);
                        else {
                         // console.log("\nCurrent directory filenames:");
                          files.forEach(file => {
                            //console.log(fs.read());
                          counter++;
                          let sizer=fs.statSync(myPather+'/'+file).size;
                          myArrFiles.push({"Anzahl":counter,"Filename":file,"Größe":sizer})
                          })
                        }
                        
                        //log(JSON.stringify(files))
                        setState('0_userdata.0.UPLOADinVIS.VerzeichnisUploads',JSON.stringify(myArrFiles))
                      })
                      
                       } )
                      
                      C 1 Reply Last reply Reply Quote 0
                      • C
                        ChrisBGL @liv-in-sky last edited by

                        @liv-in-sky Ich bekomme das einfach nicht ans laufen. Wo genau im Skript definiere ich denn den Datenpunkt, dessen Inhalt ich speichern möchte?

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

                          @chrisbgl das ist hier im script auch nicht drin - das ist kein laufendes script, sondern sollte nur ein paar befehle zeigen

                          in dieser zeile wird die datei, die im datenpunkt ist verändert - ohne ging es nicht - x wäre dann der inhalt des datenpunktes

                          var data = x.replace(/^data:image\/\w+;base64,/, "");
                          

                          diese zeile schreibt das file ins fiesystem, damit es von iobroker aus als file existiert

                          writeFile('vis.0','/armin/img/'+nameOfPic,Buffer.from(data,'base64'), function (){...
                          
                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          480
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          5
                          12
                          788
                          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