NEWS
Puppeteer: Screenshots PhantomJS Alternative
-
@foxriver76 ok
aber verstehe jetzt nicht die Nutzung der Datenpunkte ??
wenn ich alle 60 min ein bild haben will.. was nutz ich da.. stehe bissel auf dem Schlauch
@arteck Wenn du nicht so der "Skript Typ" bist, kannst du einige der oft genutzten Optionen direkt über die Datenpunkte festlegen und dann schreibst du eine
urlin denurlstate und ein Screenshot wird erstellt. Das ist etwas angelehnt an die Logik vom Phantom.JS Adapter, soweit ich mich erinnere.Mit
sendTohast du deutlich mehr Optionen zur Verfügung und bekommst z. B. auch das Bild direkt im Callback falls du es codetechnsich weiterverarbeiten möchtest. -
@foxriver76 ok
aber verstehe jetzt nicht die Nutzung der Datenpunkte ??
wenn ich alle 60 min ein bild haben will.. was nutz ich da.. stehe bissel auf dem Schlauch
@arteck Es gibt keine Option, das regelmäßig festzulegen.
Sprich du würdest dein Code (entweder
setStateauf denurlState oder deinsendTo) in einenschedulepacken der jede Minute triggered oder im Callback von der Funktion die Funktion mitsetTimeoutin 60 Sekunden erneut aufrufen -
@arteck Es gibt keine Option, das regelmäßig festzulegen.
Sprich du würdest dein Code (entweder
setStateauf denurlState oder deinsendTo) in einenschedulepacken der jede Minute triggered oder im Callback von der Funktion die Funktion mitsetTimeoutin 60 Sekunden erneut aufrufen@foxriver76 ahh ok.. jetzt ja..THX
-
Aktuelle Test Version 0.1.0 Veröffentlichungsdatum 16.05.2021 Github Link https://github.com/foxriver76/ioBroker.puppeteer Hallo zusammen,
ich habe vor kurzem einen neuen Adapter geschrieben, der ebenso wie PhantomJS Screenshots von diversen Webseiten machen kann. Hauptmotivation war, dass PhantomJS (nicht Adapter sondern Browser selbst) nicht mehr weiterentwickelt wird. Puppeteer stellt hier eine super Alternative dar um Chrome Browser zu steuern.
Der Adapter bringt einen Browser selbst mit, somit muss sich um keine separate Installation gekümmert werden. Bislang arbeitet der Adapter ähnlich wie der PhantomJS Adapter, nur mit States und Messages. Er hat demnach keine Admin UI.
Eine Anleitung findet ihr in der README: https://github.com/foxriver76/ioBroker.puppeteer#how-to
Mittels Messages habe ich das ganze sehr offen gehalten, so dass jegliche Optionen direkt an die Puppeteer API weitergereicht werden und ihr nicht durch den Adapter limitiert werdet. Siehe https://github.com/foxriver76/ioBroker.puppeteer#messages
Der Adapter sollte spätestens morgen im Latest Repository verfügbar sein, bzw. ab sofort per GitHub.
Ich freue mich auf Feedback.
beste Grüße
fox
Hi,
Hab die v0.2.6 im Docker mal installiert, leider meckert er beim installieren schon, dass die Version veraltet ist und empfiehlt >19.2 zu installieren..
Machst du mal n Update, so funktioniert der Adapter im Docker nicht..?
Log kann ich gerne nachreichen -
Hi,
Hab die v0.2.6 im Docker mal installiert, leider meckert er beim installieren schon, dass die Version veraltet ist und empfiehlt >19.2 zu installieren..
Machst du mal n Update, so funktioniert der Adapter im Docker nicht..?
Log kann ich gerne nachreichen -
@ilovegym keine Ahnung welche Version du meinst, gerne Log zeigen
Bin am Tablett mit meinen dicken Fingern.. verwende den buanet Docker mit Node 16
hier beim installieren:host.iobroker 2023-03-18 21:09:38.495 info iobroker npm WARN deprecated puppeteer@13.7.0: < 19.2.0 is no longer supportedDann beim starten des Adapter:
puppeteer.0 2023-03-18 21:10:24.951 error Error: Failed to launch the browser process![0318/211024.570664:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.#0 0x55aca5667b89 base::debug::CollectStackTrace()#1 0x55aca55cc433 base::debug::StackTrace::StackTrace()#2 0x55aca55df330 logging::LogMessage::~LogMessage()#3 0x55aca35c499b content::ZygoteHostImpl::Init()#4 0x55aca5175372 content::ContentMainRunnerImpl::Initialize()#5 0x55aca5173439 content::RunContentProcess()#6 0x55aca517358e content::ContentMain()#7 0x55aca51ced7a headless::(anonymous namespace)::RunContentMain()#8 0x55aca51cea85 headless::HeadlessShellMain()#9 0x55aca1c323e8 ChromeMain#10 0x7effdda9dd0a __libc_start_main#11 0x55aca1c3222a _startTROUBLESHOOTING: 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:525:35) at Interface.close (node:readline:590:8) at Socket.onend (node:readline:280:10) at Socket.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1358:12) at processTicksAndRejections (node:internal/process/task_queues:83:21) puppeteer.0 2023-03-18 21:10:24.950 error unhandled promise rejection: Failed to launch the browser process![0318/211024.570664:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.#0 0x55aca5667b89 base::debug::CollectStackTrace()#1 0x55aca55cc433 base::debug::StackTrace::StackTrace()#2 0x55aca55df330 logging::LogMessage::~LogMessage()#3 0x55aca35c499b content::ZygoteHostImpl::Init()#4 0x55aca5175372 content::ContentMainRunnerImpl::Initialize()#5 0x55aca5173439 content::RunContentProcess()#6 0x55aca517358e content::ContentMain()#7 0x55aca51ced7a headless::(anonymous namespace)::RunContentMain()#8 0x55aca51cea85 headless::HeadlessShellMain()#9 0x55aca1c323e8 ChromeMain#10 0x7effdda9dd0a __libc_start_main#11 0x55aca1c3222a _startTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md -
Bin am Tablett mit meinen dicken Fingern.. verwende den buanet Docker mit Node 16
hier beim installieren:host.iobroker 2023-03-18 21:09:38.495 info iobroker npm WARN deprecated puppeteer@13.7.0: < 19.2.0 is no longer supportedDann beim starten des Adapter:
puppeteer.0 2023-03-18 21:10:24.951 error Error: Failed to launch the browser process![0318/211024.570664:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.#0 0x55aca5667b89 base::debug::CollectStackTrace()#1 0x55aca55cc433 base::debug::StackTrace::StackTrace()#2 0x55aca55df330 logging::LogMessage::~LogMessage()#3 0x55aca35c499b content::ZygoteHostImpl::Init()#4 0x55aca5175372 content::ContentMainRunnerImpl::Initialize()#5 0x55aca5173439 content::RunContentProcess()#6 0x55aca517358e content::ContentMain()#7 0x55aca51ced7a headless::(anonymous namespace)::RunContentMain()#8 0x55aca51cea85 headless::HeadlessShellMain()#9 0x55aca1c323e8 ChromeMain#10 0x7effdda9dd0a __libc_start_main#11 0x55aca1c3222a _startTROUBLESHOOTING: 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:525:35) at Interface.close (node:readline:590:8) at Socket.onend (node:readline:280:10) at Socket.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1358:12) at processTicksAndRejections (node:internal/process/task_queues:83:21) puppeteer.0 2023-03-18 21:10:24.950 error unhandled promise rejection: Failed to launch the browser process![0318/211024.570664:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.#0 0x55aca5667b89 base::debug::CollectStackTrace()#1 0x55aca55cc433 base::debug::StackTrace::StackTrace()#2 0x55aca55df330 logging::LogMessage::~LogMessage()#3 0x55aca35c499b content::ZygoteHostImpl::Init()#4 0x55aca5175372 content::ContentMainRunnerImpl::Initialize()#5 0x55aca5173439 content::RunContentProcess()#6 0x55aca517358e content::ContentMain()#7 0x55aca51ced7a headless::(anonymous namespace)::RunContentMain()#8 0x55aca51cea85 headless::HeadlessShellMain()#9 0x55aca1c323e8 ChromeMain#10 0x7effdda9dd0a __libc_start_main#11 0x55aca1c3222a _startTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md -
@foxriver76 ja, fand ich auch, hab noch ein Problem, denke das kann auch am Docker liegen.. ? der kann irgendwie Chrome nicht starten oder hat n Problem mit der sandbox.. ??
-
@foxriver76 ja, fand ich auch, hab noch ein Problem, denke das kann auch am Docker liegen.. ? der kann irgendwie Chrome nicht starten oder hat n Problem mit der sandbox.. ??
@ilovegym Probier mal bitte das im Container https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#recommended-enable-user-namespace-cloning
-
Hi,
Hat leider nicht funktioniert, Variante a sagt den Datenpunkt in proc/sys gibts nicht, und bei Variante b find ich die chrome_sandbox nicht.. hmmHat noch einer den Adapter im Docker laufen?
-
Puppender stürzt bei mir auch ab, weil der Adapter wohl auch den Browser nicht starten kann.
OS: Debian
Node:v14.21.3
npm: 6.14.18
iobroker: aktuelle Versionen vom stable Repro.apt update und apt upgrade habe ich gemacht und gebootet.
2023-04-21 06:39:42.178 - info: puppeteer.0 (2686) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v14.21.3, js-controller: 4.0.24 2023-04-21 06:39:42.288 - error: puppeteer.0 (2686) 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(). 2023-04-21 06:39:42.290 - error: puppeteer.0 (2686) unhandled promise rejection: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting 2023-04-21 06:39:42.294 - error: puppeteer.0 (2686) Error: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting at ChildProcess.onClose (/opt/iobroker/node_modules/@puppeteer/browsers/lib/cjs/launch.js:262:24) at ChildProcess.emit (events.js:412:35) at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12) 2023-04-21 06:39:42.295 - error: puppeteer.0 (2686) Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting 2023-04-21 06:39:42.310 - info: puppeteer.0 (2686) terminating 2023-04-21 06:39:42.313 - warn: puppeteer.0 (2686) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-04-21 06:39:42.942 - error: host.Thom -
Puppender stürzt bei mir auch ab, weil der Adapter wohl auch den Browser nicht starten kann.
OS: Debian
Node:v14.21.3
npm: 6.14.18
iobroker: aktuelle Versionen vom stable Repro.apt update und apt upgrade habe ich gemacht und gebootet.
2023-04-21 06:39:42.178 - info: puppeteer.0 (2686) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v14.21.3, js-controller: 4.0.24 2023-04-21 06:39:42.288 - error: puppeteer.0 (2686) 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(). 2023-04-21 06:39:42.290 - error: puppeteer.0 (2686) unhandled promise rejection: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting 2023-04-21 06:39:42.294 - error: puppeteer.0 (2686) Error: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting at ChildProcess.onClose (/opt/iobroker/node_modules/@puppeteer/browsers/lib/cjs/launch.js:262:24) at ChildProcess.emit (events.js:412:35) at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12) 2023-04-21 06:39:42.295 - error: puppeteer.0 (2686) Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting 2023-04-21 06:39:42.310 - info: puppeteer.0 (2686) terminating 2023-04-21 06:39:42.313 - warn: puppeteer.0 (2686) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-04-21 06:39:42.942 - error: host.Thom@marty56 sagte in Puppeteer: Screenshots PhantomJS Alternative:
Node:v14.21.3
Versuchs mal mit aktueller nodejs-Version.
-
Puppender stürzt bei mir auch ab, weil der Adapter wohl auch den Browser nicht starten kann.
OS: Debian
Node:v14.21.3
npm: 6.14.18
iobroker: aktuelle Versionen vom stable Repro.apt update und apt upgrade habe ich gemacht und gebootet.
2023-04-21 06:39:42.178 - info: puppeteer.0 (2686) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v14.21.3, js-controller: 4.0.24 2023-04-21 06:39:42.288 - error: puppeteer.0 (2686) 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(). 2023-04-21 06:39:42.290 - error: puppeteer.0 (2686) unhandled promise rejection: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting 2023-04-21 06:39:42.294 - error: puppeteer.0 (2686) Error: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting at ChildProcess.onClose (/opt/iobroker/node_modules/@puppeteer/browsers/lib/cjs/launch.js:262:24) at ChildProcess.emit (events.js:412:35) at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12) 2023-04-21 06:39:42.295 - error: puppeteer.0 (2686) Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting 2023-04-21 06:39:42.310 - info: puppeteer.0 (2686) terminating 2023-04-21 06:39:42.313 - warn: puppeteer.0 (2686) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-04-21 06:39:42.942 - error: host.Thom@marty56 ist das ein Docker oder sowas? Ist Chrome und der Adapter mit allen Depencies installiert, also nur den Adapter alleine geht ja nicht, wie du in der Anleitung gelesen hast.. :)
-
@marty56 ist das ein Docker oder sowas? Ist Chrome und der Adapter mit allen Depencies installiert, also nur den Adapter alleine geht ja nicht, wie du in der Anleitung gelesen hast.. :)
-
@ilovegym Ich finde keine Anleitung zum Installieren. Im Github readme steht nur, wie man puppeteer benutzt, wenn er installiert ist.
Wo finde ich das Vorgehen zum Installieren von chrome?
@marty56 hast recht, habs mit Phantomjs verwechselt.. hier sollten alle depencies mit installiert werden..
und das linux ist aufm Raspi installiert, kein Docker? -
@marty56 hast recht, habs mit Phantomjs verwechselt.. hier sollten alle depencies mit installiert werden..
und das linux ist aufm Raspi installiert, kein Docker?@ilovegym Aber Dein Hinweis hat mich auf eine Spur gebraucht. Ich habe bemerkt, dass ich unter
/opt/iobroker/node_modules/puppeteer kein verstecktes Verzeichnis
.local-chromium habe.Keine Ahnung warum. ich habe ganz normal über den Tab Adapter installiert.
-
Ich weiß ja nicht ob die Intention von @foxriver76 ist die libs selber mitzubringen, aber die sind systemweit in den genannten Paketen drin.
apt policy libnss3 libnspr4 libgbm1 -
Danke für den Adapter!
Gibt es eine Möglichkeit die Qualität des generierten jpg einzustellen?
-
@arteck vielen Dank für das manual! Das kenne ich bereits. Mir ging es hier in dem Beitrag rund um den Adapter für iobroker darum, ob man es ermöglichen kann, den Parameter mit quality zusätzlich zur Clip höhe/breite usw mit übertragen kann.
Das ist ja nicht möglich, da ja nur die wichtigsten Parameter eingetragen werden können.
-
@arteck vielen Dank für das manual! Das kenne ich bereits. Mir ging es hier in dem Beitrag rund um den Adapter für iobroker darum, ob man es ermöglichen kann, den Parameter mit quality zusätzlich zur Clip höhe/breite usw mit übertragen kann.
Das ist ja nicht möglich, da ja nur die wichtigsten Parameter eingetragen werden können.