Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst: Bilder senden von einen IOB zum anderen IOB

    NEWS

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    Gelöst: Bilder senden von einen IOB zum anderen IOB

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      michihorn last edited by michihorn

      Hallo ich möchte Bilder die auf einem IOB im Ferienhaus gespeichert sind, bei einem Trigger auf den IOB in meiner Heimat senden. Anbei das Script mit dem mein Tablet im Ferienhaus Bilder an Telegram sendet.
      Nun möchte ich evtl. mit HTTP-Post dieses Bild an den entfernten rechner senden.
      Wie geht das?

      const idChaletdoor = "zigbee.0.00158d0007e033e1.opened"
      const idAW = "0_userdata.0.Giethoorn.AW.AW"
      const idoccu = "zigbee.0.00158d000253e897.occupancy"
      const camurl = "http://192.168.188.26:2323/?cmd=getCamshot&password=WD40ml"
      const zielurl ="http://192.168.178.191/opt/iobroker/iobroker-data/files/vis.0/NL"
      
      //schedule("*/1 * * * *", function () {
      //          log("Auslöser")
      on({ id: idChaletdoor, change: "ne" }, function (dp) {
          if ((dp.state.val == true) && (getState(idAW).val == false) && (getState(idoccu).val == true)) {
              setState("0_userdata.0.Haus.Alarm.Ereignis", formatDate(new Date(dp.state.ts), "TT.MM.JJJJ hh:mm:ss"))
              setState("0_userdata.0.Haus.Alarm.Zutritt", true)
              httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                  if (!err) {
                      writeFile('vis.0', '/tablet/Besuch.jpg', response.data, (err) => {
                          if (err) {
                              console.error(err);
                          }
                      });
                  } else {
                      console.error(err);
                  }
              });
      
      
      //httpPost(zielurl, { responseType: 'arraybuffer' }, async (err, response) => {
      
      
      
              let text = '\ud83d\udcf7 *Kamera im Chalet hat ausgelöst*'
              sendTo('telegram.0', {
                  text: "http://192.168.188.26:2323/?cmd=getCamshot&password=WD40ml",
                  type: 'photo'
      
              });
      
              setTimeout(function () {
                  sendTo('telegram.0', "/opt/iobroker/iobroker-data/files/vis.0/tablet/Besuch.jpg");
              }, 12000);
              log("Und jetzt")
          }
      });
      

      Gruß Michael

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

        @michihorn z. B per mqtt, oder per Simple-Abi

        M 1 Reply Last reply Reply Quote 0
        • M
          michihorn @crunchip last edited by

          @crunchip Fotos per mqtt?
          Per simple API geht das sicher, aber wie?

          MartinP 1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @michihorn last edited by

            @michihorn "Sehen" sich die beiden iobroker-rechner denn überhaupt gegenseitig?

            Kannst Du vom Rechner bei Dir zu Hause den Rechner des iobroker im Ferienhaus anpingen?

            Wenn diese Verbindung über VPN/z. B. Fritzbox passiert oder über einen iobroker Premium account, wäre das ja in Ordnung, aber ansonsten hätte ich schon Vorbehalte, wenn die beiden Rechner offen im Internet stehen ...

            M 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO last edited by OliverIO

              @michihorn

              Dumusst beim senden das Bild am besten in ein textformat umwandeln. Base64 wird da üblicherweise genommen.
              Beim empfangen den Prozess dann wieder umkehren.

              const fs = require("fs");
              
              // Bild einlesen
              const img = fs.readFileSync("/opt/iobroker/iobroker-data/files/test.jpg");
              
              // Base64 erzeugen
              const b64 = img.toString("base64");
              
              // In Datenpunkt speichern
              setState("0_userdata.0.pic", b64);
              
              

              Hier kannst du den Daten wieder auslesen und in eine Datei speichern

              const fs = require("fs");
              
              // Base64 aus State holen
              let b64 = getState("0_userdata.0.pic").val;
              
              // Falls der Wert mit "data:image/..." beginnt, Prefix entfernen
              if (b64.startsWith("data:image")) {
                  b64 = b64.split(",")[1];
              }
              
              // Buffer erzeugen
              const buffer = Buffer.from(b64, "base64");
              
              // Datei speichern
              fs.writeFileSync("/opt/iobroker/iobroker-data/files/export.jpg", buffer);
              
              console.log("Bild gespeichert!");
              
              

              Wenn du das Bild dann noch in vis anzeigen willst, kannst du das per binding so machen,
              In dem du das folgende bei einem Basic Image Widget im Feld source einträgst (sofern die Quelle ein png war. Ansonsten den mime Type entsprechend anpassen)

              data:image/png;base64,{0_userdata.0.pic}
              
              M 1 Reply Last reply Reply Quote 1
              • M
                michihorn @MartinP last edited by

                @martinp Die beiden IOB sind über Fritz VPN miteinander verbunden

                MartinP 1 Reply Last reply Reply Quote 0
                • MartinP
                  MartinP @michihorn last edited by

                  @michihorn Danke, ggfs. könnte man auch am iobroker vorbei arbeiten

                  • Gleichnamiges Unterverzeichnis unter Userdata auf beiden Linux-Kisten einrichten.
                  • Cronjob hält die beiden Verzeichnisse mit rsync syncron...

                  Falls die obige Lösung von @OliverIO auch funktioniert, kann man auch die benutzen,

                  Hatte erst aus dem Bauch gedacht, dass die Übertragung per rsync kompakter ist, aber womöglich wird da gar nicht binär übertragen, wie ich vorausgesetzt habe ...

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    michihorn @OliverIO last edited by

                    @oliverio sagte in Bilder senden von einen IOB zum anderen IOB:

                    Dumusst beim senden das Bild am besten in ein textformat umwandeln. Base64 wird da üblicherweise genommen.
                    Beim empfangen den Prozess dann wieder umkehren.

                    Das Ergebnis sieht so aus:

                    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
                    
                    OliverIO 1 Reply Last reply Reply Quote 0
                    • M
                      michihorn @MartinP last edited by

                      @martinp sagte in Bilder senden von einen IOB zum anderen IOB:

                      Cronjob hält die beiden Verzeichnisse mit rsync syncron...

                      Wie soll das aussehen?

                      MartinP 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @michihorn last edited by OliverIO

                        @michihorn

                        Ist ok, dann in einen datenpunkt speichern.
                        Quelle war ein jpeg. Also für vis oben den mime Type anpassen. image/jpeg
                        Bild sieht etwas dunkel und verschwommen aus 😵

                        Nachtrag:
                        Ich gehe natürlich davon aus das die beiden iobrokers als master\ Slave zusammengeschaltet sind. Nur dann syncen sich die datenpunkte

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          michihorn @OliverIO last edited by michihorn

                          @oliverio sagte in Bilder senden von einen IOB zum anderen IOB:

                          Ich gehe natürlich davon aus das die beiden iobrokers als master\ Slave zusammengeschaltet sind. Nur dann syncen sich die datenpunkte

                          Nein die Rechner sind autakt, jeder für sich.

                          Hatte Deine erste Vorlage genutzt, und die Datenpunkte dann mit mqtt übertragen, dabei war das Ergebnis wie bereits gepostet.

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @michihorn last edited by

                            @michihorn

                            Ok das kam dann dort an wo du es auch haben wolltest.
                            Was willst du dann mit dem Bild weiter machen.
                            Speichern/anzeigen/beides?

                            1 Reply Last reply Reply Quote 0
                            • M
                              michihorn last edited by

                              @oliverio sagte in Bilder senden von einen IOB zum anderen IOB:

                              Speichern/anzeigen/beides?

                              beides

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @michihorn last edited by

                                @michihorn

                                ok und hast du beide methoden ausprobiert die ich oben gepostet habe?

                                1 Reply Last reply Reply Quote 0
                                • M
                                  michihorn last edited by

                                  @oliverio sagte in Bilder senden von einen IOB zum anderen IOB:

                                  ok und hast du beide methoden ausprobiert die ich oben gepostet habe?

                                  Senden klappt.
                                  Empfangen muckt noch...

                                  const fs = require("fs");
                                  const idpic_holen ="mqtt.1.logger.gthrn.Alarm.pic_senden"
                                  on({ id: idpic_holen, change: "any" }, function (obj) {
                                   log("Hab was geholt")
                                  // Base64 aus State holen
                                  let b64 = getState(idpic_holen).val;
                                   
                                  // Falls der Wert mit "data:image/..." beginnt, Prefix entfernen
                                  if (b64.startsWith("data:image")) {
                                      b64 = b64.split(",")[1];
                                  }
                                   
                                  // Buffer erzeugen
                                  const buffer = Buffer.from(b64, "base64");
                                   
                                  // Datei speichern
                                  fs.writeFileSync("/opt/iobroker/iobroker-data/files/export.jpg", buffer);
                                   
                                  console.log("Bild gespeichert!")
                                  });
                                  

                                  Hier der LOG:

                                  javascript.0	18:54:00.095	info	
                                  Hab was geholt
                                  javascript.0	18:54:00.096	error	
                                  Error in callback: Error: Permission denied
                                  javascript.0	18:54:00.096	error	
                                      at Function.checkProtected (/opt/iobroker/node_modules/iobroker.javascript/src/lib/protectFs.ts:325:19)
                                  javascript.0	18:54:00.096	error	
                                      at ProtectFs.writeFileSync (/opt/iobroker/node_modules/iobroker.javascript/src/lib/protectFs.ts:482:23)
                                  javascript.0	18:54:00.096	error	
                                      at Object.<anonymous> (script.js.Giethoorn._dir.pic_empfangen:18:4)
                                  javascript.0	18:54:00.096	error	
                                      at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:1772:38)
                                  javascript.0	18:54:00.096	error	
                                      at JavaScript.onStateChange (/opt/iobroker/node_modules/iobroker.javascript/src/main.ts:750:25)
                                  javascript.0	18:54:00.096	error	
                                      at JavaScript.emit (node:events:524:28)
                                  javascript.0	18:54:00.096	error	
                                      at JavaScript.emit (node:domain:489:12)
                                  javascript.0	18:54:00.096	error	
                                      at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11138:53)
                                  javascript.0	18:54:00.096	error	
                                      at processImmediate (node:internal/timers:483:21)
                                  
                                  
                                  OliverIO M 2 Replies Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @michihorn last edited by

                                    @michihorn sagte in Bilder senden von einen IOB zum anderen IOB:

                                    fs.writeFileSync("/opt/iobroker/iobroker-data/files/export.jpg", buffer);

                                    verwende anstatt der zitierten Zeile die folgende

                                    writeFile(null, "/export.jpg", buffer, (error) => {console.log(error)});
                                    

                                    im javascript adapter ist mittlerweile ein schutz drin, das man mit fs nicht mehr ins files verzeichnis schreiben darf.
                                    speicherort musst mal schauen. da bin ich mir nicht so sicher wohin es schreibt. wahrscheinlich irgendwo unter /files

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      michihorn @michihorn last edited by

                                      @michihorn sagte in Bilder senden von einen IOB zum anderen IOB:

                                      Empfangen muckt noch...

                                      Es reicht eigentlich das ich nun das Bild per mqtt übertragen hab und dann in der VIS per Binding zeige
                                      data:image/jpg;base64,{mqtt.1.logger.gthrn.Alarm.pic_senden}.

                                      Danke für Deine Hilfe.
                                      Gruß
                                      Michael

                                      OliverIO 1 Reply Last reply Reply Quote 0
                                      • OliverIO
                                        OliverIO @michihorn last edited by

                                        @michihorn

                                        ok dann klappt es ja

                                        1 Reply Last reply Reply Quote 1
                                        • David G.
                                          David G. last edited by

                                          Man könnte die Bilder natürlich auch per Mail oder Telegram senden/empfangen.

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            michihorn @David G. last edited by

                                            @david-g sagte in Gelöst: Bilder senden von einen IOB zum anderen IOB:

                                            Man könnte die Bilder natürlich auch per Mail oder Telegram senden/empfangen.

                                            In meinem Script im Anfangspost habe ich bereits ein Script mit dem ich die Bilder per Telegram versende.
                                            Der Weg über Email ist viel zu aufwendig, daher ist die Lösung von OliverIO super. So habe ich die Bilder direkt ohne großen Aufwand auf der Entfernten Maschine

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.4k
                                            Online

                                            32.3k
                                            Users

                                            81.2k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            5
                                            23
                                            254
                                            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