Nuove istanze in Homebridge: come aggiungerle
Reading Time: 4 minutesAbbiamo visto come configurare e far partire una istanza di Homebridge all’avvio del Mac. in questo articolo vedremo come aggiungere nuove istanze in Homebridge.

HomeBridge è un ottimo strumento per la domotica, oramai lo abbiamo capito. Ma come tutte le componenti sviluppate, ha un limite di quanto accessori o piattaforme può supportare.
Nel caso specifico, il codice di HomeBridge prevede un limiti massimo di 10 accessori/platform collegati. Oltre questo limiti, nel file di log apparirà un warning che ci avviserà che il limite è stato superato.
Intendiamoci: si tratta solo di un Warning. Questo vuol dire che HomeBridge continuerà a lavorare ma si potrebbe incorrere in rallentameni o crash improvvisi.
Aggiungere nuove istanze in Homebridge
Per poter risolvere il problema basterà aggiungere nuove istanze in Homebridge: si tratta di alcuni passaggi di configurazione che una volta compresi sono estremamente semplici da fare. Vediamoli insieme come poter fare.
STEP UNO: DUPLICARE LA CONFIGURAZIONE DI HOMEBRIDGE
Come sempre avviamo il terminale e colleghiamoci con l’utente utilizzato per la prima configurazione di HomeBridge.
I comandi che vedrete sono relativi al mio ambiente: dovrete modificare i path in base alla vostra installazione.
Per prima cosa, creaiamo una seconda cartella:
mkdir homebridge2
A questo punto, copiamo il file config.json dalla prima cartella alla seconda:
cp .homebridge/config.json .homebridge2/
STEP DUE: MODIFICARE IL CONFIG.JSON
Come detto nell’articolo di prima configurazione, dovremo andare a modificare alcune voci.
Di seguito il mio config.json:
{
"bridge": {
"name": "Homebridge_2",
"username": "CC:22:3D:E3:CE:31",
"port": 51827,
"pin": "031-45-154"
}
}
Le voci che vanno cambiate sono le seguenti:
- name: non è obbligatorio cambiarlo;
- username: modificate il MAC ADDRESS: basterà modificare il 31 finale in 32;
- port: la porta in ascolta con una non usata.
STEP TRE: DUPLICARE I BINARI
A questo punto, dobbiamo collegarci con l’utente “root”, come nel mio caso, od utilizzare i comandi di “sudo”.
Piccola precisazione: benchè sia possibile utilizzare lo stesso binario per far partire la seconda istanza, io preferisco crearne un secondo.
Questo perchè nel caso volessimo visualizzare i processi a livello “ps” (sul terminale ps -ef | grep homebridge), questi avrebbero lo stesso nome: modificando il file di avvio potremo assegnare un nuovo nome.
Per prima cosa, duplichiamo il binario, nel seguente modo:
cd /usr/local/lib/node_modules/homebridge/bin
cp homebridge homebridge2

STEP QUATTRO: EDITARE I FILE
A questo punto, i due file binari che potete vedere nell’immagine sopra, devono essere modificati.
Per comodità, ho modificato entrambi i file per avere il nome del processo “parlante” per entrambe le istanze.
Di seguito i due file binari modificati:
vi /usr/local/lib/node_modules/homebridge/bin/homebridge
#!/usr/bin/env node
//
// This executable sets up the environment and runs the HomeBridge CLI.
//
'use strict';
process.title = 'homebridge_first_instance'; // <-- Nome modificato della vecchia istanza
// Find the HomeBridge lib
var path = require('path');
var fs = require('fs');
var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
// Run HomeBridge
require(lib + '/cli')();
vi /usr/local/lib/node_modules/homebridge/bin/homebridge2
#!/usr/bin/env node
//
// This executable sets up the environment and runs the HomeBridge CLI.
//
'use strict';
process.title = 'homebridge_second_instance'; // <-- Questo il nome da modificare
// Find the HomeBridge lib
var path = require('path');
var fs = require('fs');
var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
// Run HomeBridge
require(lib + '/cli')();
Fatto questo, andiamo a creare un nuovo link simbolico che punti al nuovo binario.
cd /usr/local/bin
ln -s ../lib/node_modules/homebridge/bin/homebridge2 homebridge2
Controllate che il link sia creato correttamente, come in figura sotto.

STEP CINQUE: CREARE NUOVO FILE PLIST
A questo punto, manca l’ultimo passaggio: creare un nuovo file plist
cd /Library/LaunchDaemons/
cp com.homebridge.server.plist com.homebridge2.server.plist
A questo punto i due plist dovranno essere modificati, per caricare le nuove configurazioni, come da esempio sotto:
vi com.homebridge.server.plist
RunAtLoad
KeepAlive
Label
com.homebridge.server
ProgramArguments
/usr/local/bin/homebridge
-D
-I
-U
/Users/thegod/.homebridge
StandardOutPath
/var/log/homebridge/logfile_info.log
StandardErrorPath
/var/log/homebridge/logfile_error.log
EnvironmentVariables
PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
HOME
/Users/thegod
vi com.homebridge2.server.plist
RunAtLoad
KeepAlive
Label
com.homebridge2.server
ProgramArguments
/usr/local/bin/homebridge2
-D
-I
-U
/Users/thegod/.homebridge2
StandardOutPath
/var/log/homebridge2/logfile_info.log
StandardErrorPath
/var/log/homebridge2/logfile_error.log
EnvironmentVariables
PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
HOME
/Users/thegod
Come potete notare, ho deciso di creare una nuova cartella per i log, anziche usare gli stessi file:
mkdir /var/log/homebridge2/
STEP SEI: AGGIUNGERE NUOVE ISTANZE AL BOOT
Riavviamo il vecchio processo e avviamo il nuovo:
launchctl unload -w /Library/LaunchDaemons/com.homebridge.server.plist
launchctl unload -w /Library/LaunchDaemons/com.homebridge2.server.plist
launchctl load -w /Library/LaunchDaemons/com.homebridge.server.plist
launchctl load -w /Library/LaunchDaemons/com.homebridge2.server.plist
Se tutto sarà andato correttamente dovreste trovare i due processi attivi.

Controlliamo, altresì, che le porte indicate nel config.json siano correttamente in ascolto come in foto.

A questo punto, l’app CASA mostrerà le due istanze create.

Siamo così giunti al termine di questo articolo in cui abbiamo visto come aggiungere nuove istanze: nel prossimo installeremo e configureremo il nostro primo plugin.
Alla prossima!