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;
}
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.

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.

Hacking Sebastian – Teil 1 – Daten (Quantified Self)

„Hacking Sebastian“ oder warum Döner und Kopfschmerzen vielleicht im Zusammenhang stehen. Seit einigen Jahren beschäftige ich mich bereits damit, Daten über mich selber zu sammeln. Mittlerweile habe ich viele unterschiedliche Quellen und die Daten liegen überall verstreut. Auf Basis einer Webapplikation mit Microsoft SQL Server Datenbanken ist hier der Versuch beschrieben, alle Daten zu sammeln und aufzubereiten. Das Projekt läuft unter dem Namen „Hacking Sebastian“. Es wird eine Reihe von Artikeln beinhalten, die in der Übersicht aufgelistet sind.

Die Idee hinter der Sammlung und Auswertung der Daten gibt die Info Webseite, der deutschen Quantified Self Bewegung, sehr gut wieder: […]Ähnlich einem Spiegel liefern Daten über uns selbst eine Möglichkeit, uns zu reflektieren und zu erkennen, was bessere, informiertere Entscheidungen erlaubt. Die dabei eingesetzten Verfahren umfassen Selbst-Experimente, Verhaltens-Beochachtung, Lifelogging, die Erfassung biometrischer Informationen, Psychologische Tests, Dienste zur medizinischen Selbstdiagnose, Genomsequenzierung und vieles mehr.

Datenquellen ermitteln

Im ersten Schritt musste ich mir die Frage beantworten welche potentiellen Datenquellen ich gerne nutzen möchte. Dabei bin ich auf die nachfolgende Liste gekommen.

  • Gewicht, Körperfett, Wasseranteil, Muskelmasse
  • Ernährung
  • PC Nutzung
  • Training
  • Orte
  • Konten
  • Mails
  • Wetter
  • Sonstige: Kopfschmerzen, ToDo Listen, …

Datenquellen nutzen

Für jede Datenquelle stellt sich dann die Frage, wie ich an diese Daten komme und wie diese Daten erhoben werden. Hierzu stelle ich meine derzeitigen Lösungen und Überlegungen dazu vor.

Gewicht, Körperfett, Wasseranteil, Muskelmasse

MyFitnessPal Gewicht
MyFitnessPal Gewicht

Die wichtigsten Körperdaten erfasse ich seit meiner Lebensumstellung jeden Sonntag. Alle Daten trage ich dann in unterschiedlichen Portalen und meinen Excel-Tabellen ein. Diese Daten sind somit sehr einfach in das Portal zu übernehmen und dort auszuwerten.

Ernährung

Meine Essgewohnheiten trage ich täglich bei MyFitnessPal ein. Hier können alle Mahlzeiten zu Frühstück, Mittagessen, Abendbrot und alle Snacks ermittelt werden. Dabei sind für mich die Kalorien, Fette, Proteine und Kohlenhydrate relevant. Leider gibt es auf der Webseite keinen direkten Export, in einem sinnvollen Format. Für die Auswertung werde ich daher die Druckversion des Tagebuchs auslesen und in die Datenbank schreiben.

PC Nutzung

ManicTime Screenshot
ManicTime Screenshot

Die Software ManicTime läuft auf meinen Computern im Hintergrund und protokolliert somit den ganzen Tag das Nutzungsverhalten. Eine Aufteilung auf Programme, Dokumente und Webseiten ist hier möglich. Zusätzlich können die Zeiten in denen der PC gesperrt ist mit einem Tag versehen werden. Die Kennzeichnung ermöglicht eine Auswertung der Abwesenheit. ManicTime speichert die Daten lokal in einer eigenen Datenbank. Hier ist zu prüfen ob diese genutzt werden kann.

Training

FullFitness
FullFitness

Mein Training erfasse ich in unterschiedlichen Programmen. Als zentrale Stelle, für eine Übersicht aller Sportarten, nutze ich Runtastic. Beim Joggen werden die relevanten Informationen dort automatisch eingetragen, sofern ich mit dem Smartphone laufe. Runtastic ist nun leider nicht unbedingt dafür bekannt, die gesammelten Daten herzugeben. Mittels eines Scripts, für Greasemonkey, im Firefox, können aber alle Trainings als TCX Dateien exportiert werden. Einfacher ist das Verfolgen des Krafttrainings. Mit der App „Full Fitness“ für das iPhone kann ich alle Trainingseinheiten präzise dokumentieren. Das Programm ermöglicht das Verschicken von CSV Dateien. Diese lassen sich einfach in die Datenbank importieren.

Orte

Die App „Geofency“ ermöglicht das automatisierte Verfolgen von Standorten mittels Geofencing. Dazu werden für wichtige Orte GPS Daten eingetragen. Immer wenn das Smartphone in den Bereich kommt, erfasst die App die Anwesenheit. Für die Arbeit und mein Zuhause habe ich diese Daten eingetragen. Um zu ermitteln wie oft und lange ich im Auto sitze habe ich dort einen iBeacon angebracht. Das iBeacon sendet per Bluetooth Low Energy ständig Daten. Das iPhone erkennt die Anwesenheit und protokollierte diese ebenfalls. Die Geofency App ermöglicht das Verschicken der Daten als CSV Datei. Mit der App „ATracker“ können manuell weitere Zeiten erfasst und ebenfalls per CSV Datei verschickt werden. Leider funktioniert der Versand nur in der Pro Version.

Geofency
Geofency

Konten

Der Verlauf der Zahlungseingänge und aller Ausgaben kann über das Portal der Sparkasse eingesehen und in beliebigen Formanten exportiert werden.

Mails

Sämtliche E-Mails lassen sich einfach per IMAP abrufen. Hier sind die Antwortzeiten der E-Mails interessanter. Mit Hilfe der Daten lassen sich produktive Zeiten erkennen. Dazu hat Stephen Wolfram in seinem Blog einen interessanten Artikel (The Personal Analytics of My Life) verfasst.

Wetter

Mein Raspberry Pi zeichnet bereits alle Wetterdaten auf. Allerdings gibt es auch genügend Quellen im Internet. Mögliche Korrelationen muss ich hierzu aber noch finden.

Kopfschmerzen

Leider habe ich hin und wieder Kopfschmerzen. Ein Webformular erstelle ich für das Erfassen eines Kopfschmerztagebuchs.

Umsetzung

Im nächsten Teil der Serie.

Gefahren

Ein Wort der Warnung zum Abschluss. Insbesondere Informationen, wie die Ankunft und Abwesenheit von Zuhause sollten nicht (als Liste) veröffentlicht werden. Damit lässt sich andernfalls ermitteln wann die Wohnung leer ist. Für jeden Wert und jeden Datensatz sollte eine Bewertung der potentiellen gefahren erfolgen. Aus diesem Grund ist das „Hacking Sebastian“ Portal auch nicht im Internet erreichbar!