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. Skripten / Logik
  4. JavaScript
  5. Über Mqtt empfangenes Bild in Datei speichern

NEWS

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

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

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

Über Mqtt empfangenes Bild in Datei speichern

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 489 Aufrufe 2 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.
  • V Offline
    V Offline
    Vetinari77
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 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

            722

            Online

            32.4k

            Benutzer

            81.6k

            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