Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Puppeteer: Screenshots PhantomJS Alternative

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Puppeteer: Screenshots PhantomJS Alternative

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fraso @foxriver76 last edited by

      @foxriver76

      Hi,
      ich hatte es das erste mal mit Admin installiert.
      Der Adapter wurde nicht angezeigt in meiner Liste.
      Dann habe ich den Adapter gelöscht und ich konnte nicht neu installieren über Admin.
      Dann habe ich npm genutzt.
      Das oben ist das Ergebnis. Der Adapter wird trotzdem nicht angezeigt und über ADMIN kann ich den Adapter auch nicht mehr sehen / suchen.

      Danke.

      1 Reply Last reply Reply Quote 0
      • Negalein
        Negalein Global Moderator @foxriver76 last edited by

        @foxriver76

        Hallo

        Ich möchte gern das alte Phantomjs Script durch Puppeteer ersetzen.
        Bin gerade komplett überfordert damit.

        Könntest du mir da weiterhelfen?

        schedule("*/5 * * * *", function () {
         sendTo("phantomjs.0", "send", {
            url: 'http://10.0.1.203:3000/d/14q2Khmnz/wetterstation-copy?orgId=1&refresh=1m&kiosk',
            output: 'wetterstation.png',
            width: '1920',
            height: '757',
            renderTime: '60000'
         });
         exec('wput -nc /opt/iobroker/node_modules/iobroker.phantomjs/wetterstation.png ftp://xxxxx:xxxxx@www37.world4you.com');
         console.log("exec: " + 'wput -nc /opt/iobroker/node_modules/iobroker.phantomjs/wetterstation.png ftp://xxxxx:xxxxx@www37.world4you.com');
        });
        

        sendTo('puppeteer.0', 'screenshot', { url: 'https://www.google.com',
             ioBrokerOptions: {
               /**
                * Define a filename for the ioBroker storage
                */
               storagePath: `screenshots/grafana-${new Date().toLocaleString()}.png`
             },
             /**
              * Define at most one wait option
              * You can also look for other waitOptions currently supported by Puppeteer API
              * see e.g. https://puppeteer.github.io/puppeteer/docs/puppeteer.page.waitforfilechooser
              */
             waitOption: {
               /**
                * Define a Timeout in ms
                */
               waitForTimeout: 1000,
             }
         }, obj => {
             if (obj.error) {
               log(`Error taking screenshot: ${obj.error.message}`, 'error');
             } else {
               // the binary representation of the image is contained in `obj.result`
               log(`Sucessfully took screenshot: ${obj.result}`);
             }
        });
        

        foxriver76 1 Reply Last reply Reply Quote 0
        • foxriver76
          foxriver76 Developer @Negalein last edited by foxriver76

          @negalein

          Wenn du es 1 zu 1 so ersetzen möchtest, dann probiere mal

          sendTo('puppeteer.0', 'screenshot', { 
              url: 'http://10.0.1.203:3000/d/14q2Khmnz/wetterstation-copy?orgId=1&refresh=1m&kiosk',
              path: '../wetterstation.png' // sollte dann in /opt/iobroker/node_modules/iobroker.puppeteer/ landen
          });
          
          

          Entsprechend dann den Pfad in deinem exec anpassen. Dann mal schauen was bei dem Screenshot rum kommt, evtl. dann noch mit clip oder fullPage spielen. https://pptr.dev/api/puppeteer.screenshotoptions

          Abgesehen davon, dass du Dateien im Adapter Ordner ablegst, möchtest du evtl. das exec auch ins callback packen, da du sonst ein altes Bild sendest, wenn ich dein Skript gerade richtig interpretiere.

          Negalein 1 Reply Last reply Reply Quote 0
          • Negalein
            Negalein Global Moderator @foxriver76 last edited by

            @foxriver76 sagte in Puppeteer: Screenshots PhantomJS Alternative:

            evtl. dann noch mit clip

            Ok, mit clip? geb ich dann die Dimension vor.
            Dann nicht wie bei Phantomjs mit height und width.

            sendTo('puppeteer.0', 'screenshot', { 
                url: 'http://10.0.1.203:3000/d/14q2Khmnz/wetterstation-copy?orgId=1&refresh=1m&kiosk',
                clip?: 1920x757
                path: '../wetterstation.png'
            });
            

            Abgesehen davon, dass du Dateien im Adapter Ordner ablegst, möchtest du evtl. das exec auch ins callback packen, da du sonst ein altes Bild sendest, wenn ich dein Skript gerade richtig interpretiere.

            Hmmm, versteh Bahnhof.
            Im Phantom-Script funktionierte es. Er hat das .png in /opt/iobroker/node_modules/iobroker.phantomjs/ gespeichert und dann gleich auf den FTP gespielt.
            Ahhh, stimmt. Kam vor, dass zT nur ein kaputtes halbes Bild am FTP angekommen ist.

            foxriver76 1 Reply Last reply Reply Quote 0
            • foxriver76
              foxriver76 Developer @Negalein last edited by

              @negalein Clip ist zum ausschneiden eines Bildes. Wenn du eine Auflösung festlegen möchtest, werde ich evtl nochmal machbesseren dürfen, da man dies leider anderweitig setzen muss. Probier mal bitte ob es sonst soweit passt für dich und dann implementiere ich noch die Auflösung.

              Negalein 1 Reply Last reply Reply Quote 0
              • Negalein
                Negalein Global Moderator @foxriver76 last edited by

                @foxriver76 sagte in Puppeteer: Screenshots PhantomJS Alternative:

                Auflösung

                Danke

                Auflösung war etwas irrtümlich ausgedrückt.
                Ich meinte den Bildausschnitt. zB 1920 px von der oberen linken Ecke nach rechts, 757 px von der oberen linken Ecke nach unten.

                foxriver76 1 Reply Last reply Reply Quote 0
                • foxriver76
                  foxriver76 Developer @Negalein last edited by

                  @negalein Dann mit clip

                  {
                    clip: {
                      x: 0,
                      y: 0,
                      width: 1920,
                      height: 757
                    }
                  }
                  

                  zusätzlich angeben, siehe https://pptr.dev/api/puppeteer.screenshotclip

                  Negalein 1 Reply Last reply Reply Quote 1
                  • Negalein
                    Negalein Global Moderator @foxriver76 last edited by

                    @foxriver76 sagte in Puppeteer: Screenshots PhantomJS Alternative:

                    Dann mit clip

                    Sorry für die Verspätung. War im Urlaub.

                    Hab es jetzt so versucht.

                    sendTo('puppeteer.0', 'screenshot', { 
                        url: 'http://10.0.1.203:3000/d/14q2Khmnz/wetterstation-copy?orgId=1&refresh=1m&kiosk',
                    {
                      clip: {
                        x: 0,
                        y: 0,
                        width: 1920,
                        height: 757
                      }
                    }
                        path: '../wetterstation.png' // sollte dann in /opt/iobroker/node_modules/iobroker.puppeteer/ landen
                    });
                    

                    Dann kommt error javascript.0 (1426) script.js.Wetter.Wetter_to_FTP compile failed: at script.js.Wetter.Wetter_to_FTP:3

                    foxriver76 1 Reply Last reply Reply Quote 0
                    • foxriver76
                      foxriver76 Developer @Negalein last edited by

                      @negalein nach der geschweiften Klammer in der Zeile über path fehlt ein Komma.

                      Negalein 1 Reply Last reply Reply Quote 0
                      • Negalein
                        Negalein Global Moderator @foxriver76 last edited by

                        @foxriver76 sagte in Puppeteer: Screenshots PhantomJS Alternative:

                        nach der geschweiften Klammer in der Zeile über path fehlt ein Komma.

                        leider selber Fehler

                        sendTo('puppeteer.0', 'screenshot', { 
                            url: 'http://10.0.1.203:3000/d/14q2Khmnz/wetterstation-copy?orgId=1&refresh=1m&kiosk',
                        {
                          clip: {
                            x: 0,
                            y: 0,
                            width: 1920,
                            height: 757
                          }
                        },
                            path: '../wetterstation.png' // sollte dann in /opt/iobroker/node_modules/iobroker.puppeteer/ landen
                        });
                        

                        23:07:58.219 error javascript.0 (1426) script.js.Wetter.Wetter_to_FTP compile failed: at script.js.Wetter.Wetter_to_FTP:3

                        foxriver76 1 Reply Last reply Reply Quote 0
                        • foxriver76
                          foxriver76 Developer @Negalein last edited by

                          @negalein

                          sendTo('puppeteer.0', 'screenshot', { 
                              url: 'http://10.0.1.203:3000/d/14q2Khmnz/wetterstation-copy?orgId=1&refresh=1m&kiosk',
                              clip: {
                                  x: 0,
                                  y: 0,
                                  width: 1920,
                                  height: 757
                              },
                              path: '../wetterstation.png' // sollte dann in /opt/iobroker/node_modules/iobroker.puppeteer/ landen
                          });
                          
                          Negalein 2 Replies Last reply Reply Quote 0
                          • Negalein
                            Negalein Global Moderator @foxriver76 last edited by

                            @foxriver76

                            Danke
                            Jetzt kommt keine Meldung 🙂

                            Aber er speichert nichts in /opt/iobroker/node_modules/iobroker.puppeteer/

                            5f3e281d-4704-48b8-b796-e5067cd4d426-image.png

                            DP sind auch leer
                            f365dabc-a538-4ae9-9af8-6e930f407989-image.png

                            1 Reply Last reply Reply Quote 0
                            • Negalein
                              Negalein Global Moderator @foxriver76 last edited by

                              @foxriver76

                              Edit:
                              hatte den Adapter nicht gestartet 😞

                              Adapter gestartet, kommt folgendes:

                              puppeteer.0 2022-08-11 23:53:10.863	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
                              puppeteer.0 2022-08-11 23:53:10.862	info	terminating
                              puppeteer.0 2022-08-11 23:53:10.858	error	Failed to launch the browser process!/opt/iobroker/node_modules/puppeteer/.local-chromium/linux-982053/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directoryTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
                              puppeteer.0 2022-08-11 23:53:10.857	error	Error: Failed to launch the browser process!/opt/iobroker/node_modules/puppeteer/.local-chromium/linux-982053/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directoryTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md at onClose (/opt/iobroker/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:241:20) at Interface.<anonymous> (/opt/iobroker/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:231:68) at Interface.emit (node:events:539:35) at Interface.close (node:readline:586:8) at Socket.onend (node:readline:277:10) at Socket.emit (node:events:539:35) at endReadableNT (node:internal/streams/readable:1345:12) at processTicksAndRejections (node:internal/process/task_queues:83:21)
                              puppeteer.0 2022-08-11 23:53:10.856	error	unhandled promise rejection: Failed to launch the browser process!/opt/iobroker/node_modules/puppeteer/.local-chromium/linux-982053/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directoryTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
                              puppeteer.0 2022-08-11 23:53:10.856	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                              puppeteer.0 2022-08-11 23:53:10.787	info	starting. Version 0.2.1 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v16.15.1, js-controller: 4.0.23
                              
                              foxriver76 1 Reply Last reply Reply Quote 0
                              • foxriver76
                                foxriver76 Developer @Negalein last edited by

                                @negalein lösche mal den Adapter und installiere ihn neu bitte. Am Anfang wurden die libraries nicht mit installiert und bei update passiert das leider nicht.

                                Negalein 1 Reply Last reply Reply Quote 0
                                • Negalein
                                  Negalein Global Moderator @foxriver76 last edited by

                                  @foxriver76

                                  leider selbes Ergebnis

                                  puppeteer.0 2022-08-12 00:26:10.626	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
                                  puppeteer.0 2022-08-12 00:26:10.626	info	terminating
                                  puppeteer.0 2022-08-12 00:26:10.618	error	Failed to launch the browser process! TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
                                  puppeteer.0 2022-08-12 00:26:10.617	error	Error: Failed to launch the browser process! TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md at onClose (/opt/iobroker/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:241:20) at ChildProcess.<anonymous> (/opt/iobroker/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:232:79) at ChildProcess.emit (node:events:539:35) at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
                                  puppeteer.0 2022-08-12 00:26:10.617	error	unhandled promise rejection: Failed to launch the browser process! TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
                                  puppeteer.0 2022-08-12 00:26:10.616	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                                  puppeteer.0 2022-08-12 00:26:10.582	info	starting. Version 0.2.1 (non-npm: foxriver76/ioBroker.puppeteer) in /opt/iobroker/node_modules/iobroker.puppeteer, node: v16.15.1, js-controller: 4.0.23
                                  
                                  foxriver76 1 Reply Last reply Reply Quote 0
                                  • foxriver76
                                    foxriver76 Developer @Negalein last edited by

                                    @negalein zeig mal log von iob del puppeteer && iob add puppeteer

                                    Negalein 1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @foxriver76 last edited by

                                      @foxriver76 sagte in Puppeteer: Screenshots PhantomJS Alternative:

                                      zeig mal log von iob del puppeteer && iob add puppeteer

                                      nega@ioBroker:/opt/iobroker$ iob del puppeteer && iob add puppeteer
                                      Delete adapter "puppeteer"
                                      host.ioBroker Counted 1 instances of puppeteer
                                      host.ioBroker Counted 1 meta of puppeteer
                                      host.ioBroker Counted 1 adapter for puppeteer
                                      host.ioBroker Counted 9 states of puppeteer
                                      host.ioBroker Counted 14 states of system.adapter.puppeteer
                                      host.ioBroker Counted 3 states (io.puppeteer.*) from states
                                      host.ioBroker Counted 14 states (system.adapter.puppeteer.*) from states
                                      host.ioBroker file puppeteer.admin deleted
                                      host.ioBroker object puppeteer deleted
                                      host.ioBroker object puppeteer.admin deleted
                                      host.ioBroker Deleting 26 object(s).
                                      host.ioBroker Deleting 17 state(s).
                                      
                                      removed 25 packages in 3s
                                      
                                      193 packages are looking for funding
                                        run `npm fund` for details
                                      NPM version: 8.11.0
                                      Installing iobroker.puppeteer@0.2.1... (System call)
                                      
                                      added 25 packages in 11s
                                      
                                      193 packages are looking for funding
                                        run `npm fund` for details
                                      host.ioBroker install adapter puppeteer
                                      Cannot install "libnss3": E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/n/nss/libnss3_3.49.1-1ubuntu1.7_amd64.deb  404  Not Found [IP: 185.125.190.36 80]
                                      E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
                                      
                                      The following apt-get packages could not be installed: libnss3. Please install them manually.
                                      upload [0] puppeteer.admin /opt/iobroker/node_modules/iobroker.puppeteer/admin/puppeteer.png puppeteer.png image/png
                                      host.ioBroker object system.adapter.puppeteer created/updated
                                      host.ioBroker create instance puppeteer
                                      host.ioBroker object system.adapter.puppeteer.0.alive created
                                      host.ioBroker object system.adapter.puppeteer.0.connected created
                                      host.ioBroker object system.adapter.puppeteer.0.compactMode created
                                      host.ioBroker object system.adapter.puppeteer.0.cpu created
                                      host.ioBroker object system.adapter.puppeteer.0.cputime created
                                      host.ioBroker object system.adapter.puppeteer.0.memHeapUsed created
                                      host.ioBroker object system.adapter.puppeteer.0.memHeapTotal created
                                      host.ioBroker object system.adapter.puppeteer.0.memRss created
                                      host.ioBroker object system.adapter.puppeteer.0.uptime created
                                      host.ioBroker object system.adapter.puppeteer.0.inputCount created
                                      host.ioBroker object system.adapter.puppeteer.0.outputCount created
                                      host.ioBroker object system.adapter.puppeteer.0.eventLoopLag created
                                      host.ioBroker object system.adapter.puppeteer.0.sigKill created
                                      host.ioBroker object system.adapter.puppeteer.0.logLevel created
                                      host.ioBroker object puppeteer.0.url created
                                      host.ioBroker object puppeteer.0.filename created
                                      host.ioBroker object puppeteer.0.fullPage created
                                      host.ioBroker object puppeteer.0.clipTop created
                                      host.ioBroker object puppeteer.0.clipLeft created
                                      host.ioBroker object puppeteer.0.clipWidth created
                                      host.ioBroker object puppeteer.0.clipHeight created
                                      host.ioBroker object puppeteer.0.renderTime created
                                      host.ioBroker object puppeteer.0.waitForSelector created
                                      host.ioBroker Set default value of puppeteer.0.fullPage: false
                                      host.ioBroker Set default value of puppeteer.0.clipTop: 0
                                      host.ioBroker Set default value of puppeteer.0.clipLeft: 0
                                      host.ioBroker object system.adapter.puppeteer.0 created
                                      nega@ioBroker:/opt/iobroker$
                                      
                                      foxriver76 1 Reply Last reply Reply Quote 0
                                      • foxriver76
                                        foxriver76 Developer @Negalein last edited by

                                        @negalein Und nach wie vor der Fehler beim Start?

                                        Negalein 1 Reply Last reply Reply Quote 0
                                        • Negalein
                                          Negalein Global Moderator @foxriver76 last edited by

                                          @foxriver76 sagte in Puppeteer: Screenshots PhantomJS Alternative:

                                          Und nach wie vor der Fehler beim Start?

                                          Sorry, oben vergessen.
                                          Ja, wieder die Fehler.

                                          puppeteer.0 2022-08-12 11:05:59.293	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
                                          puppeteer.0 2022-08-12 11:05:59.292	info	terminating
                                          puppeteer.0 2022-08-12 11:05:59.287	error	Failed to launch the browser process!TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
                                          puppeteer.0 2022-08-12 11:05:59.286	error	Error: Failed to launch the browser process!TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md at onClose (/opt/iobroker/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:241:20) at ChildProcess.<anonymous> (/opt/iobroker/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:232:79) at ChildProcess.emit (node:events:539:35) at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
                                          puppeteer.0 2022-08-12 11:05:59.284	error	unhandled promise rejection: Failed to launch the browser process!TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
                                          puppeteer.0 2022-08-12 11:05:59.284	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                                          puppeteer.0 2022-08-12 11:05:59.250	info	starting. Version 0.2.1 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v16.15.1, js-controller: 4.0.23
                                          
                                          foxriver76 1 Reply Last reply Reply Quote 0
                                          • foxriver76
                                            foxriver76 Developer @Negalein last edited by

                                            @negalein Zeig mal bitte Output von ldd /opt/iobroker/node_modules/puppeteer/.local-chromium/linux-982053/chrome-linux/chrome | grep not

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            482
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            browser headless phantomjs puppeteer screenshot screenshots website
                                            23
                                            245
                                            25849
                                            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