Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Link von Webseite heraus parsen. Vertretungsplan Schule

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    372

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

[gelöst] Link von Webseite heraus parsen. Vertretungsplan Schule

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 4 Posters 2.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Creator
    wrote on last edited by
    #1

    Hallo zusammen,

    die Schule meine Kindes bietet die Information an, ob was ausfällt und welche Unterrichtsstunde wie vertreten wird.

    Das schreit quasi danach im Vis dargestellt zu werden. :mrgreen:

    Leider ist das ein PDF Dokument und der Link dahin verändert sich bei jeder Aktualisierung.

    Zum Glück steht dieser aber auf der selben Stelle auf deren Webseite.

    Ich habe zwei Fragen weil mein Erfahrungen mit NodeJs überschaubar sind.

    Damit ich das PDF Laden kann brauch ich die URL in einem JS Objekt damit Vis da drauf zugreifen kann.

    Daher die erste Frage:

    Wie bzw. mit was sollte ich die Webseite nach dem Link parsen? Habe was gelesen von htmlparser2 aber eventuell gibt es ja auch noch andere vorhandene Boardmittel.

    Soweit bin ich bereits:

    var request = require('request');
    var url = 'http://wordpress.nibis.de/rsdelme/vertretungsplan-holbeinstrasse/';
    
    function getLink() {
        request(url, function(err, stat, body) {
            if(err) log('Error: ' + err, error);
    
            log(body);
    
        });
    }
    
    getLink();
    
    

    Die zweite Frage betrifft eher VIS, aber weil es dazu gehört :)

    Die PDF Datei würde ich super gerne in einem Dialog darstellen.

    Quasi Button welcher ein Dialog öffnet wo dann sofort das PDF dargestellt wird.

    Dazu jemand eine Idee?

    1 Reply Last reply
    0
    • C Offline
      C Offline
      Creator
      wrote on last edited by
      #2

      Ich habe jetzt noch mal ein wenig experimentiert.

      Leider komme ich nicht weiter.

      Gefunden habe ich cheerio basiert auf htmlparser2.

      Allerdings kann ich das in iobroker Javascript nicht nutzen.

      var request = require('request');
      var cheerio = require('cheerio');
      
      var url = 'http://wordpress.nibis.de/rsdelme/vertretungsplan-holbeinstrasse/';
      
      function Test() {
      request(url, function(err, stat, body) {
          if(err) log('Error: ' + err, error);
          $ = cheerio.load(body);
          log($('#post-3317').html());
      
      });
      }
      
      // Start bei Skriptstart
      Test();
      
      

      Führt aber zu einem :

      javascript.0 script.js.Vertretung: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/cheerio

      Ich habe das Installiert in /opt/iobroker mit "npm install cheerio" sowie "npm install htmlparser2"

      Ich habe da wohl noch das eine oder andere Verständnis Problem. Kann mir jemand bitte auf die Sprünge helfen?

      1 Reply Last reply
      0
      • Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        wrote on last edited by
        #3

        Npm module kann man auch installieren in dem man in der JavaScript Adapter Konfiguration den Namen des Moduls einträgt.

        Gesendet von Unterwegs

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        1 Reply Last reply
        0
        • C Offline
          C Offline
          Creator
          wrote on last edited by
          #4

          > Npm module kann man auch installieren in dem man in der JavaScript Adapter Konfiguration den Namen des Moduls einträgt.
          Ich glaube das muss man wohl genau so machen. Klappt super. Danke!

          var request = require('request');
          var cheerio = require('cheerio');
          
          var url = 'http://wordpress.nibis.de/rsdelme/vertretungsplan-holbeinstrasse/';
          
          function Test() {
          request(url, function(err, stat, body) {
              if(err) log('Error: ' + err, error);
              $ = cheerio.load(body);
              log($('#post-3317 a').attr('href'));
          
          });
          }
          
          // Start bei Skriptstart
          Test();
          
          

          Jetzt muss ich nur noch raus finden, wie ich die Datei in VIS darstellen könnte.

          1 Reply Last reply
          0
          • Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            wrote on last edited by
            #5

            So auf die schnelle hätte ich vorgeschlagen das PDF in ein Bild umwandeln. Dazu gibt es das Modul pdf2image.

            Möglicherweise geht es auch mit phantomjs das als Adapter für iobroker verfügbar ist.

            Gesendet von Unterwegs

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            1 Reply Last reply
            0
            • BuZZyB Offline
              BuZZyB Offline
              BuZZy
              wrote on last edited by
              #6

              Wenn du den Link von der Seite geholt hast kannst du im VIS mit dem iFramewidget das PDF darstellen.

              Als Quelle für das iFramewidget gibst du ein:

              http://docs.google.com/gview?url=http://wordpress.nibis.de/rsdelme/files/2015/08/Vertretungsplan-12.09.2017-S-aktuell1.pdf&embedded=true
              

              Achte dabei auf den Teil in der Mitte.. Da musst du die URL zu dem Vertretungsplan einfügen (ich habe ihn jetzt schon als Beispiel eingefügt)..

              Gruß

              1 Reply Last reply
              0
              • C Offline
                C Offline
                Creator
                wrote on last edited by
                #7
                http://docs.google.com/gview?url=http://wordpress.nibis.de/rsdelme/files/2015/08/Vertretungsplan-12.09.2017-S-aktuell1.pdf&embedded=true
                

                Genau so was hatte ich gesucht. Super Danke.

                So muss man das PDF nicht runterladen auf dem Tab.

                Sehr sehr Nice. :)

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  Creator
                  wrote on last edited by
                  #8

                  Hm ich hänge doch noch an einer Stelle im VIS.

                  Wie kann ich denn im iFrame Widget eine Objekt ID nutzen? Ich kann hier nur den Link selber hinterlegen.

                  Der komplette Link steht in einem Objekt.

                  1 Reply Last reply
                  0
                  • C Offline
                    C Offline
                    Creator
                    wrote on last edited by
                    #9

                    Konnte es lösen, das Zauberwort heißt hier "Bindings"

                    https://github.com/ioBroker/ioBroker.vis

                    Als Quelle bei iFrame Widget habe ich jetzt folgendes hinterlegt.

                    {javascript.0.Status.agency.link}
                    
                    

                    Und das funktioniert wie gewollt :)

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    684

                    Online

                    32.7k

                    Users

                    82.5k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe