Mac mini via Homebrige/HomeKit ein und aus schalten

  • Hallo,


    wollte mich mal informieren ob jemand eventuell weiß ob man den Mac mini (2012) via Homebridge in HomeKit einbinden kann und diesen somit ein und aus schalten (wake and sleep) kann.


    Danke im Voraus :)

  • Ja, jut sag ich mal und was hat das jetzt mit meiner Frage zu tun ^^?

    Du willst den Mac einschalten --> Switchbot ueber homebridge

    Du willst den Mac ausschalten --> Skript zum Ausschalten (kann auch in ein Plugin als command integriert werden)

  • wollte mich mal informieren ob jemand eventuell weiß ob man den Mac mini (2012) via Homebridge in HomeKit einbinden kann und diesen somit ein und aus schalten (wake and sleep) kann.

    Ja, ich weiß das. ich nehme an, dass du jetzt auch noch wissen willst, wie das geht. Weißt du eigentlich, wie spät es ist? :D


    Ok, ich sag's dir morgen.

  • Es geht los. Wird lang.


    Um einen Mac per Homebridge aus- und einschalten zu können, muss man erst mal darüber nachdenken, was das bedeutet:

    • einen eingeschalteten Mac kann man über Software ausschalten (mit dem Befehl shutdown).
    • einen ausgeschalteten Mac kann man über Software nicht wieder einschalten. Man muss zwingend auf den Einschaltknopf drücken.

    Also wird sich die folgende Anleitung damit beschäftigen, den Mac in den Schlafmodus zu versetzen und daraus wieder zu erwecken und das ganze mit Homebridge oder Kurzbefehle zu verknüpfen. Ich werde für Kurzbefehle keine weitere Anleitung gegeben.


    Was braucht man dazu?

    1. den Befehl, um den Mac zum Schlafen zu bringen: pmset sleepnow. Wenn du den auf einem Mac-Terminal eingibst, wird der Bildschirm schwarz und die Kiste fängt an zu pennen.
    2. den Befehl, um einen Mac aufzuwecken: caffeinate -u -t 1. Den kannst du nicht auf deinem Mac eingeben, weil: der schläft ja. Du müsstest den Mac erst aufwecken, damit du ihn aufwecken kannst - klingt nicht nur albern, sondern ist es auch. Aber dein Raspi kann den Befehl übermitteln. Nach dem Aufwachen zeigt der Mac dann seinen Anmeldebildschirm. Ich habe keinen Weg gefunden, diesen zu umgehen.
    3. einen ssh-Schlüssel, damit sich der Raspi ohne Passwort an den Mac anmelden kann
    4. ein Homebridge-Plugin, das Linux-Befehle ausführen kann. Ich verwende homebridge-cmdtrigger.


    Dann mal los.

    Als erstes schreibst du mal ein kleines Skript. Es ist wirklich sehr klein. Öffne das Terminal-Programm auf deinem Mac und gibt ein:

    nano sleepmac.sh

    Ein leeres Editor-Fenster öffnen sich, dass du so befüllst:

    Bash
    #!/bin/bash
    pmset sleepnow

    Speichere das ab, indem du control-x und dann y drückst und dann die Entertaste betätigst. Dann machst du aus dem lächerlichen Text da oben ein ausführbares Skript mit dem Befehl chmod +x sleepmac.sh. Das kannst du schon mal testen mit ./sleepmac.sh. Der Bildschirm wird schwarz.


    Gib nun ein: whoami. Der Befehl liefert dir deinen Usernamen auf dem Mac zurück. Bei mir lautet der sschuste:


    Resolution:~ sschuste$ whoami

    sschuste


    Ich werde weiterhin diesen Usernamen als user bezeichnen. Du setzt dann dort immer deinen Usernamen ein.


    Logge dich nun auf dem Raspi ein und gibt dort ein

    ssh user@ipadresse-des-Mac ./sleepmac.sh, wobei du user durch deinen Usernamen auf dem Mac ersetzt und ipadresse-des-Mac durch die IP-Adresse deines Macs. Sieht bei mir so aus:


    ssh [email protected] ./sleepmac.sh


    Du wirst jetzt hier dein Passwort für den Mac eingeben müssen. Das ist ein hässliches Hindernis, das noch überwunden werden muss, aber nach Eingabe des Passwortes wird der Bildschirm schwarz. Außerdem wirst du beim ersten Kontakt zu deinem Mac mit der Frage konfrontiert Are you sure you want to continue connecting (yes/no)? Hier gibst das Wort yes ein und drückst die Entertaste. Das passiert nur beim ersten Mal, aber der Ärger mit der Passworteingabe bleibt. Du kannst ihn umgehen, indem du einen ssh-Schlüssel erzeugst.


    Der ssh-Schlüssel muss erzeugt werden für den User, unter dem die Homebridge auf dem Raspi läuft. Wenn du der alten Startapfel-Anleitung zum Setup der Homebridge gefolgt bist, dann ist das der User homebridge. Gib in diesem Fall auf dem Raspi ein:

    sudo su - homebridge (der Schritt entfällt, wenn du die Homebridge nicht nach der alten Anleitung des Forums aufgesetzt hast. Die alte Anleitung wurde Anfang März in die Rente geschickt)

    ssh-keygen (die folgenden drei Fragen beantwortest du alle, indem du die Entertaste drückst, auch bei der Abfrage der Passphrase)

    ssh-copy-id user@ipadresse-des-Mac (hier wirst nach dem Passwort auf dem Mac gefragt)


    Wenn alles gut aussieht, rufst du auf dem Raspi erneut den Schlafbefehl für den Mac auf

    ssh user@ipadresse-des-Mac ./sleepmac.sh


    Jetzt sollte der Bildschirm schwarz werden, ohne dass du ein Passwort für den Mac eingeben musstest.


    Erster Schritt und dritter Schritt aus der obigen Liste sind geschafft. Jetzt kommt der zweite: den Mac wieder aufwecken. Dazu schreibst erneut ein Script auf deinem Mac. Öffne also ein Terminal-Fenster auf deinem Mac und gib ein:


    nano wakemac.sh

    Ein leeres Editor-Fenster öffnen sich, in das du schreibst:

    Bash
    #!/bin/bash
    echo "Waking up..."
    caffeinate -u -t 1

    Speichere das ab, indem du control-x und dann y drückst und dann die Entertaste betätigst. Dann machst du daraus ein ausführbares Skript mit dem Befehl chmod +x wakemac.sh. Das kannst du auch testen mit ./wakemac.sh, aber viel wird da nicht passieren.


    Aber: du bist fast fertig. Jetzt brauchst du nur noch das Plugin. Installiere homebridge-cmdtrigger. In deiner config.json brauchst du dann diese Konfiguration im accessories-Abschnitt:



    Homebridge neu starten und dann sollte es klappen.

  • Also genau das was meine Shortcuts machen, ich aber zu faul war technisch weiter zu erklaeren, wurde jetzt hier von sschuste ausgefuehrt und beschrieben! 🥳🥳🥳

  • Hallo,


    ich habe in meinem Heimnetzwerk eine Homebridge am laufen, um meinen Windows-Rechner über WOL ein- und auszuschalten.

    Nun habe ich mir neben meinem Windows-Rechner einen Mac gekauft und nun frage ich mich, ob das ebenfalls möglich ist?

    Folgenden Befehl nutze ich für Windows: net rpc shutdown -I 192.168.178.141 -t 05 -U shutdown%shutdown

    Diesen habe ich nun ebenfalls versucht, für meinen Mac zu verwenden, aber dann kommt folgender Fehler:

    Anscheinend scheint die Verbindung verweigert zu werden, und Permission nicht erteilt werden.

    Wie kann ich das nun konfigurieren, dass ich den Mac ausschalten kann?



    Ich freue mich auf eine Antwort und wünsche einen schönen Abend.



    Mit freundlichem Gruß

    Leon

  • Noch smarter wird es gänzlich ohne Bash Skripte indem du einfach folgende Befehle ausführst:

    Code
    ssh user@ip-adresse -t "pmset sleepnow" -> für den Standby
    ssh user@ip-adresse -t "caffeinate -u -t 1" -> zum Aufwecken