Homebridge: Computer Starten / Herunterfahren / Ruhezustand

Letztens beim durchstöbern der HomeBridge Plugins bin ich über die Erweiterung Homebridge-WoL gestoßen. Mit dieser ist es möglich, Windows-Computer, Laptops, MacBooks oder andere Geräte, die WoL unterstützen, mit der Home App deines iOS Devices zu starten. Außerdem kannst du den Status (an- oder ausgeschaltet) überwachen und das Gerät über eigene Kommandos herunterfahren. Ziemlich coole sache, oder?

Okay, kein weltveränderndes Plugin. Aber gerade die Funktion zum herunterfahren finde ich doch sehr cool. Einfach von unterwegs mal kurz checken, ob der Windows 10 Rechner noch läuft und bei Bedarf mit einem einfachen Tippen auf der Apple Watch herunterfahren. Schon ziemlich praktisch 😉

Computer über HomeBridge WOL starten oder runterfahren

Vorbereitungen

Ganz allgemein brauchst du natürlich eine HomeBridge. Diese muss bzw. sollte in diesem Fall, auf einem Raspberry Pi laufen. Warum? Du musst das Samba Common Paket nachinstallieren, auf Containern (Docker) ist das nicht ohne weiteres möglich. Außerdem sollte dein Raspberry über LAN-Kabel und nicht über WLAN verbunden sein, da die Wake on Lan Pakete so zuverlässiger übermittelt werden.

Raspberry Pi

Auf deinem Raspberry brauchst du abgesehen von der Hombridge nur das oben angesprochenen Paket. Dieses liefert Funktionalitäten der Windows-RPC Schnittstelle, mit der wir die Kiste später runterfahren können.

sudo apt-get install samba-common
Code-Sprache: JavaScript (javascript)

Falls die Performance deines Raspberry inzwischen unter den unzähligen Plugins leiden sollte, kannst du übrigens versuchen den Kartenleser zu übertakten 🔥.

Windows PC mit Homebridge starten

Hinweis: Wenn du nur deinen Fernsehr und nicht deinen Computer starten bzw. steuern willst, gibt es dafür i.d.R. besser Plugins direkt für den jeweiligen Hersteller, wie z.B. auch für meinen LG Fernseher 😉

Auf dem Windows PC gibt es einiges mehr zu tun. Hier musst du, um deinen Computer starten zu können, erstmal sicherstellen:

Wake on Lan ist ein kleines Netzwerkpaket, das von deinem Raspberry Pi zu deinem Computer geschickt wird und der Netzwerkkarte befiehlt, den Computer einzuschalten.

Folgendes muss du in Windows 10 bei deiner Netzwerkkarte konfigurieren, um WoL zu aktivieren:

  • Öffne deinen Gerätemanager
  • Suche deinen Netzwerkkarte
  • Doppelklick auf deinen Netzwerkadapter
  • Reiter “Erweitert” öffnen
  • Folgende eigenschaften auf “Enabled” stellen:
    • Wake on Pattern Match
    • Wake on Magic Packet
    • SWOI
  • Danach oben im Reiter “Energieverwaltung”, alle 3 Haken setzten.
Netzwerkkarte WoL aktivieren Windows 10

Windows PC über Homebridge herunterfahren

Okay, soweit so gut. Nun gehts an die vorbereitungen zum runterfahren, angefangen bei der Firewall.

Firewall Konfiguration

Prüfe zuerst mal den Status (an oder aus) indem du im Startmenü nach “Firewallstatus überprüfen” suchst.

Aus dem Blog
iOS Kurzbefehle automatisch ausführen über Pushcut
Windows 10 Firewall Status aktiviert
Aktivierte Windows Firewall

Wenn diese bei dir deaktiviert ist, überspringe diesen Schritt. Falls nicht (so wie oben zu sehen) musst du eine neue Regel erstellen. Diese Regel wird benötigt, da Windows im Standard keine Ping und RPC-Anfragen an deinen Computer “durchlässt”. Für unseren Anwendungsfall müssen wir das aber, zumindest von der Hombridge aus, erlauben.

Ich empfehle dir, einfach eingehenden Netzwerkverkehr von deiner Homebridge generell zu vertrauen. (Wenn du weißt was du tust, kannst du alternativ nur die benötigten Protokolle aktivieren)

Öffne zuerst mal mit einem Klick auf “Erweiterte Einstellungen” die Firewallregeln.

Windows 10 Firwall einstellungen öffnen

Nun mache einen Rechtsklick auf “Eingehende Regeln” und dann Linksklick auf “Neue Regel…”

Neue Firewall Regel in Windows 10 anlegen

Wähle in dem Assistent für neue eingehende Regeln nun folgende Einstellungen:

  • Regeltyp: Benutzerdefiniert
  • Programm: Alle Programme
  • Protokolle und Ports: Alle
  • Bereich:
    • lokale IP-Adressen = Beliebige IP-Adresse
    • Remote Adressen = Diese IP-Adressen -> Hinzufügen -> IP-Adresse deiner Homebirdge (des Raspberry Pi)
  • Aktion: Verbindung zulassen
  • Profil: Alle 3 Haken rein oder den Netzwerktyp deines Heimnetzwerks auswählen
  • Name: Von Homebridge alles erlauben
Reg-Key LocalAccountTokenFilterPolicy

Okay, fast geschafft. Nun müssen wir nur noch einen Registry Key anlegen, damit wir uns auch per RPC Anmelden können.

Öffne den Windows-Registrierungs-Editor indem du im Startmenü nach “Regedit” suchst und erstelle unter Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System einen neuen DWORD-Wert (32 Bit) mit dem Namen LocalAccountTokenFilterPolicy und dem Wert 1.

Registry enable Local Token Filter Policy for Shutdown

Homebridge Plugin installieren

Die Vorbereitungen sind abgeschlossen, nun zum spaßigen Teil. Installiere auf deiner Homebridge das Plugin homebridge-wol und schon kannst mit der Konfiguration losgehen:

npm install -g homebridge-wol
homebridge-wol Plugin für Homekit

config.json zum herunterfahren und starten des Computers

Okay, nun gehts weiter mit dem Konfigurieren deiner Geräte. Das ganze kann man auch gut auf der GitHub-Seite des Plugins nachlesen, aber hier ist ein Ausschnitt meiner accessories der config.json für das Wake on Lan Plugin:

Die Mac- und IP-Adresse, sowie die Platzhalter BENUTZERNAME und KENNWORT musst du natürlich noch austauschen, aber ansonsten sollte das Snippet bei dir funktionieren und schon kannst du deinen Computer mit Siri oder der Home App herunterfahren 😉

Computer über Homebridge in Ruhezustand versetzen

Dem Computer in den Ruhezustand zu versetzen, indem man lediglich ein Siri Kommando sagt, ist ein traum. Aber leider ist dieser Traum auch nicht ohne weiteres zu realisieren, hat mich echt einiges an zeit und nerven gekostet… Aber für euch tu ich doch alles 😉Fangen wir einfach mal an:

SSH Server auf Windows 10 installieren

Damit das ganze bei dir funktioniert brauchst du ein aktuelles, aktuelles Windows 10 (mind. 1809). Wenn alle Updates bei dir installiert sind, kann es auch schon losgehen

Aus dem Blog
Alexa und Homematic via HConnect verbinden
Windows PowerShell als Administrator starten
Zuerst musst du die Windows PowerShell als Administrator starten.

Nun solltest du folgende Kommandos der Reihe nach ausführen:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Code-Sprache: JavaScript (javascript)

Hier sollten nun 2 Einträge ausgegeben werden. OpenSSH.Client als Installed und OpenSSH.Server als NotPresent.

Das bedeutet, bei dir ist der SSH Server nicht installiert. Genau das holen wir jetzt nach.

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0..1.
Code-Sprache: CSS (css)

Hier etwas Geduld haben, die Installation des SSH Server Dienstes auf Windows 10 kann etwas dauern. Sobald Online : True ausgegeben wird, kannst du weitermachen.

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Code-Sprache: JavaScript (javascript)

Das machen wir nur zur Kontrolle. Hier sollten nun wieder 2 Einträge ausgegeben werden, aber unter beiden sollte stehen Installed.

Okay, fast geschafft. Jetzt noch 3 Kommandos um den Dienst zu starten und den Autostart zu aktivieren 👇

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Code-Sprache: JavaScript (javascript)
Get-NetFirewallRule -Name *ssh*
1
Hier nochmal alle Kommandos, um den OpenSSH Server auf Windows 10 zu installieren als Screenshot der PowerShell.

Usernamen herausfinden

Da du die Powershell sowieso grade offen hast, schauen wir noch kurz nach wie dein Benutzername zum anmelden ist. Der kann sich nämlich von deinem angezeigten Namen unterscheiden. Nicht verwirren lassen, einfach das PowerShell kommando ausführen und die Ausgabe nach dem \ in ein Textdokument kopieren bzw. abtippen 👇

Windows benutzernamen herausfinden mit whoami Kommando
Wir brauchen alles nach dem \, in meinem Fall also simon

expect nachinstallieren

Auf deinem Raspberry brauchst du abgesehen von der Hombridge und dem oben angesprochenen Paket Homebridge WOL nur noch das excrept Paket. Einfach per SSH zur Homebridge verbinden und das Kommando ausführen:

sudo apt-get install expect
Code-Sprache: JavaScript (javascript)

config.json zum aktivieren des Ruhezustands und starten des PCs

Okay, das Snippet hier (starten und Ruhezustand) unten ist dem zum herunterfahren und starten von oben natürlich sehr ähnlich. Aber in der 3ten Zeile von unten unterscheidet sich der Code deutlich.

Die Mac- und IP-Adresse, sowie die Platzhalter BENUTZERNAME und KENNWORT musst du natürlich noch austauschen!

Computer stattdessen in den Energiesparmodus versetzen

Wenn lieber in den Energiesparmodus als in den Ruhezustand möchtest, dann musst du folgendes tun:

Zuerst musst du den Ruhezustand (hibernation) auf deinem Computer deaktivieren. Führe dazu den folgenden Code in einer als Administrator gestarteten Powershell auf deinem Windows 10 Computer aus.

powercfg -hibernate off

Okay, fast geschafft. Nun musst du in dem Snippet von oben für die Config.json nur noch die dritte Zeile wie folgt ersetzen:

"shutdownCommand": "expect -c 'spawn ssh -o \"StrictHostKeyChecking=no\" BENUTZERNAME@192.168.1.3 \"rundll32.exe powrprof.dll,SetSuspendState 0,1,0\"; expect \"assword:\"; send \"KENNWORT\\r\"; interact'"
Code-Sprache: JavaScript (javascript)

Wenn du es bis hierher geschafft hast, vielen Dank für dein Interesse und ich hoffe dir hat der Artikel gefallen! Bei Fragen oder Anregungen gerne ein Kommentar dalassen 🙏

About Simon

Hi 👋 ich bin Simon Müller. Gründer des Blogs simon42 & bekennender vollblut- und Berufs-Nerd. Hier schreibe ich ehrlich und mit Leidenschaft über alle Smart Home und Technik Themen, die mir im Leben begegnen oder mich aktuell interessieren. Mein Zuhause wurde bereits von Sprachassistenten übernommen und längst habe ich die Kontrolle über die Anzahl der smarten Geräte verloren 😁 Kaffeespende für den Author

Buy me a Coffee

Unterstütze simon42!

Dir hat der Beitrag gefallen? Super!

Wenn du magst, kannst du mich gerne durch eine kleine Spende unterstützen. Artikel zu schreiben ist sehr zeitintensiv & das Hosting der Website verschlingt einiges an Geld. Jeder Betrag ist willkommen!

3 Gedanken zu „Homebridge: Computer Starten / Herunterfahren / Ruhezustand“

  1. Hallo, erstmal danke für das gute Tutorial.
    Leider habe ich ein Problem mit dem Herunterfahren des PCs das geht bei mir nicht ich habe alles exakt nach der Anleitung durchgeführt.
    “shutdownCommand”: “net rpc shutdown –ipaddress 192.168.1.3 –user BENUTZERNAME%KENNWORT”
    Im Command wird ein Kennwort für den Benutzer verlangt jedoch habe ich keines vergeben und ich bin der einzige Nutzer auf diesem PC muss ich dann etwas bestimmtes beachten?
    Oder kann es sein, dass Norton 360 diese Funktion blockiert?

    Danke für die Hilfe.

    Antworten
    • Hi Norman,
      danke für deine Frage 👍

      Zuerst mal kannst du das Kennwort einfach weg lassen und das Prozent-Zeichen ebenfalls (wenn ich mich da nicht irre 😉 )
      Norton360 kann das durchaus blockieren, der Port der Firewall muss eben zumindest für die IP deines Raspberry Pi alles zulassen. Evtl. musst du sowohl die Windows Firewall als auch die Norton eigene FW so einstellen. Testweise könntest du Norton auch abschalten, dadurch wärst du zumindest sicher, dass es daran liegt 😀

      Sag gerne wieder bescheid ob’s klappt!

      Beste Grüße
      Simon

    • Danke für die Antwort.
      Habe es getestet. Die Konfiguration so angepasst wie im Beispiel und mein Password einfach weg gelassen. Außerdem habe ich bei den normalen Firewall Regeln die Homebridge hinzugefügt sowie auch bei Norton im eigenen Firewall Manager. Aber alles ohne Erfolg. Dann habe ich in Norton alles was mit dem Thema Firewall zu tun hatte deaktiviert, hat aber leider auch nichts gebracht.
      Kann es auch mit dem net rpc zusammen hängen? (Das DWORD hab ich schon gesetzt.)

      Gruß Norman

Schreibe einen Kommentar

×
Jemand hat Windows Explorer Baumansicht automatisch aufklappen über Print geteilt
vor 3 hours
×
Jemand hat SD Karte Klonen – Mit Windows 10 SD Karten kopieren über Email geteilt
vor 5 hours
Send this to a friend