Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Fritzbox rückwärtssuche mit iobroker?

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Fritzbox rückwärtssuche mit iobroker?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Walter White
      Walter White last edited by

      Gibt es eine Möglichkeit dass bei einem Anruf auf Festnetz, iobroker die Nummer zb bei Google etc prüft, und mir bei einem Treffer dann den Name statt der Nummer auf meinen Fritz C5 anzeigt? 🤔

      liv-in-sky Jey Cee 2 Replies Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @Walter White last edited by

        @Walter-White

        habe kein c5 aber die google kontakte als telefonbuch in der fritzbox definiert - bei mir werden die namen angezeigt

        Walter White 1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer @Walter White last edited by

          @Walter-White mir ist nichts fertiges bekannt. Es gibt aber einige Dienste bei denen man eine Rufnummer suchen kann, unter anderem das Telefonbuch.
          Hier lässt sich per URL die Suche durchfüren.

          https://www.dastelefonbuch.de/R%C3%BCckw%C3%A4rts-Suche/082411021
          

          Danach kann man die Seite nachdem Ergebnis parsen. Soweit ist das relativ einfach.

          Damit das Ergebnis angezeigt wird muss das dann als Telefonbucheintrag angelegt werden. Aber ob das mit dem tr064 Adapter geht und ob es dann Angezeigt wird wenn es schon Klingelt ist fraglich.

          Eine andere Möglichkeit fällt mir nicht ein.

          1 Reply Last reply Reply Quote 1
          • Walter White
            Walter White @liv-in-sky last edited by

            @liv-in-sky es geht nicht um meine Google Kontakte, sondern um telefonnummern die nicht in meinen Google Kontakten sind! 😉

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

              @Walter-White
              ja - habe ich nach jey-cee's post auch gedacht 🙂

              1 Reply Last reply Reply Quote 0
              • M
                Marsx79 last edited by Marsx79

                var request = require('request');
                on({id: 'tr-064.0.callmonitor.ringing', val: true, ack: true}, function (obj) { // wenn Anruf
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  log("Skript2 klingeln");
                  var nummer = String(getState("tr-064.0.callmonitor.inbound.caller").val, 2000, false);  // caller Nummer auslesen
                  log(' caller=' + nummer);
                  var namen = String(getState("tr-064.0.callmonitor.inbound.callerName").val, 2000, false); // caller Name auslesen
                  if (!namen.length){ // Namen leer in Fritz Telefonbuch, dann Namen in Das Örtliche suchen
                      log('namen ist leer.');
                      var url = 'http://www.dasoertliche.de/Controller?form_name=search_inv&ph='+ nummer; // suche namen
                      request(url, function(err, stat, body) {
                        if(err) log('Error: ' + err, error);
                        var matches = body.match(/class="name ".*?<.*?>(.*?)&/); // in matches[1] steht der Namen aus Das Örtliche
                        log('Name' + matches[1]);
                        if (!matches[1].length){     // Das Örtliche kein Name gefunden
                           log('Namen Unbekannt');
                           setState('tr-064.0.callmonitor.inbound.calleeName').String('Unbekannt');
                        } else {
                            log (Namen= + matches[1]);
                            setState('tr-064.0.callmonitor.inbound.calleeName').matches[1];
                        }
                      });
                  } 
                });   
                

                Hatte dieses alte Script noch rumliegen. Keine Ahnung ob das noch funktioniert. Vielleicht kann das ja mal jemand testen.

                Gargano 2 Replies Last reply Reply Quote 0
                • Gargano
                  Gargano @Marsx79 last edited by

                  @Marsx79 Habs mal probiert, jedoch kommt der body.match mit der URL-Antwort nicht zurecht.
                  Firefox meint, daß content-encoding gzip ist.
                  Ich weiß nicht ob request mit gzip zurecht kommt.

                  1 Reply Last reply Reply Quote 0
                  • Gargano
                    Gargano @Marsx79 last edited by

                    @Marsx79 Hab mal ein log vom body gemacht, da erscheint des als Klartext, kommt also mit gzip zurecht. Scheint noch ein Problem mit der Zeile body.match zu sein

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Marsx79 @Gargano last edited by

                      @Gargano

                      Mit Scripten kenne ich mich leider nicht so aus. War nur als Anregung gedacht. Vielleicht kann da ja jemand was mit anfangen und es entsprechend anpassen.

                      Gargano 1 Reply Last reply Reply Quote 0
                      • Gargano
                        Gargano @Marsx79 last edited by Gargano

                        @Marsx79 Also rausgefunden habe ich , daß die Klasse jetzt "st-treff-name" heißt und nicht mehr "name".
                        Ich komme aber mit dem Ausdruck .?<.?>(.*?)&/ nicht klar.
                        Hier scheint sich JS aufzuhängen.
                        Evtl. kann jemand da helfen.

                        Problem bei der ganzen HTML Geschichte ist, daß bei der nächsten Änderung der Klassenname wieder anders sein kann.
                        Eine Abfrage mit Get und Antwort als JSON wäre da besser.

                        Gargano 1 Reply Last reply Reply Quote 0
                        • Gargano
                          Gargano @Gargano last edited by Gargano

                          @Gargano Hier nun der geänderte Code für die Rückwärtssuche im 'Das Örtliche'

                          // Rückwärtssuche von das Örtliche 
                          
                          const callerName = 'tr-064.0.callmonitor.inbound.callerName';
                          const lastCallerName ='tr-064.0.callmonitor.lastCall.callerName';
                          
                          var request = require('request');
                          
                          
                          on({id: 'tr-064.0.callmonitor.ringing', val: true, ack: true}, function (obj) { // wenn Anruf
                            log("Skript2 klingeln");
                            var nummer = String(getState("tr-064.0.callmonitor.inbound.caller").val, 2000, false);  // caller Nummer auslesen
                            log(' caller=' + nummer);
                            var namen = String(getState(callerName).val, 2000, false); // caller Name auslesen
                            if (!namen.length){ // Namen leer in Fritz Telefonbuch, dann Namen in Das Örtliche suchen
                                log('namen ist leer.');
                                var url = 'http://www.dasoertliche.de/Controller?form_name=search_inv&ph='+ nummer; // suche namen
                                log (url);
                                request(url, function(err, body) {
                                  if(err) log('Error: ' + err);
                                  var matches = body.match(/class="st-treff-name"\>(.*?)\</); // in matches[1] steht der Namen aus Das Örtliche
                                  if (!matches){     // Das Örtliche kein Name gefunden
                                     log('Namen Unbekannt');
                                     setState(callerName,'Unbekannt');
                                     setState(lastCallerName,'Unbekannt');
                                  } else {
                                      log ('Namen= '+ matches[1]);
                                      setState(callerName,matches[1]);
                                      setState(lastCallerName,matches[1]);
                                  }
                                });
                            } 
                          });   
                          
                          
                          
                          M 1 Reply Last reply Reply Quote 0
                          • M
                            Marsx79 @Gargano last edited by

                            @Gargano

                            Super! Werde ich nachher gleich mal ausprobieren.

                            Gargano 2 Replies Last reply Reply Quote 0
                            • Gargano
                              Gargano @Marsx79 last edited by

                              @Marsx79 Ups , doch ein Schreibfehler

                              const lastCallerName ='tr-064.0.callmonitor.lastCall.callerName';
                              
                              1 Reply Last reply Reply Quote 0
                              • Gargano
                                Gargano @Marsx79 last edited by

                                @Marsx79 Nach der letzten Version vom JS Adapter kam bei mir eine Fehlermeldung mit der 'match' Funktion, daß diese nicht definiert sei.

                                Ich habe jetzt das aktuellere axios Modul verwendet :
                                Dazu muß in der JS Instanz unter den zusätzlichen NPM-Module axios eingetragen werden.

                                // Rückwärtssuche von das Örtliche 
                                
                                const callerName = 'tr-064.0.callmonitor.inbound.callerName';
                                const lastCallerName ='tr-064.0.callmonitor.lastCall.callerName';
                                const ringing = 'tr-064.0.callmonitor.ringing';
                                const caller = 'tr-064.0.callmonitor.inbound.caller';
                                
                                const axios = require('axios');
                                
                                function getCallerName(url) {
                                    axios.get(url)
                                        .then(function (response) {
                                            // handle success
                                          var matches = response.data.match(/class="st-treff-name"\>(.*?)\</); // in matches[1] steht der Namen aus Das Örtliche
                                            if (!matches){     // Das Örtliche kein Name gefunden
                                            setState(callerName,'Unbekannt');
                                            setState(lastCallerName,'Unbekannt');
                                            } else { 
                                                setState(callerName,matches[1]);
                                                setState(lastCallerName,matches[1]);
                                            } 
                                        })
                                        .catch(function (error) {
                                            // handle error
                                            console.log(error);
                                        })
                                }
                                
                                on({id: ringing, val: true, ack: true}, function (obj) { // wenn Anruf
                                  var nummer = String(getState(caller).val, 2000, false);  // caller Nummer auslesen
                                  var namen = String(getState(callerName).val, 2000, false); // caller Name auslesen
                                  if (!namen.length){ // Namen leer in Fritz Telefonbuch, dann Namen in Das Örtliche suchen
                                    var url = 'http://www.dasoertliche.de/Controller?form_name=search_inv&ph='+ nummer; // suche namen
                                    getCallerName(url);
                                  } 
                                });   
                                
                                
                                
                                
                                F 1 Reply Last reply Reply Quote 0
                                • F
                                  flotux @Gargano last edited by

                                  @gargano
                                  Dein Post hat mir damals sehr geholfen. Mir ist aber aufgefallen, dass sich offenbar der Aufbau der Seite von www.dasoertliche.de geändert hat, wodurch die Rückwärtssuche nicht mehr funktioniert. Mit folgenden Anpassungen funktioniert es bei mir zumindest wieder:

                                  var url = 'https://mobil.dasoertliche.de/Themen?nummer='+ nummer;
                                  

                                  Folgender regulärer Ausdruck liefert bei mir dann den Namen bzw. die Firma zur Rufnummer:

                                  var matches = response.data.match('<h2 class="tao-cb tao-b\">(.*)<\/h2>');
                                  

                                  Vielleicht hilft das dem einen oder anderen, so wie es mir damals geholfen hat. 😉

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

                                  Support us

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

                                  801
                                  Online

                                  31.6k
                                  Users

                                  79.4k
                                  Topics

                                  1.3m
                                  Posts

                                  fritzbox 7590 fritzfon
                                  6
                                  15
                                  1780
                                  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