Automatischer Kontodownload

KontodownloadEine wichtige Grundvoraussetzung bei der Verwendung von OwnYourData ist die Einfachheit der Bedienung. Deshalb haben wir uns Gedanken gemacht, wie wir vorhandene Apps weiter verbessern und vor allem vereinfachen können. Die Kontoentwicklungs App wird oft installiert und wir haben das Feedback bekommen, dass besonders der monatliche Upload der Kontoauszüge als mühsam empfunden wird. In diesem Blogpost stellen wir daher den automatisierten Kontodownload vor.

Die hier vorgestellte Funktion zum automatischen Kontodownload ist noch ein Prototyp und verlangt einige technische Grundkenntnisse für die Verwendung: die Ausführung eines Docker Containers und das Einrichten eines Cron-Jobs. In der endgültigen Form, wird die Einrichtung aber natürlich in der Kontoentwicklungs-App als optionale Datenquelle möglich sein.

Die Konfiguration für den automatisierten Kontodownload wird als JSON bereitgestellt und umfasst folgende 3 Bereiche:

  • Zugangsdaten zum Bankkontocredentials.json
    {
        "bank":     "easybank",
        "username": "123456",
        "password": "12345geheim",
        "account":  "AT121420020010123456"
    }
  • Warnung: Speichere diese Daten nur auf deinem eigenen (vetrauenswürdigen) Computer und stelle sicher, dass die Zugangsdaten zu deinem Bankkonto niemals öffentlich werden! Wir haben bei der Entwicklung größtmögliche Sorgfalt angewendet, und durch die Verwendung von Docker, werden deine Zugangsdaten auch nur temporär verwendet, bevor sie mit dem Container nach der Ausführung wieder entfernt werden.

  • Schreiben des Referenzwertesbalance.json
    {
        "url":     "http://1.2.3.4:8080/",
        "key":     "eu.ownyourdata.bank",
        "secret":  "1234567890AaBbCcDdEe",
        "repo":    "eu.ownyourdata.bank.reference",
        "partial": "balance",
        "delete":  "all",
        "map":[
            { "date":  "date" },
            { "value": "balance" }
        ]
    }
  • Schreiben der Umsätzebookings.json
    {
        "url":     "http://1.2.3.4:8080/",
        "key":     "eu.ownyourdata.bank",
        "secret":  "1234567890AaBbCcDdEe",
        "repo":    "eu.ownyourdata.bank",
        "partial": "bookings",
        "merge":[
            "date",
            "value",
            "descriptionOrig"
        ],
        "map":[
            { "date":            "date" },
            { "description":     "description" },
            { "descriptionOrig": "other|original" },
            { "value":           "amount" }
        ]
    }

Mit Hilfe dieser Konfiguration können nun Referenzwert und Umsätze mit folgendem Skript (z.B. import.sh) importiert werden:

#!/bin/bash

# read Easybank balance
cat /path/to/credentials.json | \
    docker run -i --rm oydeu/srv-bank /bin/run.sh | \
	docker run -i --rm oydeu/srv-pia_write /bin/run.sh \
	    "$(cat /path/to/balance.json | tr -d '\040\011\012')"

# Import Easybank
cat /path/to/credentials.json | \
	docker run -i --rm oydeu/srv-bank /bin/run.sh | \
	docker run -i --rm oydeu/srv-pia_write /bin/run.sh \
	"$(cat /path/to/bookings.json | tr -d '\040\011\012')"

Damit dieses Skript täglich ausgeführt wird, muss noch ein Cron-Job definiert werden:

0   2  *   *   *   root    /path/to/import.sh

Die notwendigen Docker-Images sind auf dockerhub.com und die Sourcen auf github.com verfügbar:

Derzeit können Daten von Easybank und ING-DiBa automatisiert heruntergealden werden. Kontaktiere uns, wenn du ein Konto bei einer anderen Bank hast und ebenfalls deine Umsätze automatisiert sammeln möchtest.

Veröffentlicht in Blog

Linked Data und Knowledge Graphen

Diese Woche (21.-25. August) habe ich an der 3. Keystone Training School teilgenommen und das Thema war Keyword search in Big Linked Data: Es gab spannende Vorträge, interessante Teilnehmer und unser Team hat den Hackathon am Freitag überragend gewonnen 🙂 . Linked Data war für mich bisher ein obskurer Begriff der etwas mit dem semantischen Web zu tun hat, aber genau konnte ich es nicht einordnen. Das hat sich diese Woche grundlegend geändert und ich glaube auch für OwnYourData ergeben sich daraus wichtige Möglichkeiten zur Weiterentwicklung.

Die Anfänge des semantischen Webs

Das erste Mal beschäftigte ich mich mit dem semantischen Web 2006-07. Ziel des semantischen Webs war es, Informationen im Internet für Maschinen lesbar zu machen. Ein Beispiel: Wenn wir die Wikipedia-Seite von Wien lesen, finden wir schnell heraus dass Wien derzeit knapp 1,9 Mio Einwohner hat. Diese Information aber für Maschinen zugänglich zu machen und Vergleiche anzustellen (z.B. hat Oslo oder Wien mehr Einwohner?) war dagegen sehr schwierig. Das semantische Web sollte nun alle Informationen kategorisieren und verarbeitbar machen.

In dem Forschungsprojekt an dem ich damals teilnahm ging es um die Beschreibung von Zusammenhängen in der Flugdomäne und wir entwickelten Ontologien, „pferchten“ die vorhanden Daten in dieses semantische Korsett und erhofften uns neue Erkenntnisse. Nichts davon traf aber ein und ich glaube alle waren damals froh, als das Projekt vorüber war: außer ein paar vielversprechender akademischer Papers war für mich kein praktischer Nutzen erkennbar.

In den letzten 10 Jahren gab es aber in diesem Bereich wichtige Weiterentwicklungen: SPARQL als universelle Abfrage- und Manipulations-Sprache wurde vom W3C etabliert und es ist nun möglich unterschiedlichste semantisch beschriebene Datenquellen einheitlich abzufragen und ggf. auch zu bearbeiten (vergleichbar mit SQL bei Datenbanken). Der Vergleich ob Wien mehr Einwohner als Oslo hat, lässt sich in SPARQL so formulieren:

ASK {
  <http://dbpedia.org/resource/Vienna\> dbo:populationTotal ?x .
  <http://dbpedia.org/resource/Oslo\> dbo:populationTotal ?y .
  FILTER(?x > ?y) . 
}

Das Statement kann man hier eingeben und erhält dann dieses Ergebnis .

Außerdem lockerte man auch die Anforderungen zur semantischen Beschreibung von Daten: Anstatt komplizierte Ontologien zu entwerfen denen alle erfassten Daten streng entsprechen mussten, verfolgt Link Data „nur mehr“ das Ziel maschinenlesbare Attribute zu verwenden, die auch selbst definiert werden können – eine genauere Definition gibt’s hier. Tim Berners-Lee, Vater des semantischen Webs, beschrieb diesen pragmatischen Ansatz mit den Worten:

Linked Data is the Semantic Web done right.

Linked Data für OwnYourData

Was bedeutet das nun für OwnYourData? Bisher ist der Datentresor als persönliches Archiv der eigenen Daten dafür ausgelegt, dass Apps via OAuth2 darauf zugreifen. D.h. es gibt ein vordefiniertes Datenformat (beschrieben auf Github bei den einzelnen Apps) und jegliche Datenquellen oder Visualisierungen, müssen sich daran halten. Zur Speicherung von Temperaturwerten in einem Raum sieht ein Datensatz als Beispiel so aus:

{"id":106920,"value":23.91,"timestamp":1502019600}

Diese Speicherung ist sehr effizient, hat aber auch einige Nachteile – insbesondere der fehlende Kontext:

  • worum geht es in diesem Datensatz? – es ist der Messwert eines Sensors in einem Raum, das ist aber nur erkennbar durch die Interpretation der Beschreibung der zugrundeliegenden Liste (die aber oft fehlt)
  • welche Bedeutung hat der Wert im Feld value? – auch hier muss ein Entwickler in der Dokumentation nachlesen, um das herauszufinden
  • in welcher Einheit ist die Temperatur gespeichert? – in diesem Fall Grad Celsius, aber andere Einheiten sind denkbar

Linked Data würde den Datensatz so beschreiben (als Format wird hier JSON-LD verwendet, es gibt aber zahlreiche andere Alternativen):

{
  "@context": "http://schema.org",
  "@type": "MeasureAction",
  "sensor": "https://chris.datentresor.org/sensor/library_temperature",
  "location": "Bibliothek",
  "dateCreated": "2017-08-25T19:30",
  "measurement": {
    "@type": "temperature",
    "value": "23.5",
    "unit": "Celsius"
  }
}

Knowledge Graphen

Diese semantische Annotation erlaubt nun eine eindeutige Beschreibung der gesammelten Daten, die auch von Software interpretierbar ist. Möchte man Daten mit anderen teilen, kann leicht (= automatisiert) herausgefunden werden, ob relevante Informationen verfügbar sind und wenn ja, können sie auch zwischen verschiedenen Formaten konvertiert werden. Unter Zuhilfenahme der Linking Open Data Community sind völlig neue Anwendungsfelder denkbar und eine inzwischen weit verbreitete Anwendung sind sogenannte Knowledge Graphen.

Diese beschreiben meist Instanzen (zB Stadt Wien) samt Verlinkungen von Attributen (zB Einwohnerzahl) und stellen diese übersichtlich in Infoboxen dar. Bekannt sind diese Knowledge Graphen vor allem von den Suchergebnissen bei Google, wo sie Informationen zu berühmten Persönlichkeiten, Sehenswürdigkeiten oder Unternehmen in einer Box neben den Suchergebnissen anzeigen. Oder auch in Wikipedia wo beispielsweise Informationen zu Städten rechts am Beginn eines Artikels dargestellt sind – diese Information ist dann übrigens als Linked Data via DBpedia verfügbar.

Als Ausblick für OwnYourData: ein solcher Knowledge Graph könnte mit den selbst gesammelten Daten dargestellt werden – siehe Kasten daneben. Falls du das spannend findest oder auch eigene Ideen für die Auswertung eigener Daten mit semantischer Annotation hast, schreib uns ein Email oder hinterlasse einen Kommentar unter diesem Artikel!

Veröffentlicht in Blog

OwnYourData auf Synology

Seit einer Woche habe ich ein NAS (Synology DS1517+) und ein für mich besonders interessantes Feature ist die Möglichkeit darauf Docker-Container auszuführen. Gleichzeitig hat unser Jüngster (2½ Jahre alt) nun sein eigenes Zimmer und ich wollte wissen, ob er dort auch wirklich durchschläft. Unsere Freunde von Gonimo.com haben einen tollen Online-Babymonitor entwickelt und sogar ein eigenes Feature für uns eingebaut, um den gemessen Geräuschpegel in einem OwnYourData Datentresor mitzuprotokollieren. Zur Visualisierung der gesammelten Daten gibt es die OYD-Gonimo App und in diesem Blogpost beschreibe ich das Setup, um in der Nacht den Geräuschlevel im Schlafzimmer unseres Sohnes mit einem Android-Phone zu messen und im Datentresor aufzuzeichnen.

Folgende Komponenten verwende ich dafür:

Inhalt

  1. Docker auf Synology installieren
  2. OwnYourData Images von Dockerhub herunterladen und starten
  3. Datentresor und OYD-Gonimo App starten
  4. Reverse Proxy & Zertifikate einrichten
  5. Gonimo am Android Smartphone starten
  6. Ergebnisse ansehen

Docker auf Synology installieren

Als erstes muss Docker installiert werden. Dazu öffne ich den DiskStation Manager (DSM) der Synology im Browser und gehe ins Package Center. Unter Utilities > Third-party findet sich ein Eintrag von Docker und dort klicke ich auf Install.

OwnYourData Images von Dockerhub herunterladen

Als nächstes starte ich Docker und unter Image lade ich folgende 2 Images herunter:

  • Datentresor: https://hub.docker.com/r/oydeu/oyd-pia/
  • OYD-Gonimo App: https://hub.docker.com/r/oydeu/app-gonimo/

Sind die beiden Images heruntergeladen, wähle ich sie jeweils aus und klicke auf Launch, um sie zu starten.

Datentresor und OYD-Gonimo App starten

Als nächstes öffnen wir den Datentresor und die OYD-Gonimo App. Dazu muss ich den vergebenen Port herausfinden, der unter Container > {Auswahl} > Details > Local Port angegeben ist.

In meinem Fall sind die Adressen:

  • Datentresor: http://192.168.1.134:32769
    (der Port wird dann im Schritt 4 Reverse Proxy benötigt)
  • OYD-Gonimo App: http://192.168.1.134:32768
    (diese Adresse wird dann im Schritt weiter unten benötigt)

Als erstes öffne ich den Datentresor (Username: admin, Password: admin) und registriere dort die OYD-Gonimo App:

Standardmäßig werden Apps unter der Onlineadresse https://{app}.oydapp.org ausgeführt. Für sensible Daten möchte ich, dass aber nicht nur die Daten, sondern auch die Visualisierung bei mir daheim ausgeführt wird. Daher kopiere ich die Link-Adresse die bei Open angezeigt wird und ändere sie, sodass ich die OYD-Gonimo App auf der Synology aufrufen kann.

Die ursprüngliche Adresse war bei mir:

https://gonimo.oydapp.eu/?PIA_URL=http%3A%2F%2F192.168.1.134%3A32769&APP_KEY=eu.ownyourdata.gonimo&APP_SECRET=AiJ2n10RhqGLdBE24uOg


und den ersten Teil https://gonimo.oydapp.eu/ ändere ich auf die oben notierte Adresse der OYD-Gonimo App:

http://192.168.1.134:32768/?PIA_URL=http%3A%2F%2F192.168.1.134%3A32769&APP_KEY=eu.ownyourdata.gonimo&APP_SECRET=AiJ2n10RhqGLdBE24uOg

Die so erstellte Adresse füge ich nun in die Adressleiste meines Browsers ein und öffne die OYD-Gonimo App. Dort gehe ich auf die Seite Datenquellen und kopiere mir den Befehl, um den Online Babymonitor Gonimo.com für die Speicherung der Daten in meinen Datentresor zu konfigurieren.

Reverse Proxy & Zertifikate einrichten

In diesem Schritt müssen nun einige Konfigurationen vorgenommen werden, damit sich die Gonimo.com Webapp auf einem Android Handy mit dem OwnYourData Datentresor verbinden kann. (iOS Devices werden derzeit leider noch nicht unterstützt, sollen dann aber mit Safari in iOS 11 funktionieren.)

Dazu richte ich zuerst einen Reverse Proxy ein, damit der Datentresor über https erreichbar ist. Im Control Panel unter Application Portal > Reverse Proxy lege ich einen Eintrag wie im Screenshot unten dargestellt an. Der Hostname unter Destination muss dabei natürlich mit der eigenen IP Adresse ersetzt werden.

Damit ist der Datentresor nun unter https://{lokale Synology IP}:8080 erreichbar.

Den Schritt zum Einrichten eines Zertifikats musste ich nachträglich einfügen, da der Browser des (bereits alten) Android Smartphones das Default-Zertifikat von Synology nicht akzeptiert hat. (Ein Test am Desktop mit einem aktuellen Chrome Bowser (v59) hat das Zertifikat anstandslos akzeptiert.)

Dazu gehe ich im Control Panel auf Security > Certificate und erstelle mit Add ein neues Self-signed Certificate für die verwendete IP Adresse. Mit Configure weise ich dann dem Port 8080 dieses Zertifikat zu.

Gonimo am Android Smartphone starten

Jetzt verbinde ich das Android Smartphone mit meinem PC via USB und öffne am Smartphone im Chrome Browser die Seite „https://app.gonimo.com“. Am PC öffne ich ebenfalls den Chrome Browser und dort die Entwicklertools > Remote devices > das via USB verbundene Smartphone > den apps.gonimo.com Tab > Inspect > Console und füge den aus Schritt 3 Datentresor und OYD-Gonimo App starten kopierten Befehl der OYD-Gonimo App > Datenquellen kopierten Befehl ein.

Anmerkung: das Mikrofon des Alcatel One Touch benötigt einen geringeren Schwellenwert, damit es bei Geräuschen anschlägt; ich habe daher im eingefügten Befehl den Wert für threshold von 0.3 auf 0.01 reduziert.

Nachdem dieser Wert für die Webseite gesetzt ist, klicke ich am Smartphone auf Baby und dann Start. Man kann das Smartphone nun vom PC trennen und zum Beispiel ins Kinderzimmer legen. Die Webseite schickt ab jetzt immer, wenn in einem 5 Sekunden Intervall ein Geräuschpegel größer als 0.01 erreicht wird, eine Nachricht mit dem aktuellen Zeitstempel und dem Geräuschpegel an den Datentresor. Am nächsten Morgen schließt man die Webseite im Browser und damit stoppt die Aufzeichnung. Bei der nächsten Verwendung muss man nur mehr die Webseite am Smartphone öffnen – keine Verbindung via USB und setzen der Werte ist mehr notwendig, da alle Informationen im Local Storage der Webseite gespeichert bleiben.

Ergebnisse ansehen

Am nächsten Morgen kann ich dann die Aufzeichnungen in der OYD-Gonimo App betrachten. Ich öffne dazu die OYD-App unter der Adresse die ich im Schritt 3 Datentresor und OYD-Gonimo App starten erstellt habe und sehe unter Auswertungen den Verlauf des Geräuschpegels in der Nacht.

Er ist um 8 Uhr eingeschlafen, hatte ein ruhige Nacht, aber bald nach 5 Uhr früh sind er und seine Brüder aufgewacht…

Ausblick

Mit dem hier beschriebenen Setup habe ich ein zusätzliches Anwendungsfeld für meine Synology beschrieben. Zugegeben ist die Installation für Endanwender im Moment zu schwierig, und in Zukunft möchte ich daher OwnYourData als eigene App im Synology Package Center anbieten. Die Installation soll dann so einfach wie jede andere Anwendung sein und mit einem einzigen Klick erfolgen. Falls dich das interessiert und du bestimmte Apps schon vorab verwenden möchtest, schreib mir ein Email oder hinterlasse einen Kommentar unter diesem Artikel!

Veröffentlicht in Blog

Einbrüche in Österreich – Kombinierte Nutzung von öffentlichen und privaten Daten

Mitte des Monats war ich auf einer Veranstaltung des Data Market Austria und besonders ein Vortrag von Clara Landler ist mir im Gedächtnis geblieben. Sie sprach unter anderem über das Spektrum der verschiedenen Daten, wie in der Info-Grafik von ODI dargestellt. Eingezeichnet sind dabei die Bereiche, in denen das Open Data Portal (öffentliche Daten / open data) und OwnYourData (private Daten / closed data) tätig sind.

 

Für mich ergab sich dadurch die Frage: Ist es möglich diese Bereiche miteinander zu verbinden? Eine mögliche Anwendung fand sich kurz später in einem Gespräch, bei dem die Idee für einer App mit Einbruchswarnungen aufkam. Ein sehr guter Indikator für einen Einbruch ist, wenn kurz zuvor in der Umgebung bereits eingebrochen wurde. Einbrecher suchen sich anscheinend ein vielversprechendes Zielgebiet aus und schlagen dann mehrfach zu. Kurz erklärt soll die App so funktionieren: ein Benutzer legt seine Adresse im OwnYourData Datentresor ab (= private Information) und für diese Adresse wird täglich überprüft, ob in der Umgebung ein Einbruch stattgefunden hat (=öffentliche Information). Ist das der Fall, wird der Benutzer über den Einbruch in der Nachbarschaft informiert und es können ggf. zusätzliche Vorsichtsmaßnahmen getroffen werden.

Eine erste Recherche zur Verfügbarkeit von Einbruchdaten in Österreich auf data.gv.at und opendataportal.at ergab aber leider keine Ergebnisse. Lediglich auf der Seite des Innenministeriums gibt es die Polizeiliche Kriminalstatistik Österreich die aber nur Daten der vergangenen Jahre auflistet und dort aggregiert auf Bundesland-Ebene. Also ging ich zur nächsten Polizeidienststelle – in meinem Fall in Bad Vöslau – und erkundigte mich dort, welche Daten bei Einbrüchen erhoben werden. Ich bekam die Information, dass solche Daten geographisch verortet sofort nach dem Eingang einer Anzeige ans Innenministerium weitergeleitet werden.

Ausgestattet mit dem Wissen, dass die Information prinzipiell vorhanden ist, setzte ich die Suche nach öffentlich verfügbaren Einbruchsdaten in Österreich fort. Meine nächste Station war das Forum Informationsfreiheit und deren Webseite FragDenStaat.at. Sehr schnell kann man dort offizielle Anfragen an Behörden in Österreich stellen und dokumentiert das auch gleichzeitig öffentlich. Meine Anfrage ist unter folgender Adresse verfügbar: https://fragdenstaat.at/anfrage/aktuelle-einbruche-in-osterreich/

Innerhalb von 3 Tagen kam eine Antwort vom Bundeskriminalamt:

… [es werden] keine Informationen über den Ort von Einbrüchen oder versuchten Einbrüchen online zeitnah veröffentlicht …

Hier wiederum kam mir Brigitte Lutz vom Magistrat Wien zur Hilfe und verwies auf das Informationsweiterverwendungsgesetz. Paragraph §1 des Gesetzes lautet

Ziel dieses Bundesgesetzes ist die Erleichterung der Weiterverwendung von Dokumenten öffentlicher Stellen, insbesondere um dadurch die Erstellung neuer Informationsprodukte und -dienste zu fördern.

Mit Hinweis auf dieses Gesetz antwortete ich daher auf die erste Stellungnahme des Bundeskriminalamts und erkundigte mich, ob die Informationen über Einbrüche in den Geltungsbereich des Informationsweiterverwendungsgesetzes fallen. Soweit der aktuelle Stand – sobald es Neuigkeiten dazu gibt, werden ich diesen Blogpost aktualisieren!

An alle Leser aber auch die Frage: Welche weiteren Anwendungen fallen euch ein, um einen Bogen zwischen persönlichen und offenen Daten zu spannen? Bitte schickt Vorschläge an feedback@ownyourdata.eu und wir freuen uns, Anwendungen in diesem Bereich zur Verfügung zu stellen!

Veröffentlicht in Blog
mit getaggt

Spring Talks

Im Frühjahr stehen wieder einige Vortragstermine zu OwnYourData am Programm. Wenn ihr Zeit habt besucht uns auf den folgenden Veranstaltungen:

  • Wissensmanagement Tage Krems: am 25. April um 9 Uhr im Audi-Max der Donau-Uni Krems zum Thema Crowd Intelligence
  • Linuxwochen 2017: am 5. Mai um 13 Uhr im FH Technikum Wien zum Thema Daten im Smart-Home
  • Vienna Data Science Meetup: am 11. Mai um 19 Uhr an der Fakultät für Informatik in der Währinger Straße zum Thema Reproducible Data Science
  • No Spy Konferenz: am 20. Mai im Literaturhaus Stuttgart zum Thema Persönliche Datennutzung
Veröffentlicht in Blog

OwnYourData in den Medien

Diese Woche wurde OwnYourData in verschiedenen österreichischen Medien vorgestellt:

Und ebenfalls waren wir mit der IoT Austria bei den Linux Tagen Chemnitz vertreten – hier gibts den Flyer zum Download.

Verschenkst du deine Daten noch oder hast du schon einen Datentresor?

Jeden Tag erzeugen wir eine riesige Menge an Daten: unterwegs mit dem Auto oder in öffentlichen Verkehrsmitteln, beim Einkaufen, natürlich mit unserem Smartphone und überhaupt immer, wenn wir im Internet sind. Mit dem Datentresor von OwnYourData kannst du dir eine Kopie dieser Daten sicher bei dir speichern. Das folgende Video gibt dir einen Überblick darüber:

Wenn Früchte Daten tragen

RaspberryPi und BananaPi zum Sammeln und Auswerten von Daten.

Zuletzt haben wir beschrieben wie man seinen Datentresor am PC mithilfe von Docker betreiben kann. In diesem Artikel demonstrieren wir nun die Installation des Datentresors und der Raumklima-App auf einem RaspberryPi 3. Die Raumklima-App ermöglicht dabei die Visualisierung von Sensordaten und die Steuerung diverser Aktoren (zB Ein- und Ausschalten eines Ventilators). Zum Erfassen der Sensordaten verwenden wir die Infrastruktur die vom Education-Kit der IoT Austria bereitgestellt wird. Und es gibt ebenfalls ein Video das eine Installation der Raumklima App bei der Quintessenz im Museumsquartier Wien zeigt.

Verwendete Hardware

Folgende Hardwareteile benötigst du, um deine eigene Raumklimasteuerung einzurichten:

  • aktueller RaspberryPi oder BananaPi mit Erweiterung zum Empfang von Sensordaten; die IoT Austria bietet dazu einen vollständig vorkonfigurierten BananaPi an, den wir auch in unserem Demosetup verwenden
    BananaPi

     

  • Sensoren zum Messen des Raumklimas; in unserem Beispiel sind das Sensoren für
    • Temperatur
    • Feuchtigkeit
    • Luftdruck
    • Licht

    Auch hier haben wir in unserem Demosetup wieder Sensoren der IoT Austria verwendet die beim Education Kit mitgeliefert werden.
    sensoren

     

  • Aktoren zur Ansteuerung von Geräten; in unserem Beispiel verwenden wir Verteilersteckdosen die via COAP ein- und ausgeschaltet werden können
    aktoren

     

  • optional kann ein zusätzlicher BananaPi oder RaspberryPi verwendet werden, der getrennt von der Sensorumgebung die OwnYourData Software-Komponenten ausführt; in unserem Beispiel verwenden wir einen BananaPi für die Sensorumgebung und einen RaspberryPi für OwnYourData
    raumklima_hardware

     

Installation

Ausgestattet mit der nötigen Hardware müssen wir als nächstes die unterschiedlichen Softwarekomponenten installieren. Dabei unterscheiden wir 2 Blöcke (unabhängig, ob sie auf 1 oder 2 BananaPi/RaspberryPi installiert sind):

Konfiguration

Zur Konfiguration von smartSarah muss die Datei sarah_hosts.cfg im Verzeichnis /opt/omd/sites/mysite/etc/nagios/conf.d mit den vorhandenen Hosts und Sensoren konfiguriert werden (weitere Infos hier). Nach dem Update muss omd restart durchgeführt werden (weitere Infos auf der Seite von OMD – Open Monitoring Distribution). In Nagios siehst du dann alle eingerichteten Hosts und Sensoren.
nagios

Für die Konfiguration der Raumklima-App müssen nun ebenfalls die Sensoren eingerichtet werden. Erfasse dazu auf der Seite „Datenquelle“ für jeden Sensor die folgenden Attribute:

  • Name: eindeutige Bezeichnung für den Sensor, z.B. Temperatur (Wohnzimmer)
  • URL: Adresse unter der NAGIOS die Sensor Daten im JSON-Format bereitstellt, z.B. http://192.168.1.2/mysite/pnp4nagios/xport/json?host=climateplus_12AB&srv=hum
  • Benutzer: zur Authentifizierung beim Zugriff auf die URL
  • Passwort: zur Authentifizierung beim Zugriff auf die URL
  • Liste: Name der Liste in der die Daten gespeichert werden sollen (der Name muss mit eu.ownyourdata.room beginnen), z.B. eu.ownyourdata.room.temp
  • aktiv: nur Sensoren die diese Option aktiviert haben, werden aufgezeichnet

Hier ein Beispiel mit 4 erfassten Sensoren:
app

Nach der Konfiguration eines Sensors kann mit der Schaltfläche „Importieren“ ein sofortiger Import der vorhandenen Daten gestartet werden. Ansonsten werden die Daten alle 2h aktualisiert.

Einsatz

Nachdem das System aufgebaut und alle Softwareteile installiert und konfiguriert sind, wartet man am besten ein paar Tage, damit einige Daten gesammelt werden. Die übliche Konfiguration erfasst Messwerte alle 10 Minuten und damit kommen pro Tag und Sensor jeweils 144 Messwerte dazu. Mit der Raumklima-App können dann diese Messwert-Reihen miteinander verglichen werden. Wähle dazu unter Auswertungen im Karteireiter „Kurvenvergleich“einen Zeitbereich und die 2 Sensoren die du vergleichen möchtest. Wenn du den Mauszeiger über die Kurve bewegst, werden die genauen Messwerte für die jeweilige Uhrzeit angezeigt.
graph

Eine weitere Anwendungsmöglichkeit für die gesammelten Daten ist das Auslösen von Aktionen beim Überschreiten von Grenzwerten. Dabei wird jede Minute der ausgewählte Sensor auf die konfigurierte Bedingung überprüft und wenn diese Bedingung zutrifft, wird eine vordefinierte Aktion ausgelöst. Im dargestellten Beispiel wird ein Fenster geöffnet und der Ventilator eingeschaltet, wenn die Temperatur über 25°C steigt. Das Fenster wird geschlossen und der Ventilator ausgeschaltet, wenn die Temperatur unter 23°C fällt.
aktoren
In einem der nächsten Artikel werden wir dann beschreiben, wie zusätzliche Daten wie zB eine online verfügbare Außentemperatur, ebenfalls in die Steuerung einbezogen werden können.

Fazit

In diesem Artikel haben wir beschrieben, wie ein mögliches autonomes System zum Sammeln und Nutzen von Sensordaten im eigenen Haus / in der eigenen Wohnung funktionieren kann. Insbesondere der Einsatz von Ein-Platinen-Computern eröffnet interessante Möglichkeiten und betreibt man das hier beschriebene Setting ohne mit dem Internet verbunden zu sein, läuft man auch nicht Gefahr private Daten preiszugeben, oder sonst einem Angriff ausgesetzt zu sein, die solche ständig in Betreib befindlichen IoT Devices zu einem beliebten Ziel von Hackern machen.

Veröffentlicht in Blog

Der neue Datentresor

logo_xmasNoch kurz vor Weihnachten freuen wir uns eine neue Version des Datentresors bereitstellen zu können. Nicole hat das neue Design entwickelt, Michael die Backend-Funktionen angepasst und ganz neu im Team die Firma Fraiss aus Graz das Frontend umgesetzt. Auf unserer Homepage könnt ihr euch entweder ganz schnell einen neuen Datentresor selbst anlegen oder ihr probiert unseren Demo-Datentresor aus.

Hier eine kurze Liste der wichtigsten Änderungen samt Screenshots:

  • Login mit neuer Kopf & Fußzeile
    login
  • Anzeige vorhandener Apps, Installation mit 1 Klick und Verwaltung von App-Anbieter
    welcome apps store
  • Darstellung vorhandener Daten
    daten datensatz
  • Account Seite mit Verlinkung auf Android & iOS App für euren mobilen Datentresor
    account

Mit diesen Neuerungen wünschen wir euch frohe Weihnachten und alles Gute für 2017!

Summer-of-Code Abschluss bei der Vienna Data Science Group

map_metalabWir haben zuvor schon über die Ergebnisse der diesjährigen Summer-of-Code Aktion von OwnYourData berichtet. Am Freitag den 21. Oktober 2016 findet im Metalab die Abschluss-Präsentation im Zuge eines Meetups der Vienna Data Science Group statt.

Wo: Metalab, Rathausstraße 6, 1010 Wien
Wann: Freitag, 21. Oktober 2016, ab 19 Uhr

 

Hier die Ankündigung des Meetups:

Dear Community,

we are proudly announcing our 14th. Knowledegfeed. For those of you joining us for the first time, a short description below.

During these sessions we are inviting specialists presenting their hands-on experience, current project or simply ideas regarding topics related to our field of interest (the reason for this rather wide description is based on the wide scope of data science itself… ;-)). Furthermore this gives you the opportunity to ask our lecturer of the evening questions, discuss your ideas and of course enjoy a beer in company of some interesting folks!

Title: Summary of the results for the famous „Summer Of Code“

Description: This will be a summary on the results for our beloved „Summer Of Code“. Just to remind you, OwnYourData is an innovative nonprofit association providing you with a secure online-environment and tools, to analyse your data on the spot. As a result of a fruitful collaboration with us we commenced the „Summer Of Code“ in July this year.  The aim was to support this great idea and OwnYourData with the development of their platform by working on pre-specified projects, or simply coming up with your own idea. Christoph will be presenting you with the glorious results of these projects, which are listed below:

  1. Security & Vulnerability Assessment of the OwnYourData platform realized by Mr. Max Riedl
  2. Python Tutorial (code available on Git-Hub) realized by Mr. Steven Malin
  3. Enhancement of the Banking-App realized by the gentlemen Roger Gomez and Christoph Fabianek himself

Duration: about 30-45min

Powered by: Christoph FABIANEK has earned his PhD at the Technical University of Vienna in Mathematics. After finishing his MBA in General Management at the Donau University Krems he moved to Frequentis and  works there currently as project manager in the field of public safety and air traffic management.