NEWS
Puppeteer: Screenshots PhantomJS Alternative
-
mit bullseye läuft der ...
-
@arteck sagte in Puppeteer: Screenshots PhantomJS Alternative:
mit bullseye läuft der ...
Und deswegen predige ich ja auch immer nicht an abgekündigten Versionen festzuhalten und die Kisten auf Stand zu halten. Bringt nix sich da mit obsoletem Kram zu beschäftigen.
-
@thomas-braun dir auch schöne Feiertage
-
@foxriver76 so weiter gehts
puppeteer.0 2022-12-22 11:08:33.619 debug Write file to "wetterstation.png" puppeteer.0 2022-12-22 11:08:32.470 debug Message: {"command":"screenshot","message":{"url":"https://www.yr.no/en/forecast/graph/2-2860410/Germany/North%20Rhine-Westphalia/D%C3%BCsseldorf%20District/Oberhausen","clip":{"x":0,"y":0,"width":1000,"height":757},"ioBrokerOptions":{"storagePath":"wetterstation.png"},"viewportOptions":{"width":1600,"height":1000}},"from":"system.adapter.javascript.2","callback":{"message":{"url":"https://www.yr.no/en/forecast/graph/2-2860410/Germany/North%20Rhine-Westphalia/D%C3%BCsseldorf%20District/Oberhausen","clip":{"x":0,"y":0,"width":1000,"height":757},"ioBrokerOptions":{"storagePath":"wetterstation.png"},"viewportOptions":{"width":1600,"height":1000}},"id":1,"ack":false,"time":1671703712468},"_id":69097945} javascript.2 2022-12-22 11:14:19.409 info script.js.80_system.wetter: Sucessfully took screenshot: �PNG IHDR��T��sRGB��� IDATx���wTW�g�� MT�bD��bCE콠1�X�+ػb7{7�`�b�(��^������0�� ����w�Gv��̝;wedB"""""""�S��1@'""""""� Љ�������t"""""""-��������H0@'""""""�Љ�������t"""""""-��������H0@'""""""�Љ�������t"""""""-��������H0@'""""""�Љ�������t"""""""-��������H0@'""""""�Љ�������t"""""""-��������H0@'""""""�Љ�������t"""""""-��������H0@'""""""�Љ��.........
sieht eigentlich gut aus..ich hab das binary gekürzt..
aber kein file und die datenpunkte sind auch nicht gefüllt
sendTo('puppeteer.0', 'screenshot', { url: 'https://www.yr.no/en/forecast/graph/2-2860410/Germany/North%20Rhine-Westphalia/D%C3%BCsseldorf%20District/Oberhausen', clip: { x: 0, y: 0, width: 1000, height: 757 }, ioBrokerOptions: { storagePath: 'wetterstation.png', }, viewportOptions: { width: 1600, height: 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}`); } });
so rufe ich es auf ..sollte also in /opt/iobroker/iobroker-data/files/0_userdata.0 landen..ist aber nix da
-
@arteck Siehe:
https://github.com/foxriver76/ioBroker.puppeteer#how-to
States dienen nur der Konfiguration, falls du via States (sprich das setzen der
url
) einen Screenshot erstellen möchtest. Wenn du ausschließlich Messages nutzt können dir die States egal sein.Nutzt du eine Redis DB für die Objekte?
-
@foxriver76 jo Redis
ich wollte mir nur ein Bild des meteogramms machen und in die Vis pressen
-
@arteck Wenn Objekte in Redis, dann werden Dateien nicht raw auf dem FS abgespeichert, unabhängig vom Adapter. Du solltest diese z. B. im Admin in Dateien unter Benutzerdaten finden.
-
@foxriver76 recht hast du ja
da wo man es hinschiebt ist es auch
-
@foxriver76 Falls du es auf dem FS haben möchtest, kannst du die Option
path
auf Top Level mitgeben. Ist dann Puppeteer intern abgehandelt: https://pptr.dev/api/puppeteer.screenshotoptions.path -
@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
url
in denurl
state und ein Screenshot wird erstellt. Das ist etwas angelehnt an die Logik vom Phantom.JS Adapter, soweit ich mich erinnere.Mit
sendTo
hast du deutlich mehr Optionen zur Verfügung und bekommst z. B. auch das Bild direkt im Callback falls du es codetechnsich weiterverarbeiten möchtest. -
@arteck Es gibt keine Option, das regelmäßig festzulegen.
Sprich du würdest dein Code (entweder
setState
auf denurl
State oder deinsendTo
) in einenschedule
packen der jede Minute triggered oder im Callback von der Funktion die Funktion mitsetTimeout
in 60 Sekunden erneut aufrufen -
@foxriver76 ahh ok.. jetzt ja..THX
-
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 supported
Dann 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
-
@ilovegym Krass, die sind tatsächlich innerhalb von einem Jahr von 13 auf 19.
Ich habe eben eine 0.2.7 auf den Weg geschickt, gerne ausprobieren.
-
@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?