Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. [gelöst] Datenpunkt mit base64 in Bilddatei schreiben

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.2k

[gelöst] Datenpunkt mit base64 in Bilddatei schreiben

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
15 Beiträge 3 Kommentatoren 672 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Offline
    A Offline
    accessburn
    schrieb am zuletzt editiert von accessburn
    #1

    Ich google mir de Wolf, weiß denn jemand wie das geht?

    Ich möchte einfach nur den Datenpunkt, der ein Bild in base64 enthält in eine Bilddatei schreiben.

    Grüße,
    Toby

    OliverIOO 1 Antwort Letzte Antwort
    0
    • A accessburn

      Ich google mir de Wolf, weiß denn jemand wie das geht?

      Ich möchte einfach nur den Datenpunkt, der ein Bild in base64 enthält in eine Bilddatei schreiben.

      Grüße,
      Toby

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von OliverIO
      #2

      @accessburn

      es fehlen leider ein paar informationen.
      im browser? auf dem server?
      welches bildformat?

      hier mal ein beispie für png und node

      var base64Data = base64bild.replace(/^data:image\/png;base64,/, "");
      
      require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
        console.log(err);
      });
      

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      A 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @accessburn

        es fehlen leider ein paar informationen.
        im browser? auf dem server?
        welches bildformat?

        hier mal ein beispie für png und node

        var base64Data = base64bild.replace(/^data:image\/png;base64,/, "");
        
        require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
          console.log(err);
        });
        
        A Offline
        A Offline
        accessburn
        schrieb am zuletzt editiert von
        #3

        @oliverio Okay, sorry...

        Ich habe einen Datenpunkt mit einer Grafik als base64 und ich möchte ihn auf dem Server direkt speichern, also quasi unter userfiles...

        Und würde das als Blockly gehen?

        OliverIOO 1 Antwort Letzte Antwort
        0
        • A accessburn

          @oliverio Okay, sorry...

          Ich habe einen Datenpunkt mit einer Grafik als base64 und ich möchte ihn auf dem Server direkt speichern, also quasi unter userfiles...

          Und würde das als Blockly gehen?

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #4

          @accessburn

          von blockly hab ich keine ahnung.
          aber ich denke, das die formatangabe beim speichern der datei bei blockly direkt nicht enthalten ist.
          das muss man dann in einem funktionsblock als javascript eintragen

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            accessburn
            schrieb am zuletzt editiert von
            #5

            Okay, ich komme null weiter...

            data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...
            

            Das steht im Datenpunkt und ich möchte ein Script haben dass mir beim ändern des Datenpunkts, das Bild daraus auf das Laufwerk legt. Kann mir da jemand helfen?

            1 Antwort Letzte Antwort
            0
            • OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #6

              @accessburn

              https://stackoverflow.com/questions/6926016/how-can-i-save-a-base64-encoded-image-to-disk

              let imgstr = getState("datepunktidmitbild");
              var base64Data = imgstr.rawBody.replace(/^data:image\/png;base64,/, "");
              require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
                console.log(err);
              });
              

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              A 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @accessburn

                https://stackoverflow.com/questions/6926016/how-can-i-save-a-base64-encoded-image-to-disk

                let imgstr = getState("datepunktidmitbild");
                var base64Data = imgstr.rawBody.replace(/^data:image\/png;base64,/, "");
                require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
                  console.log(err);
                });
                
                A Offline
                A Offline
                accessburn
                schrieb am zuletzt editiert von
                #7

                Danke @oliverio , habe ich einfach mal kopiert und die werte angepasst.
                76938d8c-b342-4f18-97dc-7499596aea69-image.png

                haus-automatisierungH OliverIOO 2 Antworten Letzte Antwort
                0
                • A accessburn

                  Danke @oliverio , habe ich einfach mal kopiert und die werte angepasst.
                  76938d8c-b342-4f18-97dc-7499596aea69-image.png

                  haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von haus-automatisierung
                  #8

                  @accessburn

                  const value = getState('mihome-vacuum.0.cleanmap.map64').val;
                  const base64str = value.replace(/^data:image\/png;base64,/, '');
                  const base64data = Buffer.from(base64str, 'base64');
                  
                  writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => {
                      if (!err) {
                          console.info('File written');
                      } else {
                          console.error(err);
                      }
                  });
                  

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

                  A 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    @accessburn

                    const value = getState('mihome-vacuum.0.cleanmap.map64').val;
                    const base64str = value.replace(/^data:image\/png;base64,/, '');
                    const base64data = Buffer.from(base64str, 'base64');
                    
                    writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => {
                        if (!err) {
                            console.info('File written');
                        } else {
                            console.error(err);
                        }
                    });
                    
                    A Offline
                    A Offline
                    accessburn
                    schrieb am zuletzt editiert von
                    #9

                    @haus-automatisierung

                    on({ id: [].concat(['mihome-vacuum.0.cleanmap.map64']), change: 'ne' }, async (obj) => {
                    
                        const value = getState('mihome-vacuum.0.cleanmap.map64').val;
                        const base64str = value.replace(/^data:image\/png;base64,/, '');
                        const base64data = Buffer.from(base64str, 'base64');
                        
                        writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => {
                            if (!err) {
                                console.info('File written');
                            } else {
                                console.error(err);
                            }
                        });
                    
                      // console.error(getState('mihome-vacuum.0.cleanmap.map64').val);
                    });
                    

                    Vielen Dank, das klappte schon mal auf anhieb.
                    Macht das so Sinn mit dem "change"?

                    haus-automatisierungH 1 Antwort Letzte Antwort
                    0
                    • A accessburn

                      @haus-automatisierung

                      on({ id: [].concat(['mihome-vacuum.0.cleanmap.map64']), change: 'ne' }, async (obj) => {
                      
                          const value = getState('mihome-vacuum.0.cleanmap.map64').val;
                          const base64str = value.replace(/^data:image\/png;base64,/, '');
                          const base64data = Buffer.from(base64str, 'base64');
                          
                          writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => {
                              if (!err) {
                                  console.info('File written');
                              } else {
                                  console.error(err);
                              }
                          });
                      
                        // console.error(getState('mihome-vacuum.0.cleanmap.map64').val);
                      });
                      

                      Vielen Dank, das klappte schon mal auf anhieb.
                      Macht das so Sinn mit dem "change"?

                      haus-automatisierungH Online
                      haus-automatisierungH Online
                      haus-automatisierung
                      Developer Most Active
                      schrieb am zuletzt editiert von haus-automatisierung
                      #10

                      @accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                      Macht das so Sinn mit dem "change"?

                      Ja, wenn es nur eine ID ist, würde ich mir aber das Array sparen:

                      on({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {
                      

                      Und Du kannst direkt mit dem Wert arbeiten (ohne den nochmal zu holen):

                      on({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {
                          const value = obj.state.val;
                          const base64str = value.replace(/^data:image\/png;base64,/, '');
                          const base64data = Buffer.from(base64str, 'base64');
                          
                          writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => {
                              if (!err) {
                                  console.info('File written');
                              } else {
                                  console.error(err);
                              }
                          });
                      });
                      

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

                      A 1 Antwort Letzte Antwort
                      0
                      • haus-automatisierungH haus-automatisierung

                        @accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                        Macht das so Sinn mit dem "change"?

                        Ja, wenn es nur eine ID ist, würde ich mir aber das Array sparen:

                        on({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {
                        

                        Und Du kannst direkt mit dem Wert arbeiten (ohne den nochmal zu holen):

                        on({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {
                            const value = obj.state.val;
                            const base64str = value.replace(/^data:image\/png;base64,/, '');
                            const base64data = Buffer.from(base64str, 'base64');
                            
                            writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => {
                                if (!err) {
                                    console.info('File written');
                                } else {
                                    console.error(err);
                                }
                            });
                        });
                        
                        A Offline
                        A Offline
                        accessburn
                        schrieb am zuletzt editiert von
                        #11

                        @haus-automatisierung sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                        n({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {

                        Sehr cool. Danke! :hearts:
                        Diese Sprache beherrsche ich einfach nicht. Bin in PHP groß geworden ;-)

                        haus-automatisierungH 1 Antwort Letzte Antwort
                        0
                        • A accessburn

                          @haus-automatisierung sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                          n({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {

                          Sehr cool. Danke! :hearts:
                          Diese Sprache beherrsche ich einfach nicht. Bin in PHP groß geworden ;-)

                          haus-automatisierungH Online
                          haus-automatisierungH Online
                          haus-automatisierung
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                          Bin in PHP groß geworden

                          Ja, ich auch.

                          Gerade 2 Tage lang alle PHP-Klassen des Online-Shops auf PHP 8.3 und strict types umgestellt...

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

                          A 1 Antwort Letzte Antwort
                          0
                          • haus-automatisierungH haus-automatisierung

                            @accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                            Bin in PHP groß geworden

                            Ja, ich auch.

                            Gerade 2 Tage lang alle PHP-Klassen des Online-Shops auf PHP 8.3 und strict types umgestellt...

                            A Offline
                            A Offline
                            accessburn
                            schrieb am zuletzt editiert von
                            #13

                            @haus-automatisierung
                            Na das passt ja. :-)

                            Aber Frage, würde sich das mit Blockly umsetzen lassen?

                            haus-automatisierungH 1 Antwort Letzte Antwort
                            0
                            • A accessburn

                              @haus-automatisierung
                              Na das passt ja. :-)

                              Aber Frage, würde sich das mit Blockly umsetzen lassen?

                              haus-automatisierungH Online
                              haus-automatisierungH Online
                              haus-automatisierung
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:

                              würde sich das mit Blockly umsetzen lassen?

                              Zu 90%, ja.

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

                              1 Antwort Letzte Antwort
                              0
                              • A accessburn

                                Danke @oliverio , habe ich einfach mal kopiert und die werte angepasst.
                                76938d8c-b342-4f18-97dc-7499596aea69-image.png

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #15

                                @accessburn

                                ahja das rawbody hatte ich nicht entfernt

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                882

                                Online

                                32.4k

                                Benutzer

                                81.5k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe