NEWS
E-INK Display OpenEPaperLink - Displayanzeige mit Batterie
-
@beowolf sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:
Wie machst Du das auch mit den Screenshots von Puppeteer? Einfach die MAC Adresse des TAGs und irgend eine IP-Adresse von einem AP?
Ich nutze ja inzwischen nicht mehr Puppeteer sondern Playwright. Das legt mir die Screenshot so ab das diese per Webserver erreichbar sind.
Die Tags stehen auf Image-URL:Da meine beiden APs weit genug auseinander sind, machen die normalerweise kein Roaming.
Die Tags sind meine ich so konfiguriert:
Scan for AP on timeout könnte da aber schon reichen -
Hast du eine Anleitung bezüglich Playwright auf einem Raspberry?
Würde ich dann auch derne probieren.
-
@beowolf nein, habe ich nicht.
pip install pytest-playwright playwright install
funktioniert vermutlich? Eine schnelle Suche ergab das Playwright seit Version 17 auch ARM64 unterstützt.
Sieh auch: https://playwright.dev/python/docs/introMein Skript findest du unter https://forum.iobroker.net/post/1184915
Auf dem System muss zusätzlich auchsudo install imagemagick
Installiert sein. Playwright habe ich ja deshalb genommen weil es damit gelang die Screenshots in 4facher Vergrößerung zu erstellen und dann wieder mit
convert
(von imagemagick) verkleinere. So haben die Bilder auf den Tags keine Fransen mehr. -
Hi,
kann mir bitte jemand helfen bei dem Punkt Puppeteer auf einem Raspberry zu laufen zu kriegen....Auf ioBroker ist es installiert, Chromium ebenfalls, nur komme ich mit der "Anleitung" nicht weiter...
Additional context
I've fixed the problem by first installing chromium (Debian 12 / ARM64 in my case):
sudo apt install chromiumDer Punkt:
Change the adapter's main.js onReady() function to load the correct binary (chromium in my case):async onReady() { this.browser = await import_puppeteer.default.launch({ headless: "new", defaultViewport: null, executablePath: '/usr/bin/chromium', args: ['--no-sandbox', '--disable-setuid-sandbox'] }); this.subscribeStates("url"); this.log.info("Ready to take screenshots"); }
Wo und wie muss ich den Codeschnippsel einfügen?
Wo finde ich diese main.js und bzw. bezieht sich dies auf Chromium oder Puppeteer?Danke.
-
Das bekommen wir hin.
Die Datei ist hier
/opt/iobroker/node_modules/iobroker.puppeteer/build
In der Datei ab Zeile 32 (bitte genau nachschauen) wir das Vorhandene ersetzt.
WICHTIG.
Wenn du ein Backup einspielst, muß die Änderung erneut gemacht werden.
-
@beowolf :
super danke für die schnelle Antwort!So hab ich das nun eingefügt:
Aber laufen mag es trotzdem nicht:
-
-
@beowolf
Es war die 0.3.0 drauf.
Mit der 0.2.7 läuft es nun.
Danke Dir! -
Bei der aktuellen Puppeteer-Version kann man den Pfad in den Einstellungen ändern. Muss nix mehr in der main.js "gehackt" werden
-
Und was muß dort dann stehen?
-
@beowolf Wenn Du Chromium installiert hast, dann z.B. /usr/bin/chromium
Also das, was Du sonst manuell in die main.js schreiben würdest. Kommt darauf an, wie Du Chromium auf Deinem System installieren kannst.
-
@beowolf sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:
Und was muß dort dann stehen?
Den Installationspfad kannst du z. B. so herausfinden:
type -P chromium
-
Jetzt hab ich doch noch ein Problem und ein paar kleinere Verständnis Fragen:
Zum ersten hab ich mal drei Bilder gemacht. Zwischen den Bildern liegen 5 Minuten Abstand, den ich per Blockly trickere. Das mit den nicht verfügbaren Werten scheint wahllos zu sein.
Liegt das am Timing (waitForTimeout) der auf 10000ms gestellt ist und die Seite noch nicht sauber geladen wurde?
Btw. wie könnte man die Zeit ändern? Wenn ich von Blockly auf JS umstelle, scheint es "Schreibgeschützt".
.Zu meinen Verständnis Fragen:
Was bewirken die Optionen genau?:
Für was kann man die Auflösung der Website einstellen? Also was bewirkt es dann am Tag?
Und was genau bewirkt die Qualitätseinstellung?
Bzw. Innerhalb welchen Bereichs kann man diese verstellen?Und meine zwei letzten Fragen beziehen sich auf die AP Config:
Was kann man mit diesen beiden Optionen einstellen?
Herzlichen Dank schonmal im voraus.
-
Jetzt hab ich doch noch ein Problem und ein paar kleinere Verständnis Fragen:
Zum ersten hab ich mal drei Bilder gemacht. Zwischen den Bildern liegen 5 Minuten Abstand, den ich per Blockly trickere. Das mit den nicht verfügbaren Werten scheint wahllos zu sein.
Liegt das am Timing (waitForTimeout) der auf 10000ms gestellt ist und die Seite noch nicht sauber geladen wurde?
Btw. wie könnte man die Zeit ändern? Wenn ich von Blockly auf JS umstelle, scheint es "Schreibgeschützt".
.
Zu meinen Verständnis Fragen:
Was bewirken die Optionen genau?:
Für was kann man die Auflösung der Website einstellen? Also was bewirkt es dann am Tag?
Und was genau bewirkt die Qualitätseinstellung?
Bzw. Innerhalb welchen Bereichs kann man diese verstellen?Und meine zwei letzten Fragen beziehen sich auf die AP Config:
Was kann man mit diesen beiden Optionen einstellen?
Herzlichen Dank schonmal im voraus.
-
Ich habe chromium installiert.
Und
type -P chromium
gibt auch
/usr/bin/chromium
zurück.
Wenn ich das im Adapter eintrage
kommt das als Fehlermeldung im Protokoll
host.raspberrypi 2024-09-21 20:57:53.253 info Restart adapter system.adapter.puppeteer.0 because enabled host.raspberrypi 2024-09-21 20:57:53.252 error instance system.adapter.puppeteer.0 terminated with code 6 (UNCAUGHT_EXCEPTION) puppeteer.0 2024-09-21 20:57:52.505 warn Terminated (UNCAUGHT_EXCEPTION): Without reason puppeteer.0 2024-09-21 20:57:52.504 info terminating puppeteer.0 2024-09-21 20:57:52.498 error Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting puppeteer.0 2024-09-21 20:57:52.498 error 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:310:24) at ChildProcess.emit (node:events:529:35) at ChildProcess._handle.onexit (node:internal/child_process:292:12) puppeteer.0 2024-09-21 20:57:52.497 error unhandled promise rejection: Failed to launch the browser process! undefined TROUBLESHOOTING: https://pptr.dev/troubleshooting puppeteer.0 2024-09-21 20:57:52.497 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 2024-09-21 20:57:52.470 info starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v18.20.4, js-controller: 6.0.11 host.raspberrypi 2024-09-21 20:57:51.132 info instance system.adapter.puppeteer.0 in version "0.3.0" started with pid 5705 host.raspberrypi 2024-09-21 20:57:51.132 info instance system.adapter.puppeteer.0 in version "0.3.0" started with pid 5705
Fehlt da noch etwas?
-
Bin wieder auf 0.2.8 zurück. Da funktioniert es wenigstens.
-
@beowolf Komisch, funktioniert bei mir einwandfrei.
Die Einstellungen sind bei mir wie folgt:
-
@oxident
Jetzt ist mir klar warum das hier nicht geht.ioBroker bot mir immer nur die Version 0.3.0 an. Dort fehlt die Einstellung zum externen Browser.
Erst im Expertenmodus und der Suche über die Katze konnte ich 0.4.0 installieren.
Jetzt kommen zwar andere Fehlermeldungen, aber das muss ich hier mal schauen.
javascript.0 2024-09-22 09:44:21.315 error at processImmediate (node:internal/timers:476:21) javascript.0 2024-09-22 09:44:21.315 error at Immediate._onImmediate (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:381:37) javascript.0 2024-09-22 09:44:21.315 error at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10886:45) javascript.0 2024-09-22 09:44:21.315 error at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3097:38) javascript.0 2024-09-22 09:44:21.315 error at Object.<anonymous> (script.js.common.EPaper-Displays.Obergeschoss.Hauswirtschaftsraum:42:24) javascript.0 2024-09-22 09:44:21.315 error at Function.from (node:buffer:325:9) javascript.0 2024-09-22 09:44:21.315 error at new NodeError (node:internal/errors:405:5) javascript.0 2024-09-22 09:44:21.315 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
-
@bonsai308 said in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:
(waitForTimeout) der auf 10000ms
Also wie man die "waitForTimeout" Zeit ändert, habe ich mittlerweile herausgefunden. Versuche zw. 3 und 20 sek. brachten aber keine Änderung. Es werden die Werte trotzdem nicht sauber geladen.
-
Du meinst hier? Richtig?