Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Adapter mit Bilder-Upload

NEWS

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

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

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

Adapter mit Bilder-Upload

Adapter mit Bilder-Upload

Scheduled Pinned Locked Moved Entwicklung
55 Posts 5 Posters 3.9k Views 8 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.
  • haus-automatisierungH haus-automatisierung

    @skb sagte in Adapter mit Bilder-Upload:

    Mit readDir bekomme ich die Dinge dann aufgelistet zurück?

    Nochmal der Link...

    https://iobroker.readthedocs.io/de/latest/bestpractice/storefiles.html

    SKBS Offline
    SKBS Offline
    SKB
    Developer Most Active
    wrote on last edited by
    #31

    @haus-automatisierung Ne, ich meine, wenn der User nun Bilder hochgeladen hat, die ich abrufen möchte. Da kenne ich ja nicht jeden Dateinamen. So bekäme ich das Verzeichs, oder?

    https://github.com/ioBroker/ioBroker.socket-classes?tab=readme-ov-file#readdir_adapter-dirname-options-callback

    ... wer nicht mit der Zeit geht, geht mit der Zeit ...

    Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

    haus-automatisierungH 1 Reply Last reply
    0
    • SKBS SKB

      @haus-automatisierung Ne, ich meine, wenn der User nun Bilder hochgeladen hat, die ich abrufen möchte. Da kenne ich ja nicht jeden Dateinamen. So bekäme ich das Verzeichs, oder?

      https://github.com/ioBroker/ioBroker.socket-classes?tab=readme-ov-file#readdir_adapter-dirname-options-callback

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

      @skb sagte in Adapter mit Bilder-Upload:

      Da kenne ich ja nicht jeden Dateinamen.

      Den Namen musst Du einfach als Attribut irgendwo anders speichern (in das Instance-Objekt o.ä. wo. der Rest deiner Config auch liegt).

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

      SKBS 2 Replies Last reply
      0
      • haus-automatisierungH haus-automatisierung

        @skb sagte in Adapter mit Bilder-Upload:

        Da kenne ich ja nicht jeden Dateinamen.

        Den Namen musst Du einfach als Attribut irgendwo anders speichern (in das Instance-Objekt o.ä. wo. der Rest deiner Config auch liegt).

        SKBS Offline
        SKBS Offline
        SKB
        Developer Most Active
        wrote on last edited by
        #33

        @haus-automatisierung Aber, mit dem readDir komme ich ja auch weiter. Ich schaue mal, wie das geht. Danke!
        Dann geht dies ja wirklich besser, als gedacht 👌

        ... wer nicht mit der Zeit geht, geht mit der Zeit ...

        Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

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

          @skb sagte in Adapter mit Bilder-Upload:

          Da kenne ich ja nicht jeden Dateinamen.

          Den Namen musst Du einfach als Attribut irgendwo anders speichern (in das Instance-Objekt o.ä. wo. der Rest deiner Config auch liegt).

          SKBS Offline
          SKBS Offline
          SKB
          Developer Most Active
          wrote on last edited by SKB
          #34

          @haus-automatisierung Also so:

          let fileData = await readImage(file);
          
          const response = await new Promise((resolve) => {
              socket.emit('writeFile64', appProperties.namespace, 'userFiles/' + filename, fileData, (res) => { resolve(res); });
          });
          
          console.log(response);
          

          Bekomme ich "null" zurück -.-

          Auch ein:

          const response_folder = await new Promise((resolve) => {
              socket.emit('mkdir', appProperties.namespace, 'userFiles', (error) => { resolve(error); })
          });
          console.log(response_folder);
          

          Liefert leider "null".

          ... wer nicht mit der Zeit geht, geht mit der Zeit ...

          Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

          haus-automatisierungH 1 Reply Last reply
          0
          • SKBS Offline
            SKBS Offline
            SKB
            Developer Most Active
            wrote on last edited by
            #35

            Oder, kann man diese Commandos nun nicht über die "normale" socket Verbindung nutzen? Muss dazu doch noch der socket-client auf ioBroker installiert sein?

            ... wer nicht mit der Zeit geht, geht mit der Zeit ...

            Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

            1 Reply Last reply
            0
            • SKBS Offline
              SKBS Offline
              SKB
              Developer Most Active
              wrote on last edited by SKB
              #36

              Ah, read the manual hilft auch weiter 😄 Gibt null, wenn kein Fehler auftaucht. Also, der "upload" klappt sehr gut. Dankeschön erstmal!

              Jetzt wäre natürlich die Frage, kommt man "so" an das Bild heran? Ich würde dem User gerne eine Auswahl seiner Bilder geben, die er nutzen kann und dann sieht er ja den Namen der Datei. Somit wäre es dann gut zu wissen, wie ich dann an die Datei komme und sie ausliefern kann - über den WebAdapter dann.

              Die Datei steckt ja nun in der ioBroker DB. Wie könnte man sie via URL anzeigen?

              Eine Idee?

              Edit: Ist es richtig, das die Datei dann einfach über den Admin Adapter kommt? Habe ich nun mal "getestet" - über:
              http://192.168.70.70:8081/files/Adapter.Instanz/Dateiname.jpg kommt genau das Base64 👌

              @haus-automatisierung @Jey-Cee
              Kann man sich darauf verlassen, das der Admin Adapter immer auf Port 8081 läuft? Nein, oder?
              Welche Admin Instanz wird denn für die Datei-Ablage/Anzeige genutzt?

              Aber: Dies funktioniert ja z.B. nicht von extern, denke ich, weil das Bild ja statisch verlinkt würde und dann auf den Host des Admin-Adapter zeigt. Ich frage mich noch, ob man das Bild nicht auch vom WebAdapter ausliefern lassen könnte?

              ... wer nicht mit der Zeit geht, geht mit der Zeit ...

              Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

              haus-automatisierungH OliverIOO 2 Replies Last reply
              0
              • SKBS SKB

                Ah, read the manual hilft auch weiter 😄 Gibt null, wenn kein Fehler auftaucht. Also, der "upload" klappt sehr gut. Dankeschön erstmal!

                Jetzt wäre natürlich die Frage, kommt man "so" an das Bild heran? Ich würde dem User gerne eine Auswahl seiner Bilder geben, die er nutzen kann und dann sieht er ja den Namen der Datei. Somit wäre es dann gut zu wissen, wie ich dann an die Datei komme und sie ausliefern kann - über den WebAdapter dann.

                Die Datei steckt ja nun in der ioBroker DB. Wie könnte man sie via URL anzeigen?

                Eine Idee?

                Edit: Ist es richtig, das die Datei dann einfach über den Admin Adapter kommt? Habe ich nun mal "getestet" - über:
                http://192.168.70.70:8081/files/Adapter.Instanz/Dateiname.jpg kommt genau das Base64 👌

                @haus-automatisierung @Jey-Cee
                Kann man sich darauf verlassen, das der Admin Adapter immer auf Port 8081 läuft? Nein, oder?
                Welche Admin Instanz wird denn für die Datei-Ablage/Anzeige genutzt?

                Aber: Dies funktioniert ja z.B. nicht von extern, denke ich, weil das Bild ja statisch verlinkt würde und dann auf den Host des Admin-Adapter zeigt. Ich frage mich noch, ob man das Bild nicht auch vom WebAdapter ausliefern lassen könnte?

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

                @skb sagte in Adapter mit Bilder-Upload:

                Edit: Ist es richtig, das die Datei dann einfach über den Admin Adapter kommt?

                Das sollte über den Web-Adapter auch so funktionieren. Müsste ich auch testen.

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

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

                  @skb sagte in Adapter mit Bilder-Upload:

                  Edit: Ist es richtig, das die Datei dann einfach über den Admin Adapter kommt?

                  Das sollte über den Web-Adapter auch so funktionieren. Müsste ich auch testen.

                  SKBS Offline
                  SKBS Offline
                  SKB
                  Developer Most Active
                  wrote on last edited by
                  #38

                  @haus-automatisierung

                  http://192.168.70.70:8082/files/Adapter.Instanz/Dateiname.jpg erscheint leider nichts
                  auch nicht via:
                  http://192.168.70.70:8082/Adapter.Instanz/Dateiname.jpg

                  ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                  Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                  haus-automatisierungH 1 Reply Last reply
                  0
                  • SKBS SKB

                    @haus-automatisierung

                    http://192.168.70.70:8082/files/Adapter.Instanz/Dateiname.jpg erscheint leider nichts
                    auch nicht via:
                    http://192.168.70.70:8082/Adapter.Instanz/Dateiname.jpg

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

                    @skb sagte in Adapter mit Bilder-Upload:

                    http://192.168.70.70:8082/Adapter.Instanz/Dateiname.jpg

                    Das muss gehen. Aber halt nur, wenn das nicht angehakt ist

                    Screenshot 2024-06-20 at 12.43.14.png

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

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

                      @skb sagte in Adapter mit Bilder-Upload:

                      http://192.168.70.70:8082/Adapter.Instanz/Dateiname.jpg

                      Das muss gehen. Aber halt nur, wenn das nicht angehakt ist

                      Screenshot 2024-06-20 at 12.43.14.png

                      SKBS Offline
                      SKBS Offline
                      SKB
                      Developer Most Active
                      wrote on last edited by
                      #40

                      @haus-automatisierung Ist bei mir nicht angehakt. Daher wundere ich mich.

                      ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                      Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                      1 Reply Last reply
                      0
                      • SKBS SKB

                        Ah, read the manual hilft auch weiter 😄 Gibt null, wenn kein Fehler auftaucht. Also, der "upload" klappt sehr gut. Dankeschön erstmal!

                        Jetzt wäre natürlich die Frage, kommt man "so" an das Bild heran? Ich würde dem User gerne eine Auswahl seiner Bilder geben, die er nutzen kann und dann sieht er ja den Namen der Datei. Somit wäre es dann gut zu wissen, wie ich dann an die Datei komme und sie ausliefern kann - über den WebAdapter dann.

                        Die Datei steckt ja nun in der ioBroker DB. Wie könnte man sie via URL anzeigen?

                        Eine Idee?

                        Edit: Ist es richtig, das die Datei dann einfach über den Admin Adapter kommt? Habe ich nun mal "getestet" - über:
                        http://192.168.70.70:8081/files/Adapter.Instanz/Dateiname.jpg kommt genau das Base64 👌

                        @haus-automatisierung @Jey-Cee
                        Kann man sich darauf verlassen, das der Admin Adapter immer auf Port 8081 läuft? Nein, oder?
                        Welche Admin Instanz wird denn für die Datei-Ablage/Anzeige genutzt?

                        Aber: Dies funktioniert ja z.B. nicht von extern, denke ich, weil das Bild ja statisch verlinkt würde und dann auf den Host des Admin-Adapter zeigt. Ich frage mich noch, ob man das Bild nicht auch vom WebAdapter ausliefern lassen könnte?

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        wrote on last edited by OliverIO
                        #41

                        @skb sagte in Adapter mit Bilder-Upload:

                        über den WebAdapter dann

                        evtl kannst du die Extenstion Funktionalität des Web-Adapters nutzen.

                        https://github.com/ioBroker/ioBroker.web/blob/master/WEB-EXTENSIONS-HOWTO.md

                        allgemein zu writeFile und readFile.
                        ich gehe mal davon aus, das du es im rahmen eines eigenen adapter einsetzt und nicht aus dem javascript-adapter

                        wir gehen von folgendem adapter aus: demoadapter mit instanz 0
                        wenn ich dort mit writeFile("abc.txt",dateiinhalt);
                        schreibe, dann ist die datei im folgenden verzeichnis zu finden (wenn nicht redis eingesetzt, aber ist ja wie gesagt irrelevant.)

                        iobroker/iobroker-data/files/demoadapter.0/abc.txt
                        

                        wenn du diese datei dann über den webadapter abrufen möchtest, dann müsste der pfad unter

                        http://192.168.x.x:8082/demoadapter.0/abc.txt
                        

                        zu finden sein
                        die extension für den web-adapter kannst du nutzen, wenn du beim ausliefern noch was machen willst.
                        beispieladapter, die das einsetzen
                        Cameras: https://github.com/ioBroker/ioBroker.cameras/blob/master/lib/web.js
                        Simple-api: https://github.com/ioBroker/ioBroker.simple-api/blob/master/lib/simpleapi.js#L73
                        Proxy: https://github.com/ioBroker/ioBroker.proxy/blob/master/lib/proxy.js#L20
                        Eufy-Security: https://github.com/bropat/ioBroker.eufy-security/blob/master/src/lib/web.ts (Typescript-implementation)
                        REST-API: https://github.com/ioBroker/ioBroker.rest-api/blob/master/src/lib/rest-api.js#L67

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

                        SKBS OliverIOO 2 Replies Last reply
                        1
                        • OliverIOO OliverIO

                          @skb sagte in Adapter mit Bilder-Upload:

                          über den WebAdapter dann

                          evtl kannst du die Extenstion Funktionalität des Web-Adapters nutzen.

                          https://github.com/ioBroker/ioBroker.web/blob/master/WEB-EXTENSIONS-HOWTO.md

                          allgemein zu writeFile und readFile.
                          ich gehe mal davon aus, das du es im rahmen eines eigenen adapter einsetzt und nicht aus dem javascript-adapter

                          wir gehen von folgendem adapter aus: demoadapter mit instanz 0
                          wenn ich dort mit writeFile("abc.txt",dateiinhalt);
                          schreibe, dann ist die datei im folgenden verzeichnis zu finden (wenn nicht redis eingesetzt, aber ist ja wie gesagt irrelevant.)

                          iobroker/iobroker-data/files/demoadapter.0/abc.txt
                          

                          wenn du diese datei dann über den webadapter abrufen möchtest, dann müsste der pfad unter

                          http://192.168.x.x:8082/demoadapter.0/abc.txt
                          

                          zu finden sein
                          die extension für den web-adapter kannst du nutzen, wenn du beim ausliefern noch was machen willst.
                          beispieladapter, die das einsetzen
                          Cameras: https://github.com/ioBroker/ioBroker.cameras/blob/master/lib/web.js
                          Simple-api: https://github.com/ioBroker/ioBroker.simple-api/blob/master/lib/simpleapi.js#L73
                          Proxy: https://github.com/ioBroker/ioBroker.proxy/blob/master/lib/proxy.js#L20
                          Eufy-Security: https://github.com/bropat/ioBroker.eufy-security/blob/master/src/lib/web.ts (Typescript-implementation)
                          REST-API: https://github.com/ioBroker/ioBroker.rest-api/blob/master/src/lib/rest-api.js#L67

                          SKBS Offline
                          SKBS Offline
                          SKB
                          Developer Most Active
                          wrote on last edited by SKB
                          #42

                          @oliverio Danke für deine Ausführungen. Soweit bin ich schon und das klappt auch alles so 😉

                          Bild wird in den Adapter-Pfad geschrieben, Web-Extension per Instanz geht auch 🙂

                          Nur war von deinen Vorrednern die Rede, das ich doch meine Dateien mit Bordmitteln "in die Daten" des ioBroker schreiben soll. Das geht nur soweit, das ich die Datei als "base64" schreibe. Sie ist dann "irgendwo".

                          Über den Admin Adapter Port 8081 komme ich dann an die Datei. Das ist auch gut - oder weniger, wenn ich das Bild doch gerne über den Web-Adapter haben möchte. Denn, wenn man relative Pfade nehmen wollen würde, würde die Datei ja per ioBroker extern nicht geladen werden können, da sie nur via Admin kommt.

                          ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                          Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                          1 Reply Last reply
                          0
                          • OliverIOO OliverIO

                            @skb sagte in Adapter mit Bilder-Upload:

                            über den WebAdapter dann

                            evtl kannst du die Extenstion Funktionalität des Web-Adapters nutzen.

                            https://github.com/ioBroker/ioBroker.web/blob/master/WEB-EXTENSIONS-HOWTO.md

                            allgemein zu writeFile und readFile.
                            ich gehe mal davon aus, das du es im rahmen eines eigenen adapter einsetzt und nicht aus dem javascript-adapter

                            wir gehen von folgendem adapter aus: demoadapter mit instanz 0
                            wenn ich dort mit writeFile("abc.txt",dateiinhalt);
                            schreibe, dann ist die datei im folgenden verzeichnis zu finden (wenn nicht redis eingesetzt, aber ist ja wie gesagt irrelevant.)

                            iobroker/iobroker-data/files/demoadapter.0/abc.txt
                            

                            wenn du diese datei dann über den webadapter abrufen möchtest, dann müsste der pfad unter

                            http://192.168.x.x:8082/demoadapter.0/abc.txt
                            

                            zu finden sein
                            die extension für den web-adapter kannst du nutzen, wenn du beim ausliefern noch was machen willst.
                            beispieladapter, die das einsetzen
                            Cameras: https://github.com/ioBroker/ioBroker.cameras/blob/master/lib/web.js
                            Simple-api: https://github.com/ioBroker/ioBroker.simple-api/blob/master/lib/simpleapi.js#L73
                            Proxy: https://github.com/ioBroker/ioBroker.proxy/blob/master/lib/proxy.js#L20
                            Eufy-Security: https://github.com/bropat/ioBroker.eufy-security/blob/master/src/lib/web.ts (Typescript-implementation)
                            REST-API: https://github.com/ioBroker/ioBroker.rest-api/blob/master/src/lib/rest-api.js#L67

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            wrote on last edited by OliverIO
                            #43

                            @oliverio sagte in Adapter mit Bilder-Upload:

                            wenn du diese datei dann über den webadapter abrufen möchtest, dann müsste der pfad unter

                            http://192.168.x.x:8082/demoadapter.0/abc.txt
                            

                            der port des web-adapters ist 8082

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

                            SKBS 1 Reply Last reply
                            0
                            • OliverIOO OliverIO

                              @oliverio sagte in Adapter mit Bilder-Upload:

                              wenn du diese datei dann über den webadapter abrufen möchtest, dann müsste der pfad unter

                              http://192.168.x.x:8082/demoadapter.0/abc.txt
                              

                              der port des web-adapters ist 8082

                              SKBS Offline
                              SKBS Offline
                              SKB
                              Developer Most Active
                              wrote on last edited by
                              #44

                              @oliverio ja, ist richtig.

                              Sind aber jetzt 2 Dinge von denen wir sprechen.

                              Mache ich den Upload über meinen Adapter per WriteFile via sendTo ist er im WebAdapter über die Extensions verfügbar.

                              Mache ich den Upload über socket.emit('writeFile64', ...) landet er in den Objekten von ioBroker und kommt nur über den Admin http://x.x.x.:8081/files/...

                              Zu 2. Kommt man an die Datei auch per WebAdapter?

                              ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                              Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                              OliverIOO 1 Reply Last reply
                              0
                              • SKBS SKB

                                @oliverio ja, ist richtig.

                                Sind aber jetzt 2 Dinge von denen wir sprechen.

                                Mache ich den Upload über meinen Adapter per WriteFile via sendTo ist er im WebAdapter über die Extensions verfügbar.

                                Mache ich den Upload über socket.emit('writeFile64', ...) landet er in den Objekten von ioBroker und kommt nur über den Admin http://x.x.x.:8081/files/...

                                Zu 2. Kommt man an die Datei auch per WebAdapter?

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                wrote on last edited by
                                #45

                                @skb benenne mal den kompletten sendTo-Befehl

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

                                SKBS 1 Reply Last reply
                                0
                                • OliverIOO OliverIO

                                  @skb benenne mal den kompletten sendTo-Befehl

                                  SKBS Offline
                                  SKBS Offline
                                  SKB
                                  Developer Most Active
                                  wrote on last edited by
                                  #46

                                  @oliverio weiter oben: https://forum.iobroker.net/post/1172033

                                  ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                  Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                  1 Reply Last reply
                                  0
                                  • SKBS SKB

                                    @haus-automatisierung Also so:

                                    let fileData = await readImage(file);
                                    
                                    const response = await new Promise((resolve) => {
                                        socket.emit('writeFile64', appProperties.namespace, 'userFiles/' + filename, fileData, (res) => { resolve(res); });
                                    });
                                    
                                    console.log(response);
                                    

                                    Bekomme ich "null" zurück -.-

                                    Auch ein:

                                    const response_folder = await new Promise((resolve) => {
                                        socket.emit('mkdir', appProperties.namespace, 'userFiles', (error) => { resolve(error); })
                                    });
                                    console.log(response_folder);
                                    

                                    Liefert leider "null".

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

                                    @skb sagte in Adapter mit Bilder-Upload:

                                    @haus-automatisierung Also so:

                                    let fileData = await readImage(file);
                                    
                                    const response = await new Promise((resolve) => {
                                        socket.emit('writeFile64', appProperties.namespace, 'userFiles/' + filename, fileData, (res) => { resolve(res); });
                                    });
                                    
                                    console.log(response);
                                    

                                    Bekomme ich "null" zurück -.-

                                    Auch ein:

                                    const response_folder = await new Promise((resolve) => {
                                        socket.emit('mkdir', appProperties.namespace, 'userFiles', (error) => { resolve(error); })
                                    });
                                    console.log(response_folder);
                                    

                                    Liefert leider "null".

                                    Mh? In beiden Fällen gibst Du error in resolve() als Rückgabewert (auch wenn Du den Parameter einmal res genannt hast). Und wenn error == null ist, dann hat doch alles geklappt? Was hast Du erwartet?

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

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

                                      @skb sagte in Adapter mit Bilder-Upload:

                                      @haus-automatisierung Also so:

                                      let fileData = await readImage(file);
                                      
                                      const response = await new Promise((resolve) => {
                                          socket.emit('writeFile64', appProperties.namespace, 'userFiles/' + filename, fileData, (res) => { resolve(res); });
                                      });
                                      
                                      console.log(response);
                                      

                                      Bekomme ich "null" zurück -.-

                                      Auch ein:

                                      const response_folder = await new Promise((resolve) => {
                                          socket.emit('mkdir', appProperties.namespace, 'userFiles', (error) => { resolve(error); })
                                      });
                                      console.log(response_folder);
                                      

                                      Liefert leider "null".

                                      Mh? In beiden Fällen gibst Du error in resolve() als Rückgabewert (auch wenn Du den Parameter einmal res genannt hast). Und wenn error == null ist, dann hat doch alles geklappt? Was hast Du erwartet?

                                      SKBS Offline
                                      SKBS Offline
                                      SKB
                                      Developer Most Active
                                      wrote on last edited by
                                      #48

                                      @haus-automatisierung das habe ich ja oben korrigiert. Klappt ja soweit. Nur die Frage weiterhin, wie ich nun die Bilder nicht über Admin, sondern über den WebAdapter bekomme ...

                                      ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                      Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                      OliverIOO 1 Reply Last reply
                                      0
                                      • SKBS SKB

                                        @haus-automatisierung das habe ich ja oben korrigiert. Klappt ja soweit. Nur die Frage weiterhin, wie ich nun die Bilder nicht über Admin, sondern über den WebAdapter bekomme ...

                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        wrote on last edited by
                                        #49

                                        @skb

                                        und wo hat iobroker die dateien den im dateisystem bei dir abgelegt?
                                        bei dem sento bin ich mir jetzt nicht sicher, aber du sendest da nur eine erfolgsmeldung?
                                        aber kein upload?
                                        du schreibst die datei ja mit fs.writeFile

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

                                        SKBS 1 Reply Last reply
                                        0
                                        • OliverIOO OliverIO

                                          @skb

                                          und wo hat iobroker die dateien den im dateisystem bei dir abgelegt?
                                          bei dem sento bin ich mir jetzt nicht sicher, aber du sendest da nur eine erfolgsmeldung?
                                          aber kein upload?
                                          du schreibst die datei ja mit fs.writeFile

                                          SKBS Offline
                                          SKBS Offline
                                          SKB
                                          Developer Most Active
                                          wrote on last edited by
                                          #50

                                          @oliverio

                                          const response = await new Promise((resolve) => {
                                          	socket.emit('sendTo', appProperties.namespace, '_uploadFile', { fileName: filename, fileData: file }, (res) => { resolve(res); })
                                          });
                                          

                                          Hier schicke ich die Datei von der Webseite zu meinem Adapter. fileData hat dann den Base64 String der Datei.

                                          Und hier schreibe ich sie im Adapter in den Ordner der iobroker-data. In dem Falle /opt/iobroker/iobroker-data/energiefluss-erweitert.0/userFiles

                                          case '_uploadFile':
                                          const uploadPath = path.join(instanceDir + userFiles, obj.message.fileName);
                                          if (!fs.existsSync(uploadPath)) {
                                          	this.log.info(`Uploading a new file to: ${uploadPath}`);
                                          	fs.writeFile(uploadPath, obj.message.fileData, 'binary', (err) => {
                                          		if (err) {
                                          			this.log.error(`Could not upload the file ${uploadPath}. Error: ${err}`);
                                          			this.sendTo(obj.from, obj.command, { error: err, url: null }, obj.callback);
                                          		} else {
                                          			this.sendTo(obj.from, obj.command, { error: null, url: obj.message.fileName, msg: 'File uploaded successfully!' }, obj.callback);
                                          		}
                                          	});
                                          } else {
                                          	this.log.warn(`The file trying to upload already exists: ${uploadPath}`);
                                          	this.sendTo(obj.from, obj.command, { error: 'File already exists!', url: obj.message.fileName }, obj.callback);
                                          }
                                          
                                          break;
                                          

                                          Die Datei bekomme ich dann per WebAdapter angezeigt via:
                                          http://192.168.2.19:8082/energiefluss-erweitert.0/userFiles/background.jpg

                                          Ich komme aber mit dem Anderen Weg nur über Admin an die Datei, wenn ich sie per:
                                          socket.emit('writeFile64', appProperties.namespace, 'userFiles/' + filename, fileData, (res) => { resolve(res); }); "direkt" zu ioBroker sende.

                                          ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                          Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                          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

                                          604

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe