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. Praktische Anwendungen (Showcase)
  4. Anrufliste und Info der Fritzbox

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Anrufliste und Info der Fritzbox

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
1 Beiträge 1 Kommentatoren 800 Aufrufe 2 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.
  • P Offline
    P Offline
    PeZi
    schrieb am zuletzt editiert von PeZi
    #1

    In diesem "Neben-Topic" möchte ich meine Infoseite zur Fritzbox zeigen und einige Details dazu beschreiben.
    Hier der Link zum Haupt-Topic:
    https://forum.iobroker.net/topic/70692/vorstellung-meiner-visualisierung

    Seite 'Info'.png

    Zu sehen ist die aktuelle Baustelle mit viel Platz für weitere Informationen. Rechts im Bild ein QR-Code für das Gast-WLAN.
    Die Anrufliste kommt vom Adapter "tr-064", Datenpunkt "tr-064.0.calllists.all.json"
    Die Symbole links in der Anrufliste haben mir ein wenig Kopfzerbrechen bereitet. Vom Adapter kommen an dieser Stelle nur Ziffern von 1 bis 4, welche den Anruftyp wie folgt kennzeichnen:
    1: Eingehend
    2: Verpasst
    3: Ausgehend
    4: Abgewiesen

    Um die Grafiken zu bekommen habe ich die JSON-Datei mit folgendem Skript modifiziert und in einen neuen Objekt abgelegt, welches dann VIS über das Widget "vis-inventwo - JSON Table" angezeigt wird.

    // Anrufliste modifizieren und ablegen
    on ({id: 'tr-064.0.calllists.all.json', change: 'ne'}, function(){ 
    var anruflisteJSON = (getState("tr-064.0.calllists.all.json").val);
    var myAnrufliste = anruflisteJSON.replace(/"type":"1"/g, '"type":"<img src=/vis.0/Hausautomation/Anruf_eingehend_32.png />"');
    myAnrufliste = myAnrufliste.replace(/"type":"2"/g, '"type":"<img src=/vis.0/Hausautomation/Anruf_verpasst_32.png />"');
    myAnrufliste = myAnrufliste.replace(/"type":"3"/g, '"type":"<img src=/vis.0/Hausautomation/Anruf_ausgehend_32.png />"');
    myAnrufliste = myAnrufliste.replace(/"type":"4"/g, '"type":"<img src=/vis.0/Hausautomation/Anruf_abgewiesen_32.png />"');
    myAnrufliste = myAnrufliste.replace(/SIP: /g, '');
    myAnrufliste = myAnrufliste.replace(/callednumber/g, 'eigeneNr');
    myAnrufliste = myAnrufliste.replace(/callernumber/g, 'eigeneNr');
    setState("0_userdata.0.Anrufliste",myAnrufliste, true);
     });
    

    Die Zeilen 8 - 10 modifizieren einige Feldnamen um eine einheitliche Abfrage zu ermöglichen.

    Für VoIP-Anschlüsse wird vor der eigentlichen Rufnummer der hier nicht benötigte Text "SIP:" übertragen. Zeile 8 eliminiert diesen Text.

    Zeile 9 und 10: In Abhängigkeit von der Anrufrichtung (eingehend oder ausgehend) wird die eigene Rufnummer entweder als "callednumber" oder als "callernumber" bezeichnet. Das erschwert eine spätere Auswertung (zumindest für meine Zwecke). Daher die Vereinheitlichung mit dem Feldnamen "eigeneNr".

    Bei eingehenden Anrufe wird für einige Sekunden eine Infoseite eingeblendet:

    Anruf.png

    Feld 1 zeigt die Telefonnummer des Anrufers (sofern übertragen)
    Feld 2 den Gerätenamen des angerufenen Telefons (Kommt aus der Fritzbox)
    Feld 3 Name des Anrufers (sofern im Telefonbuch der Fritzbox vorhanden)
    Das Bild des Anrufers kommt ebenfalls aus der Fritzbox, sofern es dort hinterlegt ist.

    Das Bild aus der Fritzbox zu bekommen ist ein wenig knifflig, da es nur für kurze Zeit mit einer Session-ID aus der Fritzbox abgerufen werden kann.

    Hier mein Skript dazu:

    var timeout, command;
    var AltBild = getState("vis.0.control.data").val; //zwischenspeichern des alten Fensters
    
    function helligkeit(Helligkeit, Kontrast){  //Helligkeit und Kontrast des Anzeigebildschirms einstellen
        var SSH = require('simple-ssh');
        var ssh = new SSH({
        host: '192.168.xx.xx',  //IP-Adresse des "Anzeige-Raspi" auf dem der Browser für den Anzeigemonitor läuft
        user: 'xxxxxxxxxx',
        pass: 'xxxxxxxxxx'
        });
        ssh.exec('sudo ddcutil setvcp 10 ' + Helligkeit).start();
        ssh.exec('sudo ddcutil setvcp 12 ' + Kontrast).start();
    }
    
    function zurueck() { //nach Beendigung der Anrufanzeige Bilschirm auf vorherigen Zustand zurücksetzen
        setState("vis.0.control.instance", "FFFFFFFF"); 
        setState("vis.0.control.data", AltBild); 
        setState("vis.0.control.command", 'changeView');  
    }
    
    on({ id: 'tr-064.0.callmonitor.ringing' /* ringing */, change: 'ne' }, async (obj) => { //bei eingehendem Anruf
        var SSH = require('simple-ssh');
        var ssh_Bild = new SSH({
            host: '192.168.xx.xx',  //IP-Adresse des Raspi auf den der tr-064 Adater läuft
            user: 'xxxxxxxxxx',
            pass: 'xxxxxxxxxx'
        });
         
    
        if ((obj.state ? obj.state.val : "")) {
            (() => { if (timeout) { clearTimeout(timeout); timeout = null; }})();
            timeout = setTimeout(async () => {
                timeout = null;
                var bildpfad = getAttr(getState('tr-064.0.callmonitor.inbound.json').val, 'imageurlcaller'); //Pfad einschließlich Session-ID zum Bild in der Fritzbox 
                if(bildpfad === undefined){
                    command = ['cp /home/pi/kiosk/Unbekannt.jpg /home/pi/kiosk/Anruferbild.jpg'].join(''); //Wenn kein Bild vorhanden dann "Unbekanntbild" anzeigen ...
                }else{
                    command = ['curl -sL "',bildpfad,'" >/home/pi/kiosk/Anruferbild.jpg'].join(''); // ... sonst Anruferbild runterladen  ... 
                }
                ssh_Bild.exec(command).start(); // ... und ausführen
                var angerufenerName = getAttr(getState('tr-064.0.callmonitor.inbound.json').val, 'calleeName');
                setState("0_userdata.0.Anrufziel", angerufenerName);    //Anrufziel des eigehenden Anrufs setzen
                
                timeout = setTimeout(async () => {
                    timeout = null;
                    helligkeit(50,50);
                    setState("vis.0.control.instance", "FFFFFFFF"); 
                    AltBild = getState("vis.0.control.data").val;
                    setState("vis.0.control.data", "Hausautomation/Anruf"); 
                    setState("vis.0.control.command", 'changeView');  
                    setTimeout(zurueck,20000);
                }, 2000);   
            }, 1500);
    
        } else {
            (() => { if (timeout) { clearTimeout(timeout); timeout = null; }})();
        }    
    })
    

    Im Skript sind, obwohl es problemlos läuft, noch ein paar Unsauberkeiten enthalten:

    e1ee85ae-3e5a-4de3-8a12-2a20cb605d33-image.png

    oder auch

    3649d8e1-70cd-4cff-bb96-3c8c05171774-image.png

    Vielleicht kann mir ja jemand einen Tipp geben, wie das zu beheben ist...

    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

    610

    Online

    32.6k

    Benutzer

    82.0k

    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