Mr.Apple

Guide Homebridge Corner iOS Le Rubriche di Mr Apple News

Nuove istanze in Homebridge: come aggiungerle

Reading Time: 4 minutes Dopo aver configurato il nostro HomeBridge, oggi vediamo come sia possibile aggiunge nuove istanze per aumentare il numero di dispositvi supportati. Dic 18, 2019 4 min

Nuove istanze in Homebridge: come aggiungerle

Reading Time: 4 minutes

Abbiamo visto come configurare e far partire una istanza di Homebridge all’avvio del Mac. in questo articolo vedremo come aggiungere nuove istanze in Homebridge.

nuove istanze in Homebridge  1

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
nuove istanze in Homebridge

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!

0 0 votes
Article Rating

Sistemista Unix. Appassionato di tecnologia. Amante della domotica. Datemi Siri e vi controllerò la casa!
Subscribe
Notificami
guest

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

0 Commenti
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x