Beiträge von sschuste

    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.

    Gut, dann versuch mal bitte das:

    sudo su - (du wirst zu root)

    sudo npm i -g github:guatedude2/homebridge-ilifecontroller --unsafe-perm


    Falls dann immer noch Fehler auftauchen

    rm -rf .npm und noch einmal

    sudo npm i -g github:guatedude2/homebridge-ilifecontroller --unsafe-perm


    Und ganz zum Schluss: exit (du verlässt den root-Modus wieder).


    Viel Erfolg

    Schade, das man das Protokoll nicht nach Fehler oder Warnungen bzw. "reinen Hinweisen" filtern kann.

    Also bitte. Das ist eine Linux-Maschine. Die ist dazu da, dir alle deine Computer-Wünsche zu erfüllen. Nicht 82% davon, nicht 95% oder 99,9. Alle. Wem das zu viel ist, der kauft halt beim Weltmarktführer aus Redmond. Da bekommt man zuverlässig 80%.


    Das Log der Homebridge wird auf der Shell aufgerufen mit sudo journalctl -au homebridge. Das zeigt dir das ganze Log.


    Suchbegriffe finden kann das Programm grep. Was wäre es doch geil, wenn das Programm journalctl das Log nicht auf dem Bildschirm ausgeben würde, sondern an das Programm grep sendet und das zeigt dann das Ergebnis an. Und weil das so geil wäre, wird's auch so gemacht. Der Befehl dazu lautet dann:


    sudo journalctl -au homebridge | grep -i blafasel


    Dieser Befehl durchsucht das Log nach dem Wort blafasel und zeigt die Ergebnisse auf dem Bildschirm an. Das komische Ding in der Mitte ist nicht etwa ein kleines L, sondern ein senkrechter Strich, der Pipe genannt wird. Auf dem Mac bekommt man den mit der Tastenkombination Option 7, auf Windows mit AltGr <.


    sudo journalctl -au homebridge | grep -i -e blafasel -e blubber sucht nach den Suchbegriffen blafasel und blubber.

    sudo journalctl -au homebridge | grep -i -v -e blafasel -e blubber sucht nach allen Zeilen im Log, die die Begriffe blafasel und blubber nicht enthalten.


    Wenn man das -i weglässt, dann muss man auf die Groß- und Kleinschreibung des Suchbegriffs achten.

    Das würde mir als Anfänger helfen das Log auch manchmal besser zu verstehen.

    Logs lesen und verstehen ist oft nicht einfach, ganz unabhängig davon, ob man nun Anfänger ist oder Experte. Was in den Logs steht, ist nur davon abhängig, was der Entwickler sich dabei gedacht hat. Er bestimmt, was geloggt wird oder nicht.


    Das Homebridge-Log ist aber sehr aufgeräumt und eigentlich leicht zu lesen. Und man tut das auch nicht den ganzen Tag.

    Geht das nicht einfach so:


    BWM: Sonnenuntergang bis Sonnenaufgang = Bewegung erkannt = Lichter an

    Geht das? Ich habe oft das Gefühl gehabt, dass die Zeitspanne "nach Sonnenuntergang" nur bis Mitternacht funktioniert und ab Mitternacht nicht mehr. Denn nach Mitternacht (am neuen Tag also) ist "nach Sonnenuntergang" auch nach "vor Sonnenaufgang" und die Regel "zwischen Sonnenuntergang und vor Sonnenaufgang" kann somit gar nicht mehr funktionieren. Tritt morgens um halb eins einfach nicht ein.

    Aber das mit den Temperaturen geht doch. Ich mache das über Kurzbefehle. Dort gibt es ja wenn: ist gleich oder größer

    Nö, es geht nicht. Wenn dein Ventilator erst anspringt, wenn eine Temperatur von 25º erreicht wird, dann springt er nicht an, wenn es bereits 25º ist. Dann wird diese Temperatur ja nicht erreicht. Dann ist sie ja schon so. Er geht auch nicht an, wenn es 26º oder 27º oder 38º ist. Er geht nur an, wenn die Temperatur von 24,9º auf 25º steigt.

    Ich habe mein komplettes Haus nur mit Dieser eingerichtet und finde sie absolut gut.

    Nichts dagegen einzuwenden, aber sie kann nichts. Nullinger. Ich verwende sie auch sehr gern, weil sie halt so schön simpel ist, aber nur, wenn ich mal per Hand etwas ein- oder ausschalten muss. Aber komplexere Automationen sind damit einfach nicht möglich. Und wenn ich schon die Namen dieser Automationen sehe...


    Automation Name in der Home-App Name in allen anderen Apps
    Schalte den Ventilator ein, wenn die Temperatur höher als 25º ist Wenn Wohnzimmer Thermostat Ändern Wohnzimmer wärmer als 25 Grad
    Schalte den Ventilator aus, wenn die Temperatur niedriger als 23º ist Wenn Wohnzimmer Thermostat Ändern Wohnzimmer kühler als 23 Grad
    Schalte die Heizung ein, wenn die Temperatur niedriger als 19º ist Wenn Wohnzimmer Thermostat Ändern Heizung unter 19 Grad


    ICH KANN SO NICHT ARBEITEN!!!


    Darüber hinaus: nicht eine der obigen Automationen hätte ich mit Home überhaupt erstellen können. Da hätte ich nur eine Automation erstellen können wie "Schalte den Ventilator ein, wenn die Temperatur höher als 25º wird", aber nicht "Schalte den Ventilator ein, wenn die Temperatur höher als 25º ist".


    Ich mache inzwischen alle Automationen in Home+ und verwende Home zur reinen Steuerung. Da gefällt mir die App besser als jede andere. Aber: jeder, wie er will. Dein HomeKit kann mehr, als die Home-App zugeben mag.

    Hallo ich habe mal eine generelle Frage zur Home+ App, liege ich mit der Annahme richtig, dass ich diese nicht auf allen iPhones aus dem Haushalt installieren muss, sondern es reicht wenn ich sie installiere?

    Ja, das gilt für alle Apps, die HomeKit steuern. HomeKit ist nur irgendsoein Konglomerat aus Datenbank, Protokoll und Regeln, das Automationen speichert und sie ausführt oder auf irgendeine wundersame Art und Weise smarte Geräte steuert. Das macht HomeKit alles im Hintergrund.


    Alle Apps dafür lesen aus der und speichern in die HomeKit-Datenbank. Sie sind nichts anders als hübsche Frontends für das Backend "HomeKit". So wie Safari, Firefox, Chrome, Edge oder Dingsda irgendwelche Webseiten anzeigen, zeigen die HomeKit-Apps irgendwelche HomeKit-Daten. Daher muss man immer unterscheiden zwischen den HomeKit-Apps und HomeKit, so wie man unterscheidet zwischen Webbrowsern und dem World Wide Web.


    Wenn von HomeKit die Rede ist, dann ist damit die zugrundeliegende Technologie, wie smarte Geräte angesteuert werden, gemeint. Wenn von der Home-App die Rede ist, dann ist damit ein Progrämmchen gemeint, mit dem man HomeKit verwalten kann. Und Home+ ist eine verbesserte Home-App, so wie EVE oder Controller. Aber alle steuern HomeKit, und daher kannst du auf verschiedenen iPhones auch verschiedene HomeKit-Apps installieren.

    Gibt es hierfür einen besonderen Grund?!

    Das ist eher eine persönliche Vorliebe als dass es technische Gründe hat. Ich verwende für meine Hue-Schalter und -Sensoren entweder die Hue-App (eigentlich nur für die Sensoren) oder iConnectHue (eigentlich nur für die Schalter).


    Bei den Bewegungsmeldern: ich finde es viel einfacher, hier die Hue-App zu nehmen. Das Regelwerk ist zwar stark eingeschränkt, aber für mich funktioniert das: ich stell da einfach meinen Tag ein, beispielsweise 7-23 Uhr. Alles andere ist damit Nacht. Den Rest regelt der eingebaute Lichtsensor. Für eine derart simple Aufgabe will ich Home nicht verwenden, aber ich gebe natürlich zu, dass man komplexere Aufgaben mit der Hue-App nicht verwirklichen kann. Für meine Küchenarbeitsplatte und meine Dusche reicht's mir aber.


    Die Hue-Schalter konfiguriere ich mit iConnectHue. Damit kann ich Sachen anstellen, die mir Home nicht anbietet (oder besser: die ich in Home nicht hinbekomme, weil ich nicht weiß wie). Beispielsweise schaltet der Aus-Knopp im Flur die Flurlampe aus (Wahnsinn!), aber wenn ich ihn lange drücke, schaltet er das Licht in der ganzen Wohnung aus.


    Das funktioniert natürlich nur, wenn die gesamte Beleuchtung an der Hue-Bridge hängt. Das ist bei mir der Fall. Das geht in einem Mischbetrieb nicht mehr. Ich habe das auch schon selbst mit Javascript in Node Red programmiert: da könnte ich dann mit Doppelklick auf "Aus" und gleichzeitigem Handstand sogar das Licht im gesamten Viertel herunterdimmen (falls mir die Mainova die Zugangscodes zu ihrem Stromnetz gibt). Aber die Lösung in Node Red war nicht so zuverlässig, wie ich mir das vorgestellt habe und lahm war sie auch noch.


    Blieben nur Home und Hue, und da habe ich dann Hue der Einfachheit halber gewählt. Ich mag einfache Lösungen.


    Für mich sind Bewegungsmelder und Schalter nicht unbedingt klassische Home Automation. Die stelle ich im Zweifel einmal ein und das war's dann für immer. Da gibt's keine komplexen Bedingungen. Wenn ich auf einen Schalter drücke, soll halt das Licht angehen - bedingungslos.

    Du hast den Befehl gut beschrieben. So kannst du ihn auch auf der Shell eingeben. Ich mache es dort meist so:

    sudo journalctl -fau homebridge. Ergibt das bei dir eine andere Ausgabe?


    Im Log werden die Dinge gespeichert, die die Plugins speichern wollen. Wenn die nichts speichern, dann steht da auch nichts drin.

    Der Befehl hat leider nicht geklappt

    Gründe dafür:

    • du hast vergessen, die Entertaste zu drücken
    • du hast versucht, ihn auf deinem Herd einzugeben
    • irgendwas anderes, das du uns uns lieber verschweigst, warum auch immer

    Bei mir klappt das. Was genau geht denn nicht? Wie sollen wir dir Tipps geben, wenn du uns nicht sagst, was du tust und was dann passiert?

    Warum muss ich das als Auslöser davor setzen, warum dieser Umweg? Hat da Apple was am HK geändert?

    Da ist nichts geändert worden. Es war schon immer so. Ein Missverständnis ist häufig, dass irgendwas passieren soll, wenn eine bestimmte Situation vorhanden ist. Es wird aber nur etwas ausgelöst, wenn eine bestimmte Situation erreicht wird.


    Das habe ich auch erst mal kapieren müssen.


    Wenn ein Ventilator dann anspringen soll, wenn die Temperatur die 25º-Marke knackt, dann wird er niemals angehen, wenn es bereits 25º ist und er knackt nun die 26er-Marke. Es kann noch so heiß werden - nichts passiert. Er geht nur an, wenn die Temperatur von unter 25º auf 25º steigt. Nur dann.


    Das Erreichen einer bestimmten Marke löst also etwas aus. Daher heißt die Automation oben: tue etwas, wenn eine beliebige Änderung eintritt. Egal ob es wärmer oder kühler wird: mach was. Und dann kommt die Bedingung: Schmeiß den Ventilator an, aber nur, wenn es über 25º warm ist. Und eine zweite Automation schaltet das Ding wieder ab.


    Dabei ist es völlig egal, ob es sich um Sensoren für Temperatur, Luftfeuchtigkeit, Helligkeit oder Wasserstand handelt.


    Home+ kostet mit 17€ viel Geld. Das hat mich erstmal ein bisschen zucken lassen, aber als ich mir so überlegt habe, welches Geld ich für meine Smarthome-Geräte ausgegeben habe, ist es schon fast egal gewesen. Die Homekit-App Controller kann es auch.

    Ist halt wahrscheinlich das selbe wie wenn man sagt: Hey Siri, mach das Licht an! Dann geht ja auch ueberall das Licht an.

    Nicht mit den HomePods. Denen musst du schon sagen, dass sie das Licht überall anschalten sollen, ansonsten geht nur das Licht in dem Raum an, in dem sie stehen. Oder vielmehr in dem Raum, indem der HomePod steht, der dich gehört hat.