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. Praktische Anwendungen (Showcase)
  4. Verpasste Anrufe und AB Nachrichten von der FritzBox

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Verpasste Anrufe und AB Nachrichten von der FritzBox

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
anrufanrufbeantworterfritzboxtamtelegramverpasst
10 Beiträge 5 Kommentatoren 1.5k Aufrufe 10 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.
  • K Offline
    K Offline
    khaos
    schrieb am zuletzt editiert von khaos
    #1

    Servus!

    Ich denke das gab es hier bisher nicht, da ich den fritzbox Adapter hierfür ordentlich erweitern musste ;)

    Wer will kann sich meine Version des Adapter direkt von GitHub installieren:
    https://github.com/Khaos66/ioBroker.fritzbox
    Neben der Anrufbeantworter-Funktion (TAM) sind auch kleinere Bugs behoben worden.

    Ihr habt dann in der fritzbox Instanz einen neuen Haken "Anrufbeantworter auslesen":
    d2aaa460-78a3-44f9-b2b5-b610b85c770b-image.png

    Das wiederum sorgt bei einem verpassten Anruf mit Nachricht auf dem AB dafür, dass die Nachricht als WAV Datei heruntergeladen wird und ein Eintrag im Objekt 'fritzbox.0.tam.messagesJSON' entsteht.
    3c6e996f-e04e-43ab-b298-6d2e84ebd0ef-image.png

    Wenn ihr den Telegram Adapter eingerichtet habt, dann kann euch dieses Script Nachrichten vom AB an Telegram weiterleiten. Das schaut dann etwa so aus:
    8d29c4eb-0677-4ca5-ae8b-d10604a2cd69-image.png

    const { existsSync } = require('fs');
    
    const LAST_TAM_DATE_STATE = "lastTamDate";
    
    existsState(LAST_TAM_DATE_STATE, (err, exists) => {
        if (!exists) {
            createState(LAST_TAM_DATE_STATE,'');
        }
    })
    
    function parseDateTime(input) {
        var parts = input.match(/(\d+)/g);
        return new Date(parts[2], parts[1]-1, parts[0], parts[3], parts[4]);
    }
    
    on({id: "fritzbox.0.tam.messagesJSON", change: "ne"}, function(obj) {
        if (!obj.state.val) {
            return;
        }
    
        var messages = JSON.parse(obj.state.val);
        log(`messages: ${JSON.stringify(messages)}`,'debug');
        if (messages.length == 0) {
            return;
        }
    
        // last message
        var message = messages[messages.length - 1];
        log(`message: ${JSON.stringify(message)}`,'debug');
    
        var lastTamDate = parseDateTime(getState(LAST_TAM_DATE_STATE).val);
        var messageDate = parseDateTime(message.date);
        if (messageDate <= lastTamDate) {
            log('skip old message','debug');
            return;
        }
        
        if (message.audioFile && existsSync(message.audioFile)) {
            sendTo('telegram.0', {text: message.audioFile, caption: 'Nachricht', disable_notification: true});
            log('Audio message send','debug');
        }
        
        var msg;
        if (message.callerName) {
            msg = `📞 Verpasster Anruf von ${message.callerName} (${message.callerNumber}). Dauer: ${message.duration}`;
        } else {
            msg = `📞 Verpasster Anruf von ${message.callerNumber}. Dauer: ${message.duration}`;
        }
        log(msg, "info");
        sendTo('telegram.0', msg);
    
        setState(LAST_TAM_DATE_STATE, message.date, true);
    });
    

    Und dieses andere Script schickt eine Telegram Nachricht bei verpassten Anrufen ohne Nachricht auf dem AB und schaut so aus:
    6715269b-d4ce-4fe7-9929-f5995a0ed119-image.png

    on("fritzbox.0.cdr.missedJSON", function(obj) {
        if (!obj.state.val) {
            return;
        }
        var msg;
        var caller;
        log(JSON.stringify(obj.state.val), "debug");
        var num = obj.state.val.unknownNumber ? 'unbekannter Nummer' : obj.state.val.externalE164; 
        log(`Missed call from ${num}`, "debug");
        var phonebookstr = getState("fritzbox.0.phonebook.tableJSON").val;
        if (phonebookstr && phonebookstr.length>2){
            var phonebook = JSON.parse(phonebookstr);
            log(`Phonebook: ${phonebook}`, "debug");
            caller = phonebook.find(x => x.key == obj.state.val.externalNumber);
        }
        if (caller) {
            msg = `📞 Verpasster Anruf von ${caller.value.name} ${caller.value.type} (${num}). Dauer: ${obj.state.val.durationRingSecs}s`;
        } else {
            msg = `📞 Verpasster Anruf von ${num}. Dauer: ${obj.state.val.durationRingSecs}s`;
        }
        log(msg, "info");
        sendTo('telegram.0', msg);
    });
    

    Wer meine Arbeit schätzt kann sich gerne hier erkenntlich zeigen ;)
    PayPal Donate

    arteckA Walter WhiteW 2 Antworten Letzte Antwort
    0
    • K khaos

      Servus!

      Ich denke das gab es hier bisher nicht, da ich den fritzbox Adapter hierfür ordentlich erweitern musste ;)

      Wer will kann sich meine Version des Adapter direkt von GitHub installieren:
      https://github.com/Khaos66/ioBroker.fritzbox
      Neben der Anrufbeantworter-Funktion (TAM) sind auch kleinere Bugs behoben worden.

      Ihr habt dann in der fritzbox Instanz einen neuen Haken "Anrufbeantworter auslesen":
      d2aaa460-78a3-44f9-b2b5-b610b85c770b-image.png

      Das wiederum sorgt bei einem verpassten Anruf mit Nachricht auf dem AB dafür, dass die Nachricht als WAV Datei heruntergeladen wird und ein Eintrag im Objekt 'fritzbox.0.tam.messagesJSON' entsteht.
      3c6e996f-e04e-43ab-b298-6d2e84ebd0ef-image.png

      Wenn ihr den Telegram Adapter eingerichtet habt, dann kann euch dieses Script Nachrichten vom AB an Telegram weiterleiten. Das schaut dann etwa so aus:
      8d29c4eb-0677-4ca5-ae8b-d10604a2cd69-image.png

      const { existsSync } = require('fs');
      
      const LAST_TAM_DATE_STATE = "lastTamDate";
      
      existsState(LAST_TAM_DATE_STATE, (err, exists) => {
          if (!exists) {
              createState(LAST_TAM_DATE_STATE,'');
          }
      })
      
      function parseDateTime(input) {
          var parts = input.match(/(\d+)/g);
          return new Date(parts[2], parts[1]-1, parts[0], parts[3], parts[4]);
      }
      
      on({id: "fritzbox.0.tam.messagesJSON", change: "ne"}, function(obj) {
          if (!obj.state.val) {
              return;
          }
      
          var messages = JSON.parse(obj.state.val);
          log(`messages: ${JSON.stringify(messages)}`,'debug');
          if (messages.length == 0) {
              return;
          }
      
          // last message
          var message = messages[messages.length - 1];
          log(`message: ${JSON.stringify(message)}`,'debug');
      
          var lastTamDate = parseDateTime(getState(LAST_TAM_DATE_STATE).val);
          var messageDate = parseDateTime(message.date);
          if (messageDate <= lastTamDate) {
              log('skip old message','debug');
              return;
          }
          
          if (message.audioFile && existsSync(message.audioFile)) {
              sendTo('telegram.0', {text: message.audioFile, caption: 'Nachricht', disable_notification: true});
              log('Audio message send','debug');
          }
          
          var msg;
          if (message.callerName) {
              msg = `📞 Verpasster Anruf von ${message.callerName} (${message.callerNumber}). Dauer: ${message.duration}`;
          } else {
              msg = `📞 Verpasster Anruf von ${message.callerNumber}. Dauer: ${message.duration}`;
          }
          log(msg, "info");
          sendTo('telegram.0', msg);
      
          setState(LAST_TAM_DATE_STATE, message.date, true);
      });
      

      Und dieses andere Script schickt eine Telegram Nachricht bei verpassten Anrufen ohne Nachricht auf dem AB und schaut so aus:
      6715269b-d4ce-4fe7-9929-f5995a0ed119-image.png

      on("fritzbox.0.cdr.missedJSON", function(obj) {
          if (!obj.state.val) {
              return;
          }
          var msg;
          var caller;
          log(JSON.stringify(obj.state.val), "debug");
          var num = obj.state.val.unknownNumber ? 'unbekannter Nummer' : obj.state.val.externalE164; 
          log(`Missed call from ${num}`, "debug");
          var phonebookstr = getState("fritzbox.0.phonebook.tableJSON").val;
          if (phonebookstr && phonebookstr.length>2){
              var phonebook = JSON.parse(phonebookstr);
              log(`Phonebook: ${phonebook}`, "debug");
              caller = phonebook.find(x => x.key == obj.state.val.externalNumber);
          }
          if (caller) {
              msg = `📞 Verpasster Anruf von ${caller.value.name} ${caller.value.type} (${num}). Dauer: ${obj.state.val.durationRingSecs}s`;
          } else {
              msg = `📞 Verpasster Anruf von ${num}. Dauer: ${obj.state.val.durationRingSecs}s`;
          }
          log(msg, "info");
          sendTo('telegram.0', msg);
      });
      

      Wer meine Arbeit schätzt kann sich gerne hier erkenntlich zeigen ;)
      PayPal Donate

      arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @khaos dann mach doch ein PR für den offiziellen Adapter

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      K 1 Antwort Letzte Antwort
      0
      • arteckA arteck

        @khaos dann mach doch ein PR für den offiziellen Adapter

        K Offline
        K Offline
        khaos
        schrieb am zuletzt editiert von khaos
        #3

        @arteck Ich habe noch einen anderen offen, der zuerst gemergt werden sollte ;)
        Habe leider beides auf /main entwickelt... im Nachhinein nicht sehr schlau, aber so ist es nun eben.

        EDIT: Ich habs jetzt einfach als PR erstellt... mal sehen ob er akzeptiert wird

        hydrotecH 1 Antwort Letzte Antwort
        0
        • K khaos

          @arteck Ich habe noch einen anderen offen, der zuerst gemergt werden sollte ;)
          Habe leider beides auf /main entwickelt... im Nachhinein nicht sehr schlau, aber so ist es nun eben.

          EDIT: Ich habs jetzt einfach als PR erstellt... mal sehen ob er akzeptiert wird

          hydrotecH Offline
          hydrotecH Offline
          hydrotec
          schrieb am zuletzt editiert von
          #4

          @khaos

          Hallo khaos,

          deine Erweiterung des Adapters finde ich sehr gut, und würde sie vermutlich auch einsetzen.
          Nur mal aus Interesse meinerseits, warum hast du diese Funktion in den veralteten Adapter eingebaut,
          und nicht in den neuen TR-064?
          Fritzbox_Adapter_FAQ_01.png

          Gruß, Karsten

          Ubuntu 22.04 LTS (LXD/LXC)
          admin: v6.3.5
          js-controller: v4.0.24
          node: v18.16.1
          npm: v9.5.1
          repository: stable

          K 1 Antwort Letzte Antwort
          0
          • hydrotecH hydrotec

            @khaos

            Hallo khaos,

            deine Erweiterung des Adapters finde ich sehr gut, und würde sie vermutlich auch einsetzen.
            Nur mal aus Interesse meinerseits, warum hast du diese Funktion in den veralteten Adapter eingebaut,
            und nicht in den neuen TR-064?
            Fritzbox_Adapter_FAQ_01.png

            Gruß, Karsten

            K Offline
            K Offline
            khaos
            schrieb am zuletzt editiert von
            #5

            @hydrotec Hi. Ehrlich gesagt bin ich noch ganz neu hier und wusste nicht, dass der Adapter veraltet ist... Dann wundert es mich jetzt auch nicht mehr, dass ich so viel drum herum fixen musste =D
            Ich versuche bei Gelegenheit den neuen damit auszustatten ;) Wird aber wohl etwas dauern...

            hydrotecH 1 Antwort Letzte Antwort
            1
            • FeuersturmF Offline
              FeuersturmF Offline
              Feuersturm
              schrieb am zuletzt editiert von
              #6

              @khaos Hi, ich hatte vor einiger Zeit mal an einem Skript geschrieben, um die Anrufbeantworterdaten aus der Fritzbox auszulesen, darzustellen und löschen zu können: https://forum.iobroker.net/topic/14288/tr-064-fritzbox-anrufbeantworter/38

              Wenn ich deine Erweiterung richtig verstanden habe lädst du nur die letzte Sounddatei vom Anrufbeantworter und machst sie abspielbar. Ist das richtig?
              Wäre es auch technisch möglich, eine beliebige Aufnahme herunterzuladen und abzuspielen?

              K 1 Antwort Letzte Antwort
              0
              • FeuersturmF Feuersturm

                @khaos Hi, ich hatte vor einiger Zeit mal an einem Skript geschrieben, um die Anrufbeantworterdaten aus der Fritzbox auszulesen, darzustellen und löschen zu können: https://forum.iobroker.net/topic/14288/tr-064-fritzbox-anrufbeantworter/38

                Wenn ich deine Erweiterung richtig verstanden habe lädst du nur die letzte Sounddatei vom Anrufbeantworter und machst sie abspielbar. Ist das richtig?
                Wäre es auch technisch möglich, eine beliebige Aufnahme herunterzuladen und abzuspielen?

                K Offline
                K Offline
                khaos
                schrieb am zuletzt editiert von
                #7

                @feuersturm Hi, der Adapter lädt das TAM (telephone answering maschine / Anrufbeantworter) Protokoll herunter. Dazu gehören auch die WAV Dateien mit den Nachrichten. AVM Docu: https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_tam.pdf

                Das Script oben reagiert dann nur darauf, dass eine neue Nachricht heruntergeladen wurde.

                Ich verstehe nicht ganz, welche anderen Nachrichten du herunterladen willst?
                Eine vollständige Liste aller Schnittstellen, die eine Fritzbox liefert findest du hier:
                https://avm.de/service/schnittstellen/

                1 Antwort Letzte Antwort
                0
                • FeuersturmF Offline
                  FeuersturmF Offline
                  Feuersturm
                  schrieb am zuletzt editiert von
                  #8

                  @khaos Hi, das heißt, wenn mehrere wav Dateie auf der Fritzbox gespeichert sind, würde deine Erweiterug diese auch einzeln in ioBroker speichern und die einzelnen wav Dateien wären für die weitere Verarbeitung in ioBroker verfügbar.

                  1 Antwort Letzte Antwort
                  0
                  • K khaos

                    @hydrotec Hi. Ehrlich gesagt bin ich noch ganz neu hier und wusste nicht, dass der Adapter veraltet ist... Dann wundert es mich jetzt auch nicht mehr, dass ich so viel drum herum fixen musste =D
                    Ich versuche bei Gelegenheit den neuen damit auszustatten ;) Wird aber wohl etwas dauern...

                    hydrotecH Offline
                    hydrotecH Offline
                    hydrotec
                    schrieb am zuletzt editiert von
                    #9

                    @khaos

                    Guten Morgen

                    Shit happens ;-)

                    @khaos sagte in Verpasste Anrufe und AB Nachrichten von der FritzBox:

                    ... Ich versuche bei Gelegenheit den neuen damit auszustatten ;) Wird aber wohl etwas dauern...
                    Vorab schon einmal Dankeschön :-)

                    Ist wirklich eine nützliche Funktion.
                    Hatte das in meiner vorherigen Automatisationssoftware auch zur Verfügung.

                    Angenehmen Tag noch.
                    Gruß, Karsten

                    Ubuntu 22.04 LTS (LXD/LXC)
                    admin: v6.3.5
                    js-controller: v4.0.24
                    node: v18.16.1
                    npm: v9.5.1
                    repository: stable

                    1 Antwort Letzte Antwort
                    0
                    • K khaos

                      Servus!

                      Ich denke das gab es hier bisher nicht, da ich den fritzbox Adapter hierfür ordentlich erweitern musste ;)

                      Wer will kann sich meine Version des Adapter direkt von GitHub installieren:
                      https://github.com/Khaos66/ioBroker.fritzbox
                      Neben der Anrufbeantworter-Funktion (TAM) sind auch kleinere Bugs behoben worden.

                      Ihr habt dann in der fritzbox Instanz einen neuen Haken "Anrufbeantworter auslesen":
                      d2aaa460-78a3-44f9-b2b5-b610b85c770b-image.png

                      Das wiederum sorgt bei einem verpassten Anruf mit Nachricht auf dem AB dafür, dass die Nachricht als WAV Datei heruntergeladen wird und ein Eintrag im Objekt 'fritzbox.0.tam.messagesJSON' entsteht.
                      3c6e996f-e04e-43ab-b298-6d2e84ebd0ef-image.png

                      Wenn ihr den Telegram Adapter eingerichtet habt, dann kann euch dieses Script Nachrichten vom AB an Telegram weiterleiten. Das schaut dann etwa so aus:
                      8d29c4eb-0677-4ca5-ae8b-d10604a2cd69-image.png

                      const { existsSync } = require('fs');
                      
                      const LAST_TAM_DATE_STATE = "lastTamDate";
                      
                      existsState(LAST_TAM_DATE_STATE, (err, exists) => {
                          if (!exists) {
                              createState(LAST_TAM_DATE_STATE,'');
                          }
                      })
                      
                      function parseDateTime(input) {
                          var parts = input.match(/(\d+)/g);
                          return new Date(parts[2], parts[1]-1, parts[0], parts[3], parts[4]);
                      }
                      
                      on({id: "fritzbox.0.tam.messagesJSON", change: "ne"}, function(obj) {
                          if (!obj.state.val) {
                              return;
                          }
                      
                          var messages = JSON.parse(obj.state.val);
                          log(`messages: ${JSON.stringify(messages)}`,'debug');
                          if (messages.length == 0) {
                              return;
                          }
                      
                          // last message
                          var message = messages[messages.length - 1];
                          log(`message: ${JSON.stringify(message)}`,'debug');
                      
                          var lastTamDate = parseDateTime(getState(LAST_TAM_DATE_STATE).val);
                          var messageDate = parseDateTime(message.date);
                          if (messageDate <= lastTamDate) {
                              log('skip old message','debug');
                              return;
                          }
                          
                          if (message.audioFile && existsSync(message.audioFile)) {
                              sendTo('telegram.0', {text: message.audioFile, caption: 'Nachricht', disable_notification: true});
                              log('Audio message send','debug');
                          }
                          
                          var msg;
                          if (message.callerName) {
                              msg = `📞 Verpasster Anruf von ${message.callerName} (${message.callerNumber}). Dauer: ${message.duration}`;
                          } else {
                              msg = `📞 Verpasster Anruf von ${message.callerNumber}. Dauer: ${message.duration}`;
                          }
                          log(msg, "info");
                          sendTo('telegram.0', msg);
                      
                          setState(LAST_TAM_DATE_STATE, message.date, true);
                      });
                      

                      Und dieses andere Script schickt eine Telegram Nachricht bei verpassten Anrufen ohne Nachricht auf dem AB und schaut so aus:
                      6715269b-d4ce-4fe7-9929-f5995a0ed119-image.png

                      on("fritzbox.0.cdr.missedJSON", function(obj) {
                          if (!obj.state.val) {
                              return;
                          }
                          var msg;
                          var caller;
                          log(JSON.stringify(obj.state.val), "debug");
                          var num = obj.state.val.unknownNumber ? 'unbekannter Nummer' : obj.state.val.externalE164; 
                          log(`Missed call from ${num}`, "debug");
                          var phonebookstr = getState("fritzbox.0.phonebook.tableJSON").val;
                          if (phonebookstr && phonebookstr.length>2){
                              var phonebook = JSON.parse(phonebookstr);
                              log(`Phonebook: ${phonebook}`, "debug");
                              caller = phonebook.find(x => x.key == obj.state.val.externalNumber);
                          }
                          if (caller) {
                              msg = `📞 Verpasster Anruf von ${caller.value.name} ${caller.value.type} (${num}). Dauer: ${obj.state.val.durationRingSecs}s`;
                          } else {
                              msg = `📞 Verpasster Anruf von ${num}. Dauer: ${obj.state.val.durationRingSecs}s`;
                          }
                          log(msg, "info");
                          sendTo('telegram.0', msg);
                      });
                      

                      Wer meine Arbeit schätzt kann sich gerne hier erkenntlich zeigen ;)
                      PayPal Donate

                      Walter WhiteW Offline
                      Walter WhiteW Offline
                      Walter White
                      schrieb am zuletzt editiert von
                      #10

                      @khaos Ich habe hier den normalen fritzbox adapter aus iobroker, und ich habe hier nicht die option AB auslesen, wird der adapter bald offiziell als update kommen, und geht dein script damit dann noch?

                      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

                      731

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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