doc(main): update documentation and flows
This commit is contained in:
58
dist/nodes/gateway/GatewayConfigurator.js
vendored
Normal file
58
dist/nodes/gateway/GatewayConfigurator.js
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const constants_1 = require("../constants");
|
||||
const GatewayServer_1 = require("../../devices/gateway/GatewayServer");
|
||||
exports.default = (RED) => {
|
||||
class GatewayConfigurator {
|
||||
constructor(props) {
|
||||
RED.nodes.createNode(this, props);
|
||||
let { sid, key, deviceList } = props;
|
||||
this.sid = sid;
|
||||
this.key = key;
|
||||
this.deviceList = deviceList;
|
||||
let server = GatewayServer_1.GatewayServer.getInstance();
|
||||
if (this.sid) {
|
||||
this.setGateway();
|
||||
}
|
||||
server.on('gateway-online', (sid) => {
|
||||
if (sid === this.sid) {
|
||||
this.setGateway();
|
||||
this.emit('gateway-online');
|
||||
}
|
||||
});
|
||||
server.on('gateway-offline', (sid) => {
|
||||
if (sid === this.sid) {
|
||||
this._gateway = null;
|
||||
this.emit('gateway-offline');
|
||||
}
|
||||
});
|
||||
}
|
||||
setGateway() {
|
||||
this._gateway = GatewayServer_1.GatewayServer.getInstance().getGateway(this.sid);
|
||||
if (this._gateway) {
|
||||
this._gateway.password = this.key;
|
||||
this._gateway.on("subdevice-values-updated", (sidOrMessage) => {
|
||||
let sid = sidOrMessage.sid || sidOrMessage;
|
||||
let subdevice = this._gateway.getSubdevice(sid);
|
||||
if (subdevice) {
|
||||
(sidOrMessage.data ? Object.keys(sidOrMessage.data) : []).forEach((key) => {
|
||||
subdevice[key] = sidOrMessage.data[key];
|
||||
});
|
||||
this.emit('subdevice-update', subdevice);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
get gateway() {
|
||||
return this._gateway;
|
||||
}
|
||||
}
|
||||
RED.nodes.registerType(`${constants_1.Constants.NODES_PREFIX}-gateway configurator`, GatewayConfigurator, {
|
||||
settings: {
|
||||
miDevicesGatewayConfiguratorDiscoveredGateways: {
|
||||
value: GatewayServer_1.GatewayServer.getInstance().gateways,
|
||||
exportable: true
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user