24.062015

Homeautomation mit Android II

In meinem letzten Beitrag habe ich ein paar kleine Einblicke in die Automatisierung von Heim und Hof gegeben. Heute ändern wir ein paar wenige Dinge an den Aufrufen und erhöhen mit einem MD5-Hash und einem Server-Secret die Sicherheit enorm. Zudem zeige ich Euch, wie sich die Buttons für diverse Aktionen auf dem Handy schöner darstellen lassen.

Aufrufe vereinfachen

In meinem letzten Post habe ich euch gezeigt, wie ihr die Aufrufe an den Homeserver strukturiert werden können. Im Wesentlichen gab es drei Tasks in der Android-App "Tasker", die dazu verwendet wurden. Die ersten beiden Tasks lassen sich auch gut kombinieren, um weniger einzelne Tasks in der App zu haben. Damit setzt die erste Aufgabe nun die Werte für die Autorisierung an der Schnittstelle am Homeserver und führt die Abfrage direkt aus.

Feature für MD5-Hashes

Um den Wert einer Variable mit MD5 zu hashen, braucht man bei Tasker keine externe App. Man findet das Feature unter den Variable-Aktionen als "Variable Convert". Zwischen Aktionen wie "Byte to Kilobyte" versteckt sich hier auch die Aktion "To MD5 digest". Die Aktion verlangt den Namen einer Variable, deren Inhalt gehasht werden soll.

Aufrufe mit MD5 sichern

Mein Call-Task hat nun also insgesamt fünf Aktionen. Die ersten zwei Aktionen setzen die Werte, die zur Autorisierung nötig sind. In meinem Fall sind das mittlerweile die Variablen %KEY_NAME und %KEY_PASS. Schritt Nummer drei und vier dagegen sind neu:

Schritt 3 erstellt den Klartext-Key, Schritt 4 hasht diesen

Der dritte Schritt verkettet nun drei einzelne Zeichenketten zu einer langen (%API_AUTH) und schreibt den Inhalt in die Variable %API_AUTH. Darin sind der eigene %API_USER, die auszuführende Aktion %ACTION_KEY  und zusätzlich ein Geheimnis mit, das Server-Secret.

 Screenshot_2015-06-22-11-22-44

Schritt 4 hasht %API_AUTH

Die nächste Aktion ist nun das Hashen des zusammengesetzten Strings. Durch das Feature wird die Variable direkt umgewandelt, es wird kein weiterer Name benötigt.

Screenshot_2015-06-22-11-22-29

Schritt 5 sendet Request

Der letzte Schritt ist das Senden des Requests an den Homeserver, hier ändert sich nicht viel, lediglich der Hashwert wird als weiterer URL Parameter angefügt.

Damit haben wir nun folgendes erreicht:

  • Fragen wir an Server mit verschiedenen Server-Secrets an, ändert sich %API_AUTH.
  • Fragen wir am gleichen Server unterschiedliche Aktionen an, ändert sich der Wert ebenfalls.
  • Werden unsere URLs irgendwie gehijackt, können wir am Server das %SERVER_SECRET ändern, ohne User auszusperren.

Schön soll es sein

Zugegeben, die einzelnen Task-Verknüpfungen auf dem Home-Screen sind nun wirklich nicht schön. Es gibt jedoch ein paar weitere Möglichkeiten, diese schöner darzustellen. Andoird-Geräte unterstützen Verknüpfungen auf dem Homescreen, die in einzelne App-Funktionen verweisen. Beispiele sind die Direktwahl eines bestimmten Kontakts am Telefon oder das direkte Starten einer Playlist in Napster.

Ein Elixir für alles

Die Apps "Elixir" und "Elixir Widgets" sollten sich Android-Begeisterte ohnehin zu Gemüte führen. Die Widgets können von Geräteeinstellungen und -Stati über App-Starter bis hin zu den oben angesprochenen App-Verknüpfungen beinhalten. Die Widgets auf dem Dashboard gibt es in verschiedenen Größen, für meine Media-Fernbedienung nehme ich die Größe 4x1 (7 x 1 Symbole), also eine Zeile mit sieben Buttons.

Beim Erstellen des Widgets können dann die Verknüpfungen hinzugefügt werden, indem man einen der leeren Buttons antippt und eine Aktion auswählt. In meinem Fall habe ich natürlich nur Verknüpfungen angelegt.

Screenshot_2015-06-22-11-27-35Screenshot_2015-06-22-11-27-43 Screenshot_2015-06-22-11-27-51 Screenshot_2015-06-22-11-28-06