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
    933

  • 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
    #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

                                        759

                                        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