Beiträge von sschuste

    auf gut deutsch: wenn ich das plugin installiere, haut es mir alle geräte durcheinander bzw. raus und ich muss diese neu hinzufügen?

    oder verstehe ich da etwas falsch?

    Wenn du das homebridge-alexa schon vor dem 22. März genutzt hast: ja. Danach kam eine neue Version, und man musste alles neu einrichten. Wenn du jetzt erst damit startest, kannst du das ignorieren.


    Stefan

    Und danach dann einfach plugin installieren und fertig?

    Das Plugin verwendet gatttool. Ohne geht es nicht. Gib mal auf der Shell gatttool ein und wenn da ein Ergebnis kommt, dann wird es wohl funktionieren.


    Bei mir hat es auf Anhieb geklappt.


    Stefan

    Bin echt hin und hergerissen. Möchte die aktuelle node installiert haben, obwohl mit der 8.irgendwas bei mir alles stabil läuft. Jetzt muss ich mir echt überlegen ob ich das laufende System doch schon etwas umfangreicher anpasse nur damit node 10.x läuft. Wovon ich aktuell keinen Vorteil hätte, den ich verstehe.

    Eben. Lass es so, wie es ist. Ich wollte halt nicht auf node 8 downgraden, daher ist mein Beitrag, für diejenigen, die es auch nicht wollen. Solange du keinen wirklich triftigen Grund hast, ein Upgrade zu machen, mach es auch nicht. So etwas endet leicht in schwerem Frust.

    Ich habe das einfach erst auf meinem Live-System gemacht und dann auf dem neuen Raspi 4. Ich habe nur Node 10.16.2 und Node 10.16.3 verwendet. Das kleine Update hat den Hack schon gestört und es hat ein Weilchen gedauert, bis ich darauf kam, dass ich ja erneut setcap cap_net_raw+eip $(eval readlink -f `which node`) ausführen muss.


    Performance-Unterschiede kann ich nicht feststellen. Eine meiner Pflanzen steht zu weit weg, ich hab sie für den Test gleich neben den Raspi gestellt, aber das ist eine andere Geschichte.

    So, ich habe das erneut zum Laufen bekommen, aber es ist tatsächlich eine arge Bastelei. Komischerweise wurde plötzlich keine Werte mehr angezeigt und gleichzeitig konnte auch die Flower Care-App sich auf einmal nicht mehr mit den Sensoren verbinden. Ich musste meinen zwei Sensoren die Batterie entnehmen und neu einsetzen, damit die App sich wieder verbinden konnte. Wie das zustande kommt: keine Ahnung. Weiter beobachten.

    homebridge-mi-flower-care unter Node 10.16.3

    Das Problem liegt im Modul bluetooth-hci-socket. Darin befindet sich irgendein Bug, der den Betrieb unter Node 10 unmöglich macht. Das hat irgendwer repariert und im npmjs-Repository hinterlegt. Der Trick besteht nun darin, dieses Modul zu installieren und homebridge-mi-flower-care unterzuschieben.


    Zuerst muss der ganze Bluetooth-Kram auf den Raspi installiert werden. Ich schätze mal, das hat schon jeder getan, aber der Ordnung halber hier nochmal:

    sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin

    Es schadet nicht, das Bluetooth-Zeugs noch mal zu installieren, auch wenn es schon drauf ist.


    Den Rest der Installation habe ich als root vorgenommen.

    sudo su -


    Installation der verbesserten Module

    npm install -g --unsafe-perm @abandonware/bluetooth-hci-socket

    npm install -g --unsafe-perm @abandonware/noble


    Auch hier wird der Bildschirm mit Fehlermeldungen und Warnungen überschwemmt, aber jeweils am Ende sieht man, dass was installiert wurde.


    homebridge-mi-flower-care mal anders installieren

    git clone https://github.com/honkmaster/homebridge-mi-flower-care.git

    npm install -g --unsafe-perm ./homebridge-mi-flower-care


    Man beachte bitte den ./ bei der Installation.


    Starten der Bastelarbeiten

    rm -rf /usr/local/lib/node_modules/homebridge-mi-flower-care

    cp -av homebridge-mi-flower-care/ /usr/local/lib/node_modules/


    Während der Laie ungerührt kopiert und pastet, staunt der Fachmann. Erst habe ich mit npm das Plugin installiert, dann mit rm -rf wieder gelöscht und dann manuell mit cp -av wieder hinkopiert. Ich werde zu diesem Vorgang keine Fragen beantworten, weil ich ihn selber nicht verstehe. Aber ohne ging's nicht.


    Da homebridge-mi-flower-care die falsche noble- und bluetooth-hci-socket-Version mitinstalliert hat und diese nutzen will, schiebe ich ihr jetzt die verbesserten Versionen unter:


    cd /usr/local/lib/node_modules/homebridge-mi-flower-care/node_modules/

    rm -rf bluetooth-hci-socket noble

    ln -s ../../@abandonware/noble/ .

    ln -s ../../@abandonware/bluetooth-hci-socket/ .


    Und ganz zum Schluss:

    setcap cap_net_raw+eip $(eval readlink -f `which node`)


    Danach kann man den root-Modus wieder verlassen mit

    exit


    Nun konfiguriert man config.json wie hier beschrieben:

    Code
    1. {
    2. "accessory": "mi-flower-care",
    3. "name": "Golden cane palm",
    4. "deviceId": "AA:BB:CC:DD:EE:FF",
    5. "interval": 300
    6. }

    Die deviceId findet man, indem man sudo hcitool lescan eingibt. Irgendwann wird dann auch die Adresse des Flower Care-Sensors ausgegeben.


    Und dann Homebridge restarten. Mein Log zeigt das folgende:

    Da sieht man meine beiden Planzen: eine Dracaena und eine Fittonia. Und die melden munter:


    Die erste Meldung kam übrigens fünf Minuten nach dem Start von Homebridge, also müsst ihr ein bisschen warten.


    Noch mal: das ist alles fiese Bastelei. Ich bin sicher, dass mir bei einem Update von homebridge-mi-flower-care alles um die Ohren fliegt. Und nach einem Update von node muss der Befehl sudo setcap cap_net_raw+eip $(eval readlink -f `which node`) wieder eingegeben werden.


    Ach ja: das läuft bei mir sowohl auf einem Raspi 3 als auch auf einem Raspi 4.

    Stefan

    Gibt es sowas, oder hat es bewusst einen grund, warum es das nicht gibt?

    Es gibt auf Linux- oder Unix-Systemen nichts, was es nicht geben soll. Das kann man mit sed (kaputt) machen. Also sed -i 's/SUCHBEGRIFF/ERSETZBEGRIFF' dateiname.


    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin No/' /etc/sshd/sshd_config


    Zitat von vgnsxe

    Moechte ich in diesem File die Zeile: #PermitRootLogin aendern in PermitRootLogin Yes aendern, dann muss ich manuell dorthin navigieren und die Aenderungen vornehmen.

    Möchtest du nicht.


    Stefan

    So ergab das folgende Meldung:

    useradd: Gruppe »bluetooth« existiert nicht.

    useradd: Gruppe »gpio« existiert nicht.


    Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig? Wenn ja, wie kann ich sie anlegen?

    Lass sie raus. Sie haben auf Raspberian eine Bedeutung, unter OSMC offenbar nicht. Alternativ könntest du die Gruppen auch anlegen, aber das wird keine weiteren Auswirkungen haben, weder positive noch negative: groupadd bluetooth gpio. Unter Raspberian sind der Gruppe verschiedene Ausführungsrechte von bestimmten Programmen zugeordnet. User, die beispielsweise nicht in der Gruppe bluetooth sind, können dann nicht auf Bluetooth-Programme und -Funktionen zugreifen. Das wird unter OSMC wohl anders gehandhabt und daher spielen wahrscheinlich alle Gruppen keine Rolle.


    Ich nehme an, dass bei dir auch ein einfaches sudo useradd -m -c "Homebridge Service" -s /bin/bash homebridge ausreicht. Aber ich kenne OSMC nicht und kannte es auch nicht bis vor wenigen Minuten.


    Deine Zeile ist eher eine Alternative fuer die, die ein weniger geschuetztes System bevorzugen und mehr Rechte haben wollen. Zudem wird dieser Befehl in der Datei /etc/sudoers.d/homebridge eingetragen und nicht einfach ins Terminal kopiert

    Das wird gelegentlich falsch gemacht, was vor allem bedeutet: die Anleitung muss an dieser Stelle einfach deutlicher werden.


    Aug 18 15:36:42 OSMC homebridge[2848]: Error: EACCES: permission denied, mkdir '/var/homebridge/persist'

    Wie schon vgnsxe schreibt: hier fehlen wohl die richtigen Rechte für /var/homebridge.


    Stefan

    Ich bräuchte zumindest mal ein Log, das ich lesen kann. So hintereinanderweg in eine Zeile steht das Log ja nicht auf deinem Bildschirm. Wo sind denn die Zeilenumbrüche?

    „Fehler: Aug 15 18:52:04 homebridge-Pi4 systemd[1]: homebridge.service: Failed with result 'exit-code“

    Dieser Fehler steht am Anfang des Logs, nicht wahr?


    Hier wird Homebridge gestoppt. Man erkennt das ganz gut an shutting down Homebridge... und vor allem an Stopping Node.js HomeKit Server...

    Code
    1. Aug 17 22:53:49 homebridge-Pi4 homebridge[420]: [2019-8-17 22:53:49] Got SIGTERM, shutting down Homebridge...
    2. Aug 17 22:53:49 homebridge-Pi4 systemd[1]: Stopping Node.js HomeKit Server...
    3. Aug 17 22:53:49 homebridge-Pi4 homebridge[420]: [2019-8-17 22:53:49] [Hub-Wohnzimmer] INFO - shutdown
    4. Aug 17 22:53:54 homebridge-Pi4 systemd[1]: homebridge.service: Main process exited, code=exited, status=143/n/a
    5. Aug 17 22:53:54 homebridge-Pi4 systemd[1]: homebridge.service: Failed with result 'exit-code'.
    6. Aug 17 22:53:54 homebridge-Pi4 systemd[1]: Stopped Node.js HomeKit Server.

    Dann steht da noch eine Menge anderer Krempel, der zum Stoppen gehört. Und ja, da ist eindeutig eine Fehlermeldung zu sehen, nämlich die berühmte Falschmeldung homebridge.service: Failed with result 'exit-code'. Hier erwartet das Betriebssystem einen exit-code von 15, damit es weiß, dass alles seinen richtigen Weg genommen hat, bekommt aber dummerweise 143 geliefert. Steht eine Zeile dadrüber.


    Trotzdem wurde Homebridge gestoppt (Stopped Node.js HomeKit Server). Ich habe keine Ahnung, ob der falsche exit-code 143 von node kommt oder von Javascript oder von der Homebridge: Fakt ist, dass man das ignorieren kann. Man kann den Fehler auch unterdrücken, dann taucht er nicht mehr auf, und wie das geht, habe ich hier im angehängten PDF auf Seite 17 beschrieben.


    Dann kommt was Merkwürdiges, das ich noch nicht analysiert habe. Es tritt bei mir nur auf meinem Raspi 4 mit dem Betriebssystem Raspberian Buster auf. Den habe ich erst seit gestern, und erst heute morgen habe ich ihn getestet, und ich weiß nicht mal, was mir das sagen soll.

    Code
    1. Aug 17 22:53:54 homebridge-Pi4 systemd[1]: homebridge.service: Found left-over process 3031 (homebridge-conf) in control group while starting unit. Ignoring.
    2. Aug 17 22:53:54 homebridge-Pi4 systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

    Gut, mein Raspi brannte nicht ab und verbreitete auch sonst keine schlechte Laune, von daher habe ich das erstmal ignoriert. Sieht trotzdem unschön aus.


    Und dann kommt der Start von Homebridge. Ja, genau, das erkennt man an Started Node.js HomeKit Server.

    Code
    1. Aug 17 22:53:54 homebridge-Pi4 systemd[1]: Started Node.js HomeKit Server.
    2. Aug 17 22:53:56 homebridge-Pi4 homebridge[29416]: [2019-8-17 22:53:56] Loaded config.json with 4 accessories and 12 platforms.
    3. Aug 17 22:53:56 homebridge-Pi4 homebridge[29416]: [2019-8-17 22:53:56] ---
    4. Aug 17 22:53:56 homebridge-Pi4 homebridge[29416]: [2019-8-17 22:53:56] Loaded plugin: homebridge-camera-ffmpeg

    Und hier taucht ja kein weiterer Fehler mehr auf. Und das ist der wesentliche Punkt: kein Fehler nach dem Starten von Homebridge zaubert zumindest immer mir ein Lächeln ins Gesicht. Du tust dir gut, indem du einfach das gleiche tust ;)


    Stefan

    ich wollte natürlich die datein in /var/homebridge kopieren. aber da erscheint das gleiche.

    Ich nehme an, du machst das als User pi. Der darf nicht /var/homebridge schreiben.


    Entweder kopierst du nach /home/pi oder du änderst die Rechte von /var/homebridge (das bedarf ein paar Überlegungen, sonst killst du deine homebridge). Oder du du nutzt als User homebridge für sftp. (recommended)


    Stefan

    ich kann nichts auf den Pi kopieren

    Du möchtest nach /media kopieren, aber hast dort keine Schreibrechte für den User öhmWieHießDerGleich?. Entweder verschaffst du dem User öhmWieHießDerGleich? Schreibrechte mit


    sudo chown öhmWieHießDerGleich? /media, was ich nicht sonderlich gut finde, aber immerhin eine Lösung ist, oder du schreibst die Datei dorthin, wo öhmWieHießDerGleich? Schreibrechte hat, beispielsweise nach /home/öhmWieHießDerGleich?.


    Stefan