Bring's einfach um mit
rm -rf /home/pi/.npm/homebridge-harmonyhub
oder
sudo rm -rf /home/pi/.npm/homebridge-harmonyhub
Weg damit.
Stefan
Bring's einfach um mit
rm -rf /home/pi/.npm/homebridge-harmonyhub
oder
sudo rm -rf /home/pi/.npm/homebridge-harmonyhub
Weg damit.
Stefan
Theoretisch kann es auch noch ein /home/pi/node_modules geben. Plugins langen dort, wenn man ein sudo npm install homebridge-plugin eingibt anstatt eines sudo npm install -g homebridge-plugin.
Du kannst mal den Raspi durchsuchen mit:
sudo find / -name "*harmony*"
Stefan
![]()
Dann steht ja ruhigen Weihnachtstagen nichts mehr im Wege.
Gruß
Alles anzeigenLeider nein:
Kann es eigentlich sein, dass mehrere homebridge-Instanzen laufen ?
Könnte das homebridge deinstallieren, die beiden laufenden Plugins installieren und die jetzige Config.json einspielen.
Nur, wie kann ich sicher sein, dass das System alle node_modules-Verzeichnisse löscht und welches Installationsskript kann man für homebridge bedenkenlos nutzen ?
Lies das: https://smartapfel.de/homebridge/homebridge-installieren/
Mehrere Homebridge würden nicht starten können und mit einer Fehlermeldung abbrechen (EADDRINUSE, address in use).
Du kannst natürlich die Verzeichnisse /usr/lib/node_modules und /usr/local/lib/node_modules löschen und dann node neu installieren und danach homebridge. Das würde sicherlich auch helfen.
Achtung: diese Aktion lässt sich nicht rückgängig machen:
sudo rm -rf /usr/lib/node_modules
sudo rm -rf /usr/local/lib/node_modules
Oder eine Neuinstallation auf einer frischen SD-Card.
Stefan
Ich glaube, die langlebigste Linux-Schüssel, die ich je betrieben habe, hatte eine Uptime von 2000 Tagen. Das heißt, sie ist fast fünfeinhalb Jahre nicht neu gestartet worden. Natürlich ist es am einfachsten, die Kiste neu zu booten, um die darauf laufende Software neu zu starten ![]()
Stefan
Normalerweise wird nur ein einziges Verzeichnis angelegt.
Was ich nie getestet habe, ist den Pfad zu node_modules zu verbiegen. Vielleicht hilft dir das ja. Ich würde das als User root versuchen:
sudo su - (damit wirst du root)
export NODE_PATH=/usr/lib/node_modules (das setzt den Pfad zu den node_modules, bis root sich wieder ausloggt)
npm uninstall -g homebridge-harmony (hier den richtigen Pluginnamen angeben)
exit (root loggt sich wieder aus)
sudo systemctl restart homebridge (pi startet die homebridge)
Klappt das?
Stefan
Ich glaube eher, das liegt an den Plugins. Die Homebridge startet, aber das netatmo-Plugin scheint nicht zu gehen.
Stefan
Das ist einfach. Nach der Anleitung ist dem User homebridge der reboot nicht erlaubt. Trage hier ein:
sudo visudo -f /etc/sudoers.d/homebridge
homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node, /sbin/reboot
(einfach hinten anhängen, Vorsicht, das ist nur eine Zeile) und starte homebridge neu.
Stefan
pi@piVCCU:~ $ sudo systemd enable homebridge
Excess arguments.
Zehnmal gelesen und immer noch falsch. Es muss heißen:
sudo systemctl enable homebridge
Ich mach das hier immer aus dem Kopf, und dann passieren mir solche Fehler.
Das andere Problem ist ärgerlich. Die Plugins werden eigentlich nach /usr/local/lib/node_modules installiert. Bei dir sind aber auch welche in /usr/lib/node_modules. Das sollte nicht so sein, die Plugins sollten sich nur an einem Ort befinden.
Das Dumme ist, das node an beiden Stellen sucht und an beiden Stellen fündig wird. Beim Deinstallieren des Harmony-Plugins verschwindet das auch, nur nicht an beiden Stellen. Also wird es von der anderen Stelle geladen. Versuch mal folgendes:
(schwerer Vorschlaghammer raus, um die Fliege im Geschirrschrank zu erschlagen)
cd /usr/lib
sudo tar -cvf node_modules.tar node_modules/* && sudo rm -rf node_modules (schwere Action auf dem Bildschirm)
sudo systemctl restart homebridge; sudo journalctl -fau homebridge
Entweder zerfetzt das deine Homebridge oder es klappt. Möglicherweise musst du alle Plugins neu installieren.
Im Gegensatz zum Geschirrschrank kann man das auch wieder rückgängig machen:
cd /usr/lib
sudo tar -xvf node_modules.tar && sudo rm -f node_modules.tar
sudo systemctl restart homebridge; sudo journalctl -fau homebridge
Wenn aber funktioniert, dann noch schnell aufräumen:
sudo rm -f /usr/lib/node_modules.tar
Stefan
Bei mir wird das nach /var/log/syslog geloggt und /var/log/daemon.log.
Danke!
Ich hab nix gemacht!
Nein, das ist nicht normal. Du kannst es wahrscheinlich so lassen, aber es ist ziemlich unschön. Du hast völlig recht mit der Angst, 80% der Plugins zu löschen. Wäre ich an deiner Stelle, würde ich 100% der Plugins löschen und die, die ich benötige, neu installieren.
Stefan
Das sind sie.
Es gibt tatsächlich mehrere Möglichkeiten. Eine ist die, wie man es früher gemacht hat, per init. Du hast da ein Startscript liegen in /etc/init.d/homebridge, das mit dem Aufruf /etc/init.d/homebridge start oder ... stop oder ... status oder ... restart funktioniert. Es gibt nur einen einzigen Standard bei diesen Startscripten, nämlich keinen. Das Startscript, das man oben in deinem Beitrag sehen kann, hätte ich anders geschrieben, mein Kollege Ingo hätte es noch anders gemacht, und die drei Typen in Kansas, Taiwan und Wallawalla haben es anders gemacht. Von 150 weiteren Hansels ganz zu schweigen.
Eine andere Möglichkeit ist viel standardisierter und moderner, nämlich das Starten und Stoppen per systemd. Da wird kein Script aufgerufen, dass man so oder anders schreiben kann, sondern eine standardisierte Konfigurationsdatei geschrieben, und das Starten oder Stoppen übernimmt dann der Systemdienst systemd. Der macht dann das alles und man muss es nicht mehr selber scripten wie bei init. Zum systemd gehört auch das Programm journalctl.
Irgendein Dummchen hat sich dann aber leider gedacht, dass der systemd ja auch die Startscripte in /etc/init.d starten könnte, was eine saublöde Idee ist, und jetzt beginnt die Sache durcheinander zu kommen. Das ist bei dir der Fall, und es ist nicht deine Schuld, aber weil's gerade so schön unübersichtlich ist, schmierst du noch forever drauf, um mal richtig Randale zu machen.
Jetzt haben wir also ein schönes Auto mit drei Lenkrädern, die sich gegenseitig beeinflussen. Sieht zwar mordsmäßig aus, aber die Karre fährt leider nicht mehr dahin, wo wir hin wollen. Ich schlage vor, wir schrauben zwei Lenkräder wieder ab.
Ich empfehle den Start mit systemd. Du loggst dich jetzt als User pi ein und machst folgendes:
Alles irgendwie anhalten:
sudo systemctl stop homebridge
sudo /etc/init.d/homebridge stop
forever wegmachen:
sudo npm uninstall forever -g
Das init-startskript entfernen:
sudo mv /etc/init.d/homebridge . (der Punkt muss da ans Ende)
Eine systemd-Konfiguration erstellen:
sudo nano /etc/systemd/system/homebridge.service
Ein leerer Editor öffnet sich - hoffentlich. Dort einfügen:
[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target
[Service]
Type=simple
User=pi
ExecStart=/usr/local/bin/homebridge -I -U /home/pi/.homebridge
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
Alles anzeigen
Abspeichern und dann:
sudo systemctl daemon-reload
sudo systemd enable homebridge
Jetzt kommt der Augenblick der Wahrheit. Homebridge starten und gleichzeitig das Log anzeigen:
sudo systemctl restart homebridge; sudo journalctl -fau homebridge
Das sind zwei Befehle, die durch ein Semikolon getrennt sind. Man kann die auch einzeln und hintereinander eingeben. Die Anzeige des Logs wird mit ctrl-c abgebrochen.
Was passiert jetzt?
Stefan
Das weiß ich nicht. Ich setze nur eine Instanz bei mir ein. Ich kann mir nicht vorstellen, dass man mehrere Pins angeben kann. Ich glaube daher, dass jede Instanz ein eigenes alexa-homebridge benötigt.
Stefan
Hilft nur ein bisschen. Verändere die hosts-Datei, dass sie so aussieht:
sudo nano /etc/hosts
Zitat127.0.0.1 Homebridge piVCCU
Das macht schon mal einen Fehler weg. Allerdings bin ich der Ansicht, dass dein ganzes Startkonstrukt einer dringenden Überarbeitung bedarf. Ich helf dir. Lass mir bis morgen Zeit, ich bin etwas im Stress momentan.
Stefan
Danke für die Zusammenfassung ![]()
Ich brauche eine Fernbedienung, die Rolling Codes kann, weil ich damit meinen Philips Screeneo HDP2510 steuern könnte. Die Harmony-Datenbank enthält ihn zwar, aber funktioniert hat das nicht, was meinen Frustlevel extrem gehoben hat. Dazu kam die App, deren Bedienung ich überhaupt nicht kapiert habe. Seitdem verwende ich den Harmony Hub nur noch als Türstopper.
Der Preis des Neeo Brain ist allerdings völlig indiskutabel, auch wenn die behaupten, meinen Projektor steuern zu können.
Stefan
Meine gut funktionierende Konfiguration sieht so aus:
{
"bridge": {
"name": "Homebridge",
"username": "AB:12:3C:D4:EF:56",
"port": 51826,
"pin": "031-45-128"
},
"description": "Home Smart Home",
"platforms": {
"platform": "Alexa",
"name": "Alexa",
"username": "el presidente",
"password": "keineMachtDenDrögen",
"pin": "031-45-128"
}
}
Alles anzeigen
Die beiden Pins müssen die gleichen sein, ansonsten sieht das gut aus bei dir.
Bitte beachte, dass homebridge mit dem Parameter -I (großes i) gestartet werden muss, damit homebridge-alexa funktioniert.
Stefan
Nein, die Homebridge liegt bestimmt in /usr/local/bin/homebridge. Bitte zeige mir den Inhalt von /etc/hosts. Dein Pi heißt doch piVCCU, oder?
Wo liegt homebridge?
which homebridge
hosts-Datei anzeigen lassen:
cat /etc/hosts
Danke, Stefan
Was passiert, wenn du eingibst:
sudo /etc/init.d/homebridge start
Was passiert, wenn du eingibst:
sudo systemctl start homebridge
Du bist augenblicklich führend, was das Durcheinander von Start-Scripten und Systemen angeht. Von forever hab ich vorher nie gehört.
Stefan
Würde mich auch interessieren. Ich bekomme Homebridge einfach nicht zum laufen auf dem Raspberry Zero W.
Mich auch ![]()