Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. khaos

    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

    K
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 5
    • Best 1
    • Groups 1

    khaos

    @khaos

    Starter

    1
    Reputation
    11
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    khaos Follow
    Starter

    Best posts made by khaos

    • RE: Verpasste Anrufe und AB Nachrichten von der FritzBox

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

      posted in Praktische Anwendungen (Showcase)
      K
      khaos

    Latest posts made by khaos

    • RE: Verpasste Anrufe und AB Nachrichten von der FritzBox

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

      posted in Praktische Anwendungen (Showcase)
      K
      khaos
    • RE: Verpasste Anrufe und AB Nachrichten von der FritzBox

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

      posted in Praktische Anwendungen (Showcase)
      K
      khaos
    • RE: Verpasste Anrufe und AB Nachrichten von der FritzBox

      @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

      posted in Praktische Anwendungen (Showcase)
      K
      khaos
    • Verpasste Anrufe und AB Nachrichten von der FritzBox

      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

      posted in Praktische Anwendungen (Showcase)
      K
      khaos
    • RE: IoBroker im Docker/ DSM HarmonyHub - PORT oder ??? Problem, keine Verbindung

      Just in case someone has the same problem again. When using the harmony adapter inside docker, you need to add port 61991 to your countainer setup 😉

      posted in Visualisierung
      K
      khaos
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo