HowTo: NodeRed/FritzBox – Anruferliste im Dashboard anzeigen

Neben der Anruferkennung könnt Ihr Euch auch das Anruferprotokoll der Fritzbox in NodeRed anzeigen lassen.

Wie dies geht ist im folgenden Artikel erklärt.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/


Voraussetzungen

Hilfreiche Artikel:
Damit Ihr diese Konfiguration übernehmen  könnt sollte NodeRed natürlich schon installiert sein.
Wie ihr einen RaspberryPi dazu vorbereitet und dann NodeRed darauf installiert ist in den folgenden Artikeln beschrieben.

Die folgenden Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
RaspberryPi – Einrichten für Nerdiys!
RaspberryPi – Die Erste Konfiguration!
RaspberryPi – Den RaspberryPi über SSH steuern

NodeRed – Installation von NodeRed auf dem RaspberryPi
NodeRed – Neue Nodes installieren
NodeRed – Node-Code importieren und exportieren
NodeRed – Mit Dashboard-Nodes eine Benutzeroberfläche erstellen

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.


In die NodeRed Konfigurationsoberfläche einloggen

Bevor Ihr eure NodeRed Konfiguration bearbeiten könnt müsst Ihr Euch - falls aktiviert - zunächst in die NodeRed Konfigurationsoberfläche einloggen.

Ansicht des Loginbildschirms. Hier müsst Ihr die Logindaten eingeben die Ihr während der Konfiguration des Logins angegeben habt. Infos dazu findet Ihr im Artikel NodeRed - Benutzerlogin einrichten.

FritzBox-Node installieren

Damit NodeRed mit Eurer FritzBox kommunizieren kann müsst Ihr die Node „node-red-contrib-fritz“ installieren. Wie Ihr Nodes installiert ist im Artikel NodeRed – Neue Nodes installieren beschrieben.

FritzBox-Node-Konfiguration eintragen

Damit die soeben installierte FritzBox-Node auch mit Eurer FritzBox kommunizieren kann, müsst Ihr Eure FritzBox-Login-Daten in die Konfiguration der Node angeben.

Klickt dazu auf die Node „Fritz!Box Callmonitor“. Daraufhin öffnet sich ein neues Fenster in dem Ihr in der Zeile „Device“ „Add new fritzbox-config“ in der Drop-Down-Liste auswählen könnt. Wählt dies aus und klickt dann auf das Stift-Icon rechts davon.
In dem sich nun öffnenden Fenster müsst Ihr die Login-Daten zu Eurer FritzBox eingeben. Also zuerst den Namen, damit die Konfiguration nicht namenlos bleibt und dann den Benutzernamen und das Passwort. Falls die FritzBox in Eurem privaten Netzwerk steht könnt Ihr die Angaben bei Host so stehen lassen. Nur falls Ihr auf eine entfernte FritzBox zugreift müsst Ihr hier die URL zur FritzBox eintragen. Dann solltet Ihr auch dafür sorgen, dass diese Verbindung per HTTPS verschlüsselt ist.In diesem Fall muss dann auch der Haken bei „Is SSL connection“ gesetzt werden. habt Ihr alles eingegeben bestätigt Ihr dies mit einem Klick auf „Add“.
Dadurch werdet Ihr wieder ins vorherige Fenster weitergeleitet. Die Neue FritzBox-Konfiguration ist nun schon ausgewählt. Ihr müsst das Fenster nur noch mit einem Klick auf „Done“ bestätigen.

Node-Code um die Anruferliste im Dashboard anzeigen zu können

Für dieses Beispiel benötigt Ihr neben der FritzBox-Node auch die Dashboard-Node. Auf dem Dashboard wird euch dann eine Tabelle der letzten Anrufe angezeigt. Vergesst also nach dem Einfügen des unten aufgeführten Node-Codes nicht das Dashboard-Element auf dem Dashboard korrekt zu positionieren.

Weitere Infos zum Umgang mit den Dashboard-Nodes findet Ihr im Artikel NodeRed – Mit Dashboard-Nodes eine Benutzeroberfläche erstellen

Node-Aufbau in der NodeRed-Konfiguration

Der unten stehende Code ist der Code aus der Function-Node der aufgeführten Node-Konfiguration. Darin könnt Ihr die Tabellenausgabe ändern und zum Beispiel auch ändern wieviele der letzten Einträge euch angezeigt werden.
Ändert dazu die „10“ in der Zeile “ for (var i = 0; i<10; i++)" auf den gewünschten Wert.

var IO=[];
var Datum=[];
var Nummer=[];

    for (var i = 0; i<10; i++) { if(msg.payload.Call[i].Type==1) { //Eingehender Angenommener Anruf IO[i]=">„;
            Datum[i]=msg.payload.Call[i].Date;
            Nummer[i]=msg.payload.Call[i].Caller;
        } else if(msg.payload.Call[i].Type==2)
        {
            //Eingehender Nicht-Angenommener Anruf
            IO[i]=“>>“;
            Datum[i]=msg.payload.Call[i].Date;
            Nummer[i]=msg.payload.Call[i].Caller;
        } else if(msg.payload.Call[i].Type==3)
        {
            //Ausgehender Nicht-Angenommener Anruf
            IO[i]=“<<";
            Datum[i]=msg.payload.Call[i].Date;
            Nummer[i]=msg.payload.Call[i].Called;
        }
    }
msg.payload.IO=IO;
msg.payload.Datum=Datum;
msg.payload.Nummer=Nummer;
return msg;

Leider konnte ich den NodeCode hier nicht direkt einfügen, weil der darin enthaltene HTML-Code das Aussehen der Webseite etwas „verwirrt“.

Den NodeCode findet Ihr deshalb hier im Nerdiy-Git:

https://github.com/Nerdiyde/NodeRedSnippets/blob/master/FritzBoxCalllist.txt


Alternative Version

Hier noch eine etwas verbesserte Version des oben gezeigten Flows.

Damit lassen sich die angenommenen, verpassten und getätigten Telefonate in separaten Tabellen anzeigen.

Leider konnte ich den NodeCode hier nicht direkt einfügen, weil der darin enthaltene HTML-Code das Aussehen der Webseite etwas „verwirrt“.

Den NodeCode findet Ihr deshalb hier im Nerdiy-Git:
https://github.com/Nerdiyde/NodeRedSnippets/blob/master/FritzBoxCalllist_improved.txt


Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

Fab

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com

6 Kommentare

  1. Hallo, ich wollte gerade den Node importieren, leider bekomme ich den Fehler:

    SyntaxError: Unexpected string in JSON at position 825
    038;&=““ i<20);=""

    Was kann ich da tun?

    1. Hey ET,
      ich habe das Problem behoben. Leider hat der Code auch in diesem Fall die Formatierung der Webseite beeinträchtigt. Ich habe den zweiten Code nun auch auf GitHub hochgeladen. 🙂
      Danke für den Hinweis und beste Grüße
      Fab

  2. Hallo Fab,
    Danke für das Hochladen, importieren hat geklappt.
    Leider ist im Node collectData noch ein Fehler (for Schleife…).
    Kannst du nochmal drüber schauen?

    Gruß
    ET

    1. Hey ET,
      sorry, hätte den Code nochmal checken sollen. Habe ihn korrigiert und getestet. Müsste nun funktionieren. Würde mich trotzdem über eine Rückmeldung freuen. 🙂
      Beste Grüße
      Fab

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.