Startseite>Mit Teamviewer IoT eine Indoor-Farm überwachen
Aus Raspberry Pi Geek 06/2018

Mit Teamviewer IoT eine Indoor-Farm überwachen

© Alexander Raths, 123RF

Laubenpieper

Martin Mohr

Mit Teamviewer IoT passt der Remote-Desktop-Spezialist seine Software an die Anforderungen im Internet der Dinge an. Dabei bleibt der Raspberry Pi ein wichtiges Element.

Will man Gemüse und Blumen in einem Gewächshaus aufziehen, erfordert das die passenden Rahmenbedingungen. Ein Raspberry Pi mit Teamviewer IoT [1] hilft Ihnen dabei, alle Parameter zu überwachen. Das ganze System benötigt dabei eine stabile Basis.

Im Test kommt dazu ein aktuelles Raspbian Lite zum Einsatz, das den Vorteil hat, auf eine hier überflüssig aufwendige grafische Oberfläche von vornherein zu verzichten. Sie laden das Image von der Projekt-Homepage [2] und übertragen es mit einem Tool Ihrer Wahl auf eine SD-Karte [3].

Nun booten Sie den RasPi von dieser Karte und bringen als Erstes die Installation auf den neuesten Stand. Anschließend installieren Sie Mosqitto [4] als MQTT-Client. Zusätzlich installieren Sie eine Bibliothek, die Sie zum Betrieb von Teamviewer IoT benötigen. Im weiteren Verlauf des Projekts benötigen Sie außerdem die Bibliothek WiringPi [5]. Alle nötigen Befehle fasst Listing 1 zusammen.

Listing 1

 

$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install libavahi-client3 mosquitto-clients wiringpi

Teamviewer einrichten

Als zentrale Komponente von Teamviewer IoT fungiert ein Webinterface [6]. Um damit zu arbeiten, benötigen Sie zuerst ein entsprechendes Konto. Das erstellen Sie, indem Sie auf der Seite auf Konto erstellen klicken und den Anweisungen folgen (Abbildung 1). Falls Sie schon einen Teamviewer-Account haben, verwenden Sie ihn direkt.

Nach dem Registrieren sehen Sie die Startseite der Teamviewer-Applikation. Um nun einen Raspberry Pi als Gerät hinzuzufügen, klicken Sie auf add device (Abbildung 2). Die notwendigen Schritte zum Anbinden eines Geräts beschreibt die Applikation verständlich und detailliert.

Abbildung 1: Teamviewer IoT verfügt über ein eigenes Portal, über das Sie die angeschlossenen Geräte per Webbrowser verwalten.

Abbildung 1: Teamviewer IoT verfügt über ein eigenes Portal, über das Sie die angeschlossenen Geräte per Webbrowser verwalten.

Abbildung 2: Nach der Anmeldung im Portal haben Sie die Möglichkeit, neue Geräte hinzuzufügen, deren Daten Sie erfassen und auswerten möchten.

Abbildung 2: Nach der Anmeldung im Portal haben Sie die Möglichkeit, neue Geräte hinzuzufügen, deren Daten Sie erfassen und auswerten möchten.

Neuer Sensor

In der aktuellen Version von Teamviewer IoT sprechen Sie die komplette API über den MQTT-Client Mosqitto an. Dahinter verbirgt sich eine weit verbreitete Implementation des MQTT-Protokolls. Die API erlaubt nur verschlüsselte und autorisierte, über Zertifikate abgesicherte Verbindungen. Daher müssen Sie eine Zertifikatsanforderung erstellen, aus der die API die entsprechenden Daten für den verschlüsselten Datentransfer generiert. Die komplette Kommunikation mit der API erfolgt über MQTT.

Die API kennt die Komponenten Connector, Sensor und Metric. Abbildung 3 verdeutlicht, wie diese zusammenhängen. Sie sprechen dabei jede Komponente über eine ID in Form eines 16-Byte-Hex-Werts an. Aufgrund des hierarchisch aufgebauten Systems müssen Sie beim Zugriff auf eine Komponente auch die IDs aller übergeordneten Elemente angeben.

Abbildung 3: Die Kommunikation über die API von Teamviewer IoT setzt voraus, dass Sie die Komponenten Connector, Sensor und Metric verwenden.

Abbildung 3: Die Kommunikation über die API von Teamviewer IoT setzt voraus, dass Sie die Komponenten Connector, Sensor und Metric verwenden.

Darunter leidet schnell die Übersicht. Um den Überblick zu wahren und Schreibarbeit zu sparen, legen Sie am besten alle kryptischen oder langen Werte in Shell-Variablen ab. Diese können Sie später in den Kommandos verwenden. Achten Sie darauf, dass die folgenden Kommandos nur dann fehlerfrei funktionieren, wenn Sie alle Variablen akkurat gesetzt haben.

Im ersten Schritt erstellen Sie eine Zertifikatsanforderung (Listing 2, erste Zeile). Tragen Sie alle nötigen Werte für den Request ein; die Extra-Attribute dürfen Sie ignorieren. Um das Zertifikat über die API zu holen, benötigen Sie den SHA256-Hash des Requests (zweite Zeile). Zu guter Letzt speichern Sie den Hash in der Shell-Variablen hash (letzte Zeile).

Listing 2

 

$ openssl req -nodes -new -newkey rsa:2048 -sha256 -out csr.pem
$ sha256sum csr.pem
$ export hash=SHA256-Hash

Nun verwenden Sie ein zweites Terminal. Im ersten öffnen Sie einen MQTT-Subscriber, um das Zertifikat zu empfangen. Im zweiten Fenster setzen Sie die Anfrage für das Zertifikat ab. Achten Sie darauf, dass die Variable $hash in der Shell bekannt ist, die Sie gerade verwenden.

Speichern Sie dazu alle Export-Kommandos in eine Datei. So setzen Sie die Variablen immer auf den korrekten Wert. Die Datei heißt im Test tvenv.sh (siehe Kasten “Vererbt”). Den Ort für das Teamviewer-Zertifikat speichern Sie am besten ebenfalls in einer Shell-Variable (Listing 4, erste Zeile). Das gestaltet die folgenden Kommandos kürzer und leserlicher.

Vererbt

Variablen, die Sie zur Laufzeit setzen, gelten in einer Shell wie der Bash nur für den aktuellen Prozess. Möchten Sie (wie in diesem Beispiel) Werte in einem anderen Prozess nutzen, teilen Sie dieser Shell dies explizit mit. Dazu bietet es sich etwa an, eine Datei einzulesen. Um also die Variablen wieder aus der Datei in die Shell zu bekommen, nutzen Sie das Kommando source (Listing 3). Die vereinfachte Schreibweise lautet . tvenv.sh (Punkt, Leerzeichen, Dateiname).

Listing 3

 

$ echo $hash
$ source tvenv.sh
$ echo $hashSHA256-Hash
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland