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. Adapter für Webseitenüberwachung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Adapter für Webseitenüberwachung

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
adapter webseite überwachen
25 Beiträge 6 Kommentatoren 2.7k Aufrufe 5 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.
  • liv-in-skyL liv-in-sky

    @aiouh

    habe es verfolgt - heute kam ein neues angebot und wurde mir gemeldet - etwas später kam dann, ein angebot ist weg und auch dies war richtig - das neue angebot wurde wieder gelöscht - hat schon mal gut funktioniert

    bei der url war ich mir nicht sicher, ob du die brauchst - wie möchtest du das eigentlich ansehen - über die vis oder über eine nachricht?

    A Offline
    A Offline
    Aiouh
    schrieb am zuletzt editiert von Aiouh
    #21

    @liv-in-sky Hey es ist schon Weihnachten. Nee mal im Ernst Vielen Dank dass Du Dich da so reinhängst.
    Ich denke das Einfachste wäre es "einfach" eine URL als datapoint zu haben, den kann man ja auf Änderung prüfen und sich den Inhalt per mail/pushover schicken lassen. Oder in der vis verwenden., zumindest das krieg ich selbst mit Blockly hin :blush:

    liv-in-skyL 2 Antworten Letzte Antwort
    0
    • A Aiouh

      @liv-in-sky Hi, scheinz zu klappen. Der DBP sieht bei mir jetzt so aus.

      /expose/80909765/129468267
      

      Wäre schick wenn das gleich eine URL wäre ;)

      Im "Alexa DP" steht

      ein Angebote ist weg
      
      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #22

      @aiouh

      habe mir das mal angeschaut - eigentlich wollte ich eine tabelle machen mit einem bild und das in der vis sichtbarmachen - leider geht das nicht so einfach, weil das alles ineinander verschachtelt ist - wäre ein zu großer aufwand

      wegen der url teste ich gerade

      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
      • A Aiouh

        @liv-in-sky Hey es ist schon Weihnachten. Nee mal im Ernst Vielen Dank dass Du Dich da so reinhängst.
        Ich denke das Einfachste wäre es "einfach" eine URL als datapoint zu haben, den kann man ja auf Änderung prüfen und sich den Inhalt per mail/pushover schicken lassen. Oder in der vis verwenden., zumindest das krieg ich selbst mit Blockly hin :blush:

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

        @aiouh

        hier- mit url - test - wird in den myAlarmDP geschrieben

        vergiss nicht die dp wieder einzutragen - sind ja meine drin :-)

        zum testen, ob die url richtig ist, einfach den inhalt vom state mySavedDataDP unter dem objekte-tab im admin löschen - das script wird dann nach dem def. schedule ausgeführt und die url sollte dann drinstehen

        EDIT - war fehler im script - muss ich erst ausbessern

        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
        • A Aiouh

          @liv-in-sky Hey es ist schon Weihnachten. Nee mal im Ernst Vielen Dank dass Du Dich da so reinhängst.
          Ich denke das Einfachste wäre es "einfach" eine URL als datapoint zu haben, den kann man ja auf Änderung prüfen und sich den Inhalt per mail/pushover schicken lassen. Oder in der vis verwenden., zumindest das krieg ich selbst mit Blockly hin :blush:

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

          @aiouh

          müßte eher stimmen

          //LINK FORUM
          //https://forum.iobroker.net/post/672195
          //@liv-in-sky 2.9.21
          
          const cheerio = require('cheerio');
          
          
          
          //----HIER MUSS SETTING ANGEPASST WERDEN----------------------------------------------------------------------------------------------------
          
           let mySavedDataDP="0_userdata.0.CONTROL-OWN.AAATEST.ImmoScoutAngebote";  //dp für die existierenden angebote
           let myAlarmDP='alexa2.0.Echo-Devices.G09XXXXXX2R7.Commands.speak';  // alexadp oder irgend ein datenpunkt vom typ : zeichenkette/string
          
          //----AB HIER NICHTS ÄNDERN-----------------------------------------------------------------------------------------------------------------
          
          
           if(getState(mySavedDataDP).val==null || getState(mySavedDataDP).val==undefined || getState(mySavedDataDP).val=="" ) setState(mySavedDataDP,[].toString())
          
          const request = require('request');
          
          const equalsIgnoreOrder = (a, b) => {
           if (a.length !== b.length) return false;
           const uniqueValues = new Set([...a, ...b]);
           for (const v of uniqueValues) {
             const aCount = a.filter(e => e === v).length;
             const bCount = b.filter(e => e === v).length;
             if (aCount !== bCount) return false;
           }
           return true;
          }
          
          let mySchedule1="  9,19,59 8-23 * * * "; // 
          
           schedule(mySchedule1,  function () {
          
             
             let mySavedData=getState(mySavedDataDP).val.split(",")
          request('https://portal.immobilienscout24.de/ergebnisliste/80909765',(error, response, html)=>{
           if (response.statusCode==200){ //log(html)
          
            const $ = cheerio.load(html)
                                        const list4 = $('*')
                                                           .find('figure > a')
                                                           .toArray()
                                                           .map(element => { return $(element).attr('href')}); //log(list4.length +"---"+list4)
                                         let list5; 
                                         list4.length>0 ? list5 = list4.map(x => x.replace(/(\/.*?\/.*?\/.*?)\/.*/,"$1")) : list5=[];                  
               
                         if (html.includes('Leider konnten keine Angebote mit den ')) {log("keine Angebote")} 
                          else {
                               
                               //  log("Vergleich "+equalsIgnoreOrder(list5,mySavedData).toString())
                               //  log("Vergleich "+list5+"  ---  "+mySavedData);
                               
                                 if(!equalsIgnoreOrder(list5,mySavedData)) {
                                                                          if(list5.length < mySavedData.length) { log("ein Angebote ist weg");
                                                                                                                   setState(myAlarmDP,"ein Angebote ist weg");
                                                                                                                } 
                                                                           else {log(mySavedData.length)
                                                                                setState(myAlarmDP,`https://portal.immobilienscout24.de/`+list4[mySavedData.length-1]); 
                                                                                //setState('0_userdata.0.CONTROL-OWN.AAATEST.ImmoScoutUrl',`https://portal.immobilienscout24.de/`+list4[mySavedData.length-1]); 
                                                                                log("neue Angebote sind da") ;
                                                                                }
                                                                           }
                                                                           mySavedData=[]; mySavedData = list5.slice(0); //Array Copy
                                                                           setState(mySavedDataDP,mySavedData.toString());
                               }
                           }});
           });
          
          
          

          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

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

            @aiouh

            müßte eher stimmen

            //LINK FORUM
            //https://forum.iobroker.net/post/672195
            //@liv-in-sky 2.9.21
            
            const cheerio = require('cheerio');
            
            
            
            //----HIER MUSS SETTING ANGEPASST WERDEN----------------------------------------------------------------------------------------------------
            
             let mySavedDataDP="0_userdata.0.CONTROL-OWN.AAATEST.ImmoScoutAngebote";  //dp für die existierenden angebote
             let myAlarmDP='alexa2.0.Echo-Devices.G09XXXXXX2R7.Commands.speak';  // alexadp oder irgend ein datenpunkt vom typ : zeichenkette/string
            
            //----AB HIER NICHTS ÄNDERN-----------------------------------------------------------------------------------------------------------------
            
            
             if(getState(mySavedDataDP).val==null || getState(mySavedDataDP).val==undefined || getState(mySavedDataDP).val=="" ) setState(mySavedDataDP,[].toString())
            
            const request = require('request');
            
            const equalsIgnoreOrder = (a, b) => {
             if (a.length !== b.length) return false;
             const uniqueValues = new Set([...a, ...b]);
             for (const v of uniqueValues) {
               const aCount = a.filter(e => e === v).length;
               const bCount = b.filter(e => e === v).length;
               if (aCount !== bCount) return false;
             }
             return true;
            }
            
            let mySchedule1="  9,19,59 8-23 * * * "; // 
            
             schedule(mySchedule1,  function () {
            
               
               let mySavedData=getState(mySavedDataDP).val.split(",")
            request('https://portal.immobilienscout24.de/ergebnisliste/80909765',(error, response, html)=>{
             if (response.statusCode==200){ //log(html)
            
              const $ = cheerio.load(html)
                                          const list4 = $('*')
                                                             .find('figure > a')
                                                             .toArray()
                                                             .map(element => { return $(element).attr('href')}); //log(list4.length +"---"+list4)
                                           let list5; 
                                           list4.length>0 ? list5 = list4.map(x => x.replace(/(\/.*?\/.*?\/.*?)\/.*/,"$1")) : list5=[];                  
                 
                           if (html.includes('Leider konnten keine Angebote mit den ')) {log("keine Angebote")} 
                            else {
                                 
                                 //  log("Vergleich "+equalsIgnoreOrder(list5,mySavedData).toString())
                                 //  log("Vergleich "+list5+"  ---  "+mySavedData);
                                 
                                   if(!equalsIgnoreOrder(list5,mySavedData)) {
                                                                            if(list5.length < mySavedData.length) { log("ein Angebote ist weg");
                                                                                                                     setState(myAlarmDP,"ein Angebote ist weg");
                                                                                                                  } 
                                                                             else {log(mySavedData.length)
                                                                                  setState(myAlarmDP,`https://portal.immobilienscout24.de/`+list4[mySavedData.length-1]); 
                                                                                  //setState('0_userdata.0.CONTROL-OWN.AAATEST.ImmoScoutUrl',`https://portal.immobilienscout24.de/`+list4[mySavedData.length-1]); 
                                                                                  log("neue Angebote sind da") ;
                                                                                  }
                                                                             }
                                                                             mySavedData=[]; mySavedData = list5.slice(0); //Array Copy
                                                                             setState(mySavedDataDP,mySavedData.toString());
                                 }
                             }});
             });
            
            
            

            A Offline
            A Offline
            Aiouh
            schrieb am zuletzt editiert von
            #25

            @liv-in-sky Ich hab noch die e-mail Benachrichtigung gebastelt, scheint gut zu funktionieren.
            Nochmals Vielen Dank :+1:

            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

            685

            Online

            32.7k

            Benutzer

            82.4k

            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