Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Tr-064.0 Adapter und unbekannte Anrufe

    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

    Tr-064.0 Adapter und unbekannte Anrufe

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

      Hallo

      Ich habe die Fritzbox 7590 noch mit Fritz!OS 6.92

      In der Fritz werden die Anrufe die im Fritz Telefonbuch hinterlegt sind mit Namen angezeigt.

      Im tr-064-Adapter unter Objekte/tr-064.0/callmonitor/inbound/callerName aber nicht.

      Auch unter Objekte/tr-064.0/callmonitor/lastCall/callerName nicht.

      Das Objekt caller wird aber bei beiden angezeigt.

      #965 habe ich im Telefon eingegeben.

      Was kann ich machen das ich den callerName angezeigt bekomme?

      Ich habe z.Z noch eine Gigaset S675iP.

      Die holt sich auch den Anrufer Namen aus einem einstellbaren Telefonbuch.

      Das möchte ich weiter auch ohne Gigaset S675iP erreichen.

      Ich habe ein kleines Script aus einem anderen Forum von PHP auf JavaScript umgeschrieben.

      Diese Script holt holt sich anhand der Telefonnummer vom "Das Örtliche" den Namen des Anrufers

      wenn er bekannt ist.

      Das Script muss ich aber in ioBroker Scripte noch richtig einbinden.

      Kommt ein Anruf wird mit callmonitor.ringing das Script gestartet.

      on({id: 'tr-064.0.callmonitor.ringing', change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val; 
      

      Dann soll aus callerName der Name ausgelesen werden.

      Wenn kein Name vorhanden dann ins "Das Örtliche" schauen.

      Ist dort ein Name vorhanden dann Name in callerName eintragen,

      wenn kein Name vorhanden dann Unbekannt in callerNamen eintragen.

      Dann müsste das DECT-Fon den Namen anzeigen?

      Gruß NetFritz

      1 Reply Last reply Reply Quote 0
      • N
        NetFritz last edited by

        Hallo

        callerName wird jetzt nach einem Reset der Fritzbox angezeigt.

        Dann geht es mal weiter mit dem Script.

        Gruß NetFritz

        1 Reply Last reply Reply Quote 0
        • N
          NetFritz last edited by

          Hallo

          Hier mal das Script.

          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];
                  }
                });
            } 
          });   
          

          Der letzte Teil die Suche in Das Örtliche ist in diesen Script noch nicht getestet worden.

          In einem Test-Script wo die Nummer fest in einer Variable belegt ist geht es.

          Unter Instanzen Javascript.0 muss noch das npm Modul "request" eingetragen werden.

          Wer Lust hat kann das mal testen.

          Es muss ihn jemand anrufen der in Das Örtliche steht und nicht in Fritzbox Telefonbuch.

          Gruß NetFritz

          1 Reply Last reply Reply Quote 0
          • R
            RoliRoland last edited by

            Hallo NetFritz,

            vielen Dank. So ein Script such ich schon lange für den iobroker. Hast du an dem Script noch weiter gearbeitet?

            Ich bekomme leider diese Fehlermeldung:

            host.iobroker 2018-10-17 16:10:36.402 info Restart adapter system.adapter.javascript.0 because enabled

            host.iobroker 2018-10-17 16:10:36.402 error instance system.adapter.javascript.0 terminated with code 0 (OK)

            Caught 2018-10-17 16:10:36.402 error by controller[0]: at emitNone (events.js:111:20)

            Caught 2018-10-17 16:10:36.402 error by controller[0]: at Object.onceWrapper (events.js:313:30)

            Caught 2018-10-17 16:10:36.402 error by controller[0]: at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1083:12)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at Request.emit (events.js:211:7)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at emitOne (events.js:116:13)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1161:10)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at Request.emit (events.js:214:7)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at emitTwo (events.js:126:13)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)

            Caught 2018-10-17 16:10:36.401 error by controller[0]: at Request._callback (script.js.common.dasOertliche:22:64)

            Caught 2018-10-17 16:10:36.400 error by controller[0]: TypeError: Cannot read property 'matches' of undefined

            javascript.0 2018-10-17 16:10:36.378 info terminating

            javascript.0 2018-10-17 16:10:36.369 error at emitNone (events.js:111:20)

            javascript.0 2018-10-17 16:10:36.369 error at Object.onceWrapper (events.js:313:30)

            javascript.0 2018-10-17 16:10:36.369 error at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1083:12)

            javascript.0 2018-10-17 16:10:36.369 error at Request.emit (events.js:211:7)

            javascript.0 2018-10-17 16:10:36.369 error at emitOne (events.js:116:13)

            javascript.0 2018-10-17 16:10:36.369 error at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1161:10)

            javascript.0 2018-10-17 16:10:36.369 error at Request.emit (events.js:214:7)

            javascript.0 2018-10-17 16:10:36.369 error at emitTwo (events.js:126:13)

            javascript.0 2018-10-17 16:10:36.369 error at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)

            javascript.0 2018-10-17 16:10:36.369 error at Request._callback (script.js.common.dasOertliche:22:64)

            javascript.0 2018-10-17 16:10:36.369 error TypeError: Cannot read property 'matches' of undefined

            javascript.0 2018-10-17 16:10:36.369 error uncaught exception: Cannot read property 'matches' of undefined

            javascript.0 2018-10-17 16:10:36.361 warn at process._tickCallback (internal/process/next_tick.js:181:9)

            javascript.0 2018-10-17 16:10:36.361 warn at _combinedTickCallback (internal/process/next_tick.js:139:11)

            javascript.0 2018-10-17 16:10:36.361 warn at endReadableNT (_stream_readable.js:1064:12)

            javascript.0 2018-10-17 16:10:36.361 warn at IncomingMessage.emit (events.js:208:7)

            javascript.0 2018-10-17 16:10:36.360 warn at emitNone (events.js:111:20)

            javascript.0 2018-10-17 16:10:36.360 warn at Object.onceWrapper (events.js:313:30)

            javascript.0 2018-10-17 16:10:36.360 warn at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1083:12)

            javascript.0 2018-10-17 16:10:36.360 warn at Request.emit (events.js:211:7)

            javascript.0 2018-10-17 16:10:36.360 warn at emitOne (events.js:116:13)

            javascript.0 2018-10-17 16:10:36.360 warn at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1161:10)

            javascript.0 2018-10-17 16:10:36.360 warn at Request.emit (events.js:214:7)

            javascript.0 2018-10-17 16:10:36.360 warn at emitTwo (events.js:126:13)

            javascript.0 2018-10-17 16:10:36.359 warn at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)

            javascript.0 2018-10-17 16:10:36.359 warn at Request._callback (script.js.common.dasOertliche:21:13)

            javascript.0 2018-10-17 16:10:36.354 warn Wrong type of tr-064.0.callmonitor.inbound.calleeName: "undefined". Please fix, while deprecated and will not work in next versions.

            javascript.0 2018-10-17 16:10:36.351 info script.js.common.dasOertliche: NaN

            Viele Grüße,

            RoliRoland</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous>

            1 Reply Last reply Reply Quote 0
            • N
              NetFritz last edited by

              Hallo

              Habe am Script noch nicht weiter gemacht.

              Das ist aber nicht die ganze Log vom Script.

              Ich hatte vorhin einen Anruf wo der Name nicht übermittelt wird.

              Dort fing die Log so an:

              javascript.0	2018-10-17 16:45:10.643	info	script.js.common.ruekwaertesuche: NaN
              javascript.0	2018-10-17 16:45:10.642	info	script.js.common.ruekwaertesuche: NamePraxisgemeinschaft Loccum xxxxxxxxxxxxxxxxxxxx
              javascript.0	2018-10-17 16:45:10.307	info	script.js.common.ruekwaertesuche: caller=0576xxxxx
              javascript.0	2018-10-17 16:45:10.307	info	script.js.common.ruekwaertesuche: Skript2 klingeln
              

              Da hat das Script den Anrufer aus der Datenbank ausgelesen und erkannt.

              Dann folgt bei mir die gleiche Fehlermeldung wie bei Dir.

              Ich nehme mal an das es damit zusammenhängt wie der Anrufer in den tr-064.0 Adapter eingetragen wird um ihn dann auf den Telefon anzuzeigen.

              Das hatte ich erstmal noch nicht getestet.

              Werde mal schauen wie das läuft.

              Du kannst ja mal so zur Fehlersuche

              die beiden Zeihlen mit setState auskommentieren dann dürften die Fehlermeldungen nicht mehr auftreten.

              Gruß NetFritz

              1 Reply Last reply Reply Quote 0
              • R
                RoliRoland last edited by

                Hallo NetFritz,

                du hast recht. Das Log ging so los:

                javascript.0 2018-10-17 16:10:36.351 info script.js.common.dasOertliche: NaN

                javascript.0 2018-10-17 16:10:36.350 info script.js.common.dasOertliche: NameMxxxxxx xxxx

                javascript.0 2018-10-17 16:10:35.947 info script.js.common.dasOertliche: caller=0383486xxxx

                javascript.0 2018-10-17 16:10:35.947 info script.js.common.dasOertliche: Skript2 klingeln

                javascript.0 2018-10-17 16:10:35.923 info script.js.common.dasOertliche: namen ist leer.

                javascript.0 2018-10-17 16:10:35.923 info script.js.common.dasOertliche: caller=0383543xxxx

                javascript.0 2018-10-17 16:10:35.917 info script.js.common.dasOertliche: Skript2 klingeln

                Der Eintrag caller=0383543xxxx war der Anruf um 16:10:35.923. caller=0383486xxxx mit NameMxxxxxx xxxx war eigentlich ein früherer Anruf. Warum diese auch noch einmal eingelesen wird verstehe ich im Moment noch noch nicht ganz. Leider kann ich den Fehler aktuell nicht mehr reproduzieren. Ich muss mal ein paar Anrufe abwarten.

                VG

                RoliRoland

                1 Reply Last reply Reply Quote 0
                • N
                  NetFritz last edited by

                  Hallo

                  Die Rückwärtssuche in einem Online Telebuch geht wunderbar.

                  Aber wo muss ich in den tr-064.0 Adapter Objekten den Anrufer namen eintragen,

                  das der Namen auf den Schurlosen Handaparat im Display erscheint?

                  "tr-064.0/callmonitor/connect/CalleeName" dort steht auch der Name wenn Anrufer bekannt ist.

                  Gruß NetFritz

                  1 Reply Last reply Reply Quote 0
                  • R
                    RoliRoland last edited by

                    Hallo NetFritz,

                    das Auslesen aus dem Online Telefonbuch scheint gut zu funktionieren.

                    Aber an der Stelle "setState" in deinem Skript bekomme ich u.a. diese Fehler und unter CalleeName wir nichts eingetrage:

                    warn wrong type of tr-064.0.callmonitor.inbound.calleeName: "undefined". Please fix, while deprecated and will not work in next versions.

                    error uncaught exception: Cannot read property 'matches' of undefined

                    Ist das bei dir auch so?

                    VG

                    RoliRoland

                    1 Reply Last reply Reply Quote 0
                    • R
                      RoliRoland last edited by

                      Mit einem

                      setState('tr-064.0.callmonitor.inbound.calleeName', 'Unbekannt', true, parseInt(0, 10), false);

                      bzw.

                      setState('tr-064.0.callmonitor.inbound.calleeName', matches[1], true, parseInt(0, 10), false);

                      müsste es es gehen.

                      VG

                      RoliRoland

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      930
                      Online

                      31.9k
                      Users

                      80.1k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      1577
                      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