Beiträge von sschuste

    wie ich den state des Bildschirmschoner auch damit bekomme

    So, ich schlage dir folgendes Skript vor:


    sudo nano /usr/local/bin/screensaver.sh

    Bash
    #!/bin/bash
    if [ "$1" == "on" ]; then
        ssh [email protected] "osascript -e 'tell application \"ScreenSaverEngine\" to run'"
    elif [ "$1" == "off" ]; then
        ssh [email protected] "osascript -e 'tell application \"ScreenSaverEngine\" to quit'"
    elif [ "$1" == "status" ]; then
        ssh [email protected] "osascript -e 'tell application \"System Events\" to get running of screen saver preferences'"
    fi

    Abspeichern, dann sudo chmod +x /usr/local/bin/screensaver.sh


    Das kannst du testen mit

    /usr/local/bin/screensaver.sh on

    /usr/local/bin/screensaver.sh off

    /usr/local/bin/screensaver.sh status


    Dieses Skript macht also alles, einschalten, ausschalten und den Status abfragen.


    Die config.json enthält das hier:

    Das funktioniert grundsätzlich, nur wird leider der Status nicht sofort angezeigt. Soll heißen, wenn du den Screensaver manuell einschaltest, passiert weder in Home noch in Eve irgendwas. Bringst du die Apps in den Hintergrund und rufst sie dann wieder auf, wird der Status geändert. Weiß nicht woran das liegt. Vielleicht geht das homebridge-cmd4 besser, ich hab's noch nicht ausprobiert.

    Wie man die passenden Keys oder Schlüssel erstellt.


    Als erstes mal Grundsätzliches. Es gibt immer einen privaten Schlüssel und einen öffentlichen Schlüssel. Den privaten muss man für sich behalten, er ist sozusagen der Geheimnisträger. Der öffentliche Schlüssel kann jedermann zugänglich gemacht werden.


    Ganz wichtig: der private Schlüssel befindet sich auf dem Computer, von dem aus man sich auf einen anderen Computer einloggen will. Der öffentliche Schlüssel befindet sich auf dem Computer, auf den man sich einloggen will. Beispiele:

    • Du willst dich von deinem Mac aus auf deinen Raspi einloggen. Dazu erstellst du ein Schlüsselpaar (bestehend aus privatem und öffentlichem Schlüssel) auf deinem Mac. Den öffentlichen Schlüssel kopierst du an eine bestimmte Stelle auf deinem Raspi. Der private Key bleibt da, wo er ist, nämlich auf dem Mac.
    • Du willst dich von deinem Raspi über das Internet auf meinen Mac einloggen (und wir tun mal so, als wäre das einfach so möglich). Dazu erstellst du ein Schlüsselpaar auf deinem Raspi und sendest mir den öffentlichen Schlüssel per Mail, WhatsApp, Telegram, SMS oder sonstwie in Textform. Ich kopiere deinen öffentlichen Schlüssel auf meinem Mac an eine bestimmte Stelle.

    Klar? Schlüsselpaar erstellen und öffentlichen Schlüssel auf die Zielmaschine bringen. Das ist alles. Und wie macht man das jetzt?


    Du willst dich von deinem Raspi auf deinen Mac einloggen. Also erstellst du auf deinem Raspi ein Schlüsselpaar - aber nur, wenn du noch keins hast! Die Schlüssel befinden bei DJay im Verzeichnis des Users pi (das habe ich aus der Prozessliste abgelesen, die du oben veröffentlicht hast: deine Homebridge wird vom User pi gestartet). Ob man schon Schlüssel hat, kann man nachsehen, indem man den Inhalt des Verzeichnisses .ssh auflistet.


    ls -l .ssh


    Und dabei könnte sowas dabei herauskommen:

    -rw------- 1 pi pi 1015 Sep 27 2019 authorized_keys

    -rw------- 1 pi pi 1811 Sep 27 2019 id_rsa

    -rw------- 1 pi pi 391 Sep 27 2019 id_rsa.pub

    -rw------- 1 pi pi 2797 Feb 13 11:12 known_hosts


    Der private Schlüssel ist in der Datei id_rsa gespeichert. Der öffentliche Schlüssel befindet sich in id_rsa.pub. Die anderen beiden Dateien gehören nicht zum Schlüssel, aber der Ordnung halber: in der Datei authorized_keys befinden sich die öffentlichen Schlüssel von anderen Leuten und in known_hosts befinden sich die Adressen von Computern, zu denen man per ssh und Schlüssel Kontakt hatte.


    Wenn kein Schlüsselpaar existiert, muss man ein neues erstellen. Wenn eins existiert, sollte man das verwenden. Existierende Schlüsselpaare zu überschreiben kann hässliche Folgen haben und sollte nur dann gemacht werden, wenn man sich sicher ist, dass die nicht irgendwo in Gebrauch sind.


    Also, auf deinem Raspi geht es los:

    ssh-keygen


    Generating public/private rsa key pair.

    Enter file in which to save the key (/home/pi/.ssh/id_rsa):

    Created directory '/home/pi/.ssh'.

    Enter passphrase (empty for no passphrase):

    Enter same passphrase again:

    Your identification has been saved in /home/pi/.ssh/id_rsa.

    Your public key has been saved in /home/pi/.ssh/id_rsa.pub.

    The key fingerprint is:

    SHA256:LZ2HWPgyZlbNVdOv5U/NqJBwG8/AT92eJNiZuJzjR40 pi@raspberrypi

    The key's randomart image is:

    +---[RSA 2048]----+

    | .oo|

    | . o . o|

    | ..o *.o..|

    | .B==.=..+|

    | SoBX+ =Bo|

    | + ++*+Eoo*|

    | ..o. ..|

    | ... .|

    | . |

    +----[SHA256]-----+


    Die Schlüsselgenerierung fragt dich nach dem Namen, die die Schlüssel haben sollen und nach dem Passwort, den der Schlüssel haben soll. Du gibst überall nichts ein und drückst einfach die Entertaste.


    Das war der erste Schritt. Die Schlüssel sind erstellt. Nun muss noch der öffentliche Schlüssel auf den Mac. Dazu gibt es den Befehl ssh-copy-id, der ergänzt werden muss durch die IP-Adresse des Mac und den Usernamen des Users, der später den Scvreensaver steuern soll. Wahrscheinlich ist es dein eigener Account auf dem Mac. Also:


    ssh-copy-id [email protected] (du setzt hier natürlich die passenden Werte ein)


    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/pi/.ssh/id_rsa.pub"

    The authenticity of host 192.168.178.20 can't be established.

    ECDSA key fingerprint is SHA256:WEElPAtwb1dkEA5mj8GHKZTsYoYdZd9kGJIsArGJJng.

    Are you sure you want to continue connecting (yes/no)? yes

    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

    Password:


    Number of key(s) added: 1


    Now try logging into the machine, with: "ssh '[email protected]'"

    and check to make sure that only the key(s) you wanted were added.


    Bitte beachte, dass dieser Prozess möglicherweise die Eingabe des Wortes yes verlangt. Wahrscheinlich passiert das bei dir nicht, aber das ist egal. Falls die Frage Are you sure you want to continue connecting (yes/no)? kommt: yes. Das ganze Wort. Auf jeden Fall musst du danach das Passwort eingeben, das der User djay auf dem Mac zum Einloggen verwendet.


    Und fertig.


    Zeit zum Testen:

    ssh [email protected]

    und zack!, du solltest auf dem Mac eingeloggt sein, ohne ein Password angeben zu haben. Mit logout wieder ausloggen und deinen Screensaver-Befehl testen:

    ssh [email protected] osascript -e 'tell application "ScreenSaverEngine" to run'

    und zack! geht's Licht aus. Sollte jedenfalls, ich kann's nicht ausprobieren.


    Auf dem Mac ist nun übrigens ein Verzeichnis entstanden. Du kannst es dir nach dem Einloggen auf den Mac anzeigen lassen mit ls -l .ssh. Dort befindet sich eine Datei namens authorized_keys, und die enthält den öffentlichen Schlüssel, den du auf dem Raspi erstellt hast.


    So, ganz zum Ende noch der folgende wichtige Hinweis: so wie ich das beschrieben habe, funktioniert das (hoffentlich) bei DJay . Das funktioniert so nicht, wenn man die Homebridge nach der Forenanleitung aufgesetzt hat. Hier muss man, bevor man die Schlüssel erstellt, noch einen weiteren Befehl eingeben:


    sudo su - homebridge und erst dann ssh-keygen und den ganzen Rest.

    ..und das es daran liegt, dass anscheinend eine Datei nicht geladen, bzw. "geflasht" werden kann?!

    Das steht da nicht. Da steht 1 Failed Device, nicht 1 Failed File. Es kann auch gar nichts geschrieben worden sein. Ich kann's nicht sagen, ich weiß nicht, was diese Meldung im Detail bedeutet. Aber schön ist sie nicht.


    Du kannst den Raspi auch mal mit einem LAN-Kabel anstatt WLAN starten. Vielleicht startet er ja doch, aber die WLAN-Einrichtung ist fehlgeschlagen.

    einfach per shh ohne Key. Nur Name und Passwort.

    Nö. Das willst du nicht. Du brauchst den Key zwingend, ansonsten können Plugins wie homebridge-cmdWHATEVER nicht per ssh auf deinen Mac zugreifen. Ich helfe dir gern mit dem Key. Ist nicht so schwierig.


    Dazu muss ich wissen, wie deine Homebridge läuft. Dazu reicht mir auf dem Raspi erstmal ein

    ps aux | grep homebridge

    Wenn hci tool läuft, braucht Du den hci-bluetooth Socket doch nicht nochmal installieren?

    Die beiden haben nichts miteinander zu tun. Der hci-bluetooth-socket ist eine Erweiterung für Node, damit Programmierer leichter Bluetooth nutzen können. Er braucht noble, und noble läuft nur bis Node 9.


    Das hcitool ist ein anderes Programm für Bluetooth und wird von Node nicht benötigt.

    Versuche das hier:

    sudo su -

    rm -rf .npm

    npm install -g --unsafe-perm homebridge-ranger

    exit


    Ich befürchte nur, dass du an anderen Dingen scheitern wirst. Der ganze Bluetooth-Kram funktioniert mit einem Modul namens bluetooth-hci-socket. Dieses Modul braucht einen Unterbau namens noble. Und noble läuft nicht mit Node-Version > 9. Aber vielleicht läuft der von DJay erwähnte Fork.


    Darüber hinaus kannst du auch mal npm updaten. Ich verwende zum Updaten der Node-Module und -Progrämmchen das äußerst bequeme npm-check. Installieren und dann:


    sudo npm-check -gu