NEWS
Puppeteer: Screenshots PhantomJS Alternative
-
@foxriver76 Gerne:
npm ls --depth=4 | grep "pup" ├─┬ iobroker.puppeteer@0.2.6 │ └─┬ puppeteer@13.1.1 invalid: "^13.7.0" from node_modules/iobroker.puppeteer │ ├── devtools-protocol@0.0.981744 invalid: "0.0.948846" from node_modules/puppeteer │ ├─┬ https-proxy-agent@5.0.1 invalid: "5.0.0" from node_modules/puppeteer npm ERR! code ELSPROBLEMS npm ERR! extraneous: cross-fetch@3.1.5 /opt/iobroker/node_modules/cross-fetch npm ERR! invalid: puppeteer@13.1.1 /opt/iobroker/node_modules/puppeteer npm ERR! invalid: devtools-protocol@0.0.981744 /opt/iobroker/node_modules/devtools-protocol npm ERR! invalid: https-proxy-agent@5.0.1 /opt/iobroker/node_modules/puppeteer/node_modules/https-proxy-agent
const puppeteer = require("puppeteer"); async function run () { var url = "https://...."; const browser = await puppeteer.launch({executablePath: '/usr/bin/chromium-browser'}); const page = await browser.newPage(); await page.goto(url); await sleep(10000) await page.mouse.click(210, 210) await sleep(10000) await page.screenshot({path: '/opt/iobroker/wetter.png'}); browser.close(); }
puppeteer ist in der JS Adapter Admin Seite nicht hinzugefügt, damit es nicht wieder überschrieben wird beim nächsten Update.
-
@jojo182 Hm ja, du gibst den executable path an, das habe ich auch gelesen für Pi's
https://chsamii.medium.com/puppeteer-on-raspbian-nodejs-3425ccea470e
Ich überlege mir mal wie ich das am nutzerfreundlichsten lösen kann.
-
Das schleppt halt nur eine komplette X bzw. Desktopumgebung an.
-
Hallo,
gibt es eine Möglichkeit, wie ich im blocky skript den nächsten Schritt erst ausführen kann, wenn Puppeteer das Bild erstellt hat und das zurückmeldet?
VIelen Dank und Gruß
-
Habs gefunden.
Einfach den Haken bei Ergebniss setzen und dann kann ich das Result abfragen....;-)
-
EIDt - hat sich eredigt
statt minütlich war ein stern zuviel in cron- habe das sekündlich aufgerufen
-
@liv-in-sky LastTest für Dein System?
-
@apollon77 das darfst du glauben - da ging garnix mehr und nur wegen einem kleinen sternchen
das fiese war, das am anfang nur den js-controller bei 136.% gesehen habe und ich nur merkte, das ich keine admin tabs mehr bedienen kann - dann dachte ich , evtl hat sich mein admin adapter irgendwie verabschiedet. bis ich auf die idee kam, mein letzt-erstelltes script mal zu deaktivieren -
@foxriver76
Wollte nur mal Danke sagen für diesen funktionellen Adapter.
Damit ist es mir sehr schnell gelungen, von PhantomJS auf Puppeteer umzustellen und meine images für emails wieder zu erzeugen, nachdem der PhantomJS vor einer Woche aus unbekannten Gründen nicht mehr wollte.
Du hast mir den Tag gerettet, Danke.
Gruß Jens -
Ich muß mich noch mal melden.
Ab und zu passiert es immer noch, daß Images nicht korrekt erzeugt werden.
Sind vielleicht manchmal die Flot Ladezeiten zu lang?
Was kann man noch versuchen?
Hier im Beispiel ist eine von vier Graphiken nicht in Ordnung. Und das passiert auch wirklich sehr selten, vielleicht alle paar Tage mal, wo ich mir am Tag zu jeder Stunde emails mit Graphiken generiere.
Ärgerlich ist es trotzdem.
ich hab jetzt mal renderTime: 500 eingefügt, mal schauen, ob's hilft
-
@jensen mache das mit größerer wait time - hatte nie ein thema damit
-
@liv-in-sky
ok, danke, ist einen versuch Wert -
ich hätte da ein Problem
direkt frisch installiert
iobroker läuft in VM auf proxmox
-
@arteck Bitte in Zukunft in Code Tags oder irgendeiner Form in der ich die Meldung direkt kopieren kann.
Läuft iob in Docker?
-
@foxriver76 so kannst du doch mehr lesen...
host.iobroker 2022-12-22 08:33:52.410 error instance system.adapter.puppeteer.0 terminated with code 6 (UNCAUGHT_EXCEPTION) puppeteer.0 2022-12-22 08:33:51.872 warn Terminated (UNCAUGHT_EXCEPTION): Without reason puppeteer.0 2022-12-22 08:33:51.868 error Failed to launch the browser process![1222/083351.630700: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 0x55ae0b29fb89 base::debug::CollectStackTrace()#1 0x55ae0b204433 base::debug::StackTrace::StackTrace()#2 0x55ae0b217330 logging::LogMessage::~LogMessage()#3 0x55ae091fc99b content::ZygoteHostImpl::Init()#4 0x55ae0adad372 content::ContentMainRunnerImpl::Initialize()#5 0x55ae0adab439 content::RunContentProcess()#6 0x55ae0adab58e content::ContentMain()#7 0x55ae0ae06d7a headless::(anonymous namespace)::RunContentMain()#8 0x55ae0ae06a85 headless::HeadlessShellMain()#9 0x55ae0786a3e8 ChromeMain#10 0x7f49e348409b __libc_start_main#11 0x55ae0786a22a _startTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md puppeteer.0 2022-12-22 08:33:51.868 error Error: Failed to launch the browser process![1222/083351.630700: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 0x55ae0b29fb89 base::debug::CollectStackTrace()#1 0x55ae0b204433 base::debug::StackTrace::StackTrace()#2 0x55ae0b217330 logging::LogMessage::~LogMessage()#3 0x55ae091fc99b content::ZygoteHostImpl::Init()#4 0x55ae0adad372 content::ContentMainRunnerImpl::Initialize()#5 0x55ae0adab439 content::RunContentProcess()#6 0x55ae0adab58e content::ContentMain()#7 0x55ae0ae06d7a headless::(anonymous namespace)::RunContentMain()#8 0x55ae0ae06a85 headless::HeadlessShellMain()#9 0x55ae0786a3e8 ChromeMain#10 0x7f49e348409b __libc_start_main#11 0x55ae0786a22a _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 2022-12-22 08:33:51.867 error unhandled promise rejection: Failed to launch the browser process![1222/083351.630700: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 0x55ae0b29fb89 base::debug::CollectStackTrace()#1 0x55ae0b204433 base::debug::StackTrace::StackTrace()#2 0x55ae0b217330 logging::LogMessage::~LogMessage()#3 0x55ae091fc99b content::ZygoteHostImpl::Init()#4 0x55ae0adad372 content::ContentMainRunnerImpl::Initialize()#5 0x55ae0adab439 content::RunContentProcess()#6 0x55ae0adab58e content::ContentMain()#7 0x55ae0ae06d7a headless::(anonymous namespace)::RunContentMain()#8 0x55ae0ae06a85 headless::HeadlessShellMain()#9 0x55ae0786a3e8 ChromeMain#10 0x7f49e348409b __libc_start_main#11 0x55ae0786a22a _startTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md puppeteer.0 2022-12-22 08:33:51.865 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(). host.iobroker 2022-12-22 08:33:50.856 info instance system.adapter.puppeteer.0 started with pid 11315
debian VM in Proxmox
-
@arteck sagte in Puppeteer: Screenshots PhantomJS Alternative:
https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md
Welche Version von Debian?
-
@foxriver76 buster also 10
-
@arteck Okay, dann habe ich erst mal keine Idee, wie ich das allgemein fixen kann.
Du könntest für dich speziell, diese Lösung probieren und rückmelden ob das tut: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#recommended-enable-user-namespace-cloning
-
@foxriver76 ich geh mal auf bullseye mal schauen dann..
-
@arteck sagte in Puppeteer: Screenshots PhantomJS Alternative:
bullseye
damit läufts bei mir , siehe https://forum.iobroker.net/post/812880