IPRemoteSwitch

IPRemoteSwitch ist eine Anwendung die ein entferntes Ein- und Ausschalten eines PCs in einem lokalen Netz möglich macht. Dazu wird ein Teil der Anwendung auf einem Android Smartphone installiert und konfiguriert. Ein anderer Teil läuft z.B. auf einem Raspberry Pi (RPi) innerhalb des lokalen Netzes. Dieser Teil schaltet dann den PC über die ATX Schnittstelle an der Stromversorgung an bzw. aus. Die Nutzung eines Relais ist für diese Aufgabe wahrscheinlich nötig.

IPRemoteSwitch
IPRemoteSwitch

Die App kann eine Verbindung mit dem RPi aufbauen und den Ein-/Ausschaltbefehl absetzen. Dabei wird mittels Pings die Erreichbarkeit des PCs geprüft: ist der PC erreichbar, so ist er an; ist der PC nicht erreichbar, so ist er nicht an.

Die Anwendung ist auf die Bitte eines Bekannten entstanden, der als IT-Admin einer Supermarktkette von jeder Filiale auf seinen Rechner im Büro über TeamViewer zugreifen wollte, ohne dass der PC dort die ganze Zeit eingeschaltet blieb.

Installation

Damit die App den RPi erreicht, müssen 2 Dinge eingerichtet werden:

  1. Der Router muss aus dem Internet erreichbar sein. Um nicht mit einer IP-Adresse hantieren zu müssen, kann dafür ein DynDNS-Dienst genutzt werden. Wie man so etwas macht, kann hier nachgelesen werden: Duck DNS als DynDNS Alternative.
  2. Im Router muss eine Portweiterleitung installiert werden, in der der interne SSH-Port 22 einen entsprechenden Port im WAN bekommt. Die Weiterleitung muss die IP des RPi enthalten.

Es ist sinnvoll, den RPi mit einer festen IP im lokalen Netz außerhalb des DHCP-Bereichs zu konfigurieren. Bei den meisten Routern ist die Portweiterleitung nur so möglich.

Der RPi sollte ein starkes SSH-Passwort bekommen, da er nun aus dem WAN erreichbar ist. Alternativ errichtet man eine DMZ (DeMilitarisierte Zone) mit einer Kaskade aus zwei Routern, so das der Netzwerkzugriff nur auf den RPi erfolgen kann.

Die App kann unter dem folgenden Link heruntergeladen und direkt auf einem Endgerät mit mind. Android 4.4 installiert werden.

Download: IPRemoteSwitch v1.0

Der Quellcode ist auf dem Git Server von binomiant hier verfügbar:

https://www.binomiant.duckdns.org/9wAuyR5S/?p=IPRemoteSwitch.git

Bedienung

Öffnet man die App nach der Installation auf dem Smartphone, erscheint die Connection Seite. Hier wird, nach der Konfiguration der App, die Verbindung mit dem „entfernten Schalter“ (RPi) auf oder abgebaut. Im Augenblick ist die App nicht verbunden (Disconnected).

Connection Seite
Connection Seite

Über die drei senkrechten Punkte am rechten, oberen Rand der App erreicht man die Konfiguration:

Konfigurationsseite
Konfigurationsseite

Wie die Einstellung vorzunehmen ist, zeigt folgende Tabelle:

NameBeschreibung
Gateway WAN AddressIP-Adresse des Routers, der aus dem Internet sichtbar ist. Nutzt man einen DynDNS-Dienst, dann den entsprechenden Domain-Namen, z.B. example.com
Gateway WAN PortPort des Router, über den die Weiterleitung an den SSH-Port des RPi läuft. Der Standard ist 22, im Beispiel wird 50022 verwendet.
Remote PC LAN AddressIP-Adresse des ein- bzw. auszuschaltenden PCs. Hier kann auch eine lokale DNS-Adresse stehen, z.B. mymachine.local.
IP Switch user nameBenutzername der SSH-Verbindung. Dies entspricht dem eingerichteten Benutzer auf dem RPi, im Standard pi.
IP Switch passwordPasswort des Benutzernamens für die SSH-Verbindung.

Sind die Einstellungen korrekt kann auf der Seite Connection die Verbindung aufgebaut werden:

Verbindungsaufbau
Verbindungsaufbau

Funktioniert das, kann man entweder auf den nächsten Reiter gehen oder man kickt auf >. Die nächste Seite heißt Switch. Dort kann man mit dem Knopf ON/OFF den lokalen PC ein- bzw. ausschalten.

Switch Seite
Switch Seite

Betritt man die Seite das erste Mal nach dem App-Start, wir automatisch ein Refresh ausgeführt. Der kann auch manuell ausgeführt werden, wenn der Knopf mit den beiden runden Pfeilen gedrückt wird.

Auf den Seiten Connection bzw. Switch ist jeweils der Status der Verbindung bzw. des PCs im lokalen Netz zu beschrieben. Die Knöpfe sind erst dann aktiv, wenn die entsprechende Aktionen möglich sind. So ist im Bild oben noch keine Aktion auf dem PC möglich, da die Verbindung zum „entfernten Schalter“ noch nicht aufgebaut ist.

Gibt es ein Problem, z.B. beim Aufbau der Verbindung, dann kann man sich im Reiter Log Details der Aktionen ansehen und es kann evtl. die Ursache ermittelt werden:

Log Seite
Log Seite

Im Beispiel ist zu sehen, dass der Verbindungsaufbau zu example.com auf Port 22 nicht erfolgreich war. Taucht diese Meldung in der eigenen App auf, dann gibt es drei Ursachen:

  1. Die Standardeinstellung der App ist noch nicht geändert worden.
  2. Stimmt die Domain, so ist der Port am Router nicht offen. Die Portweiterleitung ist vielleicht nicht eingerichtet.
  3. Ist die Portweiterleitung aktiv, ist der Switch (RPi) entweder nicht eingeschaltet oder Portweiterleitung erreicht ihn nicht.
© 2025 binomiant