Fritz!Box metingen 2011-2014

Fritz!Box ADSL snelheid — analyse met R

internetRuim 3 jaar geleden maakte ik ook al zo’n overzicht. Waarom zou ik nu nog een keer hetzelfde doen?

Ten eerste omdat ik nu een nieuw model Fritz!Box gebruik, ten tweede omdat ik de analyse deze keer met de taal/tool „R” wil aanpakken.

De grafiek

Ook de nieuwe Fritz!Box verstuurt elke dag om middernacht een e-mailtje naar mij, met een samenvatting van wat er de afgelopen dag gebeurd is. Sinds 2006 verzamel ik deze mailtjes en door ze tot een grafiek te verwerken kan ik zien hoe mijn adsl aansluiting het gedaan heeft door de jaren heen.

Het resultaat van het harde werk is deze grafiek:

Fritz!Box metingen 2011-2014
Fritz!Box metingen 2011-2014 (klik voor groter)

Je ziet wat er gebeurde toen ik in mei 2013 de nieuwe Fritz!Box aansloot: de snelheid schoot omhoog van nog geen 14½ Mbps, naar bijna 17 Mbps. Helaas was dat geen blijvertje, want na een paar maanden ging de snelheid ineens naar beneden en de laatste maanden staat hij muurvast op 15 Mbps. Waarom ze mijn snelheid beperken weet ik niet, want ik betaal voor een 50 Mbps abonnement.
De lijn zal wel niet sneller „kunnen”.

Toen de snelheid omlaag gegaan was, heb ik naar de helpdesk gebeld met het verzoek om vdsl te activeren. Daarvoor moet eerst mijn adsl van de oude (ex-)isdn centrale naar een analoge centrale gemigreerd worden. Dat kan niet rechtstreeks, maar het moet via tussenstappen. Elke keer als de lijnkaart van mijn aansluiting verandert, zie je in de grafiek een verticale groene streep. Sinds de eerste groene streep zit ik in het migratiegebied van de telefooncentrale, ik kan nu én digitaal én analoog verbinding maken (Annex A en Annex B), heel bijzonder.
Maar vdsl werkt nog niet.

Als je goed kijkt, zie je in de grafiek nog iets bijzonders: de lijn die hoort bij „S/R zenden” maakt een langzame golfbeweging, met elk jaar een dieptepunt rond februari en een hoogtepunt rond augustus. Dit was ook al zo in de jaren voor 2011, maar in november 2013, nog met de oude Fritz!Box, lijkt dat ineens te stoppen.

De aanpak

Fritz mail engels
Een stukje uit de Fritz!Box e-mail

Om de grafiek te kunnen tekenen, moest ik als eerste alle verzamelde e-mails inlezen. Ik heb de ThunderBird extensie „ImportExportTools 2.8.0.4” geïnstalleerd en daarmee kon ik alle e-mails per jaar en per taal in csv bestanden zetten.

Ik ben overgestapt van een Duitstalige Fritz!Box op een Engelstalige, dus de taal van de mails verschilt. Ook de inhoud verschilt: in de Duitse mails kan ik niet zien op welk type lijnkaart ik aangesloten ben en in de Engelse mails staat voor demping bij zenden een waarde die niet klopt.

Voor de technisch geïnteresseerde lezer laat ik als voorproefje hieronder een stukje van de R functie zien die ik gemaakt heb om de e-mails te vertalen naar een nette R tabel — de rest vind je in de Links onderaan. Ik gebruik regular expressions om de getallen in de tekst op te zoeken. De regelnummers horen er niet bij.

# RegExps voor Duitse mail
if (taal=="de")
regexps <- c(
Exchange = ""
,kbps.O = "([[:digit:]]+) k[bB]it/s [(]Empfangsrichtung[)]"
,kbps.Z = "([[:digit:]]+) k[bB]it/s [(]Senderichtung[)]"
,Demping.O = "Leitungsdämpfung \t([[:digit:]]+) dB [(]Empfangsrichtung[)]"
,Demping.Z = "Leitungsdämpfung \t[^\t]*\t([[:digit:]]+) dB [(]Senderichtung[)]"
,SR.O = "Signal-/Rauschtoleranz \t([[:digit:]]+) dB [(]Empfangsrichtung[)]"
,SR.Z = "Signal-/Rauschtoleranz \t[^\t]*\t([[:digit:]]+) dB [(]Senderichtung[)]"
)

# Vul datumkolom met een echte datum
fritzmail$Datum <- as.Date(fritzmail$Date, format="%d-%m-%Y")

# Zoek gegevens in de e-mailtekst
fritzmail$Exchange <- factor(sub('[ ]+$','',Extract(regexps["Exchange"], fritzmail$Body)))
fritzmail$kbps.O <- as.numeric(Extract(regexps["kbps.O"], fritzmail$Body))
fritzmail$kbps.Z <- as.numeric(Extract(regexps["kbps.Z"], fritzmail$Body))
fritzmail$Demping.O <- as.numeric(Extract(regexps["Demping.O"], fritzmail$Body))
fritzmail$Demping.Z <- as.numeric(Extract(regexps["Demping.Z"], fritzmail$Body))
fritzmail$SR.O <- as.numeric(Extract(regexps["SR.O"], fritzmail$Body))
fritzmail$SR.Z <- as.numeric(Extract(regexps["SR.Z"], fritzmail$Body))

# Waarden vervangen door NA als ze niet (of niet goed) in de mail staan
if (taal=="de")
fritzmail$Exchange <- factor(NA)
if (taal=="en")
fritzmail$Demping.Z <- NA

Op mijn oude computer kost het inlezen en verwerken ongeveer 2 seconden per Megabyte e-mail. R is speciaal bedoeld voor statistische analyse, je kunt bijvoorbeeld de standaardfunctie summary() gebruiken on snel te zien wat onder andere de gemiddelden zijn van de velden in je tabel:

summary(fritzmail) in R
summary(fritzmail) in R

En je hebt in R veel manieren om grafieken te plotten, bijvoorbeeld plot(fritzmail).

Verschil met vorige keer

Vorige keer heb ik de grafiek gemaakt met de standaard Microsoft tools. Ik wilde het eerst met StarOffice doen (onder Windows), maar die kon niet goed overweg met het „grote” aantal gegevens. Het grote voordeel van die aanpak was dat ik geen nieuwe tools hoefde te leren. Het grote nadeel was dat het maken van een grafiek door met de hand gegevens in kolommen te schuiven op een Excel-sheetje niet gemakkelijk herhaalbaar is.

Ik mijmerde al eens op mijn blog dat je vroeger op 8-bit computers zo gemakkelijk interactief iets even kon uitproberen en snel wat plotten. In R kan dat ook! R is heel goed geschikt is om gegevens uit bestanden te verwerken in tabellen en grafieken. De taal R bestaat al meer dan 20 jaar en gelukkig heb ik hem nu gevonden.

Een gedachte over “Fritz!Box ADSL snelheid — analyse met R

  1. Het installeren van R onder Ubuntu is niet moeilijk:
    sudo apt-get update
    sudo apt-get install r-base

    Als je ook XML bestanden wilt kunnen inlezen, moet je dat eerst installeren:
    sudo apt-get update
    sudo apt-get install libxml2-dev

    en daarna vanuit R zelf:
    install.packages('XML')

    Om XML te activeren gebruik je require('XML') aan het begin van het programma waarin je het nodig hebt.

Vertel jouw mening

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s