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. Über Mqtt empfangenes Bild in Datei speichern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Über Mqtt empfangenes Bild in Datei speichern

Scheduled Pinned Locked Moved JavaScript
5 Posts 2 Posters 542 Views 2 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.
  • V Offline
    V Offline
    Vetinari77
    wrote on last edited by
    #1

    Hallo

    Ich empfange über MQTT eine Bilddatei. Diese möchte ich nun wieder als solche speichern. Hierzu muss ich die Rohdaten als Bytearray vom Broker direckt wieder in die Datei schreiben. Ich habe bisher folgendes schon lauffähig:

    const mqtt = require('mqtt')
    const url = 'mqtt://xxx.yyy.zzz.www:aaaa'
    const options = {
      // Clean session
      clean: true,
      connectTimeout: 4000,
      // Authentication
      // clientId: 'emqx_test',
      username: 'name',
      password: 'passwort',
    }
    const client  = mqtt.connect(url, options)
    
    var dest_path = 'zielpfad'
    var kamera = '123456'
    
    
    client.on('connect', function () {
      console.log('Connected')
      // Subscribe to a topic
      client.subscribe('top1' + kamera + '/picture_file', function (err) {
        if (!err) {
          // Publish a message to a topic
          // client.publish('test', 'Hello mqtt') // Mögliche Testnachricht an MQQT senden um verbindung zu bestätigen und im IO Broker zu verarbeiten
        }
      })
    })
    
    // Receive messages
    client.on('message', function (topic, message) {
      // message is Buffer
      console.log(message.toString())
      client.end()
    })
    code_text
    

    Wichtig ist dieser Bereich:

    client.on('message', function (topic, message) {
      // message is Buffer
      console.log(message.toString())
      client.end()
    code_text
    

    In VB würde ich das mit einem Streamwriter machen aber ich habe leider keine Ahnung wie ich das in Javascript machen kann, da ich dort absoluter neuling bin. Kann mir jemand weiterhelfen?

    haus-automatisierungH 1 Reply Last reply
    0
    • V Vetinari77

      Hallo

      Ich empfange über MQTT eine Bilddatei. Diese möchte ich nun wieder als solche speichern. Hierzu muss ich die Rohdaten als Bytearray vom Broker direckt wieder in die Datei schreiben. Ich habe bisher folgendes schon lauffähig:

      const mqtt = require('mqtt')
      const url = 'mqtt://xxx.yyy.zzz.www:aaaa'
      const options = {
        // Clean session
        clean: true,
        connectTimeout: 4000,
        // Authentication
        // clientId: 'emqx_test',
        username: 'name',
        password: 'passwort',
      }
      const client  = mqtt.connect(url, options)
      
      var dest_path = 'zielpfad'
      var kamera = '123456'
      
      
      client.on('connect', function () {
        console.log('Connected')
        // Subscribe to a topic
        client.subscribe('top1' + kamera + '/picture_file', function (err) {
          if (!err) {
            // Publish a message to a topic
            // client.publish('test', 'Hello mqtt') // Mögliche Testnachricht an MQQT senden um verbindung zu bestätigen und im IO Broker zu verarbeiten
          }
        })
      })
      
      // Receive messages
      client.on('message', function (topic, message) {
        // message is Buffer
        console.log(message.toString())
        client.end()
      })
      code_text
      

      Wichtig ist dieser Bereich:

      client.on('message', function (topic, message) {
        // message is Buffer
        console.log(message.toString())
        client.end()
      code_text
      

      In VB würde ich das mit einem Streamwriter machen aber ich habe leider keine Ahnung wie ich das in Javascript machen kann, da ich dort absoluter neuling bin. Kann mir jemand weiterhelfen?

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

      @vetinari77 Nicht getestet, aber in die Richtung:

      const fs = require('node:fs');
      
      fs.writeFileSync('/home/iobroker/meinbild.jpg', message);
      

      https://nodejs.org/docs/latest-v18.x/api/fs.html

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

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

        @vetinari77 Nicht getestet, aber in die Richtung:

        const fs = require('node:fs');
        
        fs.writeFileSync('/home/iobroker/meinbild.jpg', message);
        

        https://nodejs.org/docs/latest-v18.x/api/fs.html

        V Offline
        V Offline
        Vetinari77
        wrote on last edited by
        #3

        @haus-automatisierung said in Über Mqtt empfangenes Bild in Datei speichern:

        const fs = require('node:fs');

        Danke, das ging schnell (und unerwartet einfach). Villeicht habe ich deswegen nichts finden können bei meiner Suche. 1000 Dank. Leider kann ich die Datei nicht öffnen (scheint irgendwie fehlerhaft zu sein). Ich versuche mal herauszubekommen warum das so ist.

        haus-automatisierungH 1 Reply Last reply
        0
        • V Vetinari77

          @haus-automatisierung said in Über Mqtt empfangenes Bild in Datei speichern:

          const fs = require('node:fs');

          Danke, das ging schnell (und unerwartet einfach). Villeicht habe ich deswegen nichts finden können bei meiner Suche. 1000 Dank. Leider kann ich die Datei nicht öffnen (scheint irgendwie fehlerhaft zu sein). Ich versuche mal herauszubekommen warum das so ist.

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

          @vetinari77 sagte in Über Mqtt empfangenes Bild in Datei speichern:

          Ich versuche mal herauszubekommen warum das so ist.

          Unter Linux mit dem file Befehl mal genauer schauen. Meist stehen irgendwelche Zeichen davor oder dahinter, welche dort nicht hingehören. Also

          file /home/iobroker/meinbild.jpg

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

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

            @vetinari77 sagte in Über Mqtt empfangenes Bild in Datei speichern:

            Ich versuche mal herauszubekommen warum das so ist.

            Unter Linux mit dem file Befehl mal genauer schauen. Meist stehen irgendwelche Zeichen davor oder dahinter, welche dort nicht hingehören. Also

            file /home/iobroker/meinbild.jpg

            V Offline
            V Offline
            Vetinari77
            wrote on last edited by
            #5

            @haus-automatisierung

            Danke nochmal. Scheint tatsächlich kein jpg oder anderes Bildformat zu sein. Als ausgabe kommt lediglich "data". Ich glaube ich versuche mal auf einem anderen weg die Bilder zu holen. Eventuell kann ich mir vom Server den Pfad schicken lassen und das Bld dann per SFTP holen. Trotzdem noch einmal vielen lieben Dank für die Unterstützung.

            1 Reply 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

            626

            Online

            32.6k

            Users

            82.3k

            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