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.
  • S Offline
    S Offline
    steimi
    schrieb am zuletzt editiert von steimi
    #1

    Hi,

    ich bin auf der Suche nach einem Adapter mit dem ich Webseiten auf Veränderungen überwachen kann.

    Mir geht es da Hauptsächlich um den Download von Firmware, die ich sonst manuell regelmäßig aufrufen muss.

    Kennt da jemand etwas? Oder hat jemand einen anderen Lösungsvorschlag?

    Gruß
    steimi

    HomoranH Dr. BakteriusD liv-in-skyL 3 Antworten Letzte Antwort
    0
    • X Offline
      X Offline
      Xyolyp
      schrieb am zuletzt editiert von
      #2

      Lässt sich das Vorhaben vielleicht mit dem Parser Adapter umsetzbar?

      S 1 Antwort Letzte Antwort
      0
      • X Xyolyp

        Lässt sich das Vorhaben vielleicht mit dem Parser Adapter umsetzbar?

        S Offline
        S Offline
        steimi
        schrieb am zuletzt editiert von
        #3

        @Xyolyp Schaue mir den Adapter Mal an. Danke

        1 Antwort Letzte Antwort
        0
        • S steimi

          Hi,

          ich bin auf der Suche nach einem Adapter mit dem ich Webseiten auf Veränderungen überwachen kann.

          Mir geht es da Hauptsächlich um den Download von Firmware, die ich sonst manuell regelmäßig aufrufen muss.

          Kennt da jemand etwas? Oder hat jemand einen anderen Lösungsvorschlag?

          Gruß
          steimi

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #4

          @steimi sagte in Adapter für Webseitenüberwachung:

          Kennt da jemand etwas?

          Kommt exakt auf die Webseite an, und WAS du da überwachen willst

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          S 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @steimi sagte in Adapter für Webseitenüberwachung:

            Kennt da jemand etwas?

            Kommt exakt auf die Webseite an, und WAS du da überwachen willst

            S Offline
            S Offline
            steimi
            schrieb am zuletzt editiert von
            #5

            @Homoran ich möchte z.B. folgende Seiten auf neue Firmware-Stände überwachen. Sind halt 2 komplett verschiedene Seiten für Downloads.

            Foscam

            Stall.biz

            HomoranH 1 Antwort Letzte Antwort
            0
            • S steimi

              @Homoran ich möchte z.B. folgende Seiten auf neue Firmware-Stände überwachen. Sind halt 2 komplett verschiedene Seiten für Downloads.

              Foscam

              Stall.biz

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              @steimi Foscam geht nicht, die Seite wird dynamisch erzeugt.

              Eugens Seite kannst du mit date\s(\d{2}\.\d{2}\.\d{4})[^\n]+\n+<h2> abfragen, die müsste immer das aktuellste Datum bringen

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • S steimi

                Hi,

                ich bin auf der Suche nach einem Adapter mit dem ich Webseiten auf Veränderungen überwachen kann.

                Mir geht es da Hauptsächlich um den Download von Firmware, die ich sonst manuell regelmäßig aufrufen muss.

                Kennt da jemand etwas? Oder hat jemand einen anderen Lösungsvorschlag?

                Gruß
                steimi

                Dr. BakteriusD Offline
                Dr. BakteriusD Offline
                Dr. Bakterius
                Most Active
                schrieb am zuletzt editiert von
                #7

                @steimi Ich weiß, das war eigentlich nicht gefragt, doch es gibt Browser-Plugins die das machen.

                S 1 Antwort Letzte Antwort
                0
                • Dr. BakteriusD Dr. Bakterius

                  @steimi Ich weiß, das war eigentlich nicht gefragt, doch es gibt Browser-Plugins die das machen.

                  S Offline
                  S Offline
                  steimi
                  schrieb am zuletzt editiert von
                  #8

                  @Dr-Bakterius sicher, aber einfach ein Update 1x am Tag/Woche und dann per Blockly/Pushover benachrichtigt reicht mir.

                  A 1 Antwort Letzte Antwort
                  0
                  • S steimi

                    @Dr-Bakterius sicher, aber einfach ein Update 1x am Tag/Woche und dann per Blockly/Pushover benachrichtigt reicht mir.

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

                    Könnte man mit dem Parser den Text einer Website auf Verschwinden hin überwachen?

                    Ich hätte gerne eine Nachricht wenn wenn ein bestimmter Text nicht mehr auf der Seite vorhanden ist.

                    liv-in-skyL 1 Antwort Letzte Antwort
                    0
                    • A Aiouh

                      Könnte man mit dem Parser den Text einer Website auf Verschwinden hin überwachen?

                      Ich hätte gerne eine Nachricht wenn wenn ein bestimmter Text nicht mehr auf der Seite vorhanden ist.

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

                      @aiouh mit einem blockly request kannst du eine seite einlesen und nach einem textteil suchen - ist der text immer in eine feste html struktur eingebettet, kannst du das definieren und den inhalt (text) lesen, vergleichen.

                      bei einer änderung, könntest du dann eine message senden und dann den neuen text als neue variable nutzen, um eine weitere änderung festzustellen

                      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
                      • S steimi

                        Hi,

                        ich bin auf der Suche nach einem Adapter mit dem ich Webseiten auf Veränderungen überwachen kann.

                        Mir geht es da Hauptsächlich um den Download von Firmware, die ich sonst manuell regelmäßig aufrufen muss.

                        Kennt da jemand etwas? Oder hat jemand einen anderen Lösungsvorschlag?

                        Gruß
                        steimi

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

                        @steimi

                        für foscom ein kleines script

                        du mussst im javascript adapter setting den wert "cheerio" als zusatz npm eintragen

                        Image 9.png

                        im log siehst du, was da so rauskommt - ist nur rudimentär - man muss sich halt überlegen, was man mit den daten machen will

                        const cheerio = require('cheerio');
                        const request = require('request');
                        
                         let mySchedule1="  12 */4 * * * "; // alle 4 stunden bei minute 12
                        
                          //schedule(mySchedule1,  function () {
                        request('https://foscam.com/downloads/firmware_details.html?id=144',(error, response, html)=>{
                          if (response.statusCode==200){ //log(html)
                                                       const $ = cheerio.load(html)
                                                       const list5 = $('*')
                                                                          .find('td')
                                                                          .toArray()
                                                                          .map(element => { return $(element).text()}); log(list5.length +"---"+list5)
                        
                                                        log(list5[6])                  
                        
                                   
                        
                        
                        }});
                        

                        ein beispiel für weatherman

                        
                        const cheerio = require('cheerio');
                        const request = require('request');
                        
                         let mySchedule1="  12 */4 * * * "; // alle 4 stunden bei minute 12
                        
                          //schedule(mySchedule1,  function () {
                        request('https://www.stall.biz/project/weatherman-die-perfekte-wetterstation-fuer-die-hausautomation',(error, response, html)=>{
                          if (response.statusCode==200){ //log(html)
                                                       const $ = cheerio.load(html)
                                                       const list5 = $('*')
                                                                          .find('p')
                                                                          .toArray()
                                                                          .map(element => { return $(element).text()}); log(list5.length +"---"+list5)
                        
                                                        for(let i=0;i<list5.length;i++){
                                                        
                                                        if (list5[i].includes("Update") && list5[i].includes("WEATHERMAN")) log(list5[i])                  
                                                        }
                                   
                        
                        
                        }});
                          //});
                        
                        
                        
                        
                        
                        

                        wenn in der seite nur immer die eine zeile geändert wird mit einer neuen version funktioniert das

                        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
                        • liv-in-skyL liv-in-sky

                          @aiouh mit einem blockly request kannst du eine seite einlesen und nach einem textteil suchen - ist der text immer in eine feste html struktur eingebettet, kannst du das definieren und den inhalt (text) lesen, vergleichen.

                          bei einer änderung, könntest du dann eine message senden und dann den neuen text als neue variable nutzen, um eine weitere änderung festzustellen

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

                          @liv-in-sky Danke für die Anregung, da werde ich mal grübeln. Ist für mich dann was für einen längeren Winterabend, aber die kommen ja bald ;)

                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • A Aiouh

                            @liv-in-sky Danke für die Anregung, da werde ich mal grübeln. Ist für mich dann was für einen längeren Winterabend, aber die kommen ja bald ;)

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

                            @aiouh kannst du mir eine seite sagen und welchen text du überwachen willst ?

                            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
                            0
                            • liv-in-skyL liv-in-sky

                              @aiouh kannst du mir eine seite sagen und welchen text du überwachen willst ?

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

                              @liv-in-sky aber gerne :)
                              https://fraenkel-ag.de/immobilien-angebote/wohnen/

                              Und wenn der folgende Text sich ändert weiss ich dass es Angebote gibt
                              "Leider konnten keine Angebote mit den gewünschten Kriterien gefunden werden."

                              Ist etwas irreführend, denn die Suchkriterien sind ja im System fix hinterlegt, man ruft also nur die Seite auf.

                              liv-in-skyL 1 Antwort Letzte Antwort
                              0
                              • A Aiouh

                                @liv-in-sky aber gerne :)
                                https://fraenkel-ag.de/immobilien-angebote/wohnen/

                                Und wenn der folgende Text sich ändert weiss ich dass es Angebote gibt
                                "Leider konnten keine Angebote mit den gewünschten Kriterien gefunden werden."

                                Ist etwas irreführend, denn die Suchkriterien sind ja im System fix hinterlegt, man ruft also nur die Seite auf.

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

                                @aiouh sagte in Adapter für Webseitenüberwachung:

                                Leider konnten keine Angebote mit den gewünschten Kriterien gefunden werden

                                die arbeiten über iframes - daher muss ich übe immobilienscout seite gehen) aber versuche mal dieses script (du brauchst kein "cheerio" wie oben ! im log zeigt es , ob es angebote gibt - wäre interessant, ob die log ausgabe stimmt, wenn dann angebote da sind

                                const request = require('request');
                                
                                 let mySchedule1="  12 */4 * * * "; // alle 4 stunden bei minute 12
                                
                                  //schedule(mySchedule1,  function () {
                                //request('https://fraenkel-ag.de/immobilien-angebote/wohnen/',(error, response, html)=>{ 
                                request('https://portal.immobilienscout24.de/ergebnisliste/80909765',(error, response, html)=>{
                                  if (response.statusCode==200){ //log(html)
                                      
                                                if (html.includes('Leider konnten keine Angebote mit den ')) {log("keine Angebote")}  else {log("neue Angebote sind da")}
                                
                                
                                }});
                                

                                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 sagte in Adapter für Webseitenüberwachung:

                                  Leider konnten keine Angebote mit den gewünschten Kriterien gefunden werden

                                  die arbeiten über iframes - daher muss ich übe immobilienscout seite gehen) aber versuche mal dieses script (du brauchst kein "cheerio" wie oben ! im log zeigt es , ob es angebote gibt - wäre interessant, ob die log ausgabe stimmt, wenn dann angebote da sind

                                  const request = require('request');
                                  
                                   let mySchedule1="  12 */4 * * * "; // alle 4 stunden bei minute 12
                                  
                                    //schedule(mySchedule1,  function () {
                                  //request('https://fraenkel-ag.de/immobilien-angebote/wohnen/',(error, response, html)=>{ 
                                  request('https://portal.immobilienscout24.de/ergebnisliste/80909765',(error, response, html)=>{
                                    if (response.statusCode==200){ //log(html)
                                        
                                                  if (html.includes('Leider konnten keine Angebote mit den ')) {log("keine Angebote")}  else {log("neue Angebote sind da")}
                                  
                                  
                                  }});
                                  
                                  A Offline
                                  A Offline
                                  Aiouh
                                  schrieb am zuletzt editiert von
                                  #16

                                  @liv-in-sky Wow, Vielen Dank. Ich lass das mal tuckern und bin gespannt :+1:

                                  liv-in-skyL 1 Antwort Letzte Antwort
                                  0
                                  • A Aiouh

                                    @liv-in-sky Wow, Vielen Dank. Ich lass das mal tuckern und bin gespannt :+1:

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

                                    @aiouh

                                    heute gab es ein neues angebot

                                    habe das script so verändert, das eine nachricht auf alexa kommt, wenn neues angebot da ist und auch, wenn ein angebot verschwindet - ich hoffe, dass script macht alles richtig - werden wir dann sehen, wenn sich die angebote ändern bzw gelöscht bzw dazukommen

                                    • du musst das mit dem cheerio - wie oben erklärt" machen
                                    • du brauchst 2 datenpunkte, die du im script oben einträgst
                                    • man kann auch eine benachrichtigung für telegram, whatsapp,email oder sowas dazufügn
                                    • es ist jetzt ein schedule drin - dann läuft es automatisch

                                    //LINK FORUM
                                    //https://forum.iobroker.net/post/672195
                                    //@liv-in-sky 1.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.G0916D10016202R7.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 9-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 {setState(myAlarmDP,"neue Angebote sind da für immobilienscout");
                                                                                                           log("neue Angebote sind da") ;}
                                                                                                    
                                                                                                    
                                                                                                    mySavedData=[]; mySavedData = list5.slice(0); //Array Copy
                                                                                                    setState(mySavedDataDP,mySavedData.toString());
                                                                                                   // log(list5[0]+"  ---  "+mySavedData);
                                    
                                                           }
                                    
                                                       }
                                                       }
                                    
                                    
                                    });
                                     });
                                    
                                    
                                    
                                    
                                    
                                    

                                    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 2 Antworten Letzte Antwort
                                    0
                                    • liv-in-skyL liv-in-sky

                                      @aiouh

                                      heute gab es ein neues angebot

                                      habe das script so verändert, das eine nachricht auf alexa kommt, wenn neues angebot da ist und auch, wenn ein angebot verschwindet - ich hoffe, dass script macht alles richtig - werden wir dann sehen, wenn sich die angebote ändern bzw gelöscht bzw dazukommen

                                      • du musst das mit dem cheerio - wie oben erklärt" machen
                                      • du brauchst 2 datenpunkte, die du im script oben einträgst
                                      • man kann auch eine benachrichtigung für telegram, whatsapp,email oder sowas dazufügn
                                      • es ist jetzt ein schedule drin - dann läuft es automatisch

                                      //LINK FORUM
                                      //https://forum.iobroker.net/post/672195
                                      //@liv-in-sky 1.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.G0916D10016202R7.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 9-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 {setState(myAlarmDP,"neue Angebote sind da für immobilienscout");
                                                                                                             log("neue Angebote sind da") ;}
                                                                                                      
                                                                                                      
                                                                                                      mySavedData=[]; mySavedData = list5.slice(0); //Array Copy
                                                                                                      setState(mySavedDataDP,mySavedData.toString());
                                                                                                     // log(list5[0]+"  ---  "+mySavedData);
                                      
                                                             }
                                      
                                                         }
                                                         }
                                      
                                      
                                      });
                                       });
                                      
                                      
                                      
                                      
                                      
                                      

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

                                      @liv-in-sky :) Test läuft :+1:

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

                                        @aiouh

                                        heute gab es ein neues angebot

                                        habe das script so verändert, das eine nachricht auf alexa kommt, wenn neues angebot da ist und auch, wenn ein angebot verschwindet - ich hoffe, dass script macht alles richtig - werden wir dann sehen, wenn sich die angebote ändern bzw gelöscht bzw dazukommen

                                        • du musst das mit dem cheerio - wie oben erklärt" machen
                                        • du brauchst 2 datenpunkte, die du im script oben einträgst
                                        • man kann auch eine benachrichtigung für telegram, whatsapp,email oder sowas dazufügn
                                        • es ist jetzt ein schedule drin - dann läuft es automatisch

                                        //LINK FORUM
                                        //https://forum.iobroker.net/post/672195
                                        //@liv-in-sky 1.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.G0916D10016202R7.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 9-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 {setState(myAlarmDP,"neue Angebote sind da für immobilienscout");
                                                                                                               log("neue Angebote sind da") ;}
                                                                                                        
                                                                                                        
                                                                                                        mySavedData=[]; mySavedData = list5.slice(0); //Array Copy
                                                                                                        setState(mySavedDataDP,mySavedData.toString());
                                                                                                       // log(list5[0]+"  ---  "+mySavedData);
                                        
                                                               }
                                        
                                                           }
                                                           }
                                        
                                        
                                        });
                                         });
                                        
                                        
                                        
                                        
                                        
                                        

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

                                        @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 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
                                          #20

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

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

                                          699

                                          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