Beiträge von buzz-dee

    Moin Freunde der Heimautomation!


    Ich hänge meinen Beitrag mal hier an, weil es thematisch ganz gut passt.


    Ich nutze auf meiner Homebridge das Plugin homebridge-fritz-platform.

    Gestern wurde bei mir zu Hause der Stromzähler ausgetauscht. Also waren alle Geräte für ein paar Minuten komplett aus.

    Nach dem alles wieder hochgefahren war stellte ich fest, dass die Homebridge beim Starvorgang hängengeblieben ist. Der Grund war, dass der Raspi so schnell die Arbeit aufgenommen hatte, dass die FRITZ!Box noch nicht ansprechbar war, was wiederum dazu führte dass das Plugin hängen blieb und den Start der ganzen Homebridge verhinderte.


    Also musste eine Lösung her. Ziel war es, den Start von Homebridge so lange zu verzögern, bis die FRITZ!Box erreichbar ist.

    Eine generelle zeitliche Startverzögerung wäre zielführend, aber nicht elegant genug weil sie auch jeden Neustart der Homebridge um die gewählte Zeit verzögert. Ein


    Code
    After=xxxxxxx.target


    würde auch nichts bringen, da die Abhängigkeit ja außerhalb des raspi besteht.

    Also hab ich mich im Internet auf die Suche gemacht und bin auf folgendes gestoßen:


    Wenn man in der Datei /usr/lib/systemd/system/homebridge.service den Befehl


    Code
    /bin/sh -c 'while ! ping -c1 192.168.178.1; do sleep 1; done;'


    Unter


    Code
    [Service]
    ExecStartPre=


    an die vorhandenen Befehle anfügt (Leerzeichen nicht vergessen, IP Adresse auf die eigenen Gegebenheiten anpassen), wird der Startbefehl für die Homebridge erst dann ausgelöst, wenn die FRITZ!Box auf ein „Ping“ reagiert hat.


    Damit hätte ich mich zufrieden geben können. Da ich meine Homebridge aber über das apt repository installiert habe und darüber auch die Updates einspiele, hätte meine Änderung nur bis zum nächsten Update der Homebridge bestand.

    Glücklicherweise bietet Linux einen sehr eleganten Weg das zu umgehen.


    Man legt unter /etc/systemd/system ein neues Verzeichnis an nach dem Schema <Name des Service>.service.d

    In meinem Fall also /etc/systemd/system/homebridge.service.d/


    In diesem Verzeichnis erstellt man eine neue Datei mit der Endung .conf (der Name selbst ist frei wählbar)


    Dort hinein schreibt man nun alles was man an Konfiguration für den Service zusätzlich braucht, und zwar nach dem gleichen Prinzip wie die Service Dateien selbst aufgebaut sind.

    In meiner Datei stehen nur zwei Zeilen:


    Code
    [Service]
    ExecStartPre=/bin/sh -c 'while ! ping -c1 192.168.178.1; do sleep 1; done;'


    Danach abspeichern und mit


    Code
    sudo systemctl daemon-reload
    sudo systemctl restart homebridge oder sudo hb-service restart homebridge


    alles aktivieren. Beim Start der Homebridge wird ab sofort alles aus der homebridge.service Datei abgearbeitet und zusätzlich alles aus der selbst erstellten .conf Datei. Diese Ergänzungen bleiben auch bei einem „apt update“ erhalten. Um alles rückgängig zu machen reicht es, die .conf Datei zu löschen und die Hombridge startet wieder mit den Einstellungen aus der homebridge.service Datei.



    Im Ergebnis wartet der Homebridge Service nach einem Stromausfall nun brav ab bis der Router wieder erreichbar ist, und wenn ich die Homebride im laufenden Betrieb neu starten muss hab ich nur die Verzögerung von „einem einzigen Ping“ (Wassily ;) ).

    Homebridge wir inzwischen auch über repositories gepflegt.

    Die apt Version 1.1.6. ist das aktuellste Paket. Damit läuft deine homebridge auf Version 1.7.0. und config-ui-x auf 4.55.1

    Beim durchführen des „Updates“ wird automatisch die neuestes 18er Version von Node installiert. Ich denke dass das daran liegt, dass auf manchen Systemen Node20 wegen fehlender dependencies nicht läuft und zu einer nicht funktionierenden homebridge führen würde.


    Du kannst aber problemlos nach dem „sudo apt-get upgrade“ mit „sudo hb-service update-node“ wieder auf Version 20 zurück (wenn die vorher schon bei dir lief)

    Vielen Dank, wenn ich jetzt wüsste welches password der user homebridge hat, könnte ich ich mich als 'homebridge' im terminal anmelden und das script zuweisen.

    dazu musst du nicht als “homebridge” angemeldet sein. Du kannst den Befehl einfach im Terminal eingeben in dem du mit deinem User Namen angemeldet bist und dem Skript den Besitzer homebridge zuweisen


    Code
    sudo chown homebridge:homebridge /usr/local/bin/play.sh

    Ich hatte ein ähnliches Problem als ich vorletzte Woche meinen Raspi neu aufsetzen musste:


    Meine Skripte die ich mit cmdtrigger aufrufe enthielten “sudo”

    Dazu ist der User “homebridge” (unter diesem User läuft meine homebridge) bei mir aber nicht berechtigt gewesen.

    Also entweder sudo weglassen (wenn das Skript ohne auskommt) oder dem User homebridge sudo Rechte einräumen.


    Dein Skript gehört übrigens dem User ROOT. Möglicherweise kann es auch deswegen nicht von der homebridge gestartet werden?


    Code
    sudo chown $USER:$GROUPS /usr/local/bin/play.sh

    Damit setzt du den Besitzer des Skripts auf den User/Benutzergruppe mit dem du gerade im Terminal angemeldet bist.

    Spy

    Danke für den Tipp. Das hat die Lösung gebracht!

    Für alle die Ihr Node über den Versionsmanager "n" installieren:

    Ihr könnt euch die Änderung der config.txt auch sparen und "n" anweisen die 32bit Variante eurer gewünschten Node Version zu installieren.


    mit:


    Code
    sudo n -a armv7l 18.16.0


    bekommt ihr die aktuelle LTS Version von Node für den Pi 4. Ihr könnt in dem Befehl "18.16.0" mit der von euch gewünschten Version ersetzen.

    Ich konnte bis jetzt auch nichts dazu finden habe das Update auf 18.16.0 mehrfach versucht. Bis jetzt ohne Erfolg.


    Die Installation schlägt bei mir fehl, da scheint irgendwas mit dem Installationsskript schief zu laufen 🙄



    Danach startet die homebridge nicht mehr (Überraschung) bis ich auf 18.15.0 zurück gewechselt bin.

    In den Raspi habe ich noch keine Geräte eingebunden. Dennoch findet Home die Bridge nicht…

    Die homebridge selber musst du doch nicht einbinden, oder verstehe ich da was falsch? Du hast bis jetzt nur die homebridge eingerichtet? Ohne Plugins? Und noch keine Geräte?


    Sobald du die ersten Geräte in der homebridge hast, werden die automatisch an Home weitergereicht.

    Ich habe eine ganz ähnliche Situation bei mir. Die Garage ist ca. 70m weit vom eigentlichen Haus entfernt und Teil eines anderen Gebäudes. Auch ich suche schon länger nach einer Möglichkeit die Garage in Apple Home zu integrieren. LAN Kabel verlegen ist keine Option. Ich habe mich auf Grund eurer Vorschläge jetzt für die Powerline Variante entschieden. Leider ohne Erfolg. Es kommt keine Verbindung zustande. Als nächstes werde ich es wohl tatsächlich mit einem LAN-LAN VPN über LTE versuchen.

    sschuste


    Folgendes kommt!

    Code
    -rw-r--r-- 1 root root 34574 Dec 24 13:33 /usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js

    Kann es sein dass es nicht laufen will weil die Datei dem User root gehört?

    Bei mir gehört sie dem User Pi (das ist auch der User unter dem die homebridge bei mir angelegt ist )


    Das würde bei dir ja auch erklären warum der Fehler „Permission denied“ kommt beim Versuch config-ui-x zu starten

    Habe auf 6.0.5 gewechselt und die FritzBox und den repeater auf „active“: true, gesetzt.

    Die Warnung ist jetzt weg, allerdings läuft das log mit Fehlern für den repeater voll und ich kann die Optionen (2,4ghz 5ghz und led Status) nicht mehr schalten. Der Zugriff wird verweigert weil wohl ein Benutzername fehlt (den es auf dem repeater aber nicht gibt)


    Moinsen,


    Ich bekomme im Log folgenden Warnung:


    Code
    [21.6.2021, 14:27:07] [FritzPlatform] WARNING: There is no master router configured! Please check if "master" is enabled in config.
    [21.6.2021, 14:27:07] Loading 1 accessories..

    Meine config sieht so aus:


    Das Masterattribut ist also für die FritzBox gesetzt und für den repeater nicht, von daher verstehe ich die Warnung nicht. Kann mir jemand bitte auf die Sprünge helfen?

    Von meinen 6 Hompods (5mal mini und einmal OG) sind 4 auf 14.5 und bei 2 (minis) steht seit mehreren Stunden "laden" und das Rädchen dreht. Es scheint, als ob da nicht mehr wirklich was geht...


    Will ja nicht neustarten/zurücksetzen, wenn die minis das Softwareupdate am laden sind... Auf der anderen Seite haben sich die zwei vielleicht aufgehängt?


    Jemand dasselbe Problem? Was wird empfohlen?

    Das gleiche hatte ich bei einem meiner Minis auch, nach zwei Tagen hab ich die Geduld verloren und ihn zurückgesetzt. Jetzt ist alles wieder normal. Der Mini ist auf 14.5 geupdated und funktioniert tadellos.

    1. Es geht aber nicht um die HK Firmware. Die kann beim PM nämlich nicht die Leistung übermitteln.
    2. Und Neustarten soll auch nichts. Ich will lediglich im HK mitbekommen wenn der Shelly offline ist.

    Aber Hauptsache was geschrieben, oder was... ?

    Ich stell meine Frage nochmal anders, vielleicht kannst du sie beantworten und man bekommt eine bessere Idee was du vor hast:


    WIE geht denn dein Shelly offline? Also was führt denn dazu dass dein Shelly stromlos wird?

    Der Shelly ist ja gerade dafür konzipiert dauerhaft eingeschaltet zu sein um dann eben über WLAN Befehle zum an und ausschalten des daran abgeschlossenen Geräts zu empfangenen und umzusetzen?