Beiträge von sschuste

    Sehr gute Idee. :thumbup:


    Ich würde die Datei gmaps.html an eine andere Stelle legen und zwar entweder nach /home/homebridge/gmaps.html oder nach /var/homebridge/gmaps.html.


    Stefan

    Gibt es diese Logs auch als Datei?

    Ja, die Datei heißt /run/log/journal/a9a7b3a0acc14d00902380d8411b6718/system.journal wobei das a9a7b3a0acc14d00902380d8411b6718 bei dir bestimmt anders heißt. Die Datei ist im Binärformat und kann von dir nicht gelesen werden, es sei denn du verstehst:


    LPKSHHRH^@^@^@^@^B^@^@^@^A^@^@^@^@^@^@^@^Z^Av^R?Ha<8F><F8><FD>+<EA><A2> ?<A7><B3><A0><AC><C1>M^@<90>#<80><D8>AESCg^X<EB>+^<D1>^V2I<87><9F><AC><EB>W3J<F4>Yz<F3>Y<9C><96>jN/<A0><95><F3><C9>G1&<A2><F0>^@^@^@^@^@^@^@^P<BF>\^@^@^@^@^@<E0>^U^@^@

    ^@^@^@^@<80><93>^B^@^@^@^@^@^@^A^@^@^@^@^@^@<D0>^T^@^@^@^@^@^@0<AD>/^@^@^@^@^@q0^@^@^@^@^@^@n^L^@^@^@^@^@^@?^@^@^@^@^@^@i<8C>^@^@^@^@^@^@ <B7>^B^@^@^@^@^@Fc<D5>^U^\<89>^E^@<E7><F1><EB><B3>9<89>^E^@N"<F3><B2>8^A^@^@<F9>^Z^@^@^@^@^@^@$^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<E4>^H^@^@^@^@^@^@^E^@^@^@^@^@^@^@<E0>^T^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@


    Stefan

    Wie muesste ich jetzt meine config, die vorher auf dem selben PI lief aendern, damit sie auf den anderen PI zugreift?


    Also zwei Raspis. Den einen nenne ich mal homepi und den anderen holepi.


    Um Kommandos von homepi aus auf holepi auszuführen, kann man das ssh-Kommando verwenden:

    homepi:~$ ssh pi@holepi /usr/local/bin/pihole enable


    Voraussetzung dafür ist, dass der User pi@holepi die Rechte hat, Pi-Hole zu anzuhalten und zu restarten. Das Dumme ist nur, dass der Rechner holepi ein Passwort von dir verlangt. Gut, das kannst du ja eingeben, aber wenn die Homebridge später den Befehl ausführt, kann die das nicht. Also brauchst eine passwortlose Verbindung von homepi zu holepi, genauer gesagt: von homebridge-user@homepi zu pihole-user@holepi. Das kannst du mit SSH private und public keys machen.


    Wenn deine Homebridge unter dem User homebridge läuft, machst du auf dem homepi folgendes:

    sudo su - homebridge (macht dich zum User homebridge)

    ssh-keygen (erstellt das Schlüsselpaar. Alle Fragen mit der Entertaste beantworten, auch die nach der Passphrase)

    ssh-copy-id pi@holepi (kopiert den public key an die richtige Stelle auf dem holepi)


    Dann testen mit

    ssh pi@holepi /usr/local/bin/pihole enable (ein Passwort sollte nicht mehr abgefragt werden)

    exit (verlässt den User homebridge wieder)


    Du kannst dein vorhandenes cmd-Plugin weiterverwenden. Sieht dann so aus:

    Code
    {
     "name": "Pihole 5Min",
     "on_cmd": "ssh pi@holepi /usr/local/bin/pihole enable",
     "off_cmd": "ssh pi@holepi /usr/local/bin/pihole disable 5m",
     "state_cmd": "ssh pi@holepi /usr/local/bin/pihole status | grep blocking",
     "polling": true,
     "interval": 60
    }


    Stefan

    Setze mal in config.json:

    "path": "/var/homebridge/omxplayer",


    Sieht dann etwa so aus:


    Ich weiß nicht mehr genau, wie das damals bei meiner Installation lief. Möglicherweise musst du vorher ein

    sudo mkdir -p /var/homebridge/omxplayer und dann ein

    sudo chmod -R homebridge:homebridge /var/homebridge/omxplayer

    machen.


    Stefan

    Ich möchte dem oben stehenden Projekt gar nicht die Berechtigung absprechen, aber müssen es dafür wirklich 120€ sein?

    Ein Raspi im Gehäuse + Netzteil und Ethernet Kabel, alles zusammen 50€.

    Wo denn? Ich habe immer zwischen 60 und 65€ bezahlt.

    Die kostenfreie Software selbst nach Anleitung installieren und dabei sogar noch neue Kenntnisse erwerben, umsonst (nicht im Sinne von vergebens)..

    Das muss nicht jedermanns Sache sein. Auch wenn ich behaupte, dass die Installation des Raspis und der Homebridge ein Klacks ist, den wirklich jeder hinbekommt, gibt es genug Leute, die es nicht so mit Computern haben und die sich nicht wohlfühlen, selber Hand anzulegen. Das geht mir beispielsweise ganz genauso beim Brettersägen oder Löcherbohren, da weiß ich immer schon vorher, dass das nix wird, auch wenn es gar nicht der Fall sein sollte. Also kaufe ich diese Dienstleistung lieber ein.


    Mit Linux irgendwelche Dinge zum Laufen zu bekommen ist mein Beruf. Also installiere ich so eine Homebridge auch selbst, und ich muss zugeben, dass meine erste Installation ein Kampf war. Ich habe die Forenanleitung eigentlich nur verfasst, um mir selber das Leben zu vereinfachen und hier im Forum nicht immer die gleiche Fragen stellen zu müssen, wenn mal wieder irgendwo eine Homebridge herumzickte: als welcher User hast du sie gestartet (Antwort: "keine Ahnung.")? Wo liegt deine config.json (Antwort: "keine Ahnung")? Benutzt du systemctl oder init (Antwort: "Hä")? Tatsächlich war das meine Motivation. Dass sich meine Anleitung langsam quasi zum deutschen Standard zur Installation von Homebridge entwickelt, hätte ich nie geglaubt. Nicht dass ich damit je kommerzielle Interessen verfolgen wollte, aber es stellt sich auch die Frage, wieviel denn diese Dienstleistung Homebridge-Usern wert gewesen wäre. Vielleicht als e-Book für 15€?


    Die HOOBS-Leute setzen direkt auf den Dienstleistungsgedanken und verlangen 120€ - warum auch nicht. Ob diese Dienstleistung diesen Preis wert ist, muss jeder für sich selber entscheiden. Für Brettersägen oder Löcherbohren zahle ich persönlich solche Preise.


    Man bekommt mit HOOBS auch nicht viel anderes geboten als wenn man es selber machen möchte, zumal es auf unserer Forenanleitung aufbaut (zumindest die Version, die ich vor ein Monaten getestet habe). Der wirklich kniffelige Teil ist aber nicht die Installation, sondern die Konfiguration. Diesen Teil nimmt dir keiner ab, und config.json ist nun mal nicht unbedingt sonderlich intuitiv. Und jeder hat eine andere. Wenn ich hier manchmal sehe, welch haarsträubende Fehler in config.json gemacht werden, dann erinnert mich das sehr genau an meine ersten Schritte mit JSON lange vor Homebridge. Ich kann mir nicht vorstellen, dass die HOOBSies da einen Support geben wollen und es überhaupt nur können. Das muss man selber lernen. Oder einen Guru einkaufen, der es dann für einen macht.


    Stefan

    In der Homebridge-App steht, dass der Standard-Port für den Raspberry 22 lautet.

    Nein, der Standard-Port für den Raspi lautet nicht 22. Der Raspi hat nämlich keinen Standard-Port. Damit reiht er sich in die große Anzahl der Computer ein, die so etwas nicht haben, und das sind:


    * alle Windows-Computer, egal mit welchem Betriebssystem

    * alle Apple-Computer, egal mit welchem Betriebssystem

    * alle Unix- und Linux-Computer, egal mit welchem Betriebssystem

    * alle anderen hier nicht aufgelisteten Computer, egal mit welchem Betriebssystem.


    Es gibt keinen Standard-Port für Computer, genauso wenig wie es Standard-Hausnummern für Straßen gibt oder Standard-Telefonnummern für Wohnzimmer.


    Port 22 ist der Standard-Port für den SSH-Server, also dem Stück Software, dass es dir erlaubt, dich auf deinem Raspi per Terminal einzuloggen. Port 80 ist der Standard-Port für einen Webserver, Port 123 ist der Standard-Port für einen NTP-Server, Port 143 ist der Standard-Port für einen IMAP-Server und Port 51826 ist der Standard für den Homebridge-Server. Insgesamt können 65535 Ports geöffnet werden, und hinter jedem würde dann ein Server auf Anfragen warten. Bitte beachte, dass der Begriff Server nie etwas Viereckiges aus Metall oder Plastik bezeichnet, sondern immer eine Software, und beachte bitte auch, dass das Starten von 65535 Servern auf einer einzigen Maschine die Tat von Wahnsinnigen wäre, sogar auf größeren Rechnern als einem Raspi.


    Die dazu passenden Clients verwenden die genannten Ports, um sich mit den Servern zu verbinden. So verbindet sich dein ssh-Programm im Terminal automatisch mit Port 22, dein Webbrowser automatisch mit Port 80, dein Mailprogramm automatisch mit Port 143, irgendein Programm mit Port 51826 für die Homebridge, und wenn dein Rechner die Uhrzeit und das Datum einstellen will, dann versucht er das automatisch über Port 123.


    So weit erstmal das. Wenn du homebridge-http-webhooks installierst, dann öffnest du einen neuen Port auf deinem Raspi, und der wird dann angesprochen über einen Webbrowser oder ein anderes Programm, das HTTP kann (wie curl oder wget oder ein Homebridge-Plugin) über die Adresse http://192.168.178.180:51828. Der Port 51828 ist bitte nicht zu verwechseln mit dem Homebridge-Port 51826 und wird in der Konfiguration von homebridge-http-webhooks gesetzt.


    Aber ist denn homebridge-http-webhooks überhaupt das richtige Tool? Willst du nicht eher homebridge-ifttt verwenden? Homebridge soll doch IFTTT triggern und nicht andersherum, oder?


    Mal so nebenbei: du hast völlig recht damit, dass die Adresse 192.168.178.180 aus dem Internet nicht zu erreichen ist. Deshalb willst du dir mit einem Port-Forwarding auf dem Router behelfen. Also sowas wie <externe IP-Adresse>:51828 weiterleiten nach 192.168.178.180:51828. Ich würde Port-Forwarding auf dem Router auch immer dann einsetzen, wenn ich mir sicher wäre, dass homebridge-http-webhooks fehlerfrei programmiert ist und dass die dem Plugin zugrunde liegende homebridge fehlerfrei programmiert ist und dass das der homebridge zugrunde liegende Node fehlerfrei programmiert ist und dass das Node zugrunde liegende Linux fehlerfrei programmiert ist. Leider bin ich mir da nicht völlig sicher.


    Stefan



    Ich mache nur drei Dinge in der Hue-App:

    • Hue-Update
    • Konfiguration der Motion-Sensors
    • Erkennen neuer Hue-Geräte


    Ich mache nie in der Hue-App:

    • Szenen
    • Automationen
    • Und schon gar nicht synchronisieren. Ich kenne dein Problem und hab's dann irgendwann sein lassen. Spielt eh keine Rolle.


    Ich mache in der Home-App:

    • Fast alles.


    Ich verwende darüber hinaus die EVE-App, die ich für sehr gelungen halte und die einige Möglichkeiten mehr als die Home-App bietet. Kurz: ich mache alles genauso wie @m4d-maNu und wie wahrscheinlich die meisten hier im Forum.


    Weder Apple noch Philipps holen das Maximum aus ihren Apps heraus. Dafür sind sie natürlich leichter zu bedienen.


    Stefan

    Die Logs der Homebridge zeigst du im Terminal an mit:


    sudo journalctl -au homebridge


    seitenweise scrollen = Leertaste

    zeilenweise scrollen = Returntaste

    rückwärts zeilenweise scrollen = b

    suchen = /

    nächsten Suchtreffer anzeigen = n


    Oder die Live-Anzeige des Logs:

    sudo journalctl -fau homebridge


    Den Debug-Modus aktivieren:

    sudo nano /etc/default/homebridge


    Dort die Zeile # DEBUG=* so verändern, dass dort nur noch

    DEBUG=*

    steht. Dann homebridge restarten:

    sudo systemctl restart homebridge


    Das Log wird nun mit viel mehr Informationen gefüllt als vorher. Ob die dir helfen, wage ich zu bezweifeln, aber versuch's mal. Debug-Modus wieder ausschalten: die Änderung in /etc/default/homebridge rückgängig machen.


    Stefan

    Ich habe hier: https://github.com/itsmepetrov/homebridge-zigbee/issues/29 einen Hinweis gefunden, dass homebridge-zigbee outdated ist, was immer das bedeuten mag.


    Versuch's mal im Terminal mit:

    sudo npm install -g --unsafe-perm itsmepetrov/homebridge-zigbee


    Das geht bei mir, auch wenn es ziemlich hässliche Warnungen dabei ausgibt. Am Ende steht, und das scheint mir das Wichtigste zu sein:

    + [email protected]

    added 295 packages from 189 contributors in 119.942s


    Stefan

    Für die oben gestellte Aufgabe ist mir nichts anderes eingefallen. Ansonsten mach ich alles über die Homebridge, allein schon deshalb, um mich nicht zu verzetteln.


    Ich setze Node Red dann ein, wenn es für meine spezielle Anforderung kein Plugin gibt und auch keins geben wird, beispielsweise: schalte die Lampe auf Rot, wenn die S4 Verspätung hat. Dazu muss man dann aber auch schon (geringe) Javascript- und JSON-Kenntnisse haben, um beispielsweise die Antwort eines Servers auswerten zu können.


    Homebridge ist ja eigentlich schon HomeKit für Fortgeschrittene und man kann damit ja auch wirklich fast alles machen. Für alles weitere braucht man Programmierkenntnisse, die ich nicht wirklich habe, und da hilft mir dann Node Red.


    Stefan

    Ich hab jetzt eine Weile über die Aufgabe nachgedacht. Ich finde sie kniffelig. Ich würde versuchen, sie mit Node Red zu lösen .


    Das eine Problem liegt darin, den Osram Plug zu schalten. Das zweite Problem liegt darin, in Home den Schalter zu aktualisieren. Zu letzterem Punkt: nehmen wir an, du schaltest deinen virtuellen Schalter aus und damit wird die Platte ungemountet (wasn geiles Wort). Wenn du sie wieder mountest, sollte der virtuelle Schalter wieder eingeschaltet werden. Dazu brauchst du einen Prozess, der kontinuierlich den Mount-Zustand deiner Platte überwacht.


    Ein kleines bash-Skript kann den Job erledigen. Wenn deine gemountete Platte /dev/sda1 heißt, dann würde das so aussehen:

    Bash
    #!/bin/bash
    exit $(mount | grep -q "/dev/sda1"; echo $?)

    Das speichern wir mal als check_mount_status.sh ab. Dieses Skript gibt einen Returncode zurück, der entweder 0 ist (da ist eine Platte gemountet) oder 1 (da ist nix dergleichen). Dieser Returncode soll dann den Schalter in Home aktualisieren.


    Mit Node Red kann man sich den Ablauf dann "zusammenmalen". Kernstück des Ganzen ist ein exec-Node, der das Skript check_mount_status.sh alle fünf Sekunden aufruft.


    Zusätzlich wird für Node Red die HomeKit-Palette installiert. Die liefert nun einen Schalter, den man in Home sehen kann. Ich habs mit einem USB-Stick getestet: wird er gemountet, geht der Schalter an. Wird er ungemountet, geht der Schalter aus. Darauf kann man nun eine HomeKit-Automation aufbauen, die den Osram Plug ausschaltet.


    Ich habe auf diese Art und Weise mit Node Red ein Programm "geschrieben" ohne auch nur eine einzige Zeile Code zu tippen. Ich füge mal das Bild des Flows hier an, auch wenn ich ständig zu blöde bin, hier ein Bild einzufügen. Irgendwas wird schon zu sehen sein, und es soll verdeutlichen, dass es letztendlich einfach ist mit Node Red was zu basteln. Ok, ich habe jetzt auch mal 45 Minuten dareingesteckt, und ich habe schon ungefähr gewusst, was ich tue, aber wenn du dich damit beschäftigen willst, stelle ich dir gern den kleinen Flow zur Verfügung, damit du ihn selber verwenden kannst.


    Stefan

    nachdem meine Smart Life Sirene schon einige Zeit im Keller lag, hab ich diese in einer ruhigen Minute nachdem die kids eingeschlafen sind und meine Frau noch kurz weg musste, aktiviert.

    Dass du sie nur (heimlich) aktivierst, wenn deine Frau abwesend ist, kann ich ja noch nachvollziehen. Aber nachdem die Kids eingeschlafen sind? Obwohl: wie soll man sonst herausfinden, dass man von der Sirene auch aufwacht? Je länger ich hier schreibe, um so mehr verstehe ich den Plan dahinter ^^.


    Stefan

    Versuchs mal so:



    Bei dir steht zweimal "platforms": drin, und das eine "platforms": steht innerhalb des ersten. In config.json wird "platforms": nur einmal gesetzt.


    Sieh dir noch mal das hier ab dem Punkt Plugins: Accessories und Platforms genau an. Das ist alles nicht einfach, aber versuche mal, die Struktur zu verstehen. Ich hab auch ein Weilchen gebraucht. Was ich begreife, begreift ganz sicher auch jeder andere. ;)


    Stefan