Threema Gateway unter Armbian einrichten

Debian kommuniziert über Threema

In diesem Beitrag soll es darum gehen, wie wir die Grundlagen dafür schaffen können, dass unsere (Debian) Linux Distribution mit Hilfe von Python und dem Threema Gateway eine Kommunikation zu unserem Smartphone Messenger herstellen kann.

Hintergrund des Ganzen ist die spätere Einbindung in openHAB. Grundsätzlich kann das Threema Gateway aber natürlich für beliebig viele weitere Einsatzzwecke genutzt werden, weshalb es in diesem Beitrag keinen konkreten Bezug zu openHAB geben wird.

Warum eigentlich Threema?

Die Entscheidung ist in etwa zu 70% auf Basis einer neutralen Gegenüberstellung der bekannten Messenger Dienste und zu etwa 30% nach persönlichen Vorlieben gefallen. Dazu wird es hier aber in Zukunft noch die konkrete Gegenüberstellung geben.

Schritt 0 – Vorbereitungen

Ich gehe davon aus, dass eine Version von Armbian auf einem Cubieboard installiert und initial konfiguriert wurde. So oder zumindest so ähnlich wie in diesem Beitrag beschrieben. Achtung: Solltet ihr euch gegen das Cubieboard und/oder gegen Armbian entschieden haben, müssen die aufeinander aufbauenden Punkte nicht unbedingt mit eurer Umgebung übereinstimmen. Die nun folgenden Schritte können dann zum Teil gleich, zum Teil leicht abweichend oder komplett anders sein!

Schritt 1 – Python Version systemweit setzen

Für den korrekten Einsatz des Threema Gateways wird von den Herstellern eine Python Version 3 oder höher empfohlen. Welche Python Version auf unserem System gerade standardmäßig konfiguriert ist, erfahren wir durch die Eingabe des Befehls:

python --version

Unter Armbian ist in diesem Fall Python 2.7.9 aktiv.Python Version 2.7.9

Das bedeutet allerdings nicht, dass nicht auch weitere Versionen parallel installiert sein können. Wie wir sehen können befinden sich unter dem Pfad /usr/bin weitere Python Versionen.Python all versions

Stören muss uns das nicht, allerdings ist es ratsam die Version 3.4 priorisiert zu verwenden, damit die spätere Installation des Threema Gateways auch sauber funktioniert. Dazu können wir mit Hilfe des Befehls:

update-alternatives --list python

prüfen ob und wenn ja welche „python alternatives“ eingerichtet sind. Im Falle der verwendeten Armbian Installation sind keine eingerichtet.Python no alternatives

Das ändern wir nun mit Hilfe folgender Befehle:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2

Dies führt dazu, dass nun sowohl Python 2.7.9 aber auch Python 3.4.2 verfügbar sind aber so lange keine manuelle Auswahl der Alternative statt findet, immer die Version mit der höchsten Priorität eingesetzt wird. In unserem Fall die Priorität 2 respektive Python 3.4.2.Update alternatives install

Wenn wir nun noch einmal die Python Version prüfen, sehen wir, dass die Version 3.4.2 gemeldet wird, wir aber jederzeit die Möglichkeit haben die Python Version über den Befehl:

update-alternatives --config python

wieder zu wechseln.Python version 3.4.2

Schritt 2 – PIP installieren

Um die aktuellste PIP Version zu installieren nutzen wir ein Python Skript mit der frisch eingerichteten Python Version. Dazu sind folgende Befehle nacheinander auszuführen:

cd /tmp/

wget https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py

Das Ergebnis sollte dann so aussehen:Get Pip Py

Schritt 3 – libsodium Build und Installation

Die Crypto-Bibliothek wird für die asynchrone Verschlüsselung von Threema benötigt und sollte installiert werden bevor man mit der Threema Gateway Installation beginnt. Dazu sind folgende Befehle nacheinander auszuführen:

cd /tmp/

wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz

tar xfvz LATEST.tar.gz

mv libsodium-1.0.11 libsodium

rm LATEST.tar.gz

cd /tmp/libsodium/

./configure

Der „configure“ Befehl dauert ein wenig länger und sollte nach erfolgreichem Durchlauf so beendet werden:libsodium configure

Nun geht er daran libsodium zu „builden“ und das erstellte Build zu überprüfen. Dazu geben wir folgenden Befehl ein:

make && make check

Die Dauer dieses Vorgangs variiert je nach eingesetzter Hardware. Auf einem Cubieboard mit SSD-Laufwerk dauert es ca. 19 Minuten. Ein Cubieboard mit SD-Karte benötigt dafür z.B. schon gute 22 Minuten. – Zeit für einen frischen Kaffe!

Wichtig ist, dass am Ende alle durchgeführten Tests auch unter „pass“ also bestanden aufgeführt sind, so wie in diesem Beispiel:libsodium make check

Wenn das der Fall ist können wir das Paket nun auf unserer Maschine installieren. Das machen wir mit Hilfe des Befehls:

sudo make install

Im Vergleich zum „make & check“ Vorgang dauert dies nur wenige Sekunden. Wenn auch dieser Vorgang erfolgreich war, können wir noch im Temp Ordner aufräumen und den libsodium Installationsordner wieder löschen. Das passiert mit Hilfe des Befehls:

rm -r /tmp/libsodium

Schritt 4 – Threema Gateway installieren

Hier geht es in Kürze weiter…

Einige Stichworte zu den noch folgenden Schritten:

cd /

sudo pip install git+https://github.com/lgrahl/threema-msgapi-sdk-python.git

cd /usr/local/bin/

sudo ./threema-gateway generate privateKey.txt publicKey.txt

./threema-gateway credits ‚<threema-id>‘ <secret>

Veröffentlicht von

Artur Pajonk

Consultant & Senior Software Engineer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.