diyiot

IoT is of some interest to me. I don’t like how this term Internet of Things gets used by marketing guys.
If those networks of things are only connected but not integrated into the internet then it’s no ‘internet’.
I few years ago I stumbled upon a very lightweight and simple protocol that fascinated me. It’s called MQTT.

my vision

My idea of an Internet of Things takes most the devices’ logic and places it somewhere else. A simple mqtt light switch can’t do much more than turn the light on, off or blindly toggle the state. To get some feedback my simple light switch publishes the new state of the light on an additional topic.
On what conditions the light gets turned on is of no interest to the light whether it be a light sensor, people clapping their hands, a motion sensor triggered by somebody walking by or a click of a button on a website.
The same goes for the temperature sensor which in my little mqtt network doesn’t turn on the heater by himself. That’s the work of some service run elsewhere which is subscribing to the temperature sensor and telling the heater to turn on only when it’s supposed to. I might go holiday and I don’t want to reconfigure all my things hidden all over the place just to turn some thermostat off or adjust the temperature. If the devices are as dumb as possible the network itself is most flexible.

my implementation

In my small Internet of Things, there are even two different network which work together but don’t have to. One broker is running on a raspberry pi in my camper the other is at home running in an virtual machine hidden away in the basement. The two are bridging with each other if they can see each other on the network. Sending all messages the other one hasn’t to each other. If the camper isn’t home the access point can’t join the home network the mqtt network in the camper works on its own. There are things (Arduino Ethernets with sensors and actors) which can be controlled automatically or by hand with a push of a button on a website. The things are in blue. The two brokers are shown in green. In yellow are the services. One is a very simple python thermostat just for the sake of illustration and the other ones are a mqtt connected websites with fancy buttons. All of those things and services are communicating via mqtt topics. Try clicking on the diagram bellow.

It isn’t the most consumer friendly concept of an IoT mostly because you have to draft the language, in which devices and services talk to each other, yourself.
But isn’t that the case for most of the open and nonproprietary networks of things which have to work together.

Following is one small example my API/language I created simple enough not only things but humans can understand and control manually.

vw/temp/1 -1.30
vw/heater toggle
vw/heater/state on
vw/temp/1 -1.20
vw/temp/1 -1.10

vw/temp/1 14.90
vw/temp/1 15.00
vw/heater off
vw/heater/state off

Here is all my mqtt related code, running somewhere, hosted.

Mail-On-Tape

In der Reihe Kuriositäten, die die Welt nicht (unbedingt) braucht, habe ich letztens einen Freund mit einem Rätsel versorgt.
Daten auf einem alten «Kassettchen» abzuspeichern, stand schon lange auf meiner ToDoList.
Mit Commodore, vor meiner Zeit, war es bereits mal üblich, Daten auf normalen Audio-Kassetten abzuspeichern.
Da ich aber meinen alten Taperecorder nicht aufschrauben wollte, um direkt an den Schreibköpfen herumzubasteln,
entschied ich mich für einen Weg, die Daten mit einem Protokoll aus dem Amateurfunk mit Tönen auf die Kassette zu schreiben.

Dieses habe ich als Challenge mit nur wenigen Hints in ein altes Stimmcouvert gepackt und ihm per Post zugeschickt.
Anfangs wollte ich es richtig schwierig machen und die paar Zeilen Text in tar und par2 kapseln, zwecks error correction.
Aber weil die Datenmengen schlussendlich zu gross wurden und die Länge des Kassettenbandes gesprengt hätten, habe ich es es beim rohen Text in 8 Minuten Gepiepse belassen. Auch Bit-Fehler entstanden mit 30 Baud keine. Einzig auf die GPG-Signatur konnte ich nicht verzichten, da das Tape in unserer Zeit der totalen Überwachung auf dem Postweg abgefangen und verändert werden könnte. =P
Den Rest des Tapes habe ich mit dem Ton von Snowden-Dokus und Musik überspielt um das Finden der Daten zu erschweren.

Zum das Ganze aufs Tape zu spielen, waren nur folgende Befehle nötig,
und die Verbindung des Computers per Kopfhörerausgang zu aux meiner Stereoanlage.
gpg --clearsign MailOnTape.txt > SignedMailOnTape.txt
cat SignedMailOnTape.txt | minimodem --tx 30

Der Empfänger brauchte keine Kabel, sondern nur ein Mikrofon am Computer.
minimodem --rx 30

Bis jetzt habe ich noch keine Reaktion auf mein Mail-On-Tape …

informatiker

«Ich werde Informatiker.», diese Aussage musste ich in meinem letzten Oberstufenjahr auf einem Plakat zum Ausdruck bringen. Gestern ist die gedruckte Version wieder in die Hände gefallen. Damals war ich der einzige, der nicht mit farbigem Papier, Schere und Leim hantierte. Ich dachte mir, Kindergärtner werde ich wohl nicht, und benutzte meinen Mac dazu. Dies ermöglicht mir es, vier Jahre später ein PDF davon online zu stellen. =D

photo informatiker plakat

was-ist-denn-das

… hier sieht nichts mehr aus wie vorher.

Um das hässliche, alte WordPress Standard theme loszuwerden, habe ich mich gestern an die Arbeit gemacht, das angefangene theme daily fertig zu schreiben. Ich habe es so weit fertiggestellt, dass es benutzbar ist. Dementsprechend sind ein paar basic styles und die grobe Idee hinter dem Design drin. Natürlich ist es noch nicht vollendet. Es fehlen noch Dinge wie das automatische Anpassen der Hintergrundfarbe passend zum lokalen Sonnenunter- und -aufgang des Betrachters. Aber es ist schon jetzt ein würdiger Ersatz für das alte theme.

Wie immer gibts den Code im Netz, github:daily. Solltet ihr also an chronischem Zeitüberfluss leiden, könnt ihr ihn anschauen, kommentieren, selbst verwenden oder verbessern (fork me).

Ach ja, curl blog.5th.ch/humans.txt ;)

kickoff-blauerHimmel

GPS fasziniert mich irgendwie. Darum findet ihr auch schon einen anderen Post zu dem Thema. Nun geht es aber ums Selbermachen.
Als ich auf die Idee kam, einen kleinen GPS Tracker selbst zu bauen, dauerte es nicht lange, und der dazu benötigte und bestellte GPS Receiver traf bei mir ein. Natürlich liess ich keine Minute verstreichen um ihn auszuprobieren. Und nach kürzester Zeit erreichten die ersten Daten aus der Erdumlaufbahn meinen Mac via Arduino.


$GPGGA,212102,,N,,E,0,00,,,M,,M,,6F
$GPRMC,212102,V,,N,,E,,,250112,,,N
5F
$GPGGA,212103,,N,,E,0,00,,,M,,M,,6E
$GPRMC,212103,V,,N,,E,,,250112,,,N
5E
...

Die oben stehenden Hieroglyphen sind die rohen Daten des Receivers. Die einzelnen Zeilen werden NEMA sentence oder auch NMEA string genannt und transportieren die Daten. NMEA ist eine standardisierte Sprache, in der sich ein GPS Gerät ausdrückt. Ihre Anfänge hatte dieser Standard in der Schifffahrt, die aus diesen sentences alle Daten wie Längen- und Breitengrade, Geschwindigkeit, Zeit usw. liest. Der detaillierte Aufbau eines solchen Datensatzes findet man im web.

Bei näherer Betrachtung meines ersten übermittelten $GPRMC string musste ich ernüchtert feststellen, dass an der Position, an der ein A stehen sollte, ein V, nämlich eine Fehlermeldung, erschien. Ein A zeigt an, dass die Daten verlässlich und in Ordnung sind.


$GPGGA,212225,4707.4282,N,00853.7112,E,1,05,02.2,00714.0,M,048.0,M,,4E
$GPRMC,212225,A,4707.4282,N,00853.7112,E,000.0,000.0,250112,,,A
72
$GPGGA,212226,4707.4283,N,00853.7112,E,1,05,02.2,00714.0,M,048.0,M,,4C
$GPRMC,212226,A,4707.4283,N,00853.7112,E,000.0,000.0,250112,,,A
70
...

Den nächsten Versuch unternahm ich outdoor. Unter den leicht irritierten Blicken meiner Nachbarn stand ich mit MacBook in eisiger Kälte im Garten. Nach einer Minute Wartezeit wurde aus dem V wirklich ein A. Und tatsächlich erschienen die genauen Daten meiner Position in dem string. Als nächstes stand nun an, die rohen Daten in eine neue Form zu bringen, in der die relevanten Informationen herausgelesen sind.
Hierbei konnte ich glücklicherweise auf die tatkräftige Hilfe meines guten Freundes @stektograph zählen. Er schloss vor kurzem seine Elektronikerlehre ab und brachte das Wissen mit, dass ich benötigte. Ab jetzt war mein Projekt das unsere. Gemeinsam brachten wir dem Arduino bei, den einzelnen NMEA string zu erkennen. In dieser Form werden die gelieferten Informationen für ihn greifbarer.

Die nächsten Schritte betreffen das Abspeichern und Übermitteln an einen Webserver. Wir planen, die Daten auf einer SD-Karte zwischenzulagern und sie dann in einem festgelegten Intervall via mobiles Internet an einen Server zu übertragen. Das dazu benötigte Modul, welches beispielsweise mit der Swisscom kommuniziert, ist bestellt und hoffentlich bereits unterwegs.

Vielleicht entsteht ja auch noch eine Webseite, die die einzelnen Positionsangaben auf Google Maps zu einem Pfad verbindet. Zu welchem Zweck will ich noch nicht verraten.

Übrigens, blauerHimmel entstand aus der Erkenntnis, dass GPS indoor gar nicht funktioniert. Und demzufolge die Nerds wohl oder übel unter blauem Himmel tüfteln müssen. Den Code findet ihr bei jedem Wetter: github:blauerHimmel

apple-inc-der-vortrag

 

Was man nach ein wenig Frühjahrsputz und Entrümpeln nicht alles findet! Ich bin auf die gedruckte Version meines Apple Vortrages aus dem Jahre 2008 gestossen und habe mir gedacht der passt wunderbar hier hin. Entstanden ist das Booklet im Rahmen eines freiwählbaren Vortrages aus meiner Sek-Zeit.

Apple Schweiz honorierte meine Mühen übrigens mit einem iTunes Gutschein!

download (PDF, 6.3MB)

wordpress-theme-daily

Hi there,

wie man sicher verstehen kann, gefällt mir dieser Blog in seiner Erscheinung noch nicht ganz so gut. Das Theme, das ich im Moment verwende, ist das standardmässig mitgelieferte Twenty Ten 1.3 Theme, entwickelt von den WordPress Developern.

Schon lange hatte ich vor, mir ein eigenes Theme zu schreiben und es auch einzusetzen. Das Konzept der neuen Erscheinung von blog.5th.ch ist meiner Meinung nach ziemlich experimentel. Der Blog soll zeitzonen- und tageslichtabhängig seine Farbe verändern. Also ganz im Sinne des Lesers, der in der Nacht einen schwarzen und tagsüber einen weissen Blog vorfindet. Jedoch stellt es sich als ziemlich schwierig heraus, die genau Länge und die Dämmerung eines Tages korrekt zu berechnen. Erste Schritte findet ihr auf github:daily.

Im gleichen Zuge möchte ich die lästigen Kategorien völlig aus dem Theme verbannen und mehr auf Tags setzen. Der Permalink zu den einzelnen Posts soll zusätzlich den Titel des Posts ersetzen. Wozu brauche ich einen Titel, wenn der Link zum Post für sich spricht?

Erste Designversuche in derselben Richtung von meinem WordPress Theme daily findet ihr auf der root Seite 5th.ch/.


Update: wie ihr seht ist es mittlerweile online..

wie-bist-du-hier-gelandet

Kann es sein dass du gerade am Pissoir stehst und meinen Blog liest?

In letzter Zeit ist mir aufgefallen, wie sich etwas ganz langsam in unsere Printmedien schleicht. Es handelt sich dabei um eine Art visuelles Speichermedium, in dem sich URLs, Handynummern, Geo-Informationen und vieles mehr speichern lassen. Diese Informationen lassen sich anschliessend mittels Smartphone und integrierter Kamera wieder entschlüsseln. Ein passendes App, unter tausenden, findet ihr hier: Android und iOS

Auf dem oberen Bild sieht man, ein Pissoir und den besagte QR-Code. In dieser Datenwolke, über dem Pissoir, steht ein Link zu diesem Blog. Jetzt ist das stille Örtchen ein wunderbarer Ort um meinen Blog zu lesen, dachte ich mir. Aber der Code ist noch an sehr vielen Orten versteckt.

Wo hast du den Code gefunden? Wie bist du hier gelandet?

gps-and-how-it-works

GPS ist ein System zur Positionierung, das aus dem modernen Alltag nicht mehr wegzudenken ist. Millionen von Geräten nutzen diese Technik bereits und es werden nicht weniger. Es gibt praktisch kein Smartphone mehr, in welches kein GPS Empfänger eingebaut wird. Auch die ganzen privaten Navigationsgeräte, die Linienbusse, die Züge der SBB, die Luft- und Schifffahrt alles verlässt sich aufs GPS. Sogar Grenzen werden mit Hilfe des Systems gezogen. Doch wer weiss, wie es genau funktioniert oder wer es kontrolliert?

Um euch die Funktionsweise des GPS (Global Positioning System) ein wenig näher zu bringen, folgt hier eine knappe Erklärung. Momentan befinden 32 Satelliten in der Erdumlaufbahn. Sie umkreisen die Erde in einer Höhe von durchschnittlich etwa 20200 km. In 12 Stunden ist der einzelne Satellit einmal um die Erde gekreist, das ist eine Geschwindigkeit von 3.9 km/s. Die Anzahl der Satelliten berechnet sich daraus, dass immer und überall auf der Erde mindestens vier sichtbar sind inkl. ein paar, die für den Ersatz vorgesehen sind. Hier könnt Ihr ein paar der GPS-Statelliten, die übrigens alle NAVSTAR heissen, in Echtzeit verfolgen.

An Bord befindet sich eine Atomuhr, die für die exakte Zeit zuständig ist. Zusätzlich weiss der Satellit genau, wo er sich befindet. Diese Daten sendet er an die Erde. Das passive Empfängergerät, z.B. ein Smartphone, liest dieses Signal und errechnet mit der Sendezeit der Nachricht, wie lange das Signal unterwegs war und dementsprechend den genauen Abstand zum Satelliten. Jetzt entsteht auf der Erdoberfläche ein virtueller Kreis von möglichen Punkten, die alle die gleiche Entfernung zum Sender-Satelliten haben. Mit zwei weiteren Signalen von zwei weiteren Satelliten kann nun der einzig mögliche Schnittpunkt errechnet werden. Der vierte Satellit dient der Korrektur von Uhrenfehler und Ungenauigkeiten.
gps trilaration
Doch wer steht hinter GPS? Wer kontrolliert das meist verwendete Navigationssystem? Es ist die US-Airforce. Sie könnten frei nach Lust und Laune Teile oder die ganze Welt ins Chaos stürzen, indem Sie das Signal verfälschen oder gänzlich verweigern. Die US-Airforce hat somit ein Instrument in der Hand, auf welches sich die ganze Welt verlässt.

Aus diesem und anderen Gründen lancierte die ESA (European Space Agency) dieses Jahr ihr eigenes Positionierungssystem. Es nennt sich Galileo und wird im Gegensatz zu GPS nicht von militärischen Organisationen kontrolliert. Zwei Galileo-Statelliten umkreisen die Erde bereits.

Wer gerne tiefer in die GPS-Thematik eintauchen will findet unter kowamo.de/gps alles, was er wissen will.

outlook-weiterleitung-erzwingen

Kennt ihr die Problematik von aufgezwungenen Mailaccounts? Viele Schulen und sonstige Organisationen zwingen ihre Schüler und Mitarbeiter, diesen Account zu benutzen und ermöglichen auf der anderen Seite keinerlei Weiterleitung oder Remoteaccess via POP oder IMAP. Doch den fiesen Sysadmins geht meist eine Weiterleitungsmethode durch die Lappen.
Wenn eine Organisation, in meinem Fall ist es die Berufsschule, einen Microsoft Exchange Server einsetzt gibt einen schicken kleinen Umweg, den Sysadmins ein Schnippchen zu schlagen und die Mails trotzdem weiterzuleiten. Der Exchange Server ermöglich es, via Outlook Regeln zu definieren, welche auf dem Server selbst ausgeführt werden. Outlook muss demnach beim Ausführen der Regel nicht geöffnet sein. Jetzt muss die Regel, die als Aktion die Mails an eine eigene Adresse weiterleitet, nur noch auf alle Mails zutreffen. Dies ist sehr elegant gelöst, wenn die Regel auf alle Nachrichten greift, die nach einem bestimmten Datum ankommen.

outlook weiterleitung erzwingen via Server Regel