Beiträge von sschuste

    Besteht auch die Möglichkeit das ganze über Termius zu machen?

    Ja. Wenn du das Gefummel vorziehen möchtest :) Ok, das ist wahrscheinlich nur bei mir Gefummel, weil ich das auf einem iPhone machen müsste.


    Wie der Fehler behoben wird, hat Patrick_ beschrieben. Es spielt allerdings keine Rolle, ob du schon ein neues Image installiert hast oder nicht. Mach's einfach. Beim nächsten Login wirst du dann was gefragt, was du mit yes beantworten möchtest.


    Das gleiche Problem könnte bei Termius übrigens ganz genauso gut auftreten. Es handelt sich dabei um einen Warnhinweis des Programms ssh, und das würde Termius ja ebenfalls benutzen.


    Wir kommen voran.

    So wird's gemacht:

    • Auf dem MacBook das Terminal-Programm öffnen.
    • Dort auf den Raspi einloggen mit ssh [email protected], wobei du 192.168.1.22 mit der IP-Adresse deines Raspi ersetzt.
    • Auf dem Raspi eingeben: cd /var/lib/homebridge && sudo tar cvf /tmp/backups.tar backups/*. Eine Liste von Dateien sollte im Terminalfenster dargestellt werden.
    • Vom Raspi ausloggen mit exit. Damit kehrst du auf deinen Mac zurück.
    • Den Befehl cd && scp [email protected]:/tmp/backups.tar Desktop eingeben, wobei du 192.168.1.22 mit der IP-Adresse deines Raspi ersetzt.

    Auf deinem Mac-Desktop sollte nun eine Datei namens backups.tar aufgetaucht sein. Diese doppelt anklicken, das erzeugt einen Ordner namens backups.


    Wenn du den Ordner backups öffnest, sollte darin ein Ordner namens instance-backups zu finden sein. Öffnest du den, sollten sich darin mehrere Dateien mit Namen wie homebridge-backup-CC223DE3CE30.1756874252826.tar.gz befinden. Die Datei mit der höchsten Nummer (1756874252826) ist das aktuellste Backup. Damit hast du das Backup von deinem Raspi auf den Mac übertragen.


    Ich habe diese Anleitung aus dem Kopf geschrieben. Sie kann Fehler enthalten. Falls du auf Probleme stößt, dann poste etwaige Fehlermeldungen und wir sehen dann weiter.

    Zunächst musst du das Backup auf deinen Rechner schaffen. Wie das funktioniert, hängt davon ab, was du für einen Rechner hast - ist's vielleicht ein Mac? Kannst du das alleine?


    Dann muss du dir überlegen, ob auf deinem Raspi auch noch andere Smarthome- oder Datenbank- oder Server-Software installiert ist. Hat dein Raspi nur die Homebridge betrieben, dann wird's einfach, wenn nicht, dann wird's schwierigaufwändig.


    Empfehlung: nimm eine neue SD-Card.


    Dann machst du das hier:

    Getting Started
    Official Homebridge Raspberry Pi Image based on Raspberry Pi OS Lite. - homebridge/homebridge-raspbian-image
    github.com

    aber nur die Schritte 1-3. Du willst keine neue Homebridge einrichten, sondern deine alte weiterverwenden. Schritt 4 wird Entsetzen, Leid und Trauer in dein Leben bringen, also ignorieren. Bei der Gelegenheit ignorierst du auch gleich Schritt 5.


    Was du überhaupt nicht machst, niemals, ist auf deinem iPhone herumfummeln. Du löscht dort nicht die vorhandene Homebridge.


    Dann loggst du dich in deine neue Homebridge ein und spielst das Backup ein. Das stellt alles wieder her, wie es war und dein iPhone wird nicht bemerken, dass du den Unterbau neu geschaffen hast.

    Meine Empfehlung: alles neu aufsetzten. Der Tag kommt sowieso. Ich habe vor dem gleichen Problem gestanden und habe die kaputte Homebridge nicht reparieren können. Ich empfehle darüber hinaus, die Neuinstallation auf einer neuen SD-Card vorzunehmen.


    könnte ich zurück auf eine alte node Version?

    Wäre einfacher um ein Backup zu machen

    Wäre es nicht, weil das Backup mit hoher Wahrscheinlichkeit schon existiert. Die Homebridge macht es automatisch.


    Die Frage ist nur, wo es sich befindet. Meist liegt es /var/lib/homebridge/backups oder /var/homebridge/backups. Das hängt davon ab, wie die Homebridge mal installiert wurde. Du kannst es finden mit dem Befehl:


    sudo find / -name backups


    Was kommt dabei heraus?

    Du kannst den Abwesenheitsmodus nicht manuell aktivieren. Du brauchst einen echten Schalter. Entweder einen virtuellen, falls du eine Homebridge einsetzt, oder du koppelst die Cam mit einem vorhandenen Gerät (sowas wie: "wenn die Nachtischlampe ausgeschaltet wird, schalte die Cam ein").

    Neben deinem Bosch-Konstrukt werden bei deiner Einstellung mit einem "alle Lichter an" eben auch die Smartplugs mit gesteuert -sind ja auch "Lichter" für Siri. Würdest du den Gerätetyp auf "Steckdose" oder "Ventilator" ändern wäre dem nicht so.

    Doch, dann wäre dem auch so. Zwar würden die Smartplugs nicht auf Siris "Licht an" reagieren, wenn sie "Steckdose" oder "Ventilator" sind, aber das Bosch-Dings würde auf Siri reagieren. Und da das Bosch-Dings dann per Automation die Smartplugs triggert, ist es wurscht, welchen Gerätetyp die Plugs haben. HomeKit sagt dann: "verehrte Plugs, geht an, aber nicht weil mir das Siri sagt, sondern weil das eine Automation so will".


    Das lässt sich nur lösen, wenn man dem Bosch-Dings abgewöhnen kann, "Licht" zu sein, aber das scheint ja nicht zu gehen.


    Smart762 Deine Lösung mit dem Bosch-Schalter kann nur 99%.

    Das sieht ganz danach aus, als liefe die Homebridge. Was bedeutet in deiner Beschreibung der halbe Satz "komme ich nicht mehr auf meine Homebridge"? Funktionieren die Geräte der Homebridge in der Home-App?


    Zeigt tail -f /var/lib/homebridge/homebridge.log irgendetwas Erhellendes an?

    Portrange von 0 bis 1024 sind in linux privileged.

    Um ganz genau zu sein: es sind die Ports 0 bis 1023, und sie sind auch nicht unter Linux privilegiert, sondern weil es TCP/UDP so spezifiziert. Soll heißen: das gilt für alle internetfähigen Rechner mit welchem Betriebssystem auch immer.


    Wer dieser gepflegten Konversation nicht folgen kann, weil er oder sie nur Bahnhof versteht, mache sich bitte nichts daraus. Nur in den allerseltensten Fällen in dieses Wissen für die Planung und den Betrieb eines Smarthomes notwendig. Wer aber nächstes Wochenende unbedingt total abgefahrene Serversoftware programmieren möchte, sollte es zumindest im Hinterkopf behalten.

    Deine Fehlermeldung zeigt, dass das Skript /var/lib/homebridge/status.sh nicht gefunden werden kann. Dein ls -l zeigt, dass es /volume1/homebridge/status.sh heißt.


    Passe die JSON-Konfiguration deiner Homebridge entsprechend an und ersetze alle /var/lib/homebridge/status.sh durch /volume1/homebridge/status.sh, und tue das entsprechend auch für /var/lib/homebridge/switch.sh. Danach die Homebridge neustarten.

    Für homebridge-hue habe ich vorhins einen PR erstellt.

    Na, ob sich das lohnt. Das Plugin ist eigentlich deprecated und ersetzt worden durch homebridge-hue2. Nur ich habe es noch nicht ersetzt.

    Das homebridge-people ist ja richtig veraltet

    Das ist wahr. Ich hab's irgendwann in den 70ern des 19. Jahrhunderts installiert, aber verwende es seit langem nicht mehr. Ich wollte es immer mal nach"programmieren" in Node Red, konnte mich aber noch nicht dazu aufraffen. Wahrscheinlich fliegt's mit Homebridge 2 eh auf die Nase. Ich warte die Release von Homebridge 2 ab, um dann mal aufzuräumen.

    Habt ihr auch das Gefühl, dass die Plugins zuviel Speicher belegen?

    Nein. Aber ich habe du.


    root@homepi:/homebridge/node_modules# du -sh *

    11M @homebridge-plugins

    3.2M @hujohner

    18M homebridge

    13M homebridge-calendar

    48K homebridge-cmdswitch2

    488K homebridge-cmdtrigger

    132K homebridge-delay-switch

    137M homebridge-hue

    3.4M homebridge-laundrify-official

    12M homebridge-people

    656K homebridge-star-projector

    165M homebridge-weather-plus

    6.0M homebridge-xiaomi-fan

    11M homebridge-zp


    Sagt nicht allzuviel aus, oder?

    Ist das überhaupt ein Problem, dass auf dem Bildschirm ist?

    Auf meinem jedenfalls nicht.

    Muss noch eine Alternativ Lösung für eine Lodash Funktion finden, dann kann man lodash mit 1,4 mb entfernen.

    Ist auch nicht auf meinem Bildschirm.

    Es macht ja auf diesen Smart Displays ja nen Unterschied, wenn ich nur 2 GB habe um alles drauf zu installieren.

    Wovon sprichst du da? Ich kann mir unter "Smart Display" nichts Brauchbares vorstellen.

    Da wir aus Gründen, die hier nicht diskutiert werden sollen, nicht wissen, was deine vorhandenen Pfade und Konfigurationen sind, wird es uns schwer fallen, darauf eine Antwort zu geben. Zugegeben: wir sind nicht stolz drauf.


    Meine Empfehlung lautet: gib Geld. Investier in eine SD-Card, vielleicht mit 32GB. So eine würde ich nehmen, aber eine 16er reicht für die Homebridge eigentlich auch. Dann mache mit deinem jetzigen UI ein Backup deiner Homebridge (Einstellungen - Backup & Wiederherstellen - Jetzt Backup erstellen). Danach fährst du den Raspi runter, nimmst die SD-Card heraus und legst sie an einen sicheren Ort.


    Jetzt kommt die neue SD-Card ins Spiel. Installiere darauf die Homebridge komplett neu, indem du dieser Anleitung folgst: https://github.com/homebridge/…mage/wiki/Getting-Started


    Folge dort den Schritte 1-3. Die Schritte 4 und 5 führst du nicht aus. Statt Schritt 4 machst du eine Wiederherstellung mit dem Backup, dass du ein ein paar Minuten vorher gemacht hast. Schritt 5 entfällt dann völlig.


    In der Theorie stellt das deine Homebridge wieder so her, wie sie vorher war. Für HomeKit seht das so aus wie vorher. In der Home-App sollten sofort alle Geräte, Szenen und Automationen genauso verfügbar sein wie zuvor. Für HomeKit ist es so, als hättest du deine Homebridge für einen gewissen Zeitraum ausgeschaltet und dann wieder eingeschaltet.


    Auf deinem iPhone machst du nichts. Komm bloß nicht auf die Idee, dort die vorhandene Homebridge zu löschen. Das mag dir vielleicht klar sein, aber ich sag's nur zur Vorsicht.


    Falls es Probleme gibt, hast du deine jetzige Installation auf der SD-Card, die du zur Seite gelegt hast. Die gesamte Prozedur sollte innerhalb einer Stunde erledigt sein. Ich halte das für die sauberste Lösung, bei der du dir sicher sein kannst, dass sie auch in Zukunft funktioniert. Ich habe es selber so gemacht und es hat bei mir gut funktioniert.

    Wenn deine Homebridge mit der gleichen Pin und überhaupt mit der gleichen Konfiguration wie vorher läuft, dann musst du nichts weiter unternehmen. Für HomeKit wäre es dann genauso, als hättest du deine Homebridge für eine Weile aus- und dann wieder eingeschaltet. Alle an die Homebridge angeschlossenen Geräte sind in einem solchen Fall sofort wieder ansprechbar. Ich weiß nicht, was jetzt bei dir anders ist als vorher.


    Den Trick, den du wahrscheinlich meinst, bezog sich auf das Einrichten einer ganz neuen Homebridge, aber das ist ja nicht das, was du eigentlich willst.

    Und zur Sicherheit noch mal mit curl bitte:

    curl http://192.168.178.14/tgi/control.tgi?p=l


    Ich schätze mal, da kommt dann das dabei heraus:

    <html>0 0 1 0</html>


    Falls wirklich das dabei herauskommt, dann füttern wir diesen Output an ein neues Skript, das wir einfach status.sh nennen. Das erstellst du genauso wie bereits das andere Skript:

    • Konsole der Weboberfläche der Homebridge öffnen.
    • Dort eingeben sudo nano status.sh. Dort den folgenden Code eingeben:
    Bash
    #!/bin/bash
    STRING=$(curl -s http://192.168.178.14/tgi/control.tgi?p=l)
    PORTS=$(echo $STRING | sed -e 's/<[^>]*>//g')
    STATE=$(echo $PORTS | cut -d " " -f $1)
    
    echo $STATE
    • Absichern mit control-x (oder strg-x), dann y, dann die Entertaste.
    • Eingeben: chmod +x status.sh
    • Jetzt muss die Plugin-Konfiguration geändert werden. Also in der Weboberfläche der Homebridge auf Plugins klicken, dann auf die drei überlanderliegenden Punkte des Plugins Homebridge Cmdswitch2, dort dann auf Einstellungen. Dann den dort vorhandenen JSON-Code durch das folgende ersetzen:
    • Speichern und Homebridge neu starten.

    Das sorgt dafür, dass die Anzeige in HomeKit dem Status deines Gerätes entspricht, auch wenn du es außerhalb von HomeKit schaltest. Das Plugin checkt jetzt alle 3 Sekunden ("interval": 3), wie der Status ist und setzt die Anzeige in der Home-App auf den richtigen Wert.


    Alles Theorie: ich habe ja keine Möglichkeit, das zu testen. Ich habe daher eine kleine Umgebung aufgebaut, die deine NetIO soweit simuliert, dass ich eine Antwort wie 0 1 0 0 bekomme. In der Simulation funktioniert es bestens.

    So, kommen wir zu Teil 3: das Homebridge-Plugin.

    • Logge dich auf der Weboberfläche der Homebridge ein.
    • Klicke links im Menu auf Plugins.
    • Gib im Suchfeld oben den Suchbegriff homebridge-cmdswitch2 ein. Das zu installierende Plugin wird angezeigt.
    • Klicke den nach unten zeigenden orangenfarbigen Pfeil. Das Plugin wird installiert und danach in der Liste deiner installierten Plugins angezeigt.
    • Klicke dort rechts unten auf die drei übereinanderliegen Punkte. Im darauf auftauchenden Menu klickst du auf Einstellungen. Ein leeres Eingabefenster öffnet sich. Dort fügst du die folgenden Zeilen ein:

    Achtung: ich habe mir alle Mühe gegeben, diesen JSON-Code richtig zu schreiben. Dieses Geflecht aus Klammern, Kommas und Anführungszeichen verzeiht keine Fehler. Du wirst es solange nicht speichern können, solange es nicht korrekt ist. Die Weboberfläche checkt den Code und speichert ihn nur, wenn er gut aussieht. Damit schützt die Weboberfläche die gesamte Homebridge. Wir hatten damals viel Spaß damit, als es noch keine Weboberfläche gab (ich weiß, Opa erzählt vom Gipskrieg).

    • Dann wollen wir mal: klicke auf Speichern. Wenn irgendwas nicht stimmt, taucht rechts unten im Browser ein rotes Warnfenster auf. Wenn's klappt, dann wirst du aufgefordert, die Homebridge neu zu starten.
    • Klicke auf Neustart.
    • Nimm dein iPhone, starte die Home-App und sieh mal, was du Hübsches im Standardraum vorfindest.

    Viel Spaß.