casa-calida
Version:
Connects your RaZberry to the casa-calida servers. Runs directly on your Raspberry Pi.
43 lines (35 loc) • 1.27 kB
JavaScript
;
/**
* @author <a href="mailto:stefan@stefanmayer.me">Stefan Mayer</a>
*/
const fs = require('fs');
const path = require('path');
const logger = require('./logger');
const config = require('./config');
const CasaCalida = require('./CasaCalida');
const zwave = require('./zwave');
const iot = require('./iot');
const server = require('./server');
const processArguments = require('./utils/processArguments');
const configPath = processArguments.get('config');
if (!configPath) {
logger.error('Please provide "config" as arguments to point to your config file. See README for more infos.');
process.exit(1);
}
const absoluteConfigPath = path.resolve(configPath);
try {
const stats = fs.lstatSync(absoluteConfigPath);
if (stats.isDirectory()) {
throw new Error('config is a directory');
}
} catch (e) {
logger.error(`Couldn't find provided config file ${absoluteConfigPath}`);
process.exit(2);
}
config.setPath(absoluteConfigPath);
const auth = config.getAuthentication();
CasaCalida.connect().then(websocket => Promise.all([zwave.init(auth.username, auth.password, websocket), iot(config.getIotIps(), websocket), server(websocket)])).catch(e => {
logger.error(e);
process.exit(3);
});