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. Skripten / Logik
  4. JavaScript
  5. Korrekte Liste entgangener Anrufe mittels dem tr-064 Adapter

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Korrekte Liste entgangener Anrufe mittels dem tr-064 Adapter

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 683 Aufrufe 1 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
    Semenchkare
    schrieb am zuletzt editiert von Semenchkare
    #1

    Hallo,

    ich beziehe mich auf folgenden Thread, damals hatte ich die korrekte Liste entgangener Anrufe mit dem Fritzbox-Adapter verwirklicht. Das alte Script lief (Anscheinend wegen der Änderung des J-Script-Adapters) aber nicht mehr, hat mir aber viele Jahre gedient. Seinerzeit hatte mir der User ruhr70 mit dem script sehr geholfen.

    (Siehe: Korrekte Liste der Entgangenen Anrufe Mittels Fritzbox-Adapter und einer Skripte-Erweiterung ermitteln)

    Kurz ich möchte das nun mit dem tr-064-Adapter verwirklichen.:

    entgangene Anrufe, die erst aufgelegt werden, wenn der Anrufbeantworter drangeht mit Name (Telefonbuch)
    anzeigen lassen.
    Das findet sich in keiner der missed-Listen, auch bei tr064 Adapter.

    Ich verwende folgendes script (ähnlich wie damals bei Fritzbox-Adapter) und lese den Datenpunkt tr-064.0.calllists.all.json aus und filtere die nicht benötigten Datensätze (eingehende erfolgreiche Anrufe und ausgehende Anrufe ) aus.

        createState('ErfolgloseAnrufe3', '');
    
        function kuerzeDatum(str) {
            var datumStr = str.substr(0,6); // Datum kürzen
            var zeitStr = str.substr(9,5);  // Zeit kürzen
            return datumStr + ": " + zeitStr;
        }
    
        function listeBereinigen(jsonAll){
            for (var i = 0; i < jsonAll.length; i++) {
                jsonAll[i].date = kuerzeDatum(jsonAll[i].date); // Datum und Zeit kürzen
                if(jsonAll[i].sym.indexOf(">X") == -1) {
                    if(jsonAll[i].type >2 ) {
                        delete jsonAll[i];
                        log("del: " + i);
                    }
                }
            }
            return JSON.stringify(jsonAll);
        }
    
        on({id: 'tr-064.0.calllists.all.json'/*calllists all json*/}, function (obj) {  
           var ergebnis = listeBereinigen(JSON.parse(obj.state.val));
           setState('javascript.' + instance + '.ErfolgloseAnrufe3',ergebnis);
        });
    
    

    Eigentlich funktioniert das Script ganz gut, ich lasse dann den Datenpunkt Entgangene Anrufe im Vis anzeigen.
    Angezeigt wird als beispiel in VIS:

    13.07.: 13:07 Karl Müller > 0:01
    13.07.: 13:02 Unbekannt > 0:01 (hier hat der Anrufer eine unterdrückte Rufnr.)
    13.07.: 13:01 > 0:01 (hier ist die angezeigte Nummer nicht im Telefonbuch der Fritz)

    Bei unterdrückten Rufnummern zeigt er im Feld "name" dann auch Unbekannt an.

    Leider ist es bei angezeigten Rufnummern, die nicht im Telefonbuch stehen, so, dass im Namensfeld einfach nichts steht.
    Ich habe leider kein Platz, dass ich beide Felder also Telefonnr und Name nebeneinander anzeigen kann...

    Nun meine Frage:
    Wer kennt sich mit Script-Schreiben aus?
    Funktioniert es, das wenn im Feld "Name" beim tr064 json nichts drin steht, dass dann in der neu gebildeten Datei "EntgangeneAnrufe3" die Rufnummer (Feld "external") statt des Namens bzw. in die Variable "name" geschrieben wird? Dann wäre meine Anrufliste wieder perfekt!

    13.07.: 13:01 017600000000 > 0:01

    Danke Euch Experten!

    Viele Grüße

    Semenchkare

    raspberry 5 8GB mit iobroker,
    raspberry 5 8GB mit Raspberrymatic

    paul53P 1 Antwort Letzte Antwort
    0
    • S Semenchkare

      Hallo,

      ich beziehe mich auf folgenden Thread, damals hatte ich die korrekte Liste entgangener Anrufe mit dem Fritzbox-Adapter verwirklicht. Das alte Script lief (Anscheinend wegen der Änderung des J-Script-Adapters) aber nicht mehr, hat mir aber viele Jahre gedient. Seinerzeit hatte mir der User ruhr70 mit dem script sehr geholfen.

      (Siehe: Korrekte Liste der Entgangenen Anrufe Mittels Fritzbox-Adapter und einer Skripte-Erweiterung ermitteln)

      Kurz ich möchte das nun mit dem tr-064-Adapter verwirklichen.:

      entgangene Anrufe, die erst aufgelegt werden, wenn der Anrufbeantworter drangeht mit Name (Telefonbuch)
      anzeigen lassen.
      Das findet sich in keiner der missed-Listen, auch bei tr064 Adapter.

      Ich verwende folgendes script (ähnlich wie damals bei Fritzbox-Adapter) und lese den Datenpunkt tr-064.0.calllists.all.json aus und filtere die nicht benötigten Datensätze (eingehende erfolgreiche Anrufe und ausgehende Anrufe ) aus.

          createState('ErfolgloseAnrufe3', '');
      
          function kuerzeDatum(str) {
              var datumStr = str.substr(0,6); // Datum kürzen
              var zeitStr = str.substr(9,5);  // Zeit kürzen
              return datumStr + ": " + zeitStr;
          }
      
          function listeBereinigen(jsonAll){
              for (var i = 0; i < jsonAll.length; i++) {
                  jsonAll[i].date = kuerzeDatum(jsonAll[i].date); // Datum und Zeit kürzen
                  if(jsonAll[i].sym.indexOf(">X") == -1) {
                      if(jsonAll[i].type >2 ) {
                          delete jsonAll[i];
                          log("del: " + i);
                      }
                  }
              }
              return JSON.stringify(jsonAll);
          }
      
          on({id: 'tr-064.0.calllists.all.json'/*calllists all json*/}, function (obj) {  
             var ergebnis = listeBereinigen(JSON.parse(obj.state.val));
             setState('javascript.' + instance + '.ErfolgloseAnrufe3',ergebnis);
          });
      
      

      Eigentlich funktioniert das Script ganz gut, ich lasse dann den Datenpunkt Entgangene Anrufe im Vis anzeigen.
      Angezeigt wird als beispiel in VIS:

      13.07.: 13:07 Karl Müller > 0:01
      13.07.: 13:02 Unbekannt > 0:01 (hier hat der Anrufer eine unterdrückte Rufnr.)
      13.07.: 13:01 > 0:01 (hier ist die angezeigte Nummer nicht im Telefonbuch der Fritz)

      Bei unterdrückten Rufnummern zeigt er im Feld "name" dann auch Unbekannt an.

      Leider ist es bei angezeigten Rufnummern, die nicht im Telefonbuch stehen, so, dass im Namensfeld einfach nichts steht.
      Ich habe leider kein Platz, dass ich beide Felder also Telefonnr und Name nebeneinander anzeigen kann...

      Nun meine Frage:
      Wer kennt sich mit Script-Schreiben aus?
      Funktioniert es, das wenn im Feld "Name" beim tr064 json nichts drin steht, dass dann in der neu gebildeten Datei "EntgangeneAnrufe3" die Rufnummer (Feld "external") statt des Namens bzw. in die Variable "name" geschrieben wird? Dann wäre meine Anrufliste wieder perfekt!

      13.07.: 13:01 017600000000 > 0:01

      Danke Euch Experten!

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @semenchkare sagte: die Rufnummer (Feld "external") statt des Namens bzw. in die Variable "name" geschrieben wird?

      Enthält jsonAll[i] die Eigenschaften "name" und "external"? Dann einfügen (Zeile 13):

                      if(!jsonAll[i].name) jsonAll[i].name = jsonAll[i].external;
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @semenchkare sagte: die Rufnummer (Feld "external") statt des Namens bzw. in die Variable "name" geschrieben wird?

        Enthält jsonAll[i] die Eigenschaften "name" und "external"? Dann einfügen (Zeile 13):

                        if(!jsonAll[i].name) jsonAll[i].name = jsonAll[i].external;
        
        S Offline
        S Offline
        Semenchkare
        schrieb am zuletzt editiert von
        #3

        @paul53 sagte in Korrekte Liste entgangener Anrufe mittels dem tr-064 Adapter:

        if(!jsonAll[i].name) jsonAll[i].name = jsonAll[i].external;

        für mich sieht es so aus, das dann generell alle Namen überschrieben werden? dann könnte ich gleich ein anderes feld wählen. Ich probiere es aus! Und melde mich zurück!.

        lg seme

        Viele Grüße

        Semenchkare

        raspberry 5 8GB mit iobroker,
        raspberry 5 8GB mit Raspberrymatic

        paul53P 1 Antwort Letzte Antwort
        0
        • S Semenchkare

          @paul53 sagte in Korrekte Liste entgangener Anrufe mittels dem tr-064 Adapter:

          if(!jsonAll[i].name) jsonAll[i].name = jsonAll[i].external;

          für mich sieht es so aus, das dann generell alle Namen überschrieben werden? dann könnte ich gleich ein anderes feld wählen. Ich probiere es aus! Und melde mich zurück!.

          lg seme

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @semenchkare sagte: generell alle Namen überschrieben werden?

          if(!jsonAll[i].name) prüft, ob der Name leer ist.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          S 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @semenchkare sagte: generell alle Namen überschrieben werden?

            if(!jsonAll[i].name) prüft, ob der Name leer ist.

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

            @paul53
            Suuper! Es funktioniert! Vielen Dank!

            Viele Grüße

            Semenchkare

            raspberry 5 8GB mit iobroker,
            raspberry 5 8GB mit Raspberrymatic

            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

            743

            Online

            32.6k

            Benutzer

            82.0k

            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