HConnect Gateway auf Raspberry Pi

Installationsanweisungen

Anleitung für die Installation des Gateways auf einem Raspberry Pi

Es ist keine Installation notwendig wenn Sie das CCU VPN-AddOn nutzen

Ubuntu Image herunterladen

Image entpacken

Die Ubuntu Images haben die Dateiendungen .xy und müssen noch entpackt werden. Um diese Dateien können Programme wie Winrar oder 7-zip genutzt werden. Nach dem entpacken stehen die Images mit der Dateiendung .img zur Installation auf der SD-Karte bereit.

Image auf SD-Karte schreiben

Um das entpackte Image auf die SD-Karte zu schreiben wird der Win32DiskImager benötigt. Laden Sie das Programm herunter und installieren Sie es.

Legen Sie dann die SD-Karte ein und starten Sie Win32DiskImager. In der Regel wählt das Programm schon den richtigen Laufwerksbuchstaben für die SD-Karte aus (Device), dieser Laufwerksbuchstabe sollte aber noch einmal kontrolliert werden. Wird das falsche Laufwerk ausgewählt, so sind später alle darauf enthaltenen Daten verloren!.

Mit dem Ordner-Symbol wird dann das entpackte Image ausgewählt und mit dem Button "Write" auf die SD-Karte geschrieben:

Win32DiskImager

Raspberry Pi anschliessen und starten

Die SD-Karte kann nun entnommen werden und in den Raspberry Pi gesteckt werden. Netzwerkkabel, Monitor und Tastatur werden ebenfalls angeschlossen. Nun kann der Netzteil angeschlossen werden und der Raspberry Pi startet. Warten Sie bis der Ladevorgang vollständig abgeschlossen ist.

Anmelden und Kennwörter ändern

Nach dem Start des Ubuntu Systems kann man sich mit dem Benutzer 'ubuntu' anmelden. Das Kennwort für diesen Benutzer lautet ebenfalls 'ubuntu'. Um das Kennwort zu ändern kann man den Befehl passwd verwenden. Um das root Password zu setzen benutzt man sudo passwd.

Die weitere Einrichtung erledigt man am besten wieder von einem Windows PC bequem per SSH. Dazu kann man entweder das Programm Putty oder auch XShell verwenden. Ich bevorzuge hier XShell, da dies eine Fülle von Funktionen und Bedienkomfort bietet die ich persönlich bei Putty vermisse. Um sich dort anzumelden muss man natürlich die IP-Adresse des Raspberry Pi kennen. Ein einfaches ipconfig auf dem Raspberry Pi reicht dazu aus um die notwendigen Informationen anzuzeigen.

Es ist keine Installation notwendig wenn Sie das CCU VPN-AddOn nutzen

Image herunterladen

Image entpacken

Das Image hat die Dateiendungen .zip und muss noch entpackt werden. Um diese Dateien zu entpacken können Programme wie Winrar oder 7-zip genutzt werden. Nach dem entpacken steht das Image mit der Dateiendung .img zur Installation auf der SD-Karte bereit.

Image auf SD-Karte schreiben

Um das entpackte Image auf die SD-Karte zu schreiben wird der Win32DiskImager benötigt. Laden Sie das Programm herunter und installieren Sie es.

Legen Sie dann die SD-Karte ein und starten Sie Win32DiskImager. In der Regel wählt das Programm schon den richtigen Laufwerksbuchstaben für die SD-Karte aus (Device), dieser Laufwerksbuchstabe sollte aber noch einmal kontrolliert werden. Wird das falsche Laufwerk ausgewählt, so sind später alle darauf enthaltenen Daten verloren!.

Mit dem Ordner-Symbol wird dann das entpackte Image ausgewählt und mit dem Button "Write" auf die SD-Karte geschrieben:

Win32DiskImager

Raspberry Pi anschliessen und starten

Die SD-Karte kann nun entnommen werden und in den Raspberry Pi gesteckt werden. Netzwerkkabel, Monitor und Tastatur werden ebenfalls angeschlossen. Nun kann der Netzteil angeschlossen werden und der Raspberry Pi startet. Warten Sie bis der Ladevorgang vollständig abgeschlossen ist.

Anmelden, Kennwörter ändern und SSH Zugriff einschalten

Nach dem Start des Raspbian Systems kann man sich mit dem Benutzer 'pi' anmelden. Das Kennwort für diesen Benutzer lautet 'raspberry' (Hier muss man mit der Tastatureinstellung aufpassen. Standardmäßig ist diese auf Englisch eingestellt, was bedeutet das man das y im Kennwort auf der Taste z wiederfindet). Um das Kennwort zu ändern kann man den Befehl passwd verwenden. Um das root Password zu setzen benutzt man sudo passwd.

Die weitere Einrichtung erledigt man am besten wieder von einem Windows PC bequem per SSH. Dazu kann man entweder das Programm Putty oder auch XShell verwenden. Ich bevorzuge hier XShell, da dies eine Fülle von Funktionen und Bedienkomfort bietet die ich persönlich bei Putty vermisse. Um sich dort anzumelden muss man natürlich die IP-Adresse des Raspberry Pi kennen. Ein einfaches ipconfig auf dem Raspberry Pi reicht dazu aus um die notwendigen Informationen anzuzeigen.

Vorher bitte den SSH Server auf dem Raspberry Pi starten:

sudo /etc/init.d/ssh start

Es ist keine Installation notwendig wenn Sie das CCU VPN-AddOn nutzen

HConnect Gateway installieren/aktualisieren

Für die Installation des Gateways inklusive aller Abhängigkeiten kann ein Installationsscript verwendet werden. Dies wird zunächst heruntergeladen und dann gestartet.

Um eine bestehende Installation mit einer neuen Version zu aktualisieren, werden die gleichen Schritte wie bei der Installation ausgeführt. Eine bestehende Konfiguration bleibt dabei erhalten und muss nicht erneut durchgeführt werden.


Für die Ubuntu Variante:

cd ~
sudo rm -f install-rpi-ubuntu.sh
wget https://hconnectweb.azurewebsites.net/scripts/install-rpi-ubuntu.sh
chmod a+x install-rpi-ubuntu.sh
./install-rpi-ubuntu.sh

Falls bei der Installation die folgenden Meldungen angezeigt werden...

Installing rcConf, LibUv, LibUnwind8 and LibCurl3...
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
rcConf, LibUv, LibUnwind8 and LibCurl3 installed
Press Enter to continue:

... dann sollte an dieser Stelle die Installation mit der Tastenkombination CTRL + C abgebrochen werden. Die Meldung ist ein Zeichen dafür, dass zur Zeit das System eine oder mehrere Installationen von Softwarepaketen durchführt welche erst einmal beendet werden müssen. In der Regel passiert dies wenn der Raspberry Pi gerade frisch installiert wurde und nun seine Softwarepakete aktualisiert. Diese Updates können bis zu 45 Minuten dauern. Also einfach warten. Ob die Installationen noch laufen kann mit dem folgenden Befehl geprüft werden:

ps aux | grep apt


Oder für die Raspbian Variante:

cd ~
sudo rm -f install-rpi-raspbian.sh
wget https://hconnectweb.azurewebsites.net/scripts/install-rpi-raspbian.sh
chmod a+x install-rpi-raspbian.sh
./install-rpi-raspbian.sh


Wie funktionier das Script und was tut es?

Das Script hält an einigen Stellen der Installation immer mal wieder an und fordert eine Eingabebestätigung an. Damit kann der Fortschritt der Installation kontrolliert werden. Die Installationsschritte sind im einzelnen:

  • Verzeichnis für das dotnet core apps anlegen (opt/dotnet-arm/apps/)
  • LibUv, rcConf, LibUnwind8 und LibCurl3 installieren
  • Verzeichnis für das HConnectGateway anlegen (opt/dotnet-arm/apps/HConnectGateway)
  • Bestehende Konfigurationsdateien in einen Backup-Ordner sichern (opt/dotnet-arm/apps/HConnectGateway/ConfigBackup)
  • HConnect Gateway Installation herunterladen (https://hconnectweb.azurewebsites.net/downloads/hconnect/ubuntu16-arm.tar.gz)
  • HConnect Gateway entpacken
  • Initscript für das Gateway herunterladen (https://hconnectweb.azurewebsites.net/scripts/initscript-rpi-ubuntu)
  • Initscript unter /etc/init.d/HConnectGatewayARM installieren
  • Den Service HConnectGatewayARM so einstellen, dass das Gateway beim Start des System automatisch gestartet wird

Achtung: Vor dem Start des Gateways bitte die Hinweise im nächsten Abschnitt 'Konfiguration' beachten!

Es ist keine Installation notwendig wenn Sie das CCU VPN-AddOn nutzen

Konfiguration

A) Nach einer Neuinstallation (Erste Installation, noch keine Konfiguration vorhanden)

Die einfachste Variante. Sie haben das Gateway das erste mal installiert und noch nie benutzt. Dementsprechend haben Sie auch noch keine Konfiguration durchgeführt. Die mitgelieferte minimale Konfiguration mit Standardwerten kann genutzt werden. Führen Sie die folgenden Schritte durch:

Hostnamen und Port auswählen und in die Konfigurationsdatei 'hosting.json' eintragen

cd /opt/dotnet-arm/apps/HConnectGateway
sudo nano -w hosting.start.json

Bearbeiten Sie die Datei und passen Sie Hostnamen und Port wie dort angegeben an. Mit Ctrl + x kann die Datei gespeichert werden. Danach wird die Datei kopiert und mit dem richtigen Namen versehen:

sudo cp -af hosting.start.json hosting.json

Minimale Gateway Konfigurationsdatei 'appsettings.json' anpassen

sudo nano -w appsettings.start.json

Bearbeiten Sie die Datei und passen Sie lediglich die folgenden Einträge an. Die angegebenen Konfigurationsoptionen stehen alle am Anfang der Datei und sind in der Datei selbst ausführlich dokumentiert. Alle anderen Einstellungen können später über die Webseite komfortabel geändert werden. Sie müssen diese Datei dann später nicht mehr verändern.

  • HConnectGatewaySecret
  • ConfigurationMode (auf ServerManaged stehen lassen)
  • HomematicHostname
  • ClientAddress
  • ServiceProviderAccount

Nun wird auch diese Datei kopiert und mit dem richtigen Namen versehen:

sudo cp -af appsettings.start.json appsettings.json

Weiter geht es im Abschnitt 'Starten'


B) Nach einem Update (x. Installation, bereits konfiguriert)

Hier ist nichts weiter zu erledigen. Das Gateway kann einfach wieder gestartet werden. Konfigurationsdateien bleiben bei einem Update stets erhalten.

Es ist keine Installation notwendig wenn Sie das CCU VPN-AddOn nutzen

HConnect Gateway starten

sudo service HConnectGatewayARM start

HConnect Gateway stoppen

sudo service HConnectGatewayARM stop

Logfile anzeigen lassen

tail -f /opt/dotnet-arm/apps/HConnectGateway/HConnectGateway.log

Gateway in der Konsole manuell starten und stoppen

Alternativ kann man das Gateway auch direkt in der Konsole laufen lassen. Dies ist insbesondere nach der Ersten Installation sinnvoll, da dann auch das Logfile direkt abgespult wird. Dazu einfach in das Installationsverzeichnis des Gateways gehen und mit dem Befehl ./HConnectGateway starten. Beendet wird das Gateway dann wieder mit Ctrl + C

cd /opt/dotnet-arm/apps/HConnectGateway
sudo ./HConnectGateway