Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Puppeteer Adapter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Puppeteer Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @Jensen last edited by

      @jensen

      curl müsste seit windows 10 installiert sein.

      du gehst auf die komandozeile deines nucs
      am besten mit der gleichen berechtigung wie iobroker
      und führst bspw das aus

      in anführungszeichen steht der link.
      curl ruft dann die daten ab, ungefähr so wie es puppeteer macht und gibt sie aus.
      wenn irgendwelche fehler dabei angezeigt werden könnte das interessant sein

      curl "https://www.msn.com/en-us/weather/forecast/in-Frankfurt,Hesse?loc=eyJsIjoiRnJhbmtmdXJ0IiwiciI6Ikhlc3NlIiwicjIiOiJGcmFua2Z1cnQgYW0gTWFpbiIsImMiOiJHZXJtYW55IiwiaSI6IkRFIiwidCI6MTAyLCJnIjoiZW4tdXMiLCJ4IjoiOC42Nzk0OTk2MjYxNTk2NjgiLCJ5IjoiNTAuMTEwOTAwODc4OTA2MjUiLCJvIjp0cnVlfQ%3D%3D&weadegreetype=C"
      

      hier die anleitung für curl
      https://curl.se/docs/manpage.html

      Jensen 1 Reply Last reply Reply Quote 0
      • Jensen
        Jensen @OliverIO last edited by

        @oliverio
        Wir müssen das verschieben.
        Ich bin jetzt erst mal 2 Wochen auf Montage und hier ist die Internetverbindung momentan sehr schlecht, komme nicht per VPN auf den Rechner.

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Jensen last edited by

          @jensen

          alles gut. du schreibst am besten wieder in diesen thread wenns weitere fragen gibt

          1 Reply Last reply Reply Quote 0
          • E
            e_a_s_y last edited by

            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-sky 2 Replies Last reply Reply Quote 0
            • E
              e_a_s_y @e_a_s_y last edited by

              @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)

              mcm1957 1 Reply Last reply Reply Quote 0
              • mcm1957
                mcm1957 @e_a_s_y last edited by mcm1957

                @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

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @e_a_s_y last edited by liv-in-sky

                  @e_a_s_y

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

                  E 1 Reply Last reply Reply Quote 0
                  • E
                    e_a_s_y @liv-in-sky last edited by

                    @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.

                    OliverIO liv-in-sky 2 Replies Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @e_a_s_y last edited by OliverIO

                      @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

                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @e_a_s_y last edited by 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 ?

                        OliverIO E 2 Replies Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @liv-in-sky last edited by

                          @liv-in-sky

                          Fragezeichen bedeutet, das der Parameter optional ist.

                          1 Reply Last reply Reply Quote 1
                          • E
                            e_a_s_y @liv-in-sky last edited by 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.

                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @e_a_s_y last edited by

                              @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 1 Reply Last reply Reply Quote 0
                              • E
                                e_a_s_y @OliverIO last edited by

                                @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-sky OliverIO 2 Replies Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @e_a_s_y last edited by

                                  @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?

                                  1 Reply Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @e_a_s_y last edited by

                                    @e_a_s_y

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

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

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

                                    879
                                    Online

                                    31.9k
                                    Users

                                    80.1k
                                    Topics

                                    1.3m
                                    Posts

                                    7
                                    75
                                    3828
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo