Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Anrufer Ansage FritzBox / SayIt

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Anrufer Ansage FritzBox / SayIt

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
36 Beiträge 14 Kommentatoren 9.1k 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.
  • N Offline
    N Offline
    nobob
    schrieb am zuletzt editiert von
    #17

    Hallo Miteinander,

    dank dem Vorschlag von ruhr70 habe ich das Skript nach meinen Wünschen angepasst und es erfüllt seinen Zweck.

    Da ich Euch das Script nicht vorenthalten möchte hier mein angepasstes Skript (allerdings ohne offizelle Daten)

    ! ````
    /*
    ..........Anrufer Ansage Fritzbox / SayIT rev00
    ..........Datum: Im Forum Verfasst 2016-02-23, 00:39
    ..........Autor: ruhr70
    ..........Forum ioBroker
    ..........http://forum.iobroker.net/viewtopic.php?f=21&t=2328
    ..........
    ..........Änderungshistorie
    ..........-----------------
    ..........Anrufer Ansage Fritzbox / SayIT rev01
    ..........Datum: 2016-03-08
    ..........Bearbeiter : nobob
    ..........Änderung: Bei Verwendung von unterschiedlichen Telefonnummern (z.B. Privat_1, Privat_2,
    ....................Fax etc.) abfragen auf welcher Rufnummer der externe Anruf eingeht und über
    ....................unterschiedliche SayIT Adapter den Anruf ansagen.
    */
    ! // #################################################################################################
    // # Einstellungsbereich ANFANG
    // #
    ! // Telefonbuch (Dummy Daten)
    var telefonbuchRufnummer =
    { "051147110815": {"name":"Hänschen Klein"},
    "07114711471": {"name":"Gustav Gans Handy"},

    			"### ? ###":        {"name":"Rufnummer unterdrückt"}
           };
    

    ! // Variable für den Einleitungstext
    var TextBeginn = "Anruf von. ";

    // Variable wenn die Rufnummer nicht im Telefonbuch vorhanden ist
    	var telefonbuchRufnummerNichtBekannt = "Unbekannt. Nummer nicht vorhanden";
    

    ! // Variable für die aktuell anrufende Rufnummer (Fritzbox Adapter X (hier: Adapter 0))
    var Anrufer = "fritzbox.0.calls.ringActualNumber"; // actual last ringing number
    ! // Variable für den FritzBox Message String / Datenpunkt
    var FritzMessage = 'fritzbox.0.message';
    ! // Variablen für die Information zum Auslesen aus dem Datenpunkt ´fritzbox.0.message´
    var AktiverAnruf = new RegExp("RING"); // String /RING/ in Variable für *.match Auswertung
    var TelefonNr_1 = new RegExp("xxxxx"); // 1. Telefonnummer (String /xxxxx/ in Variable)
    var TelefonNr_2 = new RegExp("yyyyy"); // 2. Telefonnummer (String /yyyyy/ in Variable)

    // Variablen für die benötigte If Abfrage (feste Vergleichs-Werte)
    	var Standard_1 = "RING";	// String für einen aktuellen Anruf
    	var Standard_2 = "xxxxx";	// Standard für den 1\. Vergleich
    	var Standard_3 = "yyyyy";	// Standard für den 2\. Vergleich (wenn gewünscht)
    

    ! // Variable für die Sprachausgabe (SayIT Adapter X)
    // beide eingestellt auf unterschiedliche Sonos Lautsprecher
    var SayIT_1_config = "sayit.0.tts."; // ohne weiteren Zusatz, Zusatz wird später im
    // Skript angefügt
    var SayIT_2_config = "sayit.1.tts.";
    ! // Lautstaerke fuer die jeweilige Sprachausgabe
    var Volume_1 = "10";
    var Volume_2 = "20";
    ! // Texte für Logeinträge
    var Log_Vergleich_1 = "Externer Anruf auf der ersten Telefonnummer";
    var Log_Vergleich_2 = "Externer Anruf auf der zweiten Telefonnummer";
    var Log_Else = "Keine, falsche oder Fax Rufnummer erkannt";
    ! // #
    // # Einstellungsbereich ENDE
    // #################################################################################################
    ! // Text Zuweisung zum jeweiligen SayIT Adapter; Variable wird für die
    // Sprachausgabe benötigt
    var idSayIT_1 = SayIT_1_config + "text"; // hier der 1. SayIt Adapter
    var idSayIT_2 = SayIT_2_config + "text"; // hier der 2.
    ! // FUNKTION : Auswerten der Rufnummer und vergleichen mit Eintrag im Telefonbuch
    ! function rufnummer2name (rufnummer) {
    var name = ""; // Variable name ablöschen
    ! if (!telefonbuchRufnummer[rufnummer]) { // Wenn Rufnummer nicht im Telefonbuch
    name = telefonbuchRufnummerNichtBekannt; // Oben festgelegter Text in Ausgabevariable
    // schreiben
    } else {
    name = telefonbuchRufnummer[rufnummer].name; // Wenn Rufnummer im Telefonbuch vorhanden
    // den oben festgelegten Text unter name
    // in Ausgabevariable schreiben
    }
    return name; // Rückgabewert entweder Telefonbucheintrag
    // oder nicht bekannt.
    }
    ! // FUNKTION : Sprachausgabe über SayIT Adapter
    ! function AusgabeAnrufer() {
    // Auswertungen müssen hier erfolgen, da sonst der alte Wert vom Daten-
    // punkt ´fritzbox.0.message´ ausgelesen wird.
    ! // Volumen für die 1. Sprachausgabe setzen
    var idVolume_1 = SayIT_1_config + "volume";
    setState (idVolume_1, Volume_1); // Volumen auf Wert X setzen
    ! // Volumen für die weitere Sprachausgabe setzen
    var idVolume_2 = SayIT_2_config + "volume";
    setState (idVolume_2, Volume_2); // Volumen auf Wert X setzen
    ! // Aktuellen ´fritzbox.0.message´ Datenpunkt in Variable speichern
    // var strInfo = getState('fritzbox.0.message').val;
    var strInfo = getState(FritzMessage).val;

    // Datenpunkt strInfo auf die Zeichenkette RING und Telefonnummer durchsuchen
    var Vergleich_1 = strInfo.match(AktiverAnruf);
    var Vergleich_2 = strInfo.match(TelefonNr_1);
    var Vergleich_3 = strInfo.match(TelefonNr_2);
    

    ! // Auswertung auf welcher Nummer angerufen wird mit Sprachausgabe
    // auf den jeweiligen Sonos Lautsprechern

    // Hier Vergleich 1
    if (Vergleich_1 == Standard_1 && Vergleich_2 == Standard_2){
            setState(idSayIT_1, TextBeginn + rufnummer2name(getState(Anrufer).val));
            log(Log_Vergleich_1);
        }
    // Hier Vergleich 2
    if (Vergleich_1 == Standard_1 && Vergleich_3 == Standard_3){
            setState(idSayIT_2, TextBeginn + rufnummer2name(getState(Anrufer).val));
            log(Log_Vergleich_2);
    }
    else {
        log(Log_Else);
    }     
    

    }

    ! // Wenn ein Anruf erkannt wird, die Funktion AusgabeAnrufer abarbeiten
    on ({id: Anrufer, valGe: 1}, AusgabeAnrufer);
    ! ````

    Da ich mich mit JavaSkript nicht so gut auskenne, vermute ich mal dass man das besser programmieren

    könnte, aber für meine Zwecke ist es ausreichend.

    Was ich allerdings noch nicht verstehe ist, dass der Logeintrag von else mit eingetragen wird,

    wenn der Vergleich 1 zutrifft. Bei Vergleich 2 ist alles in Ordnung.

    Vielleicht weiß ja da einer eine Antwort.

    In diesem Sinne noch einen angenehmen restlichen Sonntag.

    Viele Grüße nobob

    1 Antwort Letzte Antwort
    0
    • htreckslerH Offline
      htreckslerH Offline
      htrecksler
      Forum Testing
      schrieb am zuletzt editiert von
      #18

      ` > if (Vergleich_1 == Standard_1 && Vergleich_3 == Standard_3){

      setState(idSayIT_2, TextBeginn + rufnummer2name(getState(Anrufer).val));

      log(Log_Vergleich_2);

      }

      else {

      log(Log_Else);

      } `

      versuch mal (ohne Gewähr)

          if ((Vergleich_1 == Standard_1) && (Vergleich_3 == Standard_3)){
                  setState(idSayIT_2, TextBeginn + rufnummer2name(getState(Anrufer).val));
                  log(Log_Vergleich_2);
          }
          else {
              log(Log_Else);
          }     
      
      

      Gruss Hermann

      Gruss Hermann

      ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

      1 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        nobob
        schrieb am zuletzt editiert von
        #19

        Hallo Hermann,

        vielen Dank für Deine Antwort.

        Ich werde das mal im laufe der Woche versuchen und

        mich dann wieder melden.

        Viele Grüße

        nobob

        1 Antwort Letzte Antwort
        0
        • N Offline
          N Offline
          nobob
          schrieb am zuletzt editiert von
          #20

          Hallo Hermann,

          wie schon geschrieben habe ich Deinen Vorschlag mal umgesetzt.

          Allerdings ist das Verhalten noch genau so wie zuvor.

          Bei der ersten If Bedingung wird zusätzlich die Else Bedingung mit

          ausgeführt und bei der zweiten ist alles in Ordnung.

          Ich kann damit leben, ich Frage mich nur was ich da Falsch mache.

          Aber trotzdem vielen Dank für Deinen Vorschlag.

          Gruß und einen angenehmen Tag

          nobob

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            Big Fish
            schrieb am zuletzt editiert von
            #21

            Hallo Zusammen,

            das Skript funktioniert soweit ganz gut. Allerdings bin ich auf folgendes Problem gestoßen.

            Die Variable Anrufer wird bei mir wie folgt gesetzt.

            var Anrufer = "fritzbox.0.calls.ringActualNumber"; // actual last ringing number

            Im iobroker sehe ich auch unter diesem Objekt die Anrufer Nummer. Im skript enthält die var jedoch nur den String "fritzbox.0.calls.ringActualNumber"

            Zum überprüfen habe ich in den Step einen Logger eingebaut:

            // Hier Vergleich 1

            if (Vergleich_1 == Standard_1 && Vergleich_2 == Standard_2){

            setState(idSayIT_1, TextBeginn + rufnummer2name(getState(Anrufer).val));

            log(Log_Vergleich_1);

            log(Anrufer)

            }

            Kann es sein, dass ringActualNumber nicht gleichzeitig mit dem Ring Objekt beschrieben wird? Bzw. hat jemand anderes das gleiche Problem?

            1 Antwort Letzte Antwort
            0
            • N Offline
              N Offline
              nobob
              schrieb am zuletzt editiert von
              #22

              Hallo Big Fish,

              das ist richtig, dass Du über den Befehl ´log(Anrufer)´ nur den String zurückbekommst.

              Wenn Du die Rufnummer mit loggen möchtest musst Du den Befehl wie folgt schreiben:

              log(getState(Anrufer).val)

              Damit sollte dann die Rufnummer im Log eingetragen werden.

              Ich hoffe ich konnte Dir diesbezüglich weiterhelfen.

              Gruß nobob.

              P.S.: Anbei wünsche ich allen noch schöne Ostern.

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                simpixo
                schrieb am zuletzt editiert von
                #23

                @ruhr70:

                @Dragonius:

                Danke!

                Das klappt schon mal prima!!

                Und ich hab mir da so einen bei abgebrochen…...

                Wäre schön wenn die Namenszuordnung im Fritz-Adapter dann auch irgendwann möglich wäre.

                Gruß

                Dragonius `

                Anbei mit Telefonbuch im Script und Ansage des Namens (ungetestet).

                var telefonbuchRufnummerNichtBekannt = "Rufnummer nicht im Telefonbuch";
                
                var telefonbuchRufnummer = {
                    "021147114711":
                    {
                        "name":         "Michael Handy",    // name zur Rufnummer
                        "bemerkung":    "Reserve"           // optional
                    },
                    "051147110815":     {"name":"Hänschen Klein"},
                    "07114711471":      {"name":"Gustav Gans Handy"},
                    "089123456789":     {"name":"Vanessa Müller"},
                    "030200020001":     {"name":"Gabi Kösters"},
                    
                    "### ? ###":        {"name":"Rufnummer unterdrückt"}
                };
                
                function rufnummer2name (rufnummer) {
                    var name = "";
                
                    //rufnummer = rufnummer.replace("#","");
                    //rufnummer = rufnummer.replace("*","");
                
                    if (!telefonbuchRufnummer[rufnummer]) {                                     // undefinierte Rufnummern
                        name = telefonbuchRufnummerNichtBekannt;                                // undefinierte Rufnummern
                    } else {
                        name = telefonbuchRufnummer[rufnummer].name;
                    }
                    return name;
                }
                
                var Anrufer = "fritzbox.0.calls.ringActualNumber"; // actual last ringing number
                
                on ({id: Anrufer, valGe: 1}, AusgabeAnrufer);
                
                function AusgabeAnrufer(){
                    //setState("sayit.0.tts.text", "Anruf von. " + getState(Anrufer).val);
                    setState("sayit.0.tts.text", "Anruf von. " + rufnummer2name(getState(Anrufer).val)); 
                }
                
                

                Ich nutze den oberen Part (JSON und die Funktion rufnummer2name()) als globales Script und nutze es in verschiedenen weiteren Scripts (Ereignisliste, Ansage des Anrufernamen, usw.). `

                Hallo ruhr70

                Super Script, dafür schon mal ein fettes DANKE!!!

                Wäre es aber möglich ein exportiertes Fritz!Box Telefonbuch in das Script einzubinden!? Es handelt sich bei dem exportierten File um eine xml Datei!

                Dann würde das eintragen der Nummern in das Script wegfallen!!

                Oder könntest du mir ein Tip geben, wonach ich suchen müsste um das umsetzten zu können [emoji16][emoji6]

                Danke schon mal

                Gruß

                Adrian

                Gesendet von meinem iPhone mit Tapatalk

                1 Antwort Letzte Antwort
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  schrieb am zuletzt editiert von
                  #24

                  @simpixo:

                  Wäre es aber möglich ein exportiertes Fritz!Box Telefonbuch in das Script einzubinden!? Es handelt sich bei dem exportierten File um eine xml Datei!

                  Dann würde das eintragen der Nummern in das Script wegfallen!!

                  Oder könntest du mir ein Tip geben, wonach ich suchen müsste um das umsetzten zu können [emoji16][emoji6] `

                  Tja, wunder Punkt 😉

                  Ich meine der alte Fritzbox-Adapter für ccu.io hatte das implementiert, dass man das XML-Telefonbuch im Adapter importieren konnte (war jetzt zu faul das nachzuprüfen).

                  Das steht eigentlich auf der todo für den Adapter. Der jetzige Adapter läuft genau 1:1 so, wie er das erste Mal veröffentlicht wurde. Momentan ist das in der Prio für mich recht weit unten. Sorry.

                  Vielleicht findet sich ja jemand, der den Adapter um den XML-Parser erweitert 😉

                  Adapter: Fritzbox, Unify Circuit
                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                  1 Antwort Letzte Antwort
                  0
                  • B Offline
                    B Offline
                    BasGo
                    schrieb am zuletzt editiert von
                    #25

                    @ruhr70:

                    @simpixo:

                    Wäre es aber möglich ein exportiertes Fritz!Box Telefonbuch in das Script einzubinden!? Es handelt sich bei dem exportierten File um eine xml Datei!

                    Dann würde das eintragen der Nummern in das Script wegfallen!!

                    Oder könntest du mir ein Tip geben, wonach ich suchen müsste um das umsetzten zu können [emoji16][emoji6] `

                    Tja, wunder Punkt 😉

                    Ich meine der alte Fritzbox-Adapter für ccu.io hatte das implementiert, dass man das XML-Telefonbuch im Adapter importieren konnte (war jetzt zu faul das nachzuprüfen).

                    Das steht eigentlich auf der todo für den Adapter. Der jetzige Adapter läuft genau 1:1 so, wie er das erste Mal veröffentlicht wurde. Momentan ist das in der Prio für mich recht weit unten. Sorry.

                    Vielleicht findet sich ja jemand, der den Adapter um den XML-Parser erweitert 😉 `

                    Naja, direkt erweitern kann ich es aufgrund eines dauerhaften Zeitmangels nicht, aber vielleicht kann ich einen kleinen, möglichen Ansatz liefern?

                    Gestern habe ich mal ein wenig mit dem NPM-Modul https://github.com/hendrikw01/tr-064 rumgespielt und siehe da, das Telefonbuch lässt sich relativ leicht auslesen. Die Hauptarbeit wäre nun - sofern jemand die Zeit zur Integration findet 8-) - dieses Telefonbuch irgendwie in den Adapter einzulesen.

                    Hier mein Javascript-Adapter-Kurztest … ohne Anspruch auf Schönheit und Völlständigkeit :

                    var tr          = require("tr-064");
                    var xml2js		= require("xml2js");
                    
                    var tr064 = new tr.TR064();
                    
                    var address = 'fritz.box';
                    var user = '<username>';
                    var password = '<password>';
                    
                    var phonenumbers = []; // create an empty array for fetching all configured phone numbers from fritzbox
                    
                    tr064.initTR064Device(address, 49000, function (err, device) {
                        if (!err) {
                            log(address + ' found!');
                            device.startEncryptedCommunication(function (err, sslDev) {
                                if (!err) {
                                    sslDev.login(user, password);
                                    var wanppp = sslDev.services["urn:dslforum-org:service:X_AVM-DE_OnTel:1"];
                    
                                    // get call list from last day
                                    wanppp.actions.GetCallList({}, function (err, ret) {
                                        if (err) {
                                            log(err);
                                        } else if (ret.NewCallListURL && ret.NewCallListURL.length > 0) {
                                            var url = ret.NewCallListURL + '&days=1';
                                            console.log(url);
                                            request(url, function (error, response, body) {
                                                if (response.statusCode == 200) {
                                                    var parser = new xml2js.Parser();
                                                    parser.parseString(body, function (err, result) {
                                                        log(JSON.stringify(result));
                                                    });  
                                                }
                                            });
                                        }
                                    });
                    
                                    // get complete phonebook
                                    wanppp.actions.GetPhonebook({
                                        NewPhonebookID: '0'
                                    }, function (err, ret) {
                                        if (err) {
                                            log(err);
                                        } else if (ret.NewPhonebookURL && ret.NewPhonebookURL.length > 0) {
                                            var url = ret.NewPhonebookURL;
                                            log(url);
                                            request(url, function (error, response, body) {
                                                if (response.statusCode == 200) {
                                                    var parser = new xml2js.Parser();
                                                    parser.parseString(body, function (err, result) {
                                                        var phonebook = result.phonebooks.phonebook[0];
                                                        for (var c = 0; c <= phonebook.contact.length; c++) {
                                                            var contact = phonebook.contact[c];
                                                            if (typeof contact != 'undefined') {
                                                                var entryName = contact.person[0].realName;
                                                                for (var t = 0; t <= contact.telephony.length; t++) {
                                                                    var telephony = contact.telephony[t];
                                                                    if (typeof telephony != 'undefined') {
                                                                        for (var n = 0; n <= telephony.number.length; n++) {
                                                                            var number = telephony.number[n];
                                                                            if (typeof number != 'undefined') {
                                                                                var entryNumber = number._;
                                                                                var entryType = number.$.type;
                                                                                if (entryNumber.startsWith('0') || entryNumber.startsWith('+')) {
                                                                                    log('#' + c + ': ' + entryName + ' -> ' + entryNumber + ' -> ' + entryType);
                                                                                    phonenumbers.push({
                                                                                        key:   entryNumber,
                                                                                        value: {name: entryName, type: entryType}
                                                                                    });
                                                                                }
                                                                            }
                                                                        }                                                    
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    });
                    
                                                    log(JSON.stringify(phonenumbers));
                                                }
                                            });
                                        }
                                    });
                                } else {
                                    log(err);
                                }
                            });
                        }
                    });</password></username> 
                    
                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      Daniel81
                      schrieb am zuletzt editiert von
                      #26

                      Hallo ich weiß die Beiträge sind schon etwas älter aber ich komme hier nicht so richtig weiter.

                      Ich habe das Skript zur Ansage des Anrufer Namen sehr gut zum laufen gebracht. Nun hätte ich gerne, wenn mich jemand anruft, dessen Name nicht im Telefonbuch gespeichert ist nicht die Ansage das die Nummer nicht im Telefonbuch ist, sondern ich würde gerne dessen Rufnummer ansagen lassen. Wie z.B Eingehender Anruf von: 0170…...

                      Wie bekomme ich diese hin? Habe hier schon ein paar Sachen probiert komme damit aber nicht weiter.

                      var telefonbuchRufnummerNichtBekannt = "Rufnummer nicht im Telefonbuch";
                      
                      var telefonbuchRufnummer = {
                          "01701234567":
                          {
                              "name":         "Daniel Handy",    // name zur Rufnummer
                              "bemerkung":    "Reserve"           // optional
                          },
                          "051147110815":     {"name":"Hänschen Klein"},
                          "07114711471":      {"name":"Gustav Gans Handy"},
                          "089123456789":     {"name":"Vanessa Müller"},
                          "030200020001":     {"name":"Gabi Kösters"},
                      
                          "### ? ###":        {"name":"Rufnummer unterdrückt"}
                      };
                      
                      function rufnummer2name (rufnummer) {
                          var name = "";
                      
                          //rufnummer = rufnummer.replace("#","");
                          //rufnummer = rufnummer.replace("*","");
                      
                          if (!telefonbuchRufnummer[rufnummer]) {                                     // undefinierte Rufnummern
                              name = telefonbuchRufnummerNichtBekannt;                                // undefinierte Rufnummern
                          } else {
                              name = telefonbuchRufnummer[rufnummer].name;
                          }
                          return name;
                      }
                      
                      var Anrufer = "fritzbox.0.calls.ringActualNumber"; // actual last ringing number
                      
                      on ({id: Anrufer, valGe: 1}, AusgabeAnrufer);
                      
                      function AusgabeAnrufer(){
                          //setState("sayit.0.tts.text", "Anruf von. " + getState(Anrufer).val);
                          setState("sayit.0.tts.text", "Anruf von. " + rufnummer2name(getState(Anrufer).val)); 
                      }
                      
                      

                      Ich hoffe ihr könnt mir hier weiterhelfen bin in dieser Materie noch recht neu!

                      Vielen Dank schon einmal im Voraus

                      Daniel

                      1 Antwort Letzte Antwort
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        schrieb am zuletzt editiert von
                        #27

                        ungetestet.

                        Füg bitte folgende Funktion vor der Funktion rufnummer2name() ein:

                        function rnrMitSpace(rufnummer) {
                            var i;
                            var rnrNeu = "";
                            for (i=0;i<rufnummer.length;i++) {/rnrneu="rnrNeu" +/rufnummer.charat(i)+"/";/}/return/rnrneu;/}<e=""></rufnummer.length;i++)>
                        

                        Und rufnummer2name() austauschen (nur eine Zeile ist anders):

                        function rufnummer2name (rufnummer) {
                            var name = "";
                        
                            if (!telefonbuchRufnummer[rufnummer]) {                                     // undefinierte Rufnummern
                                name = rnrMitSpace(rufnummer);                                // undefinierte Rufnummern
                            } else {
                                name = telefonbuchRufnummer[rufnummer].name;
                            }
                            return name;
                        }
                        

                        Aus 017047110815 sollte dann 0 1 7 0 4 7 1 1 0 8 1 5 werden. Dies sollte so ausgesprochen werden, wie Du es Dir wünschst.

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Antwort Letzte Antwort
                        0
                        • ruhr70R Offline
                          ruhr70R Offline
                          ruhr70
                          schrieb am zuletzt editiert von
                          #28

                          @Daniel81:

                          Hallo ich weiß die Beiträge sind schon etwas älter aber ich komme hier nicht so richtig weiter. `

                          siehe Skript ein Post höher

                          Adapter: Fritzbox, Unify Circuit
                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            Daniel81
                            schrieb am zuletzt editiert von
                            #29

                            😄 Super Vielen vielen Dank! jetzt funktioniert es so wie ich es mir Vorstelle.

                            Dieses Forum ist echt total SUPER! 😄 😄 😄 😄 😄 Danke!

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              Daniel81
                              schrieb am zuletzt editiert von
                              #30

                              Hallo zusammen,

                              nachdem die Ansage meiner Anrufer schon seit einiger Zeit richtig gut funktioniert, würde ich nun gern das Skript so erweitern, dass ich nur Ansagen bekomme, die auf eine bestimmten Festnetznummer eingehen.

                              Derzeit werden mir auch die Anrufe angesagt, die auf meiner Faxnummer eingehen.

                              Lässt sich dies mit dem vorhanden Skript erweitern?

                              Ich habe auf der ersten Seite schon gelesen, dass es mit der Funktion Message funktionier.

                              Ich bin mir aber nicht sicher, wie und ob ich es auf diesem Skript anwenden kann

                              Ich hoffe, ihr könnt mir hier weiterhelfen!

                              Grüße Daniel

                              Hier mein verwendetes Skript.

                              ! var telefonbuchRufnummerNichtBekannt = "Rufnummer nicht im Telefonbuch";
                              ! var telefonbuchRufnummer = {
                              ! "xxxx":
                              ! {
                              ! "name": "xxx", // name zur Rufnummer
                              ! "bemerkung": "Reserve" // optional
                              ! },
                              ! "05xxx39": {"name":"xxxx"},
                              ! "01xxx2436": {"name":" xxx"},
                              ! "016xx7573": {"name":"xxxx"},
                              ! "016xxx2890": {"name":"xxx"},
                              ! "05xx864160": {"name":"xxx"},
                              ! "017xx1248": {"name":"xxx"},
                              ! "08xx3316": {"name":"xxx"},
                              ! "0043xx60950": {"name":"xxx "},
                              ! "004xxxxx0": {"name":"xxx"},
                              ! "05xxxxxx2": {"name":"test"},
                              ! "### ? ###": {"name":"Rufnummer unterdrückt"}
                              ! };
                              ! function rnrMitSpace(rufnummer) {
                              ! var i;
                              ! var rnrNeu = "";
                              ! for (i=0;i <rufnummer.length;i++) {<br="">rnrNeu = rnrNeu + rufnummer.charAt(i)+" ";
                              ! }
                              ! return rnrNeu;
                              ! }
                              ! function rufnummer2name (rufnummer) {
                              ! var name = "";
                              ! if (!telefonbuchRufnummer[rufnummer]) { // undefinierte Rufnummern
                              ! name = rnrMitSpace(rufnummer); // undefinierte Rufnummern
                              ! } else {
                              ! name = telefonbuchRufnummer[rufnummer].name;
                              ! }
                              ! return name;
                              ! }
                              ! var Anrufer = "fritzbox.0.calls.ringActualNumber"; // actual last ringing number
                              ! on ({id: Anrufer, valGe: 1}, AusgabeAnrufer);
                              ! function AusgabeAnrufer(){
                              ! //setState("sayit.2.tts.text", "de;15;Eingehender Anruf von. " + getState(Anrufer).val);
                              ! setState("sayit.2.tts.text", "de;15;Eingehender Anruf von" + rufnummer2name(getState(Anrufer).val));
                              ! }</rufnummer.length;i++)>

                              1 Antwort Letzte Antwort
                              0
                              • L Offline
                                L Offline
                                loi83
                                schrieb am zuletzt editiert von
                                #31

                                Hallo, ich bekomme seit längerem diesen Log Eintrag wenn jemand anruft. Wie kann ich es lösen?

                                2020-04-30 18:09:24.111 - warn: javascript.0 (20107) You are assigning a array to the state "sayit.0.tts.volume" which expects a number. Please fix your code to use a number or change the state type to array. This warning might become an error in future versions.
                                2020-04-30 18:09:24.114 - warn: javascript.0 (20107) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20)
                                2020-04-30 18:09:24.117 - warn: javascript.0 (20107) at Object.AusgabeAnrufer (script.js.Test.Anrufansage:54:5)
                                2020-04-30 18:09:24.117 - warn: javascript.0 (20107) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                                2020-04-30 18:09:24.118 - warn: javascript.0 (20107) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                                2020-04-30 18:09:24.118 - warn: javascript.0 (20107) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4848:37)
                                2020-04-30 18:09:24.118 - warn: javascript.0 (20107) at processImmediate (internal/timers.js:456:21)
                                

                                Gruß Loi

                                Gruß Michi

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • L loi83

                                  Hallo, ich bekomme seit längerem diesen Log Eintrag wenn jemand anruft. Wie kann ich es lösen?

                                  2020-04-30 18:09:24.111 - warn: javascript.0 (20107) You are assigning a array to the state "sayit.0.tts.volume" which expects a number. Please fix your code to use a number or change the state type to array. This warning might become an error in future versions.
                                  2020-04-30 18:09:24.114 - warn: javascript.0 (20107) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1404:20)
                                  2020-04-30 18:09:24.117 - warn: javascript.0 (20107) at Object.AusgabeAnrufer (script.js.Test.Anrufansage:54:5)
                                  2020-04-30 18:09:24.117 - warn: javascript.0 (20107) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                                  2020-04-30 18:09:24.118 - warn: javascript.0 (20107) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                                  2020-04-30 18:09:24.118 - warn: javascript.0 (20107) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4848:37)
                                  2020-04-30 18:09:24.118 - warn: javascript.0 (20107) at processImmediate (internal/timers.js:456:21)
                                  

                                  Gruß Loi

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

                                  @loi83 sagte:

                                  You are assigning a array to the state "sayit.0.tts.volume" which expects a number

                                  Hier ist alles gesagt. Es passiert im Script "Test.Anrufansage" in Zeile 54.

                                  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

                                  L 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @loi83 sagte:

                                    You are assigning a array to the state "sayit.0.tts.volume" which expects a number

                                    Hier ist alles gesagt. Es passiert im Script "Test.Anrufansage" in Zeile 54.

                                    L Offline
                                    L Offline
                                    loi83
                                    schrieb am zuletzt editiert von
                                    #33

                                    @paul53 hey ja das ist mir durchaus bewusst, nur weiß ich leider nicht was ich dort ändern soll.
                                    Hier mal ein Bild von der besagten Zeile:
                                    8151e469-efb4-444b-8a04-1125eae3ef9b-image.png

                                    Gruß Michi

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • L loi83

                                      @paul53 hey ja das ist mir durchaus bewusst, nur weiß ich leider nicht was ich dort ändern soll.
                                      Hier mal ein Bild von der besagten Zeile:
                                      8151e469-efb4-444b-8a04-1125eae3ef9b-image.png

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

                                      @loi83 Richtig: 70 ohne eckige Klammer.

                                      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

                                      L 1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @loi83 Richtig: 70 ohne eckige Klammer.

                                        L Offline
                                        L Offline
                                        loi83
                                        schrieb am zuletzt editiert von
                                        #35

                                        @paul53 Das habe ich geändert. Der Fehler ist weg, allerdings wird die Lautstärke auch nicht verändert 🙄

                                        Gruß Michi

                                        paul53P 1 Antwort Letzte Antwort
                                        0
                                        • L loi83

                                          @paul53 Das habe ich geändert. Der Fehler ist weg, allerdings wird die Lautstärke auch nicht verändert 🙄

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

                                          @loi83 sagte:

                                          allerdings wird die Lautstärke auch nicht verändert

                                          Mit "sayit" kenne ich mich nicht aus.

                                          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

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          738

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe