Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. DECT Telefonat erkennen - Alexa Ruhe bei Gespräch

    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

    DECT Telefonat erkennen - Alexa Ruhe bei Gespräch

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

      Schwierig wird es auch, wenn auf mehreren Leitungen gleichzeitig telefoniert wird. Beispiel:

      1. Telefonat begonnen -> Regel trifft zu
      2. Telefonat begonnen -> Regel trifft zu
      3. Telefonat begonnen -> Regel trifft nicht mehr zu, das 2. aktive Telefonat wird nicht mehr erkannt.
      1 Reply Last reply Reply Quote 0
      • F
        FabianHM @StrathCole last edited by

        @StrathCole
        Ja, bei uns werden eher die Varianten 1. und 2. auftreten.
        Damit sollte es funktionieren:

        on({id: new RegExp('tr-064-community\\.0\\.callmonitor\\.connect\\.timestamp' + "|" + 'tr-064-community\\.0\\.callmonitor\\.lastCall\\.timestamp'), change: "ne"}, function (obj) {
            if (getState("tr-064-community.0.callmonitor.lastCall.timestamp").val > getState("tr-064-community.0.callmonitor.connect.timestamp").val) {
            console.log('DECT Telefonat aktiv');
          }
          if (getState("tr-064-community.0.callmonitor.lastCall.timestamp").val <= getState("tr-064-community.0.callmonitor.connect.timestamp").val) {
            console.log('DECT Telefonat beendet');
          }
        });
        

        Komisch dass diesen State bisher sonst keiner im Adapter vermisst hat....

        1 Reply Last reply Reply Quote 0
        • StrathCole
          StrathCole last edited by

          Hier ein Skript, das funktioniert:

          let activeCalls = [];
          
          on('tr-064.0.callmonitor.connect.timestamp', function(obj) {
              let caller = getState('tr-064.0.callmonitor.connect.caller').val;
              let callee = getState('tr-064.0.callmonitor.connect.callee').val;
          
              let time = obj.state.val;
          
              let idx = activeCalls.findIndex(function(element) {
                  return (element.caller === caller && element.callee === callee);
              });
          
              if(idx === -1) {
                  activeCalls.push({
                      caller: caller,
                      callee: callee,
                      time: time
                  });
              }
          
              log('Active calls: ' + JSON.stringify(activeCalls));
          });
          
          on('tr-064.0.callmonitor.lastCall.timestamp', function(obj) {
              let caller = getState('tr-064.0.callmonitor.lastCall.caller').val;
              let callee = getState('tr-064.0.callmonitor.lastCall.callee').val;
          
              let idx = activeCalls.findIndex(function(element) {
                  return (element.caller === caller && element.callee === callee);
              });
              if(idx != -1) {
                  activeCalls.splice(idx, 1);
              }
          
              log('Active calls: ' + JSON.stringify(activeCalls));
          });
          
          F 1 Reply Last reply Reply Quote 0
          • F
            FabianHM @StrathCole last edited by

            @StrathCole
            Ich werde es heute Abend testen, Dankeschön für die Hilfe!

            F 1 Reply Last reply Reply Quote 0
            • F
              FabianHM @FabianHM last edited by

              @FabianHM said in DECT Telefonat erkennen - Alexa Ruhe bei Gespräch:

              @StrathCole
              Ich werde es heute Abend testen, Dankeschön für die Hilfe!

              Die Erkennung der Anrufe funktioniert 🙂
              Was muss man abändern, damit die Log Einträge nicht immer doppelt angezeigt werden?

              F 1 Reply Last reply Reply Quote 0
              • F
                FabianHM @FabianHM last edited by FabianHM

                @FabianHM said in DECT Telefonat erkennen - Alexa Ruhe bei Gespräch:

                Was muss man abändern, damit die Log Einträge nicht immer doppelt angezeigt werden?

                Ich habe das Script minimal auf meine Belange reduziert, verstehe aber weiterhin nicht, wieso die Logs immer doppelt aufgerufen werden:

                let activeCalls = [];
                
                on('tr-064.0.callmonitor.connect.timestamp', function(obj) {
                
                    let caller = getState('tr-064.0.callmonitor.connect.caller').val;
                
                    let callee = getState('tr-064.0.callmonitor.connect.callee').val;    
                
                    let idx = activeCalls.findIndex(function(element) {
                
                        return (element.caller === caller && element.callee === callee);
                    });
                
                 
                    if(idx === -1) {
                
                        activeCalls.push({
                
                            caller: caller,
                
                            callee: callee           
                
                        });
                
                    }
                
                    log('CallActive: Ja ');
                    setState(`javascript.0.Monitoring.FritzBox.CallActive`, true); 
                
                });
                
                
                on('tr-064.0.callmonitor.lastCall.timestamp', function(obj) {
                
                    let caller = getState('tr-064.0.callmonitor.lastCall.caller').val;
                
                    let callee = getState('tr-064.0.callmonitor.lastCall.callee').val; 
                
                    let idx = activeCalls.findIndex(function(element) {
                
                        return (element.caller === caller && element.callee === callee);
                
                    });
                
                    if(idx != -1) {
                
                        activeCalls.splice(idx, 1);
                    }
                   
                    log('CallActive: Nein ');
                    setState(`javascript.0.Monitoring.FritzBox.CallActive`, false); 
                
                });
                

                53692d94-d631-4619-b21e-24914fce5707-grafik.png

                StrathCole 1 Reply Last reply Reply Quote 0
                • StrathCole
                  StrathCole @FabianHM last edited by

                  @FabianHM Scheinbar wird der timestamp 2x aktualisiert. Warum der Adapter bzw. die Fritz!Box das so macht, weiß ich nicht. Du könntest sicher den timestamp zwischenspeichern und das log nur ausgeben, wenn neuer timestamp > alter timestamp + 1000 oder so. Bei mir taucht er auch doppelt auf.

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    FabianHM @StrathCole last edited by

                    @StrathCole

                    Ich habe gerade einen State im aktuellen Adapter gefunden, der genau meinen Bedarf unterstützt:
                    c9afd778-6f58-40c3-a3dc-4b024a7f72e2-grafik.png

                    der "toPauseState" wird und bleibt bei aktiven Telefonaten auf "connect", also genau was ich benötige 🙂

                    Weißt Du vielleicht, was der untere State "toPauseState-10" für eine Bedeutung hat?

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      FabianHM @FabianHM last edited by

                      @FabianHM said in DECT Telefonat erkennen - Alexa Ruhe bei Gespräch:

                      Weißt Du vielleicht, was der untere State "toPauseState-10" für eine Bedeutung hat?

                      Hat sich auch erledigt: toPauseState-10 => Wert für Nebenstelle **610 die den Anruf angenommen hat.

                      StrathCole 1 Reply Last reply Reply Quote 0
                      • StrathCole
                        StrathCole @FabianHM last edited by

                        @FabianHM Ist bei mir nicht ganz so einfach, da ein ISDN-Telefon an der Box hängt, es also nur eine Nebenstelle gibt, die aber wiederum auf mehrere Endnummern verteilt 😉
                        Umso besser, wenns für dich so einfach zu lösen ist.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        896
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        communication
                        2
                        14
                        583
                        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