Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Puppeteer Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Puppeteer Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
76 Beiträge 8 Kommentatoren 8.2k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • E Offline
    E Offline
    e_a_s_y
    schrieb am zuletzt editiert von
    #63

    hallo,

    ich versuche gerade vergeblich einen screenshot meiner vis zu erstellen.

    nach updates funktioniert der phantomJS nicht mehr der das seit 2 jahren gut erledigt hatte.
    daher bin ich nun zu puppeteer gewechselt.

    mittels send-to wird hier auch ein screeshot erstellt. leider aber zu früh so das nicht alles mit drauf ist.

    laut der docu von puppetier gibt es hier den rendertime parameter, leider ist dieser aber im beispiel nicht mit drin.

    ich habe einiges versucht und dann versucht im netz etwas zu finden.
    lande aber immer wieder hier.

    kann mir evtl. jemand erklären was ich falsch mache. ich bräuchte nur eine verzögerung von 8-10 sekunden erhalte aber immer nach 5s das bild. (oder teile davon)

    hier mein test-script:

    sendTo('puppeteer.1', 'screenshot', { 
            url: 'http://192.168.5.153:8082/vis/?main#Heizung',
            ioBrokerOptions: { storagePath: 'tempt.png'  },
            path: 'c://iobroker//test-screenshot-heizung.png',
            fullPage: false,
            omitBackground: true,
            encoding: 'binary',
            captureBeyondViewport: false,
            renderTime: 8000,
        });
    
    E liv-in-skyL 2 Antworten Letzte Antwort
    0
    • E e_a_s_y

      hallo,

      ich versuche gerade vergeblich einen screenshot meiner vis zu erstellen.

      nach updates funktioniert der phantomJS nicht mehr der das seit 2 jahren gut erledigt hatte.
      daher bin ich nun zu puppeteer gewechselt.

      mittels send-to wird hier auch ein screeshot erstellt. leider aber zu früh so das nicht alles mit drauf ist.

      laut der docu von puppetier gibt es hier den rendertime parameter, leider ist dieser aber im beispiel nicht mit drin.

      ich habe einiges versucht und dann versucht im netz etwas zu finden.
      lande aber immer wieder hier.

      kann mir evtl. jemand erklären was ich falsch mache. ich bräuchte nur eine verzögerung von 8-10 sekunden erhalte aber immer nach 5s das bild. (oder teile davon)

      hier mein test-script:

      sendTo('puppeteer.1', 'screenshot', { 
              url: 'http://192.168.5.153:8082/vis/?main#Heizung',
              ioBrokerOptions: { storagePath: 'tempt.png'  },
              path: 'c://iobroker//test-screenshot-heizung.png',
              fullPage: false,
              omitBackground: true,
              encoding: 'binary',
              captureBeyondViewport: false,
              renderTime: 8000,
          });
      
      E Offline
      E Offline
      e_a_s_y
      schrieb am zuletzt editiert von
      #64

      @e_a_s_y

      nach 2 abenden testen ohne erfolg hier eine notlösung.

      nur für mich wenn ich wieder hier lande:

      in datei: ...node_modules\iobroker.puppeteer\build\main.js

      await this.delay(7000);
      

      hinter die wait condition einfügen (ca. zeile 105 & ca. zeile 170)

      mcm1957M 1 Antwort Letzte Antwort
      0
      • E e_a_s_y

        @e_a_s_y

        nach 2 abenden testen ohne erfolg hier eine notlösung.

        nur für mich wenn ich wieder hier lande:

        in datei: ...node_modules\iobroker.puppeteer\build\main.js

        await this.delay(7000);
        

        hinter die wait condition einfügen (ca. zeile 105 & ca. zeile 170)

        mcm1957M Online
        mcm1957M Online
        mcm1957
        schrieb am zuletzt editiert von mcm1957
        #65

        @e_a_s_y
        Hast du ein Issue im Adapter repository eröffnet und dein problem (und deinen9 Workaround dort abgelegt?

        Ohne issue wird da siher nichts gendert / gefixed / verbessert.

        https://github.com/foxriver76/ioBroker.puppeteer/issues

        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
        Support Repositoryverwaltung.

        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

        LESEN - gute Forenbeitrage

        1 Antwort Letzte Antwort
        0
        • E e_a_s_y

          hallo,

          ich versuche gerade vergeblich einen screenshot meiner vis zu erstellen.

          nach updates funktioniert der phantomJS nicht mehr der das seit 2 jahren gut erledigt hatte.
          daher bin ich nun zu puppeteer gewechselt.

          mittels send-to wird hier auch ein screeshot erstellt. leider aber zu früh so das nicht alles mit drauf ist.

          laut der docu von puppetier gibt es hier den rendertime parameter, leider ist dieser aber im beispiel nicht mit drin.

          ich habe einiges versucht und dann versucht im netz etwas zu finden.
          lande aber immer wieder hier.

          kann mir evtl. jemand erklären was ich falsch mache. ich bräuchte nur eine verzögerung von 8-10 sekunden erhalte aber immer nach 5s das bild. (oder teile davon)

          hier mein test-script:

          sendTo('puppeteer.1', 'screenshot', { 
                  url: 'http://192.168.5.153:8082/vis/?main#Heizung',
                  ioBrokerOptions: { storagePath: 'tempt.png'  },
                  path: 'c://iobroker//test-screenshot-heizung.png',
                  fullPage: false,
                  omitBackground: true,
                  encoding: 'binary',
                  captureBeyondViewport: false,
                  renderTime: 8000,
              });
          
          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von liv-in-sky
          #66

          @e_a_s_y

          hast du mal waitForTimeout oder waitForSelector probiert - siehe: https://github.com/foxriver76/ioBroker.puppeteer

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          E 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @e_a_s_y

            hast du mal waitForTimeout oder waitForSelector probiert - siehe: https://github.com/foxriver76/ioBroker.puppeteer

            E Offline
            E Offline
            e_a_s_y
            schrieb am zuletzt editiert von
            #67

            @liv-in-sky
            ja die hatte ich versucht zu mit einzubinden, selector schließt das die rendertime ja aus, das steht auch so im code, das konnte ich sehen. leider ist mir nicht ganz klar was ein selector sein soll. vermute das es ein div mit einem tag ist. das kann ich aber so bei der vis nicht ganz hinten einbauen.
            ich hab in meiner vis auch noch iframes mit highchart-diagrammen, auch hier laden die kurven etwas verzögert.
            so blöd es auch ist timer zu verweden, aber hier passt das schon.

            das timeout ändert leider nichts da die seite der vis ja antwortet und der hintergrund auch meist schon geladen ist.
            die elemente fehlen zwar meist oder viele. aber selbst mit langem TO (60s) macht der adapter nach ca 5s das bild.

            so wie es im code steht sollte es eigentlich funktionieren macht es aber leider nicht, hatte etwas rum probiert aber nur der WA hat das ergebniss gebracht.

            bin ich wiedermal der erste der die vis ablichten will?
            sind alle anderen seiten in <5s schon fertig?
            oder gibts noch einen adapter der für so etwas taugt.

            OliverIOO liv-in-skyL 2 Antworten Letzte Antwort
            0
            • E e_a_s_y

              @liv-in-sky
              ja die hatte ich versucht zu mit einzubinden, selector schließt das die rendertime ja aus, das steht auch so im code, das konnte ich sehen. leider ist mir nicht ganz klar was ein selector sein soll. vermute das es ein div mit einem tag ist. das kann ich aber so bei der vis nicht ganz hinten einbauen.
              ich hab in meiner vis auch noch iframes mit highchart-diagrammen, auch hier laden die kurven etwas verzögert.
              so blöd es auch ist timer zu verweden, aber hier passt das schon.

              das timeout ändert leider nichts da die seite der vis ja antwortet und der hintergrund auch meist schon geladen ist.
              die elemente fehlen zwar meist oder viele. aber selbst mit langem TO (60s) macht der adapter nach ca 5s das bild.

              so wie es im code steht sollte es eigentlich funktionieren macht es aber leider nicht, hatte etwas rum probiert aber nur der WA hat das ergebniss gebracht.

              bin ich wiedermal der erste der die vis ablichten will?
              sind alle anderen seiten in <5s schon fertig?
              oder gibts noch einen adapter der für so etwas taugt.

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #68

              @e_a_s_y

              Mit selektoren sind die css selektoren gemeint.Alternativ kannst du auch xpath verwenden.
              Also ein Mechanismus jedes beliebige html Element zu adressieren.
              Puppeteer wartet dann darauf, das dieses Element dem der Dom hinzugefügt wird und sagt dann, nun ist die Seite geladen. Das ist besonders wichtig bei Seiten, bei denen Seiteninhalte dynamisch nachgeladen werden und erst bei Verfügbarkeit es dann weitergehen soll.

              https://wiki.selfhtml.org/wiki/CSS/Selektoren

              Life auf einer Seite kannst du das in den webdeveloper Tools von Chrome in der Konsole mit
              https://developer.chrome.com/blog/search-dom-tree-by-css-selector
              Ausprobieren

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              1 Antwort Letzte Antwort
              0
              • E e_a_s_y

                @liv-in-sky
                ja die hatte ich versucht zu mit einzubinden, selector schließt das die rendertime ja aus, das steht auch so im code, das konnte ich sehen. leider ist mir nicht ganz klar was ein selector sein soll. vermute das es ein div mit einem tag ist. das kann ich aber so bei der vis nicht ganz hinten einbauen.
                ich hab in meiner vis auch noch iframes mit highchart-diagrammen, auch hier laden die kurven etwas verzögert.
                so blöd es auch ist timer zu verweden, aber hier passt das schon.

                das timeout ändert leider nichts da die seite der vis ja antwortet und der hintergrund auch meist schon geladen ist.
                die elemente fehlen zwar meist oder viele. aber selbst mit langem TO (60s) macht der adapter nach ca 5s das bild.

                so wie es im code steht sollte es eigentlich funktionieren macht es aber leider nicht, hatte etwas rum probiert aber nur der WA hat das ergebniss gebracht.

                bin ich wiedermal der erste der die vis ablichten will?
                sind alle anderen seiten in <5s schon fertig?
                oder gibts noch einen adapter der für so etwas taugt.

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von liv-in-sky
                #69

                @e_a_s_y

                lt. github page ist die syntax anders angegeben, als du es oben zeigst - https://github.com/foxriver76/ioBroker.puppeteer

                github:

                waitOption?: {
                        /**
                         * Define a Timeout in ms
                         */
                        waitForTimeout?: 5000,
                    
                        /**
                         * Wait for a given id/tag/etc to be occured
                         */
                        waitForSelector?: '#testId'
                      },
                
                • bin mir nur nicht sicher, ob das fragezeichen richtig ist bei waitOption?

                hast du das mal getestet ?

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                OliverIOO E 2 Antworten Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  @e_a_s_y

                  lt. github page ist die syntax anders angegeben, als du es oben zeigst - https://github.com/foxriver76/ioBroker.puppeteer

                  github:

                  waitOption?: {
                          /**
                           * Define a Timeout in ms
                           */
                          waitForTimeout?: 5000,
                      
                          /**
                           * Wait for a given id/tag/etc to be occured
                           */
                          waitForSelector?: '#testId'
                        },
                  
                  • bin mir nur nicht sicher, ob das fragezeichen richtig ist bei waitOption?

                  hast du das mal getestet ?

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #70

                  @liv-in-sky

                  Fragezeichen bedeutet, das der Parameter optional ist.

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Antwort Letzte Antwort
                  1
                  • liv-in-skyL liv-in-sky

                    @e_a_s_y

                    lt. github page ist die syntax anders angegeben, als du es oben zeigst - https://github.com/foxriver76/ioBroker.puppeteer

                    github:

                    waitOption?: {
                            /**
                             * Define a Timeout in ms
                             */
                            waitForTimeout?: 5000,
                        
                            /**
                             * Wait for a given id/tag/etc to be occured
                             */
                            waitForSelector?: '#testId'
                          },
                    
                    • bin mir nur nicht sicher, ob das fragezeichen richtig ist bei waitOption?

                    hast du das mal getestet ?

                    E Offline
                    E Offline
                    e_a_s_y
                    schrieb am zuletzt editiert von e_a_s_y
                    #71

                    @liv-in-sky

                    ja das hatte ich getestet.

                    ich hatte das fragezeichen so gedeutet das der paramater anzupassen ist.
                    mit fragezeichen wird er als fehlerhaft markiert.

                    wie schon geschrieben den selector habe ich noch nicht ganz verstanden und kann den auch aktuell nicht einbauen.
                    eine änderung des timeouts bringt nichts. da der adapter davon aus geht das die seite geladen wurde sobald der hintergrund aufgebaut ist.
                    die vis läd dann aber erst nach und nach die elemente und diagramme.
                    selbst in der entwiklerconsole vom browser sieht man das an der eigentlichen seite nichts mehr passiert.

                    der timeout ist ja nur für den fehler fall , falls keine daten kommen.

                    ich bräuchte die rendertime diese steht zwar auf der seite noch in der doku, allerdings ist die im beispiel nicht mehr mit drinn.
                    da dort auch geschrieben steht das jede wait-option die rendertime aushelbelt habe ich dann auch darauf verzichtet.
                    habe in summe ca. 24h damit rum probiert

                    @OliverIO

                    danke für die bestätiging, soetwas in der art hatte ich vermutet, dache zwar das es html-div-tags sind aber war ja nah drann.
                    ich schaue mir die sache bei gelegenheit mal an und versuche mal ein css element in die vis zu bauen.
                    evtl. kann ich auch einen vorhanden nutzen.
                    danke für den tip.

                    OliverIOO 1 Antwort Letzte Antwort
                    0
                    • E e_a_s_y

                      @liv-in-sky

                      ja das hatte ich getestet.

                      ich hatte das fragezeichen so gedeutet das der paramater anzupassen ist.
                      mit fragezeichen wird er als fehlerhaft markiert.

                      wie schon geschrieben den selector habe ich noch nicht ganz verstanden und kann den auch aktuell nicht einbauen.
                      eine änderung des timeouts bringt nichts. da der adapter davon aus geht das die seite geladen wurde sobald der hintergrund aufgebaut ist.
                      die vis läd dann aber erst nach und nach die elemente und diagramme.
                      selbst in der entwiklerconsole vom browser sieht man das an der eigentlichen seite nichts mehr passiert.

                      der timeout ist ja nur für den fehler fall , falls keine daten kommen.

                      ich bräuchte die rendertime diese steht zwar auf der seite noch in der doku, allerdings ist die im beispiel nicht mehr mit drinn.
                      da dort auch geschrieben steht das jede wait-option die rendertime aushelbelt habe ich dann auch darauf verzichtet.
                      habe in summe ca. 24h damit rum probiert

                      @OliverIO

                      danke für die bestätiging, soetwas in der art hatte ich vermutet, dache zwar das es html-div-tags sind aber war ja nah drann.
                      ich schaue mir die sache bei gelegenheit mal an und versuche mal ein css element in die vis zu bauen.
                      evtl. kann ich auch einen vorhanden nutzen.
                      danke für den tip.

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #72

                      @e_a_s_y sagte in Puppeteer Adapter:

                      danke für die bestätiging, soetwas in der art hatte ich vermutet, dache zwar das es html-div-tags sind aber war ja nah drann.
                      ich schaue mir die sache bei gelegenheit mal an und versuche mal ein css element in die vis zu bauen.
                      evtl. kann ich auch einen vorhanden nutzen.
                      danke für den tip.

                      ach vis. das ist speziell
                      dort werden ja elemente ebenfalls dynamisch erstellt, allerdings ist die reihenfolge nicht gesichert. d.h. wenn du auf ein element (bspw eine element mit einer widget id) wartest, heißt das nicht, das das auch das letzte element ist.

                      bei vis würde ich dann einfach mit einem timeout arbeiten

                      tatsächlich ist sogar eine callback funktion onReady vorgesehen
                      https://github.com/ioBroker/ioBroker.vis/blob/8518f7fbadf76519b3c6bceb5a34e298b9257c0a/www/js/vis.js#L3405
                      allerdings wird diese nie belegt
                      https://github.com/ioBroker/ioBroker.vis/blob/master/www/js/vis.js#L3999

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      E 1 Antwort Letzte Antwort
                      0
                      • OliverIOO OliverIO

                        @e_a_s_y sagte in Puppeteer Adapter:

                        danke für die bestätiging, soetwas in der art hatte ich vermutet, dache zwar das es html-div-tags sind aber war ja nah drann.
                        ich schaue mir die sache bei gelegenheit mal an und versuche mal ein css element in die vis zu bauen.
                        evtl. kann ich auch einen vorhanden nutzen.
                        danke für den tip.

                        ach vis. das ist speziell
                        dort werden ja elemente ebenfalls dynamisch erstellt, allerdings ist die reihenfolge nicht gesichert. d.h. wenn du auf ein element (bspw eine element mit einer widget id) wartest, heißt das nicht, das das auch das letzte element ist.

                        bei vis würde ich dann einfach mit einem timeout arbeiten

                        tatsächlich ist sogar eine callback funktion onReady vorgesehen
                        https://github.com/ioBroker/ioBroker.vis/blob/8518f7fbadf76519b3c6bceb5a34e298b9257c0a/www/js/vis.js#L3405
                        allerdings wird diese nie belegt
                        https://github.com/ioBroker/ioBroker.vis/blob/master/www/js/vis.js#L3999

                        E Offline
                        E Offline
                        e_a_s_y
                        schrieb am zuletzt editiert von
                        #73

                        @oliverio

                        ok, super, läuft doch.

                        ja so hatte ich das auch im gefühl. daher wollte ich dann nicht noch mehr zeit investieren.
                        bin wohl wirklich der erste der die vis ablichtet.

                        bevor fragen kommen.
                        das mache ich weil ich überall unsichtbare buttons drüber habe um diagramme im popup zu öffnen.
                        leider hat sich herrausgestellt das dies recht unpraktisch ist wenn man auf dem phone mal zoomen und schieben will.
                        daher gibt für das phone eine website mit dem foto der vis welches zyklisch erstellt wird. (... sofern das möglich ist...)

                        liv-in-skyL OliverIOO 2 Antworten Letzte Antwort
                        0
                        • E e_a_s_y

                          @oliverio

                          ok, super, läuft doch.

                          ja so hatte ich das auch im gefühl. daher wollte ich dann nicht noch mehr zeit investieren.
                          bin wohl wirklich der erste der die vis ablichtet.

                          bevor fragen kommen.
                          das mache ich weil ich überall unsichtbare buttons drüber habe um diagramme im popup zu öffnen.
                          leider hat sich herrausgestellt das dies recht unpraktisch ist wenn man auf dem phone mal zoomen und schieben will.
                          daher gibt für das phone eine website mit dem foto der vis welches zyklisch erstellt wird. (... sofern das möglich ist...)

                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von
                          #74

                          @e_a_s_y sagte in Puppeteer Adapter:

                          bin wohl wirklich der erste der die vis ablichtet.

                          nee - mache das minütlich über den ganzen tag- ist aber nur eine kleine vis-seite

                          was war jetzt die lösung?

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • E e_a_s_y

                            @oliverio

                            ok, super, läuft doch.

                            ja so hatte ich das auch im gefühl. daher wollte ich dann nicht noch mehr zeit investieren.
                            bin wohl wirklich der erste der die vis ablichtet.

                            bevor fragen kommen.
                            das mache ich weil ich überall unsichtbare buttons drüber habe um diagramme im popup zu öffnen.
                            leider hat sich herrausgestellt das dies recht unpraktisch ist wenn man auf dem phone mal zoomen und schieben will.
                            daher gibt für das phone eine website mit dem foto der vis welches zyklisch erstellt wird. (... sofern das möglich ist...)

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von
                            #75

                            @e_a_s_y

                            Ah ja ein Bild ist für manche Geräte Ressourcen schonender wie ein ganzes vis mit mehreren Widgets aufzubauen

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            P 1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @e_a_s_y

                              Ah ja ein Bild ist für manche Geräte Ressourcen schonender wie ein ganzes vis mit mehreren Widgets aufzubauen

                              P Offline
                              P Offline
                              peterfido
                              schrieb am zuletzt editiert von
                              #76

                              @oliverio Ein altes Android Tablet, welches Android 4.4.2 als höchste Version bekommen hat, habe ich, bis auf eine Flot-Grafik, manuell per Node-Red gefüllt. Die Flot-Grafik lasse ich jetzt minütlich unter /dev/shm im RAM ablegen, und kann da auch prima per Node-Red dran und ans Tablet ausliefern.

                              Der Javascript-Adapter hat alle Parameter mit Fragezeichen? als fehlerhaft markiert. Daher habe ich alle Fragezeichen entfernt. Der Parameter quality wird nicht mehr unterstützt. Bei path muss der Dateiname mit rein, sonst gibt es eine Fehlermeldung, welche danach aussieht, dass der Ordner als Ziel genutzt wird. Ein paar Semikolon und Kommas musste ich auch noch korrigieren,

                              Bei der Installation musste ich chromium noch manuell nachinstallieren.

                              peter@iob:~$ sudo apt install chromium -y
                              

                              In der Instanz noch Externen Browser anhaken und den Pfad angeben.

                              /usr/bin/chromium
                              

                              Mein aktuelles Skript:

                              function Temptendenz(){
                                 sendTo('puppeteer.0', 'screenshot', { url: 'http://192.168.2.24:8082/vis-2/?tendenz#startseite',
                                     ioBrokerOptions: {
                                         /**
                                          * Define a filename for the ioBroker storage e.g. test.png
                                          */
                                         storagePath: 'tendenz.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: 5000,
                                     
                                         /**
                                          * Wait for a given id/tag/etc to be occured
                                          */
                                         waitForSelector: 'w000680',
                                     },
                                     /**
                                      * Optionally, specify the viewport manually, see https://pptr.dev/api/puppeteer.viewport
                                      */
                                     viewportOptions: {
                                         width: 800,
                                         height: 600
                                     },
                                     /**
                                      * The file path to save the image to. The screenshot type will be inferred
                                      * from file extension. If path is a relative path, then it is resolved
                                      * relative to current working directory. If no path is provided, the image
                                      * won't be saved to the disk.
                                      */
                                     path: '/dev/shm/tendenz.png',
                                     /**
                                      * When true, takes a screenshot of the full page.
                                      * @defaultValue false
                                      */
                                     fullPage: false,
                                     /**
                                      * An object which specifies the clipping region of the page.
                                      */
                                     clip: {         
                                         x: 0,
                                         y: 0,
                                         width: 223,
                                         height: 47 
                                     },
                                     /**
                                      * Quality of the image, between 0-100. Not applicable to `png` images.
                                      */
                                 //      quality: 100,
                                     /**
                                      * Hides default white background and allows capturing screenshots with transparency.
                                      * @defaultValue false
                                      */
                                     omitBackground: true,
                                     /**
                                      * Encoding of the image.
                                      * @defaultValue 'binary'
                                      */
                                     encoding:  'binary',       //'base64' | 'binary',
                                     /**
                                      * If you need a screenshot bigger than the Viewport
                                      * @defaultValue true
                                      */
                                     captureBeyondViewport: false,
                                 }, 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(`Successfully took screenshot: ${obj.result}`);
                                     }
                                 });
                              }
                              //'*/30 * * * * *'
                              schedule("* * * * *", function(){
                                 Temptendenz();
                              });
                              
                              Temptendenz();
                              

                              Gruß

                              Peterfido


                              Proxmox auf Intel NUC12WSHi5
                              ioBroker: Debian (VM)
                              CCU: Debmatic (VM)
                              Influx: Debian (VM)
                              Grafana: Debian (VM)
                              eBus: Debian (VM)
                              Zigbee: Debian (VM) mit zigbee2mqtt

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              394

                              Online

                              32.4k

                              Benutzer

                              81.5k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe