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. Skripten / Logik
  4. [gelöst] Fritzbox - Adapter; unbekannt = "### ? ###" lässt sich nicht verarbeiten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Fritzbox - Adapter; unbekannt = "### ? ###" lässt sich nicht verarbeiten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
20 Beiträge 3 Kommentatoren 2.3k Aufrufe
  • Ä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.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #1

    Guten Abend,

    ich spiele per Script an meinem Telefon View.

    Dabei will ich die Telefonnummer abgreifen; sowie den Namen des Anrufers per tr-064 darstellen.

    Klappt soweit.

    Nur bei unbekannten Anrufen verzweifle ich derzeit.

    Im Adapter lässt sich hinterlegen was angezeigt wird. Standard und bei mir ist "### ? ###".

    Komischerweise lässt sich dies nicht verarbeiten. Es ist kein String (warum aber nicht; sieht doch so aus).

    If Abfragen mit string klappen nicht.

    Auch die Scripte hier im Forum, z.B.

    http://forum.iobroker.net/viewtopic.php … mer#p20299

    funktionieren bei unbekannten / unterdrückten Nummer nicht (zumindest bei mir nicht).

    Obwohl es lt. Script ja abgegriffen wird:

        if (!telefonbuchRufnummer[rufnummer]) {                                     // undefinierte Rufnummern
            name = telefonbuchRufnummerNichtBekannt;                                // undefinierte Rufnummern
    

    In meinem einfachen Script klappt es ebenfalls nicht.

    ! ````
    // Telefon Anzeige in vis
    ! // Variablen
    var Anrufer_Nr = "fritzbox.0.calls.ringActualNumber"; // Nr. des Anrufers
    var Anrufer_Name = "tr-064.0.callmonitor.inbound.callerName"; // Name des Anrufers
    var Sprache = getState("hm-rega.0.29816").val; // Auto Sprachausgabe
    var request = require ('request');
    ! on ({id: Anrufer_Nr, valGe: 1}, function(obj) {
    log ('Auslöser Telefon');
    ! // Name ermitteln
    var name = "";
    ! if (obj.state.val === "### ? ###") { // undefinierte Rufnummern
    name = "Unbekannt"; // undefinierte Rufnummern
    } else {
    name = getState(Anrufer_Name).val;
    }
    ! // Bild ermitteln
    switch (name) {
    case 'Dieter Arbeit':
    name = "Dieter";
    setState('javascript.0.Status.Telefon.Bild_Nr', 1);
    break;
    default:
    setState('javascript.0.Status.Telefon.Bild_Nr', 0);
    break;
    }
    ! setState('javascript.0.Status.Telefon.Name', name);
    setState('javascript.0.Status.Telefon.Nummer', obj.state.val);

    // Sprachausgabe
        if (Sprache === true) {
            request('http://192.168.243.76:50000/track=tos-computer-03.wav');
            setTimeout(setState('sayit.0.tts.text', name + " ruft an."), 3000);
        }
    
    //Telegram
        if (name ==='Unbekannt') {
            sendTo('telegram', "Telefon zu Hause:\n unbekannte Nummer ruft an.");
        } else {
            sendTo('telegram', "Telefon zu Hause:\n" + name + ", " + getState('javascript.0.Status.Telefon.Nummer').val + ", ruft an.");     
        }
    
    View_change ('Telefon', 0); 
    setTimeout(function() {
            View_change ('Titel', 0);
    }, 30000); 
    

    ! });
    ! ````

    Bitte mal anschauen. Bin am verzweifeln.

    mfg

    Dieter


    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    • bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      Also, ich bin nicht richtig weiter !

      Wenn ich schreibe:

      var nummer = getState('fritzbox.0.calls.ringLastNumber').val;

      log (nummer);

      log (typeof nummer);

      log (nummer.length);

      bekomme ich ausgegeben:

      nummer = ### ? ###

      type = string

      length = 9

      soweit alles richtig.

      Wenn ich dann aber dazu setze:

      if (nummer === "### ? ###") {

      log ("richtig");

      } else {

      log ("nein");

      }

      bekomme ich -> nein.

      Warum ???????????????????????

      Hier für euch mal komplett (wer es testen möchte).

      var nummer = getState('fritzbox.0.calls.ringLastNumber').val;
      
      log (nummer);
      log (typeof nummer);
      log (nummer.length);
      
      if (nummer === "### ? ###") {
          log ("richtig");
      } else {
          log ("nein");
      }
      
      for (z=0; z<=8; ++z) {
          log ('zeichen '+ (z+1) + ':  ' + nummer.charCodeAt(z));
      }
      
      

      Hab mir unten auch mal den charcode anzeigen lassen.

      Komme damit aber nicht richtig weiter (der code passt irgendwie nicht mit der utf16 Tabelle die ich im Netz gefunden habe.

      Vielleicht sieht jemand den Fehler sofort.

      mfg


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #3

        ok,

        hab jetzt folgende Lösung (warum das ursprüngliche nicht klappt weiß ich nicht)

        if (nummer === String.fromCharCode(35,35,35,160,63,160,35,35,35)) {  // charCode entspricht "### ? ###"
            log ("richtig");
        } else {
            log ("nein");
        }
        
        

        d.h.

        ich überprüfe einfach ob der charCode passt.

        Damit bekomme ich als log : richtig !

        mfg


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          schrieb am zuletzt editiert von
          #4

          probier doch mal mit

          var str =  "### ? ###";
          
          if(str.test(nummer)){
                 "tue dies tue das"
          }
          

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          1 Antwort Letzte Antwort
          0
          • bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #5

            Deinen code versteh ich nicht.

            mfg


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            1 Antwort Letzte Antwort
            0
            • blauholstenB Offline
              blauholstenB Offline
              blauholsten
              Developer
              schrieb am zuletzt editiert von
              #6

              @bahnuhr:

              Deinen code versteh ich nicht.

              mfg `
              Die .test() Methode prüft einen String auf dessen Inhalt, und gibt dann true oder false zurück.

              von mir aus so

              var str =  "### ? ###";
              
              if(str.test(nummer)){
                     log('ja');
              }
              else{
                     log('nein');
              }
              

              Entwickler vom: - Viessman Adapter
              - Alarm Adapter

              1 Antwort Letzte Antwort
              0
              • bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #7

                @blauholsten:

                probier doch mal mit

                var str =  "### ? ###";
                
                if(str.test(nummer)){
                       "tue dies tue das"
                }
                ```` `  
                

                Es kommt Fehlermeldung:

                str.test is not a function


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • bahnuhrB Online
                  bahnuhrB Online
                  bahnuhr
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #8

                  Müsste dies (wie oben im Code)

                  if (nummer === "### ? ###") {
                      log ("richtig");
                  } else {
                      log ("nein");
                  }
                  

                  nicht das gleiche sein.

                  Und dies klappt eben nicht.


                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                  Danke.
                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                  ScreenToGif :https://www.screentogif.com/downloads.html

                  1 Antwort Letzte Antwort
                  0
                  • blauholstenB Offline
                    blauholstenB Offline
                    blauholsten
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    @bahnuhr:

                    @blauholsten:

                    probier doch mal mit

                    var str =  "### ? ###";
                    
                    if(str.test(nummer)){
                           "tue dies tue das"
                    }
                    ```` `  
                    

                    Es kommt Fehlermeldung:

                    str.test is not a function `

                    Stimmt! Muss wohl so heissen….

                    var str = /### ? ###/
                    

                    Kommt aber trotzdem false raus. Kann es sein das das "verbotene Zeichen" sind?

                    Entwickler vom: - Viessman Adapter
                    - Alarm Adapter

                    1 Antwort Letzte Antwort
                    0
                    • bahnuhrB Online
                      bahnuhrB Online
                      bahnuhr
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #10

                      habe mittlerweile folgendes festgestellt:

                      Die Fritzbox übermittelt: "### ? ###"

                      Hierbei ist die Leertaste mit dem charCode 160 !!! benannt.

                      Im String ""### ? ###" ist der charCode der Leertaste 32 !!!

                      Also unterschiedlicher Code für Leertaste.

                      mfg


                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                      Danke.
                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                      ScreenToGif :https://www.screentogif.com/downloads.html

                      1 Antwort Letzte Antwort
                      0
                      • bahnuhrB Online
                        bahnuhrB Online
                        bahnuhr
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #11

                        wie vermutet landet dein Code auch bei Nein !!!

                          var str =  /### ? ###/;
                        
                        if(str.test(nummer)){
                               log('ja');
                        }
                        else{
                               log('nein');
                        }
                        

                        m.E. liegt es an der unterschiedlichen Behandlung der Leertaste.

                        mfg

                        D.Müller


                        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                        Danke.
                        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                        ScreenToGif :https://www.screentogif.com/downloads.html

                        1 Antwort Letzte Antwort
                        0
                        • blauholstenB Offline
                          blauholstenB Offline
                          blauholsten
                          Developer
                          schrieb am zuletzt editiert von
                          #12

                          Fehler gefunden:

                          var str =  /### \? ###/;
                          
                          if(str.test(nummer)){
                                 log('ja');
                          }
                          else{
                                 log('nein');
                          }
                          

                          Das geht

                          Entwickler vom: - Viessman Adapter
                          - Alarm Adapter

                          1 Antwort Letzte Antwort
                          0
                          • bahnuhrB Online
                            bahnuhrB Online
                            bahnuhr
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #13

                            bei mir geht es nicht.

                            … not a function


                            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                            Danke.
                            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                            ScreenToGif :https://www.screentogif.com/downloads.html

                            1 Antwort Letzte Antwort
                            0
                            • bahnuhrB Online
                              bahnuhrB Online
                              bahnuhr
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #14

                              Also ich bleib jetzt bei meiner Lösung:

                              if (nummer === String.fromCharCode(35,35,35,160,63,160,35,35,35)) {  // charCode entspricht "### ? ###"
                                  log ("richtig");
                              } else {
                                  log ("nein");
                              }
                              

                              Die Fritzbox scheint die Leertaste anders zu übermitteln.

                              Und mit o.g. char… funktioniert es.

                              mfg


                              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                              Danke.
                              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                              ScreenToGif :https://www.screentogif.com/downloads.html

                              1 Antwort Letzte Antwort
                              0
                              • blauholstenB Offline
                                blauholstenB Offline
                                blauholsten
                                Developer
                                schrieb am zuletzt editiert von
                                #15

                                Jetzt schon:

                                var str =  /### \? ###/;
                                
                                if(str.test(nummer)){
                                       log('ja');
                                }
                                else{
                                       log('nein');
                                }
                                

                                Entwickler vom: - Viessman Adapter
                                - Alarm Adapter

                                1 Antwort Letzte Antwort
                                0
                                • bahnuhrB Online
                                  bahnuhrB Online
                                  bahnuhr
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #16

                                  blauholsten

                                  Deine Lösung klappt nicht !!!

                                  -> Es klappt mit deinem String

                                  -> Es klappt aber nicht mit dem String der die Fritzbox übermittelt.

                                  Diese übermittelt als String einen anderen CharCode für die Leertaste.

                                  Probier es mit dem Handy aus und schalt die Tel.Nr. aus.

                                  mfg

                                  Dieter


                                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                  Danke.
                                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                  ScreenToGif :https://www.screentogif.com/downloads.html

                                  1 Antwort Letzte Antwort
                                  0
                                  • blauholstenB Offline
                                    blauholstenB Offline
                                    blauholsten
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #17

                                    Okay!

                                    PS Skript bitte als gelöst markieren.

                                    Entwickler vom: - Viessman Adapter
                                    - Alarm Adapter

                                    1 Antwort Letzte Antwort
                                    0
                                    • bahnuhrB Online
                                      bahnuhrB Online
                                      bahnuhr
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #18

                                      Anbei das Script wie es nun bei mir läuft komplett:

                                      ! ````
                                      // Telefon Anzeige in vis
                                      ! // Variablen
                                      var Anrufer_Nr = "fritzbox.0.calls.ringActualNumber"; // Nr. des Anrufers
                                      var Anrufer_Name = "tr-064.0.callmonitor.inbound.callerName"; // Name des Anrufers
                                      var Sprache = getState("hm-rega.0.29816").val; // Auto Sprachausgabe
                                      var request = require ('request');
                                      ! function weiter(obj) {
                                      // Name ermitteln
                                      var name = "";
                                      ! if (obj.state.val === String.fromCharCode(35,35,35,160,63,160,35,35,35)) { // undefinierte Rufnummern, charCode entspricht "### ? ###"
                                      name = "Unbekannt"; // undefinierte Rufnummern
                                      } else {
                                      name = getState(Anrufer_Name).val;
                                      }
                                      ! // Bild ermitteln
                                      switch (name) {
                                      case 'Dieter Arbeit':
                                      name = "Dieter";
                                      setState('javascript.0.Status.Telefon.Bild_Nr', 1);
                                      break;
                                      default:
                                      setState('javascript.0.Status.Telefon.Bild_Nr', 0);
                                      break;
                                      }
                                      ! if (name === "") {
                                      name = "Unbekannt";
                                      } else {
                                      setState('javascript.0.Status.Telefon.Name', name);
                                      }
                                      setState('javascript.0.Status.Telefon.Nummer', obj.state.val);

                                      // Sprachausgabe
                                          if (Sprache === true) {
                                              request('http://192.168.243.76:50000/track=tos-computer-03.wav');
                                              setTimeout(setState('sayit.0.tts.text', name + " ruft an."), 3000);
                                          }
                                      
                                      //Telegram und log
                                          if (name ==='Unbekannt') {
                                              sendTo('telegram', "Telefon zu Hause:\n Unbekannte Nummer ruft an.");
                                              log("Telefon zu Hause: Unbekannte Nummer ruft an.");
                                          } else {
                                              sendTo('telegram', "Telefon zu Hause:\n" + name + ", " + obj.state.val + ", ruft an.");     
                                              log("Telefon zu Hause: " + name + ", " + obj.state.val + ", ruft an.");     
                                          }
                                      
                                      View_change ('Telefon', 0); 
                                      setTimeout(function() {
                                              View_change ('Titel', 0);
                                              setState('javascript.0.Status.Telefon.Name', "");
                                              setState('javascript.0.Status.Telefon.Nummer', "");
                                              setState('javascript.0.Status.Telefon.Bild_Nr', 0);
                                      }, 30000); 
                                      

                                      ! }
                                      ! on({id: Anrufer_Nr, change: "ne"}, function(obj) {
                                      log ('Auslöser Telefon');
                                      if (obj.state.val !== '') {
                                      weiter(obj);
                                      }
                                      });
                                      ! ````


                                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                      Danke.
                                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                      ScreenToGif :https://www.screentogif.com/downloads.html

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

                                        das "andere Leerzeichen" kommt nicht von der Fritzbox, sondern vom Adapter.

                                        Ein Leerzeichen wird gegen ein nbsp; (non breaking space) ausgetauscht, damit die Länge bei html mit Festbreitenschrift passt.

                                        Beim Mac erzeugt man ein nbsp; mit alt+Leertaste (aus dem Gedächtnis)

                                        im Javascripteditor wird das dann auch grafisch angezeigt

                                        Gesendet von iPhone mit Tapatalk

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • bahnuhrB Online
                                          bahnuhrB Online
                                          bahnuhr
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #20

                                          Vom Adapter - hab ich mir schon gedacht.

                                          Trotzdem muss man das erst einmal wissen. Man versucht halt mit der normalen Leertaste eine if abfrage zu basteln und ist fast am verzweifeln warum dies nicht klappt.

                                          Danke für den Tipp mit dem "alt + Leertaste".

                                          Muss ich mal versuchen.

                                          Wieder was gelernt.

                                          Mit freundlichen Grüßen


                                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                          Danke.
                                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                          ScreenToGif :https://www.screentogif.com/downloads.html

                                          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

                                          694

                                          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