PC über Netzwerk einschalten

Mit einem sehr kurzen Script kann man PCs per Wake-on-LAN einschalten

Resteverwertung

Ich habe ein Thinkpad X121e, das nach Kontakt mit dem Lenovo-Kundenservice nicht mehr für unterwegs taugt. Lange Geschichte, schreibe ich bestimmt irgendwann mal auf.

Der Punkt ist: Das Teil ist zu schade zum Wegwerfen. Der Prozessor und die Grafik sind schnell genug für HD-Videos, der Lüfter ist relativ leise, der Verbrauch ist niedrig. Darum ist das kleine Notebook jetzt mein „Media-PC“: Steht unter dem Fernseher und macht ihn „smart“.

Leider hat das gute Stück keinen von außen zugänglichen Power-Knopf. Wenn es also ordentlich zugeklappt im Regal steht, kann ich es nicht einschalten.

Aber zum Glück gibt es eine Lösung.

Strings in HomeMatic-Scripten

Durch String-Verwendung in HomeMatic-Scripten kann die CCU fehlerhaft arbeiten, instabil werden oder sogar abstürzen. Grundsätzlich gilt: Je öfter mit Strings hantiert wird, desto eher führt dies zu Problemen.

Ich empfehle daher, nach Umsetzung dieser Anleitung die CCU unter Beobachtung zu halten.

system.Exec();

Wenn system.Exec() verwendet wird, um aus HomeMatic-Scripten heraus Systemfunktionen auf der CCU zu starten, kann dies zu Fehlfunktionen der CCU führen, die einen Neustart erforderlich machen. Außerdem „hängt“ die CCU, solange externe Befehle ausgeführt werden.

Installieren Sie den CUx-Daemon, dessen Exec-Funktion für diese Probleme weniger anfällig ist.

Wake-on-LAN

Mit Wake-on-LAN können Geräte über das Netzwerk eingeschaltet werden. Es gibt einige Voraussetzungen:

Das Tool, mit dem Wake-on-LAN-Befehle gesendet werden können (sog. „Magic Packets“), heißt in Linux-Kreisen etherwake – und die CCU hat es freundlicherweise bereits an Bord. Es muss also nur noch per Script angesprochen werden.

! HomeMatic-Script
! PC üBER NETZWERK EINSCHALTEN
! http://www.christian-luetgens.de/homematic/programmierung/allgemein/etherwake/Etherwake.htm

string stdout;
string stderr;
system.Exec ('ether-wake 00:00:00:00:00:00', &stdout, &stderr);

!  Ende des Scripts

Das Script kann ganz normal in ein WebUI-Programm eingebaut werden – und schwupps kann man per (HomeMatic-)Fernbedienung den Rechner einschalten.

Aufruf über CUx-Daemon

Wer den CUx-Daemon installiert hat, kann natürlich gleich Nägel mit Köpfen machen und die CUxD-Systemfunktion verwenden.

! HomeMatic-Script
! PC üBER NETZWERK EINSCHALTEN
! http://www.christian-luetgens.de/homematic/programmierung/allgemein/etherwake/Etherwake.htm

dom.GetObject("CUxD.CUX2801001:4.CMD_EXEC").State ("ether-wake 00:00:00:00:00:00");

!  Ende des Scripts

Bei diesem Script wird auf das virtuelle Gerät des CUx-Daemons zugegriffen, um den Befehl umgehend zu starten, ohne auf irgendwelche Rückmeldungen zu warten oder diese auszuwerten. Ich verwende hier den vierten Kanal.

Und weil mein Script nichts anderes macht, als einen einzelnen String in einen einzelnen Datenpunkt zu schreiben, kann ich mir das Script auch komplett sparen und den Befehl direkt in der WebUI in den virtuellen Datenpunkt schreiben.

Mac-Adresse

Damit das Script funktioniert, muss die CCU natürlich wissen, welchen Rechner sie einschalten soll. Das funktioniert über die MAC-Adresse.

Eine MAC-Adresse ist eine eindeutige Identifikation, die einem Netzwerkanschluss zugewiesen ist. Wenn Ihr PC einen LAN-Anschluss hat, hat er eine MAC-Adresse. Wenn Ihr Notebook WLAN hat, dann hat es eine MAC-Adresse. Wenn ein Gerät LAN und WLAN hat, hat es sogar zwei MAC-Adressen.

Die MAC-Adresse findet man oft auf einem Aufkleber am Gerät.

Manchmal steht sie auch auf der Verpackung, machmal ist der Bedienungsanleitung ein Zettel beigefügt.

Auch im Router werden die Adressen der Netzwerkgeräte im LAN oft angezeigt. Vor allem in einfachen Installationen melden sich dort alle Geräte, um über DHCP eine IP-Adresse zu beziehen. Natürlich hat auch der Router eigene MAC-Adressen, aber die sind an dieser Stelle ja nicht ganz so spannend.

In der FritzBox steht die MAC-Adresse bei der „Geräteinformation“ des jeweiligen Gerätes in der Web-Oberfläche – sogar dann, wenn die IP-Adresse gar nicht von ihr selbst vergeben wurde.

Die Adresse besteht in jedem Fall aus 6 getrennten Buchstaben-Zahlen-Doppeln von 0-9 und a-f – so wie auf dem abgebildeten Aufkleber oben. Wenn Sie so eine Ziffern-Zahlenfolge sehen, haben Sie aller Wahrscheinlichkeit nach die MAC-Adresse des Gerätes gefunden.

Als Trennzeichen können verschiedene Zeichen in Frage kommen – Doppelpunkte, Bindestriche oder ähnliches.

01:23:45:ab:cd:ef

fe-dc-ba-98-76-54

etherwake braucht Doppelpunkte wie im Script angegeben. Die gefundene MAC-Adresse muss daher ggf. entsprechend angepasst werden.

Navigation