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 @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

                        840
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

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