Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Verpasste Anrufe und AB Nachrichten von der FritzBox

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Verpasste Anrufe und AB Nachrichten von der FritzBox

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      khaos last edited by 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

      arteck Walter White 2 Replies Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @khaos last edited by

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

        K 1 Reply Last reply Reply Quote 0
        • K
          khaos @arteck last edited by 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

          hydrotec 1 Reply Last reply Reply Quote 0
          • hydrotec
            hydrotec @khaos last edited by

            @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 1 Reply Last reply Reply Quote 0
            • K
              khaos @hydrotec last edited by

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

              hydrotec 1 Reply Last reply Reply Quote 1
              • Feuersturm
                Feuersturm last edited by

                @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 Reply Last reply Reply Quote 0
                • K
                  khaos @Feuersturm last edited by

                  @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 Reply Last reply Reply Quote 0
                  • Feuersturm
                    Feuersturm last edited by

                    @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 Reply Last reply Reply Quote 0
                    • hydrotec
                      hydrotec @khaos last edited by

                      @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

                      1 Reply Last reply Reply Quote 0
                      • Walter White
                        Walter White @khaos last edited by

                        @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 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        918
                        Online

                        32.1k
                        Users

                        80.7k
                        Topics

                        1.3m
                        Posts

                        anruf anrufbeantworter fritzbox tam telegram verpasst
                        5
                        10
                        1315
                        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