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!

Raspberry Pi Gesichtserkennung

Auf adafruit.com gibt es einen spannenden Artikel zum Thema Gesichtserkennung mit dem Raspberry Pi. In dem Artikel geht es darum eine Holzkiste zu verschließen bzw. zu öffnen, wenn das korrekte Gesicht erkannt wird.

Ein anderer Artikel ermöglicht die gezielte Differenzierung von Gesichtern.

Als Ausblick werde ich versuchen die Entwicklung als Basis für eine Hausautomatisierung zu nutzen. Ein Update folgt bald.

Um die Playstation Eye Camera zu nutzen gibt es einen weiteren Artikel.

iBeacon für die Haussteuerung

Das Leuchtfeuer im eigenen Haus. Die iBeacon erfreuen sich nicht nur im Einzelhandel wachsender Beliebtheit. Das eigene Haus und das Auto profitieren auch vom digitalen Leuchtfeuer.

Technisches Prinzip

Das Prinzip der iBeacons ist einfach wie genial. In regelmäßigen Abständen sendet das Gerät eine 16 Byte Unique ID, sowie eine jeweils 2 Byte lange Major und Minor ID (Quelle: Apple Developer. Entwickler haben die Möglichkeit diese IDs abzufragen und entsprechend darauf zu reagieren. Im Einzelhandel beispielsweise durch das Anzeigen von Tagesangeboten wenn der Kunde in einem bestimmten Bereich des Marktes steht (und er die App des Händlers/Kette installiert hat).

Geofency

Für die Hausautomatisierung bietet sich eine fertige App wie Geofency an. Geofency erlaubt das Anlegen von GPS Bereichen und das Tracken von iBeacons. Für jeden Ort kann eine eigene Webadresse aufgerufen werden. Hier sind nun unzählige Szenarien denkbar. Mit einem iBeacon im Auto lässt sich die eigene Anwesenheit im Auto erkennen, wird dieser Wert mit dem Heimatort verbinden, dann kann das Garagentor geöffnet werden. Ein iBeacon im Sportraum ermöglicht das automatisch Einschalten von Beleuchtung und Musik beim Betreten (Geofency ruft beim Erkennen des iBeacon eine URL auf, hinter der sich die Haussteuerung befindet. Diese aktiviert dann die Funktsteckdosen).

FHEM und Anwesenheitserkennung

FHEM beinhaltet mittlerweile ein Modul für die Anwesenheitserkennung. Das Modul kann mittels des folgenden Aufrufs aktiviert werden.

define geofancy GEOFANCY geo

Die einmalige Einrichtung ist etwas umfangreicher aber hervorragend auf der FHEM Wiki Webseite dokumentiert.

 

Bildquelle: https://itunes.apple.com/app/id615538630

Raspberry Pi Sprachsteuerung – Jasper

Eigentlich wollte ich noch einen Artikel über meine Abenteuer mit der Sprachsteuerung für den Raspberry Pi berichten. Allerdings sind mir die Entwickler von Jasper zuvorgekommen. Mit Jasper gibt es nun eine Lösung auf Basis von pocketsphinx.

Mittels Plugins kann das System erweitert werden. Jasper lauscht dabei immer auf Spracheingaben im Raum.

Sprachausgabe (Festival und espeak)

Festival ist eine freie text to speech (Sprachsynthese-Software) der Universität Edinburgh (Schottland) Software. Der übergebene Text wird abhängig von der gewählten Stimme in Sprache umgesetzt. Die Installation der Software ist dabei sehr einfach. Das Hinzufügen von weiteren Stimmen wird noch ergänzt.

Installation

Das Paket festival kann direkt auf dem Raspberry Pi installiert werden.

sudo apt-get install espeak festival

Testen

Dem festival Programm könnnen Texte über stdin übergeben werden. Für die Ausgabe wird die Standard Stimme genutzt. Dabei müssen nur Lautsprecher oder Kopfhörer an den Audio Ausgang angeschlossen werden.

echo 'Hello world' | festival -b --tts

Online Demo

Die Stimmen können in einer online Demo angehört werden.

Deutsche Pakete (Funktioniert aktuell nur mit espeak!)

http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html Installieren von MBROLA und deutsche Sprache für Raspberry Pi

mkdir mbrola
cd mbrola
wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/raspberri_pi/mbrola.tgz
tar xvzf mbrola.tgz
sudo mv mbrola /usr/bin/
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de1/de1-980227.zip
unzip de1-980227.zip
sudo mkdir -p /usr/share/mbrola/de1
sudo mv de1/de1 /usr/share/mbrola/de1
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de7/de7.zip
unzip de7.zip
sudo mkdir -p /usr/share/mbrola/de7
sudo mv de7 /usr/share/mbrola/de7/de7

Sprachausgabe

espeak

espeak "hello world"
espeak -vmb-de7 "hallo welt"

festival

festival
(voice.list) - Eingabe
(de7_mbrola kal_diphone) - Ausgabe
(voice_de7_mbrola) - Aktivieren mit voice_NAME