MagicMirror² Dashboard

Endlich den MagicMirror² bauen stand schon sehr lange auf meiner ToDo-Liste. In der Kombination Urlaub und Erkältung habe ich das also umgesetzt. Selbst bei der manuellen Installation dauert die gesamte Einrichtung für ein Dashboard weniger als 15 Minuten. Ich wollte den Spiegel nicht als Wandspiegel nutzen, sondern nur als Dashboard oder vielleicht als Startseite im Browser. Somit entfällt das Bauen eines schönen Rahmens für den Monitor sowie das Beschaffen von durchlässigem Spiegelglas.

Umsetzung

Entweder die automatische Installationsdatei von der Webseite ausführen oder der Anleitung für die manuelle Installation folgen. Letzteres beschränkt sich auf das Code clonen und Node Module installieren. In der Zeit die der Raspberry Pi für das Kopieren der Module benötigt bietet sich das Lesen der Dokumentation an.

Nach dem auschecken habe ich die config Datei angepasst. Insbesondere das Freischalten meiner IP-Adresse vom Windows Rechner erlaubt mir den Zugriff über den Browser auf die Oberfläche. Aus diesem Grund starte ich den MagicMirror² nur über node serveronly. Das erlaubt mir auch die Momentum - Personal Dashboard New Tab Chrome Extension als Startseite zu ersetzen. Mit dem MM kann ich meine Startseite deutlich besser nach meinen Wünschen anpassen. Außerdem entfällt die monatliche Gebühr.

Der MagicMirror² lässt sich mit viele Modulen beliebig erweitern.

Module

Derzeit sind diese Module bei mir aktiv.

Noch nicht ausprobiert aber in Planung sind die folgenden Module.

Meine Config

config.js

var config = {
    [...]
        language: "de",
        timeFormat: 24,
        units: "metric",
    [...]
        modules: [
                {
                        module: "calendar",
                        header: "Termine",
                        position: "top_left",
                        config: {
                                calendars: [
                                        {
                                                symbol: "calendar-check-o ",
                                                url: "https://calendar.google.com/calendar/ical/de.german%23holiday%40group.v.calendar.google.com/public/basic.ics"
                                        }
                                ]
                        }
                },
    [...]
                {
                        module: "compliments",
                        position: "middle_center",
                        config: {
                                remoteFile: "remote_compliments.json"
                        }
                },
                {
                        module: "currentweather",
                        position: "top_right",
                        config: {
                                location: "XXXXXXXXXXXX",
                                locationID: "XXXXXXXXXXXX",
                                appid: "XXXXXXXXXXXX"
                        }
                },
                {
                        module: "weatherforecast",
                        position: "top_right",
                        header: "Weather Forecast",
                        config: {
                                location: "XXXXXXXXXXXX",
                                locationID: "XXXXXXXXXXXX",
                                appid: "XXXXXXXXXXXX"
                        }
                },
                {
                        module: "newsfeed",
                        position: "bottom_bar",
                        config: {
                                feeds: [
                                        {
                                                title: "Stern",
                                                url: "https://www.stern.de/feed/overview/"
                                        },
                                        {
                                                title: "Spiegel",
                                                url: "http://www.spiegel.de/index.rss"
                                        },
                                        {
                                                title: "Heise",
                                                url: "https://www.heise.de/newsticker/heise-atom.xml"
                                        },
                                        {
                                                title: "Golem",
                                                url: "https://rss.golem.de/rss.php?feed=RSS1.0"
                                        },
                                        {
                                                title: "Tagesschau",
                                                url: "http://www.tagesschau.de/xml/rss2"
                                        }
                                ],
                                showSourceTitle: true,
                                showPublishDate: true
                        }
                },
                {
                        disabled: true,
                        module: 'MMM-DailyDilbert',
                        position: 'bottom_bar',
                        config: {
                                updateInterval : 36000000
                        }
                },
                {
                        disabled: false,
                        module: "MMM-BMI",
                        position: "top_center",
                        config: {
                                name: "Sebastian",
                                imperialUnits: false,
                                weight: "111",
                                height: "111",
                                herName: "hidden",
                                herWeight: "111",
                                herHeight: "111",
                                useHeader: true,
                                header: "Gewicht",
                                maxWidth: "350px",
                        }
                },
                {
                        module: 'MMM-BackgroundSlideshow',
                        position: 'fullscreen_below',
                        config: {
                                imagePaths: ['modules/MMM-BackgroundSlideshow/myImages'],
                                transitionImages: true,
                                randomizeImageOrder: true,
                                recursiveSubDirectories: true
                        }
                },
        ]
};

custom.css

 body {
   cursor: default;
 }

.MMM-BMI .header {
  color: #FFF;
}

.MMM-BMI .calc {
  color: #FFF;
}

.MMM-BMI .diagnosis {
  color: #FFF;
}

.MMM-BMI .spacer {
  color: #FFF;
  display: none;
}

.MMM-BMI .herCalc {
  color: #FFF;
  display: none;
}

.MMM-BMI .herDiagnosis {
  color: #FFF;
  display: none;
}
Körpermaße mit Grafana auf dem Raspberry Pi

Grafana Dashboards sind eine grafisch ansprechende Alternative zu meinem Körpermaße Dashboard FitPi. In diesem Artikel geht es um die Einrichtung eines exemplarischen Dashboards zur Darstellung von Körpermaßen (Gewicht, …) auf dem Raspberry Pi. Die Daten kommen aus einer MariaDB/MySQL Datenbank und werden über ein einfaches Tool eingetragen.

LAMP/LEMP Stack installieren und konfigurieren

Adminer ist ein PHP Tool zur Administration von Datenbanken. Das Tool wird die Eingabemöglichkeit für die Erfassung des Gewichtes, Größe, usw. sein. Damit das Tool funktioniert ist ein Webserver mit PHP notwendig, sowie die Datenbank.

Der klassische LAMP Stack besteht auf (Linux), Apache, MySQL und PHP. Allerdings nutze ich für dieses System den LEMP Stack. Dieser ersetzt den Apache durch Nginx. Nginx hat in diesem Fall den Vorteil, dass sich damit sehr einfach ein Reverse Proxy für Grafana einrichten lässt der auch performanter als der Apache ist. Grafana besitzt einen integrierten Webserver aber auf diesem Weg kann der Zugriff zentral über Nginx konfiguriert werden. Die Entscheidung für MySQL oder MariaDB ist eher eine Entscheidung zwischen dem Unternehmen Oracle oder der Open Source Community.

Die Installation erfolgt mit einigen einfachen Kommandos (Einfach leider nur auf stretch – Jessie hat leider nur PHP 5 und benötigt deutlich mehr Schritte). Die Datenbank fragt zwischenzeitlich nach dem root Passwort für den Administrator Zugang! Danach wird der Zugang für den Benutzer aber auf localhost beschränkt.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx php-fpm php-mysql php-cli php-cgi php-common php-curl php-gd php-mcrypt php-json php-tidy php-sqlite3 php-opcache php-intl php-zip php-xml php-mbstring php-iconv php-pear mcrypt
$ sudo apt-get install mysql-server mysql-client
$ sudo mysql_secure_installation

Nginx muss noch konfiguriert werden um PHP Dateien anzuzeigen.

$ sudo nano /etc/nginx/sites-available/default

Ersetzen von index index.html index.htm index.nginx-debian.html; durch index index.php index.html index.htm index.nginx-debian.html;

Entfernen der Kommentare vor dem PHP Bereich.

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

Nach einem Neustart ist der Webserver fertig.

$ sudo nginx -t
$ sudo systemctl reload nginx

Adminer lässt sich direkt von der Webseite runterladen (vorher nach der aktuellen Version schauen!) und im Webserver Verzeichnis ablegen. Admin Skripte sollten NIEMALS auf einem produktiven System aus dem Internet erreichbar sein! Für den lokalen Raspberry Pi in diesem Artikel reicht dies aber aus.

$ cd /var/www/html
$ sudo wget https://github.com/vrana/adminer/releases/download/v4.6.2/adminer-4.6.2-mysql.php

Das Skript sollte nun erreichbar sein unter dem Namen des Raspberry Pi oder dessen IP-Adresse und dem Skriptnamen: http://RASPBERRY_PI_NAME_ODER_IP/adminer-4.6.2-mysql.php

Grafana installieren

Leider gibt es kein Paket in der aktuellen Raspberry Pi Paketverwaltung. Glücklicherweise existiert ein Git Projekt welches diese Paket zur Verfügung stellt. Das Ergebnis ist auch für die Paketverwaltung nutzbar, es muss lediglich eine neue Quelle hinzugefügt werden (für stretch auf Raspberry Pi 2 und 3).

$ echo "deb https://dl.bintray.com/fg2it/deb stretch main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
$ sudo apt-get update
$ sudo apt-get install grafana
$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl enable grafana-server
$ sudo /bin/systemctl start grafana-server

Grafana ist nun erreichbar unter der Adresse (Port 3000): http://RASPBERRY_PI_NAME_ODER_IP:3000/

Der Default Login ist admin:admin und sollte direkt geändert werden.

Datenbank erstellen und Daten eintragen

Über die Adminer Oberfläche (SQL Kommando) kann die Datenbank (hier: life) erstellt werden inklusive eines Grafana Benutzers zum lesen der Daten. Dort erfolgt das Anlegen einer Tabelle für Körpermaße (measurement). Die Daten lassen sich per SQL Kommando INSERT erfassen oder über die Dateneingabe in Adminer. Das Anlegen der View (v_measurement) ermöglicht, dass Hinzufügen von berechneten Feldern. In diesem Beispiel sind es der berechnete Body-Mass-Index und die Grenzen zum Übergewicht bzw. Untergewicht. Der Bereich dazwischen ist das Normalgewicht.

CREATE DATABASE `life`;
CREATE USER 'grafana'@'localhost' IDENTIFIED BY 'grafana';
GRANT SELECT ON life.* TO 'grafana'@'localhost';
FLUSH PRIVILEGES;
USE `life`;
CREATE TABLE `measurement` (
    `date` date NOT NULL,
    `height` int NOT NULL,
    `weight` double NOT NULL
);
CREATE VIEW `v_measurement` AS select `measurement`.`date` AS `date`,`measurement`.`height` AS `height`,`measurement`.`weight` AS `weight`,((`measurement`.`weight` * 1.0) / (((`measurement`.`height` * 0.01) * `measurement`.`height`) * 0.01)) AS `bmi`,25 AS `bmioverweight`,18.5 AS `bmiunderweight` from `measurement`;
INSERT INTO `measurement` (`date`, `height`, `weight`) VALUES ('20170101', '180', '85');
INSERT INTO `measurement` (`date`, `height`, `weight`) VALUES ('20180505', '180', '91');
INSERT INTO `measurement` (`date`, `height`, `weight`) VALUES ('20180520', '180', '86');

ACHTUNG: Sollte der root Zugriff auf localhost beschränkt sein (bei MariaDB), so muss die Datenbank und ein schreibende User zuerst über den MySQL Client angelegt werden!

$ sudo mysql -u root -p
CREATE USER 'pi'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'pi'@'%' WITH GRANT OPTION; -- Besser wäre hier die Tabelle anstelle von *.* Außerdem ermöglicht GRANT OPTION denn Vollzugriff auf alle Berechtigungen!
FLUSH PRIVILEGES;

Grafana einrichten

Der letzte Schritte ist das Einbinden der Datenbank in Grafana, das Erstellen eines Dashboards und das Hinzufügen eines Panels für die Daten.

Die Datenquelle wird über den geführten Assistenten „Add data source“ durchgeführt.

Name: life
Type: MySQL
Host: localhost:3306
Database Name: life
User: grafana
Password: grafana

Jetzt kann über „New Dashboard“ ein neues Dashboard erstellt werden. Zum Anzeigen von Werten nutzt Grafana Panels. Hier bietet sich das „Graph“ Panel an. Mit einem Klick auf den kleinen Pfeil neben dem Titel erscheint ein Menü zum bearbeiten. Als Datenquelle wird life gewählt. Das Query ist wie folgt. (ACHTUNG: Wenn _$_timeFilter aktiv ist muss oben rechts der Zeitraum entsprechend groß gewählt werden um alle Werte zu erfassen. Zum testen kann der WHERE Teil vorerst entfallen). Bei Problemen hilft „Generated SQL“, der Wert kann in Adminer zum prüfen kopiert werden.

SELECT
    `date` as time_sec,
    `weight` as Gewicht
FROM `v_measurement`
WHERE $__timeFilter(`date`)
ORDER BY `date` ASC;

Zum Schluss noch einen Namen beim Speichern angeben und das Dashboard ist fertig!

Weitere Daten und Möglichkeiten

Weitere Ideen für Datenquellen (Kopfschmerzen, Krafttraining, Sport, …) finden sich auch in meiner Serie Hacking Sebastian – Teil 1 – Daten (Quantified Self).

Für produktive Nginx Server gibt es eine Sammlung von empfohlenen Konfigurationen.

Polar Flow Laufuhr Daten ermitteln: polar-flow-export.

Bucket List mit Trello erstellen

Die Bucket List ist eine Liste mit Dingen, die man im Leben gerne machen möchte. Dabei ist es erst einmal völlig egal wie realistisch, umfangreich oder terminiert die einzelnen Einträge sind. Es wird erstmal erfasst was noch erlebt werden soll.

Mit der eigentlich als Projektmanagementsoftware definierten Webseite Trello lässt sich diese Liste hervorragend anlegen, pflegen und verwalten. Der Aufwand der Erstellung und Pflege ist in wenigen Minuten erledigt.

Trello

Das Prinzip von Trello ist extrem leicht zu verstehen. Auf der Webseite lassen sich beliebig viele Boards erstellen. In jedem Board gibt es eine beliebige Anzahl an Listen zwischen denen Karten hin und her geschoben werden können. Jede Karte hat im einfachsten Fall nur eine Überschrift, kann aber mit Beschreibung, Kommentaren und Bildern erweitert werden. Darüber hinaus hat Trello noch eine sehr umfangreiche Liste an zusätzlichen Features die aber nur bei Bedarf aktiv sind.

Ein einfaches Beispiel wäre eine kleine Aufgabenplanung. Dabei wird das Board „Aufgaben“ erstellen. In dem Board sind dann die Listen „Idee“, „In Arbeit“ und „Fertig“ anzulegen. Alle Aufgaben können direkt als einzelne Karten in der Liste „Idee“ erfasst werden. Sobald man die Idee umsetzen möchte schiebt man diese Karte einfach in die nächste Liste „In Arbeit“. Am Ende kann die Karte in „Fertig“ gezogen werden oder einfach per Mausklick archiviert werden.

Die Kategorien erstellen

Wie passt Trello nun mit der Bucket List zusammen? Die Bucket List wird zum Board. Auf Trello legen wir uns also direkt das Board „Bucket List“ an. Nun liegt es an dem persönlichen Geschmack welche Listen man möchte. Mein Vorschlag ist hier das folgende Layout.

  • Ziele
  • Ziele (kurzfristig)
  • In Planung
  • Umsetzung
  • Fertig

Natürlich können hier beliebigen Listen hinzugefügt oder gelöscht werden. Auch die Definition von kurzfristig ist individuell. Für mich ist dies das aktuelle Jahr. In dem aktuellen Fall könnte die Liste somit auch „Ziele 2018“ heißen.

Mit der Bucket List arbeiten

Ist das Board angelegt und alle Listen erstellt dann ist es Zeit für die Erstellung der Ziele.

Ziele eingeben

In der ersten Liste öffnet sich eine kleine Textbox mit einem Klick auf den Link „Eine Karte hinzufügen…“. Hier wird die Überschrift erfasst. Mit einem Klick auf Hinzufügen ist das Ziel auch schon erfasst. Sollen weitere Informationen für das Ziel hinzugefügt werden öffnet ein Klick auf die Überschrift die Karte in einem Dialog. In dem Dialog können dann Beschreibungen, Kommentare und Bilder (siehe unten) erfasst werden.

Ziele bearbeiten

Grundsätzlich sollte die Bucket List nicht jeden Tag oder jede Woche geöffnet werden. Wer viele Ziele im Leben definiert ist sonst schnell von der Menge frustriert. Sinnvoll ist es eher sich einmal im Monat einen Überblick zu verschaffen und Ziele zu organisieren. Dabei können Ziele die nicht mehr relevant sind über die Archivierung entfernt werden.

Die Erfassung von neuen Zielen kann jedoch immer erfolgen falls auf einer Webseite oder durch Freunde und Bekannte neue Ideen aufgetaucht sind. Die Listen leben von dem Inhalt!

Ziele umsetzen

Möchte man ein Ziel angehen wird die Karte mit der Maus in die nächste Liste „In Planung“ geschoben. Hier bietet es sich nun an alle relevanten Informationen für die Umsetzung zu erfassen. Entweder als Kommentar oder in der Beschreibung. Muss beispielsweise für eine Reise in neuer Reisepass besorgt werden oder muss für eine Weltreise die Route geplant werden?! Umfangreiche Ziele können natürlich auch in einem neuen Trello Board strukturiert werden. Nach der Umsetzung lassen sich die Ziele dann unter der Liste „Fertig“ für die Ewigkeit archivieren.

Schöne Bilder

Noch schöner werden die Karten mit Bilden. Auf Portalen wie pixabay.com gibt es sogar kostenfreie Bilder zur freien Verwendung. Einfach das Bild herunterladen und in Trello hochladen. Wer kostenfreie Bilder benutzt darf dort auch gerne Spenden („Ways to give“) für einen Kaffee hinterlassen.

Lesenswert – Bücher – 2016

Bücher die inspirieren, neue Ideen bringen oder einfach lustig zu lesen sind.

Start-Ups und Beruf

The Lean Startup: How Constant Innovation Creates Radically Successful Businesses (Eric Ries) Lean Startup: Schnell, risikolos und erfolgreich Unternehmen gründen (Eric Ries) Mit einem minimum viable product schnell in den Markt drängen anstatt jahrelang im Keller am Markt vorbei entwickeln.

Silicon Valley: Was aus dem mächtigsten Tal der Welt auf uns zukommt (Christoph Keese) Eine Reise durch das Silcon Valley. Warum amerikanische Start-Ups so erfolgreich sein. Warum Facebook in Deutschland nicht möglich gewesen wäre und warum Plattformen in Zukunft viele Arbeitsplätze und Unternehmen abschaffen werden.

The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail (Management of Innovation and Change) (Clayton Christensen) The Innovators Dilemma: Warum etablierte Unternehmen den Wettbewerb um bahnbrechende Innovationen verlieren (Clayton Christensen) Warum Unternehmen früher oder später von schnellen und neuen Firmen überholt werden.

Mach es einfach!: Warum wir keine Erlaubnis brauchen, um unser Leben zu verändern (Ilja Grzeskowitz) Geld und Titel braucht es nicht um etwas zu bewegen.

Dein nächstes großes Ding: Gute Ideen aus dem Nichts entwickeln (Matthew Mockridge)

influence: The Psychology of Persuasion (Robert B., PhD Cialdini) Das Standardwerk über die Denkweise von Menschen und wie man diese beeinflussen kann.

Deutsch für junge Profis: Wie man gut und lebendig schreibt (Wolf Schneider) Gute Artikel werden immer seltener. Wolf Schneider schafft Abhilfe.

Das Escape-Manifest: Das Leben ist kurz. Steigen Sie aus. Kündigen Sie. Fangen Sie etwas Neues an. (Rob Symington) Ein Wegweiser zum Ausbrechen aus dem Hamsterrad.

Politik

Placebo-Politik: Warum Politiker alles tun, nur nicht das Nötige (Bernd Weiß) Der Titel sagt schon alles aus. Bern Weiß beschreibt aus der Innensicht was in der Politik alles falsch läuft bzw. überhaupt nicht angefasst wird und warum.

Leben

Ich breche aus!: Wie Sie in 21 Tagen den Alltag durchbrechen und entdecken, was wirklich wichtig ist (Michael Leister) An 21 Tagen das eigene Leben neu entdecken.

Romane

DAEMON: Die Welt ist nur ein Spiel (Die DAEMON-Romane, Band 1) (Daniel Suarez) Erschreckende nah an der Wirklichkeit. Ein tolles Buch über Technologie und deren Einsatz zur Kontrolle der Welt.

Witziges

Dilbert 2017 Day-to-Day Calendar (Scott Adams) Der Kalender der auf keinem Tisch fehlen darf. Jeden Tag ein neuer Comic.

Hacking Sebastian – Teil 3 – Analyse

Wie entwickelt sich das Körpergewicht, mit einem Döner in der Hand, bei 33°C Außentemperatur?! Der Fokus dieses dritten Teils der Quantified Self Serie, liegt in der Präsentation einer Reihe von unterschiedlichen Analysen. In den vorherigen Teilen der Serie wurden die Datenquellen und der Import beschrieben. Die Analyse bildet somit den Kernbereich des Projektes. Zusätzlich beinhaltet der Artikel, Denkanstöße und Ausblicke für tiefer gehende Analysemöglichkeiten. Diese weiteren Ansätze werden möglicherweise die Basis für weitere Artikel sein.

Gewicht, Körperfett, Wasseranteil, Muskelmasse

Gewicht, Körperfett, Wasseranteil und Muskelmasse Übersicht
Gewicht, Körperfett, Wasseranteil und Muskelmasse Übersicht

Im ersten Teil erwähnte ich bereits kurz meine Lebensumstellung. Dadurch lässt sich ein schöner Verlauf des Körpergewichts erkennen. Zusätzlich ist der fallende Anteil des Körperfetts erkennbar, bei gleichzeitigem Zuwachs von Muskelmasse und dem Wasseranteil. Die Werte sind mit einer handelsüblichen Waage ermittelt worden. Insbesondere der Fettanteil ist damit nicht unbedingt korrekt, für einen Trend aber ausreichend. Die Darstellung erfolgt als einfaches Flächendiagramm, auf Basis der Pivot-Tabellen in Excel.

Ernährung

Die Analyse der Ernährung übernimmt MyFitnesPal bereits sehr gut. Die Standardreports, von der Webseite, sind in Excel leicht nachbaubar. Über den Umfang der normalen Reports hinweg, hatte ich weiteren Informationsbedarf. Die erste Analyse umfasst die Kalorien je Monat. Hierbei lassen sich Monate mit einem erhöhten Bedarf an Kalorien erkennen. Nebenbei ermöglicht der Bericht das Verfolgen und Vorbeugen von vermehrtem Kalorienkonsum. Steigt die Summe jeden Monat an, ist dies möglicherweise ein Warnsignal. Hohe Abweichungen sind auch ein Indiz für viele Geburtstage oder Partys. Die Grafik berücksichtigt bei den Summen nicht die unterschiedliche Anzahl von Tagen im Monat. Der Mittelwert konnte hier nicht genutzt werden, da die Datenbasis einzelne Speisen summiert und nicht die Tage. Somit wäre der Wert abhängig von der Anzahl der Nahrungsmittel je Tag gewesen. Für den Mittelwert müsste eine Datenbank View auf Basis der Summe eines Tages angelegt werden.

Kalorien je Monat
Kalorien je Monat

Eine weitere Analyse ist die Verteilung der Kalorien auf die einzelnen Mahlzeiten des Tages. Hieraus lässt sich erkennen, dass die Snacks, also Mahlzeiten vom Vormittag und Nachmittag, einen großen Teil des Tages ausmachen. Unter die Snacks fallen bei mir auch die ungesunden Ausrutscher im Monat (Eis, …).  Die dritte Analyse umfasst die Makronährstoffe je Mahlzeit. Hiermit kann beispielsweise ermittelt werden, ob die Kohlenhydrate am Anfang oder am Ende des Tages zugeführt wurden.

Verteilung der Kalorien
Verteilung der Kalorien
Makros nach Mahlzeiten
Makros nach Mahlzeiten

Training

Die Analyse des Trainings ist extrem umfangreich. Runtastic bietet hier einen enormen Schatz an Statistiken, insbesondere als Gold Member. Laufanalysen und Kilometer genauer Aufschlüsselung können ebenso wie die aktivsten Tageszeiten ermittelt werden. Meine erste Analyse umfasst die historische Betrachtung der Leistung einzelner Kraftsportübungen. Mit einer einfachen Kurve ist der Zuwachs beim Bankdrücken, Kreuzheben und anderen Übungen schnell erkennbar.

Training Gewicht
Training Gewicht

Die zweite Grafik zeigt die einzelnen Sportarten, nach der Dauer der bisherigen Ausübung, auf. Hieraus kann die überproportionale Häufigkeit von Kampfsport im Gegensatz zu Joggen, Reiten und Tanzen erkannt werden. Vorstellbar ist auch eine historische Sicht, wie sich diese Verteilung verändert.  Die beiden letzten Grafiken stellen die gesamte Ausübung von Sport pro Wochentag und historisch da. Hier ist eine relativ homogene Verteilung der Zeiten in der ersten Analyse sichtbar. Im Gegensatz zu einer, sich verschiebenden Aufteilung, in der zweiten Sicht.

Sport nach Tagen
Sport nach Tagen
Sport nach Wochen
Sport nach Wochen

Weitere

Die im ersten Teil der Serie vorgestellten Bereiche, sind im oberen Bereich des Artikels noch nicht in aller Gänze beschrieben. Hier folgen einige Ideen und Überlegungen für mögliche weitere Analysen auf Basis der Quantified Self Idee.

PC Nutzung

Im Wesentlichen sind die Informationen bereits aus dem Tool ablesbar. Anhand der vorgefertigten Reports lässt sich erkennen, dass ein guter Teil meiner Freizeit, die ich vor dem PC verbringe, auf sozialen Plattformen wie Facebook und Twitter vertrödelt wird. Zusätzlich mischen sich Foren und Newsseiten dazu. Der Rest ist dann spezifisch für die Aufgaben des Tages (Softwareentwicklung, Fotobearbeitung, …). Die Nutzung in der Firma verteilt sich auf Outlook und Ticketsysteme. Mittags und am frühen Morgen gesellen sich Newsseiten und Technologieforen dazu.

Orte – Schlaf

Bisher sind noch nicht genügend Daten zusammengekommen, damit eine relevante Quantified Self Analyse möglich ist. Lediglich eine durchschnittliche Zeit von 7,09 Stunden Schlaf pro Nacht ist ablesbar.

Konten

Das Auswerten der Kontenbewegung ist eine spannende Tätigkeit. Die Kernfragen dazu lauten „Wo kommt mein Geld her?“, was sich naheliegend mit „vom Arbeitgeber“ beantworten lässt und der Frage „Wohin verschwindet das ganz Geld denn wieder?“. Für die Aufschlüsselung clustere ich die einzelnen Zahlungsempfänger. Ob nun 70 Euro zu Tankstelle A und 60 Euro zu Tankstelle B gehen ist nicht relevant, wohl aber die Aussage, 130 Euro für das Tanken gezahlt zu haben. Die genaue Aufstellung meiner Konten ist hier natürlich nicht aufgelistet. Allerdings gehören neben den Barentnahmen am Geldautomaten und Einkäufe im Supermarkt, auch Amazon und Tankstellen zu den Top Ausgaben.

Mails, Wetter, Kopfschmerzen

Mails: Das Auslesen der Mails ist noch nicht umgesetzt. Wetter: Hier fehlen mir noch Ansätze für sinnvolle Korrelationen. Kopfschmerzen: Hier fehlt ebenfalls eine aussagekräftige Datenbasis. Viele der Grafiken sind um die Achsenbeschriftungen und Legenden, aus Platzgründen, beschnitten. Anregungen und Ideen für weitere Quantified Self Analysen bitte gerne an mich.