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. Praktische Anwendungen (Showcase)
  4. E-INK Display OpenEPaperLink - Displayanzeige mit Batterie

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    20
    1
    759

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

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

E-INK Display OpenEPaperLink - Displayanzeige mit Batterie

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
1.0k Posts 49 Posters 350.6k Views 52 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.
  • E Offline
    E Offline
    eMd
    wrote on last edited by
    #771

    Ich bedanke mich bei euch allen und vorallem bei @BananaJoe !

    Ich weiß nicht warum, aber es geht nun, habe in der zwischenzeit gefühlt 1000 Sachen geändert und mit einmal geht es.
    Keine Ahnung wo da der Fehler lag...

    MfG
    eMd

    Master: Intel NUC 16GB/500GB
    Slave: Raspberry Pi 3 + Homematicmodul
    Shelly, Google Home, Zigbee Aqara, Sonoff

    Meine VIS: https://youtu.be/JMYr2KYlpME

    WebrangerW 1 Reply Last reply
    1
    • BananaJoeB BananaJoe

      @eisbaeeer ich hatte es versucht ... aber nicht hinbekommen. Zur Zeit triggere ich playwright alle 3 Minuten an, die Bilder landen in einem Ordner meines Webservers (läuft mit auf dem ioBroker Server auf Port 80) und die Tags stehen auf Image URL

      Dazu habe ich ein Python-Skript hinterlegt das 3 VIS-Seiten besucht und die Screenshots hinterlegt:

      #!/usr/bin/python3
      # -*- coding: utf-8 -*-
      import subprocess
      from playwright.sync_api import sync_playwright, Page, expect
      
      playwright = sync_playwright().start()
      
      #browser = playwright.chromium.launch()
      #browser = playwright.webkit.launch()
      browser = playwright.firefox.launch()
      context = browser.new_context(
        viewport={"width":800, "height":600},
        device_scale_factor=4,
      
      )
      page = context.new_page()
      
      # Schritt 1: Kühlschrank
      page.goto("http://192.168.1.8:60008/vis/index.html?openepaper#Kuehlschrank01")
      expect(page.get_by_text("Kuehlschrank01")).to_be_visible()
      #page.screenshot(path="/var/www/html/openepaper/Kuehlschrank01_4x.jpg",clip={"x":0,"y":0,"width":296,"height":128},quality=100,type="jpeg")
      page.screenshot(path="/var/www/html/openepaper/Kuehlschrank01_4x.png",clip={"x":0,"y":0,"width":296,"height":128},type="png")
      myconvert=subprocess.call(['/usr/bin/convert', '/var/www/html/openepaper/Kuehlschrank01_4x.png', '-sample', '296x128', '-quality', '100', '-sampling-factor', '4:4:4', '-brightness-contrast', '0x99', '/var/www/html/openepaper/Kuehlschrank01.jpg' ])
      
      # Schritt 2: Pylontech
      page.goto("http://192.168.1.8:60008/vis/index.html?openepaper#Pylontech")
      expect(page.get_by_text("Pylontech")).to_be_visible()
      #page.screenshot(path="/var/www/html/openepaper/Pylontech_4x.jpg",clip={"x":0,"y":0,"width":296,"height":128},quality=100,type="jpeg")
      page.screenshot(path="/var/www/html/openepaper/Pylontech_4x.png",clip={"x":0,"y":0,"width":296,"height":128},type="png")
      myconvert=subprocess.call(['/usr/bin/convert', '/var/www/html/openepaper/Pylontech_4x.png', '-sample', '296x128', '-quality', '100', '-sampling-factor', '4:4:4', '-brightness-contrast', '0x99', '/var/www/html/openepaper/Pylontech.jpg' ])
      
      # Schritt 3: Briefkasten
      page.goto("http://192.168.1.8:60008/vis/index.html?openepaper#Briefkasten")
      expect(page.get_by_text("Briefkasten")).to_be_visible()
      #page.screenshot(path="/var/www/html/openepaper/Briefkasten_4x.jpg",clip={"x":0,"y":0,"width":296,"height":128},quality=100,type="jpeg")
      page.screenshot(path="/var/www/html/openepaper/Briefkasten_4x.png",clip={"x":0,"y":0,"width":296,"height":128},type="png")
      myconvert=subprocess.call(['/usr/bin/convert', '/var/www/html/openepaper/Briefkasten_4x.png', '-sample', '296x128', '-quality', '100', '-sampling-factor', '4:4:4', '-brightness-contrast', '0x99', '/var/www/html/openepaper/Briefkasten.jpg' ])
      
      # Schritt 4: Fenster und Türen
      page.goto("http://192.168.1.8:60008/vis/index.html?openepaper#EingangstuerV2")
      expect(page.get_by_text("FensterTueren")).to_be_visible()
      #page.screenshot(path="/var/www/html/openepaper/FensterTueren_4x.jpg",clip={"x":0,"y":0,"width":400,"height":300},quality=100,type="jpeg")
      page.screenshot(path="/var/www/html/openepaper/FensterTueren_4x.png",clip={"x":0,"y":0,"width":400,"height":300},type="png")
      myconvert=subprocess.call(['/usr/bin/convert', '/var/www/html/openepaper/FensterTueren_4x.png', '-sample', '400x300', '-quality', '100', '-sampling-factor', '4:4:4', '-brightness-contrast', '0x99', '/var/www/html/openepaper/FensterTueren.jpg' ])
      
      
      browser.close()
      
      playwright.stop()
      
      

      und das ich per Blockly alle 3 Minuten triggere:
      664810da-ac2c-4098-8cfe-bda12090caa6-image.png

      In dem Skript gibt es Zeilen für alle 3 Browser, Firefox sah bei mir am besten aus. Playwright installiert alle 3 Engines.
      Die Screenshots werden doppelt so groß gefertigt und dann herunterskaliert, dafür muss Imagemagick evenfalls installiert sein (für den Befehl convert)

      B Offline
      B Offline
      bonsai308
      wrote on last edited by
      #772

      @bananajoe said in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

      Die Screenshots werden doppelt so groß gefertigt und dann herunterskaliert, dafür muss Imagemagick evenfalls installiert sein (für den Befehl convert)

      Eine Frage: wie genau erledigst Du das konvertieren?

      BananaJoeB 1 Reply Last reply
      0
      • B bonsai308

        @bananajoe said in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

        Die Screenshots werden doppelt so groß gefertigt und dann herunterskaliert, dafür muss Imagemagick evenfalls installiert sein (für den Befehl convert)

        Eine Frage: wie genau erledigst Du das konvertieren?

        BananaJoeB Online
        BananaJoeB Online
        BananaJoe
        Most Active
        wrote on last edited by BananaJoe
        #773

        @bonsai308 ich nutze dazu ImageMagick / den Befehl Convert:

        /usr/bin/convert /var/www/html/openepaper/FensterTueren_4x.png -sample 400x300 -quality 100 -sampling-factor 4:4:4 -brightness-contrast 0x99 /var/www/html/openepaper/FensterTueren.jpg' 
        

        Die Parameter hatte ich mir durch ausprobieren ausgeklüngelt.

        Ganz genau: Ich habe das ganze in ein Python-Skript gepackt (weil da heraus playwright gut ansteuern kann, mit einem Aufruf gleich 4 Webseiten abholen) und starte aus diesem Skript auch die Konvertierung.
        Abgelegt wird alles im www Verzeichnis von Apache aus dem sich die OpeneEpaper AccessPoints die Bilder abholen können.

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        1 Reply Last reply
        0
        • E Offline
          E Offline
          eMd
          wrote on last edited by
          #774

          Ich bin euch ja noch meinen Einsatzbereich schuldig 😎

          Ich habe für meinen Sohn es so eingestellt, daß immer der nächste Tag als Stundenplan angezeigt wird damit er abends die Mappe packen kann.
          Täglich um 12uhr springt er auf den nächsten Tag um.

          2,2zoll Tag mit Magnet an seinem White Board befestigt.

          Noch ist der Stundenplan einfach nur eine statische HTML Datei. In Zukunft wird das dynamisch über webuntis eingespielt da die Schule da den Stundenplan hinterlegt hat. So kann auch Ausfall und Fächerwechsel angezeigt werden (in rot)

          MfG
          eMd

          Master: Intel NUC 16GB/500GB
          Slave: Raspberry Pi 3 + Homematicmodul
          Shelly, Google Home, Zigbee Aqara, Sonoff

          Meine VIS: https://youtu.be/JMYr2KYlpME

          haselchenH EisbaeeerE 2 Replies Last reply
          0
          • E eMd

            Ich bin euch ja noch meinen Einsatzbereich schuldig 😎

            Ich habe für meinen Sohn es so eingestellt, daß immer der nächste Tag als Stundenplan angezeigt wird damit er abends die Mappe packen kann.
            Täglich um 12uhr springt er auf den nächsten Tag um.

            2,2zoll Tag mit Magnet an seinem White Board befestigt.

            Noch ist der Stundenplan einfach nur eine statische HTML Datei. In Zukunft wird das dynamisch über webuntis eingespielt da die Schule da den Stundenplan hinterlegt hat. So kann auch Ausfall und Fächerwechsel angezeigt werden (in rot)

            MfG
            eMd

            haselchenH Offline
            haselchenH Offline
            haselchen
            Most Active
            wrote on last edited by haselchen
            #775

            Puh, 39 Seiten....

            Vielleicht kann meine Frag ja schnell abgehakt werden.
            Ich hab nen Aqara Temp.Sensor.
            Und nur die Temperatur soll auf dem Tag angezeigt werden.
            Bisher nutze ich die Temperatureinstellung meines Wohnortes.
            Das ist ja als Template hinterlegt.

            @BananaJoe
            @Beowolf
            @bimmi

            Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

            S 1 Reply Last reply
            0
            • haselchenH haselchen

              Puh, 39 Seiten....

              Vielleicht kann meine Frag ja schnell abgehakt werden.
              Ich hab nen Aqara Temp.Sensor.
              Und nur die Temperatur soll auf dem Tag angezeigt werden.
              Bisher nutze ich die Temperatureinstellung meines Wohnortes.
              Das ist ja als Template hinterlegt.

              @BananaJoe
              @Beowolf
              @bimmi

              S Offline
              S Offline
              stenmic
              wrote on last edited by
              #776

              @haselchen sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

              Puh, 39 Seiten....

              Vielleicht kann meine Frag ja schnell abgehakt werden.
              Ich hab nen Aqara Temp.Sensor.
              Und nur die Temperatur soll auf dem Tag angezeigt werden.
              Bisher nutze ich die Temperatureinstellung meines Wohnortes.
              Das ist ja als Template hinterlegt.

              @BananaJoe
              @Beowolf
              @bimmi

              schau dir das mal an, ist denke ich am einfachsten
              https://forum.iobroker.net/post/1186555

              haselchenH B 2 Replies Last reply
              0
              • S stenmic

                @haselchen sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                Puh, 39 Seiten....

                Vielleicht kann meine Frag ja schnell abgehakt werden.
                Ich hab nen Aqara Temp.Sensor.
                Und nur die Temperatur soll auf dem Tag angezeigt werden.
                Bisher nutze ich die Temperatureinstellung meines Wohnortes.
                Das ist ja als Template hinterlegt.

                @BananaJoe
                @Beowolf
                @bimmi

                schau dir das mal an, ist denke ich am einfachsten
                https://forum.iobroker.net/post/1186555

                haselchenH Offline
                haselchenH Offline
                haselchen
                Most Active
                wrote on last edited by haselchen
                #777

                @stenmic

                Danke für Dein Feedback.
                Habs nach Stunden und Gebastel geschafft im Zusammenspiel mit Homeassistant.
                Falls das jemand nachmachen möchte...

                Im Iobroker MQTT Client installiert. Dann einen DP ausgewählt und dort MQTT Client aktiviert.
                In HA MQTT Mosquitto installiert und mit den IObroker Daten gefüttert.
                Eine YAML gebastelt (von Github), https://github.com/OpenEPaperLink/Home_Assistant_Integration)
                Damit eine Automatisierung erstellt.

                42d0e53f-2cc8-43a2-b819-2e744f21a22f-grafik.png

                Und so sieht es aus:

                IMG_2824.jpeg

                Also ich finde, gar nicht mal so schlecht :)
                Einmal das ganze Prozedere gemacht, kann man alles drauf darstellen.

                Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                S 1 Reply Last reply
                0
                • haselchenH haselchen

                  @stenmic

                  Danke für Dein Feedback.
                  Habs nach Stunden und Gebastel geschafft im Zusammenspiel mit Homeassistant.
                  Falls das jemand nachmachen möchte...

                  Im Iobroker MQTT Client installiert. Dann einen DP ausgewählt und dort MQTT Client aktiviert.
                  In HA MQTT Mosquitto installiert und mit den IObroker Daten gefüttert.
                  Eine YAML gebastelt (von Github), https://github.com/OpenEPaperLink/Home_Assistant_Integration)
                  Damit eine Automatisierung erstellt.

                  42d0e53f-2cc8-43a2-b819-2e744f21a22f-grafik.png

                  Und so sieht es aus:

                  IMG_2824.jpeg

                  Also ich finde, gar nicht mal so schlecht :)
                  Einmal das ganze Prozedere gemacht, kann man alles drauf darstellen.

                  S Offline
                  S Offline
                  stenmic
                  wrote on last edited by
                  #778

                  @haselchen hätte aber auch ein einfaches Blockly gereicht :)

                  haselchenH 1 Reply Last reply
                  0
                  • S stenmic

                    @haselchen hätte aber auch ein einfaches Blockly gereicht :)

                    haselchenH Offline
                    haselchenH Offline
                    haselchen
                    Most Active
                    wrote on last edited by
                    #779

                    @stenmic

                    Wer will denn hier einfach 😂

                    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                    1 Reply Last reply
                    0
                    • S stenmic

                      @haselchen sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                      Puh, 39 Seiten....

                      Vielleicht kann meine Frag ja schnell abgehakt werden.
                      Ich hab nen Aqara Temp.Sensor.
                      Und nur die Temperatur soll auf dem Tag angezeigt werden.
                      Bisher nutze ich die Temperatureinstellung meines Wohnortes.
                      Das ist ja als Template hinterlegt.

                      @BananaJoe
                      @Beowolf
                      @bimmi

                      schau dir das mal an, ist denke ich am einfachsten
                      https://forum.iobroker.net/post/1186555

                      B Offline
                      B Offline
                      Beowolf
                      wrote on last edited by Beowolf
                      #780

                      Hat sich erledigt. Diesen Beitrag nicht beachten.

                      Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                      S 1 Reply Last reply
                      0
                      • B Beowolf

                        Hat sich erledigt. Diesen Beitrag nicht beachten.

                        S Offline
                        S Offline
                        stenmic
                        wrote on last edited by stenmic
                        #781

                        @beowolf
                        wenn du meinst
                        nenn mir mal bitte ne echte Quelle dazu in der das steht.

                        B 1 Reply Last reply
                        0
                        • S stenmic

                          @beowolf
                          wenn du meinst
                          nenn mir mal bitte ne echte Quelle dazu in der das steht.

                          B Offline
                          B Offline
                          Beowolf
                          wrote on last edited by Beowolf
                          #782

                          Hat sich erledigt. Diesen Beitrag nicht beachten.

                          Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                          S 2 Replies Last reply
                          1
                          • B Beowolf

                            Hat sich erledigt. Diesen Beitrag nicht beachten.

                            S Offline
                            S Offline
                            stenmic
                            wrote on last edited by stenmic
                            #783

                            @BananaJoe
                            bitte um Aufklärung, wo ist die Quelle deiner Behauptung?
                            https://forum.iobroker.net/topic/66380/e-ink-display-openepaperlink-displayanzeige-mit-batterie/761?_=1729425546222

                            Es geht um axios

                            1 Reply Last reply
                            0
                            • B Beowolf

                              Hat sich erledigt. Diesen Beitrag nicht beachten.

                              S Offline
                              S Offline
                              stenmic
                              wrote on last edited by
                              #784

                              @beowolf sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                              @stenmic sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                              @beowolf
                              wenn du meinst
                              nenn mir mal bitte ne echte Quelle dazu in der das steht.

                              Naj, es steht in einem Beitrag von "BananaJoe". Er würde das nicht schreiben, nur weil so viel Tasten auf der Tastatur sind.

                              wenn du alles glaubst…

                              B 1 Reply Last reply
                              0
                              • S stenmic

                                @beowolf sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                                @stenmic sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                                @beowolf
                                wenn du meinst
                                nenn mir mal bitte ne echte Quelle dazu in der das steht.

                                Naj, es steht in einem Beitrag von "BananaJoe". Er würde das nicht schreiben, nur weil so viel Tasten auf der Tastatur sind.

                                wenn du alles glaubst…

                                B Offline
                                B Offline
                                Beowolf
                                wrote on last edited by Beowolf
                                #785

                                Hat sich erledigt. Diesen Beitrag nicht beachten.

                                Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                S 1 Reply Last reply
                                0
                                • B Beowolf

                                  Hat sich erledigt. Diesen Beitrag nicht beachten.

                                  S Offline
                                  S Offline
                                  stenmic
                                  wrote on last edited by stenmic
                                  #786

                                  @beowolf
                                  so ganz mochte ich deinen Hinweis ohne richtige Quellenangabe auch nicht. Nur wenn hier ein User was schreibt, ist das ohne Quelle nix wert. Gerade bei so einer Behauptung.
                                  Aber lass uns besser jetzt aufhören.

                                  BananaJoeB 1 Reply Last reply
                                  0
                                  • S stenmic

                                    @beowolf
                                    so ganz mochte ich deinen Hinweis ohne richtige Quellenangabe auch nicht. Nur wenn hier ein User was schreibt, ist das ohne Quelle nix wert. Gerade bei so einer Behauptung.
                                    Aber lass uns besser jetzt aufhören.

                                    BananaJoeB Online
                                    BananaJoeB Online
                                    BananaJoe
                                    Most Active
                                    wrote on last edited by
                                    #787

                                    @stenmic Mein Post bezog sich auf das gepostete Skript eines anderen Benutzers /was er gerade benutzt:
                                    a90a7352-d545-4f79-bc95-c457d95e67d3-image.png

                                    Aber ich habe gerade mal gesucht und es genau falsch herum verwechselt, request war das alte und muss durch axios ersetzt werden, was auch die neuen Blockly-Bausteine für http-Abfragen verwenden.

                                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                    B 1 Reply Last reply
                                    1
                                    • BananaJoeB BananaJoe

                                      @stenmic Mein Post bezog sich auf das gepostete Skript eines anderen Benutzers /was er gerade benutzt:
                                      a90a7352-d545-4f79-bc95-c457d95e67d3-image.png

                                      Aber ich habe gerade mal gesucht und es genau falsch herum verwechselt, request war das alte und muss durch axios ersetzt werden, was auch die neuen Blockly-Bausteine für http-Abfragen verwenden.

                                      B Offline
                                      B Offline
                                      Beowolf
                                      wrote on last edited by
                                      #788

                                      @bananajoe

                                      So einfach kann es gehen. Danke für die Korrektur. :+1:

                                      Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                      G 1 Reply Last reply
                                      0
                                      • B Beowolf

                                        @bananajoe

                                        So einfach kann es gehen. Danke für die Korrektur. :+1:

                                        G Offline
                                        G Offline
                                        glitzi
                                        wrote on last edited by
                                        #789

                                        Hallo,

                                        seit dem Update von Pupeteer auf 0.4.0 bekomme ich folgende Fehlermeldung.

                                        
                                        javascript.0
                                        2024-10-28 18:54:02.284	error	at processImmediate (node:internal/timers:483:21)
                                        
                                        javascript.0
                                        2024-10-28 18:54:02.284	error	at Immediate._onImmediate (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:381:37)
                                        
                                        javascript.0
                                        2024-10-28 18:54:02.284	error	at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10886:45)
                                        
                                        javascript.0
                                        2024-10-28 18:54:02.284	error	at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3097:38)
                                        
                                        javascript.0
                                        2024-10-28 18:54:02.284	error	at Object.<anonymous> (script.js.ESP-E-INK.VIS-View-an-eTag-senden:43:24)
                                        
                                        javascript.0
                                        2024-10-28 18:54:02.284	error	at Function.from (node:buffer:320:9)
                                        
                                        javascript.0
                                        2024-10-28 18:54:02.283	error	Error in callback: TypeError: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of Object
                                        

                                        Hier mein Script

                                        
                                        sendTo('puppeteer.0', 'screenshot', { 
                                            url: urlOfVISView,                     
                                            path: imageSaveToFilenameWithPath,     
                                            width: viewWidth,                      
                                            height: viewHeight,                    
                                            quality: jpgQuality,                   
                                         
                                            waitOption: {
                                                waitForSelector: waitForSelector,  
                                                waitForTimeout: 30000              
                                            },
                                         
                                            fullPage: false,                       
                                         
                                            clip: {         
                                                x: cutoutX,                        
                                                y: cutoutY,                        
                                                width: cutoutWidth,                
                                                height: cutoutHeight               
                                            }
                                        }, obj => {
                                            if (obj.error) {
                                                console.warn("Fehler beim Aufruf der View: " + urlOfVISView + " => " + obj.error.message);
                                            } else {
                                                const http = require('http'); 
                                                const https = require('https');
                                                const { URL } = require('url');
                                         
                                                const boundary = '--------------------------' + Date.now().toString(16);
                                                const CRLF = '\r\n';
                                         
                                                // Payload-Erstellung
                                                const payload = Buffer.concat([
                                                    Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="dither"${CRLF}${CRLF}${dither}${CRLF}`),
                                                    Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="mac"${CRLF}${CRLF}${ePaperMAC}${CRLF}`),
                                                    Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="image"; filename="screenshot.jpg"${CRLF}Content-Type: image/jpeg${CRLF}${CRLF}`),
                                                    Buffer.from(obj.result, 'binary'),
                                                    Buffer.from(`${CRLF}--${boundary}--${CRLF}`)
                                                ]);
                                         
                                                // URL Parsing
                                                const url = new URL(imageUploadURL);
                                                const options = {
                                                    hostname: url.hostname,
                                                    port: url.port || (url.protocol === 'https:' ? 443 : 80),
                                                    path: url.pathname + (url.search || ''),
                                                    method: 'POST',
                                                    headers: {
                                                        'Content-Type': 'multipart/form-data; boundary=' + boundary,
                                                        'Content-Length': payload.length
                                                    }
                                                };
                                         
                                                // Protokollwahl
                                                const protocol = url.protocol === 'https:' ? https : http;
                                         
                                                // HTTP Request
                                                const req = protocol.request(options, function(res) {
                                                    console.log('ImageUploadStatusCode:', res.statusCode);
                                                    res.on('data', function(chunk) {
                                                        console.log('Response:', chunk.toString());
                                                    });
                                                });
                                         
                                                req.on('error', function(e) {
                                                    console.error('Fehler beim Hochladen:', e.message);
                                                });
                                         
                                                req.write(payload);
                                                req.end();
                                            }
                                        });
                                        
                                        
                                        B 1 Reply Last reply
                                        0
                                        • G glitzi

                                          Hallo,

                                          seit dem Update von Pupeteer auf 0.4.0 bekomme ich folgende Fehlermeldung.

                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at processImmediate (node:internal/timers:483:21)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Immediate._onImmediate (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:381:37)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10886:45)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3097:38)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Object.<anonymous> (script.js.ESP-E-INK.VIS-View-an-eTag-senden:43:24)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Function.from (node:buffer:320:9)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.283	error	Error in callback: TypeError: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of Object
                                          

                                          Hier mein Script

                                          
                                          sendTo('puppeteer.0', 'screenshot', { 
                                              url: urlOfVISView,                     
                                              path: imageSaveToFilenameWithPath,     
                                              width: viewWidth,                      
                                              height: viewHeight,                    
                                              quality: jpgQuality,                   
                                           
                                              waitOption: {
                                                  waitForSelector: waitForSelector,  
                                                  waitForTimeout: 30000              
                                              },
                                           
                                              fullPage: false,                       
                                           
                                              clip: {         
                                                  x: cutoutX,                        
                                                  y: cutoutY,                        
                                                  width: cutoutWidth,                
                                                  height: cutoutHeight               
                                              }
                                          }, obj => {
                                              if (obj.error) {
                                                  console.warn("Fehler beim Aufruf der View: " + urlOfVISView + " => " + obj.error.message);
                                              } else {
                                                  const http = require('http'); 
                                                  const https = require('https');
                                                  const { URL } = require('url');
                                           
                                                  const boundary = '--------------------------' + Date.now().toString(16);
                                                  const CRLF = '\r\n';
                                           
                                                  // Payload-Erstellung
                                                  const payload = Buffer.concat([
                                                      Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="dither"${CRLF}${CRLF}${dither}${CRLF}`),
                                                      Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="mac"${CRLF}${CRLF}${ePaperMAC}${CRLF}`),
                                                      Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="image"; filename="screenshot.jpg"${CRLF}Content-Type: image/jpeg${CRLF}${CRLF}`),
                                                      Buffer.from(obj.result, 'binary'),
                                                      Buffer.from(`${CRLF}--${boundary}--${CRLF}`)
                                                  ]);
                                           
                                                  // URL Parsing
                                                  const url = new URL(imageUploadURL);
                                                  const options = {
                                                      hostname: url.hostname,
                                                      port: url.port || (url.protocol === 'https:' ? 443 : 80),
                                                      path: url.pathname + (url.search || ''),
                                                      method: 'POST',
                                                      headers: {
                                                          'Content-Type': 'multipart/form-data; boundary=' + boundary,
                                                          'Content-Length': payload.length
                                                      }
                                                  };
                                           
                                                  // Protokollwahl
                                                  const protocol = url.protocol === 'https:' ? https : http;
                                           
                                                  // HTTP Request
                                                  const req = protocol.request(options, function(res) {
                                                      console.log('ImageUploadStatusCode:', res.statusCode);
                                                      res.on('data', function(chunk) {
                                                          console.log('Response:', chunk.toString());
                                                      });
                                                  });
                                           
                                                  req.on('error', function(e) {
                                                      console.error('Fehler beim Hochladen:', e.message);
                                                  });
                                           
                                                  req.write(payload);
                                                  req.end();
                                              }
                                          });
                                          
                                          
                                          B Offline
                                          B Offline
                                          Beowolf
                                          wrote on last edited by
                                          #790

                                          @glitzi
                                          Jepp, ist so.

                                          wieder zurück auf 0.2.8 und alles ist gut.

                                          Änderung in der

                                          /opt/iobroker/node_modules/iobroker.puppeteer/build/main.js

                                          nicht vergessen.

                                          Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                          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

                                          840

                                          Online

                                          32.5k

                                          Users

                                          81.6k

                                          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