Hallo, ich bin gerade dabei mehrer Instanzen auf zu bauen. Meine Frage wie regelt Ihr das mit der Autostart unter systemctl. Was schreibt Ihr dort rein? Will meine Instanz mit homebridge -U ~/.homebridge-aqara -P /home/pi/.homebridge-aqara/homebridge-mi-aqarastarten. Stehe gerade auf dem Schlauch.
Homebridge Mehrere Instanzen neue Option Selective load
-
-
Hallo, ich bin gerade dabei mehrer Instanzen auf zu bauen. Meine Frage wie regelt Ihr das mit der Autostart unter systemctl. Was schreibt Ihr dort rein? Will meine Instanz mit homebridge -U ~/.homebridge-aqara -P /home/pi/.homebridge-aqara/homebridge-mi-aqarastarten. Stehe gerade auf dem Schlauch.
-P ist doch der Pluginpath. Sollte sowas wie /usr/lib/node_modules oder /usr/local/lib/node_modules sein. Muss eigentlich überhaupt nicht gesetzt werden. Weglassen.
Reichen sollte homebridge -U ~/.homebridge-aqara. Das Verzeichnis, du hier angeben sollst, ist das, in dem die passende config.json liegt.
Stefan
-P ist doch der Pluginpath. Sollte sowas wie /usr/lib/node_modules oder /usr/local/lib/node_modules sein. Muss eigentlich überhaupt nicht gesetzt werden. Weglassen.
Reichen sollte homebridge -U ~/.homebridge-aqara. Das Verzeichnis, du hier angeben sollst, ist das, in dem die passende config.json liegt.
Stefan
Stimmt schon aber mit dem Zusatz kann ich Plugins laden die im entsprechenden Order liegen. So werden die nicht von allen Instanzen geladen. Wichtig wenn es ein PluGin mit Problemen gibt wie das yeelight plugin oder um Plugins zu testen.
Und eigentlich wollte ich wissen ich die Instanz in die autostart bekomme
Wenn es eine eigene systemd Instanz ist musst du denn Service Aktivieren dann startet er automatisch.
sudo systemctl enable homebridge-xxxx
danach
sudo systemctl start homebridge-xxxx
ZitatSo werden die nicht von allen Instanzen geladen. Wichtig wenn es ein PluGin mit Problemen gibt wie das yeelight plugin oder um Plugins zu testen.
Erklär das mal bitte genauer wie du da vorgehst. Danke.
Erklär das mal bitte genauer wie du da vorgehst. Danke.
Danke, also mit dem Zusatz -P /home/pi/.homebridge-aqara/pluginsstartest du zum Beispiel zusätzlich zu den in Homebridge installierten Plugins alle Plugins die in dem verlinkten Ordner liegen
Und wo ist dann der Vorteil beim yeelight Plugin? Ich frag deshalb da ich auch sämtliche yeelight Plugins ausprobiert habe aber keines von diesen ist in der Lage mit mehreren Instanzen zu arbeiten. Heißt sobald du die yeelight Instanz startest stoppen alle anderen mit einem Fehler.
Hat das mit dem Autostart jetzt funktioniert?
Und wo ist dann der Vorteil beim yeelight Plugin? Ich frag deshalb da ich auch sämtliche yeelight Plugins ausprobiert habe aber keines von diesen ist in der Lage mit mehreren Instanzen zu arbeiten. Heißt sobald du die yeelight Instanz startest stoppen alle anderen mit einem Fehler.
Hat das mit dem Autostart jetzt funktioniert?
Noch nicht probiert, wenn du das yeelight plugin in eine separate Instanz packst und dort eben in den Unterordner und es entsprechend startest, dann funktionieren auch die anderen Instanzen
Zitatdort eben in den Unterordner und es entsprechend startest, dann funktionieren auch die anderen Instanzen
Wir sprechen vom Ordner /usr/lib/node_modules bzw. /usr/local/lib/node_modules und homebridge Instanz als systemd service eingerichtet wie hier erklärt: Homebridge Instanzen anlegen?
Du erstellst wo genau diesen Unterordner und schiebst oder installierst dort dann das Plugin?
Wie sieht deine ExecStart in der Unit dann genau aus?
Wir sprechen vom Ordner /usr/lib/node_modules bzw. /usr/local/lib/node_modules und homebridge Instanz als systemd service eingerichtet wie hier erklärt: Homebridge Instanzen anlegen?
Du erstellst wo genau diesen Unterordner und schiebst oder installierst dort dann das Plugin?
Wie sieht deine ExecStart in der Unit dann genau aus?
ich verschiebe das Plugin in den Unterordner Plugin in der entsprechenden Homebridge Instanz und hänge zum starten eben den Zusatz hinten dran
Zitatich verschiebe das Plugin in den Unterordner Plugin in der entsprechenden Homebridge Instanz und hänge zum starten eben den Zusatz hinten dran
Sorry ich kann dir bei diesen kurzen knappen aussagen leider nicht folgen wo du was jetzt genau machst. Wenn du von einer Instanz sprichst ist es für mich der Service mit allen Sachen die dazu gehören (Unit, Options etc. und nicht das Plugin was im Ordner node_modules liegt.
Würde mich freuen wenn du es mal Step by Step mit pfaden erklären würdest ggf. mal eine Beispiel Unit und der Option Datei von dir zeigst.
Okay, du hast eine Instanz, diese liegt z.b. im Ordner .homebridge-yeelightnun fügst du dort einen Unterordner ein nennen wir ihn pluginsjetzt hast du den Pfad .homebridge-aqara/pluginsdort hinein kopierst du nun das yeelight plugin und löscht es aus dem /usr/lib/node_modules raus.
Um die Instanz zu starten würdest du ja jetzt in systemctl jahomebridge -U ~/.homebridge-yeelightnutzen nun nutzt du homebridge -U ~/.homebridge-yeelight -P ~/.homebridge-yeelight/plugins. Voila nun start das yeeilight plugin einzig und allein für diese Instanz und alle anderen laufen auch ;-).
Genauso hast du den Vorteil das nicht alle Instanzen alle Plugins laden. Du backst einfach die für die Instanzen notwendigen Plugins und verschiebst sie in die jeweiligen Instanzen.
ZitatOkay, du hast eine Instanz, diese liegt z.b. im Ordner .homebridge-yeelightnun fügst du dort einen Unterordner ein nennen wir ihn pluginsjetzt hast du den Pfad .homebridge-aqara/pluginsdort hinein kopierst du nun das yeelight plugin und löscht es aus dem /usr/lib/node_modules raus.
Glaube das habe ich verstanden .
Neuer Pfad von den Dateien die vorher unter
/usr/lib/node_modules/homebridge-yeelight
lagen ist dann
/usr/lib/node_modules/homebridge-yeelight/plugin richtig?
ZitatUm die Instanz zu starten würdest du ja jetzt in systemctl jahomebridge -U ~/.homebridge-yeelightnutzen nun nutzt du homebridge -U ~/.homebridge-yilight -P ~/.homebridge-yeelight/plugins.
Glaube das habe ich verstanden .
Neuer Pfad von den Dateien die vorher unter
/usr/lib/node_modules/homebridge-yeelight
lagen ist dann
/usr/lib/node_modules/homebridge-yeelight/plugin richtig?
Danke! Wenn das funktioniert wäre echt klasse, werde ich morgen mal ausprobieren und dir bescheid sagen ob es geht.
Schön auch mal wieder was dazu gelernt zu haben
ne aus /usr/lib/node_modules/homebridge-yeelight/muss das plugin gelöscht werden denn order pluginslegst du in deiner Instanz an dort wo auch die config der Instanz liegt und dorthinein kopierst du das plugin alsohomebridge-yeelight
Alles klar, also neuer Pfad dann /var/homebridge-yeelight/plugin ?
Edit:
Jetzt weiß ich auch wie du auf die Idee gekommen bist
Schon länger nicht mehr gelesen die Dokumentation von Homebridge
Wie sieht es denn aus wenn du nach dem Verschieben ein Update machst über npm bzw. werden diese auch an dem neuen Pfad installiert oder musst du diese immer manuell verschieben?
Alles klar, also neuer Pfad dann /var/homebridge-yeelight/plugin ?
Edit:
Jetzt weiß ich auch wie du auf die Idee gekommen bist
Schon länger nicht mehr gelesen die Dokumentation von Homebridge
Wie sieht es denn aus wenn du nach dem Verschieben ein Update machst über npm bzw. werden diese auch an dem neuen Pfad installiert oder musst du diese immer manuell verschieben?
hab ich noch nicht getestet, da alle plugins derzeit aktuell sind...
Zitathab ich noch nicht getestet, da alle plugins derzeit aktuell sind...
Also hast du es noch nicht lange so im Einsatz. Ich vermute mal das es so sein wird, das du keine Updates machst sondern neu Installierst immer wieder nach node_modules gemäß der Beschreibung oben. Schade das du es noch nicht getestet hast.
Was passiert denn wenn das Plugin erneut Installierst wird? Normalerweise werden die Plugin Dateien unter node_modules überschrieben so könntest du feststellen ob der Plugin Ordner neu angelegt wird oder wirklich der neue Pfad genutzt wird.
Also hast du es noch nicht lange so im Einsatz. Ich vermute mal das es so sein wird, das du keine Updates machst sondern neu Installierst immer wieder nach node_modules gemäß der Beschreibung oben. Schade das du es noch nicht getestet hast.
Was passiert denn wenn du das Plugin erneut Installierst wird? Normalerweise werden die Plugin Dateien unter node_modules überschrieben so könntest du feststellen ob der Plugin Ordner neu angelegt wird oder wirklich der neue Pfad genutzt wird.
setze gerade meine Homebridge neu auf und will dann mehrer Instanzen nutzen, sobald ich soweit bin teste ich es
Alles klar, bin gespannt
Habe den ganze Spass jetzt mal durchgetestet mit meinen 24 Instanzen und die Idee ist echt nicht verkehrt, ich habe eine Arbeitsspeicher Verbrauch von 2,5 GB wenn die Plugins global installiert sind und alle Instanzen gestartet sind. Nachdem ich die Plugins lokal installiert habe und alle Instanzen gestartet habe war der Arbeitsspeicher Verbrauch nur noch bei 700 MB. Bedeutet man könnte mit dieser Methode sogar mehr als 10 Instanzen auf einem Pi 3 starten.
Was mich etwas stört an der ganzen Sache ist das die Plugins lokal gespeichert werden müssen, hierbei sind wieder einige Sachen zu beachten die es für denn unbedarften User etwas schwieriger macht was die Rechte, Installation und Updates der Plugins angeht. Außerdem müssen alle Plugins reinstalliert werden.
Zusätzlich habe ich ausprobiert über die -P Option die Plugins aus dem Globalen Verzeichnis zu starten das nur dass zugehörige Plugin zur Instanz gestartet wird. Leider ohne Erfolg, hier werden trotz Angabe des Pfades alle Plugins geladen.
Da ich von der Sache aber überzeugt bin auf Grund der Ressourcen Einsparung und der besseren system Performance, könnte ich mir vorstellen das es ggf. durch eine spezielle Option in der homebridge config auch möglich wäre die global Installierten Plugins isoliert zu starten.
Daher habe ich mal einen Issue erstellt und deinen vorhandenen Issue verknüpft. Wollen wir mal schauen was draus wird
Ps:
Zitatsetze gerade meine Homebridge neu auf und will dann mehrer Instanzen nutzen, sobald ich soweit bin teste ich es
Da ich von dir keine Testergebnisse bekommen habe, hoffe ich mal das du nicht immer noch am Installieren bist
Habe den ganze Spass jetzt mal durchgetestet mit meinen 24 Instanzen und die Idee ist echt nicht verkehrt, ich habe eine Arbeitsspeicher Verbrauch von 2,5 GB wenn die Plugins global installiert sind und alle Instanzen gestartet sind. Nachdem ich die Plugins lokal installiert habe und alle Instanzen gestartet habe war der Arbeitsspeicher Verbrauch nur noch bei 700 MB. Bedeutet man könnte mit dieser Methode sogar mehr als 10 Instanzen auf einem Pi 3 starten.
Was mich etwas stört an der ganzen Sache ist das die Plugins lokal gespeichert werden müssen, hierbei sind wieder einige Sachen zu beachten die es für denn unbedarften User etwas schwieriger macht was die Rechte, Installation und Updates der Plugins angeht. Außerdem müssen alle Plugins reinstalliert werden.
Zusätzlich habe ich ausprobiert über die -P Option die Plugins aus dem Globalen Verzeichnis zu starten das nur dass zugehörige Plugin zur Instanz gestartet wird. Leider ohne Erfolg, hier werden trotz Angabe des Pfades alle Plugins geladen.
Da ich von der Sache aber überzeugt bin auf Grund der Ressourcen Einsparung und der besseren system Performance, könnte ich mir vorstellen das es ggf. durch eine spezielle Option in der homebridge config auch möglich wäre die global Installierten Plugins isoliert zu starten.
Daher habe ich mal einen Issue erstellt und deinen vorhandenen Issue verknüpft. Wollen wir mal schauen was draus wird
Ps:
Da ich von dir keine Testergebnisse bekommen habe, hoffe ich mal das du nicht immer noch am Installieren bist
habe die letzten Tage leider keine Zeit zum Homebridge basteln