@fastybird/smart-panel-backend 0.1.0-alpha.5 → 0.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/migrations/1000000000000-InitialSetup.js +22 -12
  2. package/dist/migrations/1000000000000-InitialSetup.js.map +1 -1
  3. package/dist/modules/system/commands/update-panel.command.js +7 -12
  4. package/dist/modules/system/commands/update-panel.command.js.map +1 -1
  5. package/dist/modules/system/services/update.service.js +1 -1
  6. package/dist/modules/system/services/update.service.js.map +1 -1
  7. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +11 -1
  8. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +212 -47
  9. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  10. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.d.ts +5 -0
  11. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +10 -1
  12. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  13. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js +9 -1
  14. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js.map +1 -1
  15. package/dist/plugins/devices-shelly-ng/dto/create-device.dto.d.ts +0 -1
  16. package/dist/plugins/devices-shelly-ng/dto/create-device.dto.js +0 -14
  17. package/dist/plugins/devices-shelly-ng/dto/create-device.dto.js.map +1 -1
  18. package/dist/plugins/devices-shelly-ng/dto/update-device.dto.d.ts +2 -1
  19. package/dist/plugins/devices-shelly-ng/dto/update-device.dto.js +19 -4
  20. package/dist/plugins/devices-shelly-ng/dto/update-device.dto.js.map +1 -1
  21. package/dist/plugins/devices-shelly-ng/entities/devices-shelly-ng.entity.d.ts +6 -1
  22. package/dist/plugins/devices-shelly-ng/entities/devices-shelly-ng.entity.js +38 -6
  23. package/dist/plugins/devices-shelly-ng/entities/devices-shelly-ng.entity.js.map +1 -1
  24. package/dist/plugins/devices-shelly-ng/entities/shelly-ng-device-address.entity.d.ts +10 -0
  25. package/dist/plugins/devices-shelly-ng/entities/shelly-ng-device-address.entity.js +69 -0
  26. package/dist/plugins/devices-shelly-ng/entities/shelly-ng-device-address.entity.js.map +1 -0
  27. package/dist/plugins/devices-shelly-ng/services/database-discoverer.service.d.ts +3 -1
  28. package/dist/plugins/devices-shelly-ng/services/database-discoverer.service.js +19 -7
  29. package/dist/plugins/devices-shelly-ng/services/database-discoverer.service.js.map +1 -1
  30. package/dist/plugins/devices-shelly-ng/services/device-address.service.d.ts +22 -0
  31. package/dist/plugins/devices-shelly-ng/services/device-address.service.js +149 -0
  32. package/dist/plugins/devices-shelly-ng/services/device-address.service.js.map +1 -0
  33. package/dist/plugins/devices-shelly-ng/services/device-manager.service.d.ts +3 -1
  34. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +20 -7
  35. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  36. package/dist/plugins/devices-shelly-ng/subscribers/device-entity.subscriber.d.ts +6 -2
  37. package/dist/plugins/devices-shelly-ng/subscribers/device-entity.subscriber.js +75 -6
  38. package/dist/plugins/devices-shelly-ng/subscribers/device-entity.subscriber.js.map +1 -1
  39. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.d.ts +4 -0
  40. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js +5 -1
  41. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js.map +1 -1
  42. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.openapi.d.ts +2 -2
  43. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.openapi.js +2 -0
  44. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.openapi.js.map +1 -1
  45. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.plugin.js +11 -6
  46. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.plugin.js.map +1 -1
  47. package/dist/plugins/devices-zigbee2mqtt/dto/update-config.dto.d.ts +10 -0
  48. package/dist/plugins/devices-zigbee2mqtt/dto/update-config.dto.js +117 -3
  49. package/dist/plugins/devices-zigbee2mqtt/dto/update-config.dto.js.map +1 -1
  50. package/dist/plugins/devices-zigbee2mqtt/interfaces/zigbee2mqtt.interface.d.ts +8 -0
  51. package/dist/plugins/devices-zigbee2mqtt/mappings/definitions/covers.yaml +5 -4
  52. package/dist/plugins/devices-zigbee2mqtt/models/config.model.d.ts +10 -0
  53. package/dist/plugins/devices-zigbee2mqtt/models/config.model.js +108 -3
  54. package/dist/plugins/devices-zigbee2mqtt/models/config.model.js.map +1 -1
  55. package/dist/plugins/devices-zigbee2mqtt/platforms/zigbee2mqtt.device.platform.d.ts +3 -4
  56. package/dist/plugins/devices-zigbee2mqtt/platforms/zigbee2mqtt.device.platform.js +11 -22
  57. package/dist/plugins/devices-zigbee2mqtt/platforms/zigbee2mqtt.device.platform.js.map +1 -1
  58. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +35 -0
  59. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js +265 -0
  60. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -0
  61. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js +6 -5
  62. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js.map +1 -1
  63. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.d.ts +4 -26
  64. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +16 -265
  65. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  66. package/dist/plugins/devices-zigbee2mqtt/services/virtual-property.types.js +0 -16
  67. package/dist/plugins/devices-zigbee2mqtt/services/virtual-property.types.js.map +1 -1
  68. package/dist/plugins/devices-zigbee2mqtt/services/ws-client-adapter.service.d.ts +14 -0
  69. package/dist/plugins/devices-zigbee2mqtt/services/ws-client-adapter.service.js +199 -0
  70. package/dist/plugins/devices-zigbee2mqtt/services/ws-client-adapter.service.js.map +1 -0
  71. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt-config-validator.service.d.ts +2 -0
  72. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt-config-validator.service.js +69 -0
  73. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt-config-validator.service.js.map +1 -1
  74. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +8 -1
  75. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +86 -32
  76. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  77. package/dist/tsconfig.build.tsbuildinfo +1 -1
  78. package/package.json +2 -2
@@ -8,4 +8,6 @@ export declare class Zigbee2mqttConfigValidatorService implements IPluginConfigV
8
8
  constructor(pluginConfigValidator: PluginConfigValidatorService);
9
9
  onModuleInit(): void;
10
10
  validate(config: Record<string, unknown>): Promise<IConfigValidationResult>;
11
+ private validateMqtt;
12
+ private validateWs;
11
13
  }
@@ -8,9 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.Zigbee2mqttConfigValidatorService = void 0;
13
16
  const mqtt_1 = require("mqtt");
17
+ const ws_1 = __importDefault(require("ws"));
14
18
  const common_1 = require("@nestjs/common");
15
19
  const logger_1 = require("../../../common/logger");
16
20
  const plugin_config_validator_service_1 = require("../../../modules/config/services/plugin-config-validator.service");
@@ -25,6 +29,13 @@ let Zigbee2mqttConfigValidatorService = class Zigbee2mqttConfigValidatorService
25
29
  this.pluginConfigValidator.register(this);
26
30
  }
27
31
  async validate(config) {
32
+ const connectionType = config['connection_type'] || 'mqtt';
33
+ if (connectionType === 'ws') {
34
+ return this.validateWs(config);
35
+ }
36
+ return this.validateMqtt(config);
37
+ }
38
+ async validateMqtt(config) {
28
39
  const mqtt = config['mqtt'];
29
40
  if (!mqtt) {
30
41
  return { valid: false, errors: [{ message: 'MQTT configuration is required' }] };
@@ -93,6 +104,64 @@ let Zigbee2mqttConfigValidatorService = class Zigbee2mqttConfigValidatorService
93
104
  });
94
105
  });
95
106
  }
107
+ async validateWs(config) {
108
+ const wsConfig = config['ws'];
109
+ if (!wsConfig) {
110
+ return { valid: false, errors: [{ message: 'WebSocket configuration is required' }] };
111
+ }
112
+ const host = wsConfig['host'];
113
+ const port = wsConfig['port'] || 8080;
114
+ const secure = wsConfig['secure'] === true;
115
+ if (!host) {
116
+ return { valid: false, errors: [{ message: 'WebSocket host is required', field: 'ws.host' }] };
117
+ }
118
+ const protocol = secure ? 'wss' : 'ws';
119
+ const wsUrl = `${protocol}://${host}:${port}/api`;
120
+ return new Promise((resolve) => {
121
+ const timeoutMs = 10000;
122
+ let settled = false;
123
+ const settle = (result) => {
124
+ if (settled)
125
+ return;
126
+ settled = true;
127
+ try {
128
+ ws.terminate();
129
+ }
130
+ catch {
131
+ }
132
+ resolve(result);
133
+ };
134
+ const timer = setTimeout(() => {
135
+ settle({
136
+ valid: false,
137
+ errors: [
138
+ {
139
+ message: 'Connection timed out — check Zigbee2MQTT host and port',
140
+ field: 'ws.host',
141
+ },
142
+ ],
143
+ });
144
+ }, timeoutMs);
145
+ const ws = new ws_1.default(wsUrl);
146
+ ws.on('open', () => {
147
+ clearTimeout(timer);
148
+ settle({ valid: true });
149
+ });
150
+ ws.on('error', (err) => {
151
+ clearTimeout(timer);
152
+ this.logger.error(`WebSocket connection test failed: ${err.message}`);
153
+ settle({
154
+ valid: false,
155
+ errors: [
156
+ {
157
+ message: `Cannot connect to Zigbee2MQTT WebSocket: ${err.message}`,
158
+ field: 'ws.host',
159
+ },
160
+ ],
161
+ });
162
+ });
163
+ });
164
+ }
96
165
  };
97
166
  exports.Zigbee2mqttConfigValidatorService = Zigbee2mqttConfigValidatorService;
98
167
  exports.Zigbee2mqttConfigValidatorService = Zigbee2mqttConfigValidatorService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"zigbee2mqtt-config-validator.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/zigbee2mqtt-config-validator.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zigbee2mqtt-config-validator.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/zigbee2mqtt-config-validator.service.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,14 @@ import { DeviceConnectivityService } from '../../../modules/devices/services/dev
3
3
  import { DevicesService } from '../../../modules/devices/services/devices.service';
4
4
  import { ConfigChangeResult, IManagedPluginService, ServiceState } from '../../../modules/extensions/services/managed-plugin-service.interface';
5
5
  import { PluginServiceManagerService } from '../../../modules/extensions/services/plugin-service-manager.service';
6
+ import { Z2mBaseClientAdapter } from './base-client-adapter';
6
7
  import { Z2mDeviceMapperService } from './device-mapper.service';
7
8
  import { Z2mMqttClientAdapterService } from './mqtt-client-adapter.service';
9
+ import { Z2mWsClientAdapterService } from './ws-client-adapter.service';
8
10
  export declare class Zigbee2mqttService implements IManagedPluginService {
9
11
  private readonly configService;
10
12
  private readonly mqttAdapter;
13
+ private readonly wsAdapter;
11
14
  private readonly deviceMapper;
12
15
  private readonly devicesService;
13
16
  private readonly deviceConnectivityService;
@@ -23,7 +26,9 @@ export declare class Zigbee2mqttService implements IManagedPluginService {
23
26
  private pendingDevices;
24
27
  private isSyncing;
25
28
  private transformersRestored;
26
- constructor(configService: ConfigService, mqttAdapter: Z2mMqttClientAdapterService, deviceMapper: Z2mDeviceMapperService, devicesService: DevicesService, deviceConnectivityService: DeviceConnectivityService, pluginServiceManager: PluginServiceManagerService);
29
+ private activeAdapter;
30
+ constructor(configService: ConfigService, mqttAdapter: Z2mMqttClientAdapterService, wsAdapter: Z2mWsClientAdapterService, deviceMapper: Z2mDeviceMapperService, devicesService: DevicesService, deviceConnectivityService: DeviceConnectivityService, pluginServiceManager: PluginServiceManagerService);
31
+ getActiveAdapter(): Z2mBaseClientAdapter;
27
32
  start(): Promise<void>;
28
33
  stop(): Promise<void>;
29
34
  getState(): ServiceState;
@@ -36,7 +41,9 @@ export declare class Zigbee2mqttService implements IManagedPluginService {
36
41
  private initialize;
37
42
  private doStart;
38
43
  private doStop;
44
+ private registerCallbacks;
39
45
  private buildMqttConfig;
46
+ private buildWsConfig;
40
47
  private handleBridgeOnline;
41
48
  private handleBridgeOffline;
42
49
  private handleDevicesReceived;
@@ -20,10 +20,12 @@ const plugin_service_manager_service_1 = require("../../../modules/extensions/se
20
20
  const devices_zigbee2mqtt_constants_1 = require("../devices-zigbee2mqtt.constants");
21
21
  const device_mapper_service_1 = require("./device-mapper.service");
22
22
  const mqtt_client_adapter_service_1 = require("./mqtt-client-adapter.service");
23
+ const ws_client_adapter_service_1 = require("./ws-client-adapter.service");
23
24
  let Zigbee2mqttService = class Zigbee2mqttService {
24
- constructor(configService, mqttAdapter, deviceMapper, devicesService, deviceConnectivityService, pluginServiceManager) {
25
+ constructor(configService, mqttAdapter, wsAdapter, deviceMapper, devicesService, deviceConnectivityService, pluginServiceManager) {
25
26
  this.configService = configService;
26
27
  this.mqttAdapter = mqttAdapter;
28
+ this.wsAdapter = wsAdapter;
27
29
  this.deviceMapper = deviceMapper;
28
30
  this.devicesService = devicesService;
29
31
  this.deviceConnectivityService = deviceConnectivityService;
@@ -39,15 +41,11 @@ let Zigbee2mqttService = class Zigbee2mqttService {
39
41
  this.pendingDevices = null;
40
42
  this.isSyncing = false;
41
43
  this.transformersRestored = false;
42
- this.mqttAdapter.setCallbacks({
43
- onBridgeOnline: () => this.handleBridgeOnline(),
44
- onBridgeOffline: () => this.handleBridgeOffline(),
45
- onDevicesReceived: (devices) => this.handleDevicesReceived(devices),
46
- onDeviceStateChanged: (friendlyName, state) => this.handleDeviceStateChanged(friendlyName, state),
47
- onDeviceAvailabilityChanged: (friendlyName, available) => this.handleDeviceAvailabilityChanged(friendlyName, available),
48
- onDeviceJoined: (ieeeAddress, friendlyName) => this.handleDeviceJoined(ieeeAddress, friendlyName),
49
- onDeviceLeft: (ieeeAddress, friendlyName) => this.handleDeviceLeft(ieeeAddress, friendlyName),
50
- });
44
+ this.activeAdapter = this.mqttAdapter;
45
+ this.registerCallbacks(this.activeAdapter);
46
+ }
47
+ getActiveAdapter() {
48
+ return this.activeAdapter;
51
49
  }
52
50
  async start() {
53
51
  await this.withLock(async () => {
@@ -99,21 +97,39 @@ let Zigbee2mqttService = class Zigbee2mqttService {
99
97
  if (this.state === 'started' && this.pluginConfig) {
100
98
  const oldConfig = this.pluginConfig;
101
99
  const newConfig = this.configService.getPluginConfig(devices_zigbee2mqtt_constants_1.DEVICES_ZIGBEE2MQTT_PLUGIN_NAME);
102
- const mqttChanged = oldConfig.mqtt.host !== newConfig.mqtt.host ||
103
- oldConfig.mqtt.port !== newConfig.mqtt.port ||
104
- oldConfig.mqtt.username !== newConfig.mqtt.username ||
105
- oldConfig.mqtt.password !== newConfig.mqtt.password ||
106
- oldConfig.mqtt.baseTopic !== newConfig.mqtt.baseTopic ||
107
- oldConfig.mqtt.clientId !== newConfig.mqtt.clientId;
108
- const tlsChanged = oldConfig.tls.enabled !== newConfig.tls.enabled ||
109
- oldConfig.tls.rejectUnauthorized !== newConfig.tls.rejectUnauthorized ||
110
- oldConfig.tls.ca !== newConfig.tls.ca ||
111
- oldConfig.tls.cert !== newConfig.tls.cert ||
112
- oldConfig.tls.key !== newConfig.tls.key;
113
- if (mqttChanged || tlsChanged) {
114
- this.logger.log('Config changed, restart required');
100
+ if (oldConfig.connectionType !== newConfig.connectionType) {
101
+ this.logger.log('Connection type changed, restart required');
115
102
  return Promise.resolve({ restartRequired: true });
116
103
  }
104
+ if (newConfig.connectionType === 'mqtt') {
105
+ const mqttChanged = oldConfig.mqtt.host !== newConfig.mqtt.host ||
106
+ oldConfig.mqtt.port !== newConfig.mqtt.port ||
107
+ oldConfig.mqtt.username !== newConfig.mqtt.username ||
108
+ oldConfig.mqtt.password !== newConfig.mqtt.password ||
109
+ oldConfig.mqtt.baseTopic !== newConfig.mqtt.baseTopic ||
110
+ oldConfig.mqtt.clientId !== newConfig.mqtt.clientId;
111
+ const tlsChanged = oldConfig.tls.enabled !== newConfig.tls.enabled ||
112
+ oldConfig.tls.rejectUnauthorized !== newConfig.tls.rejectUnauthorized ||
113
+ oldConfig.tls.ca !== newConfig.tls.ca ||
114
+ oldConfig.tls.cert !== newConfig.tls.cert ||
115
+ oldConfig.tls.key !== newConfig.tls.key;
116
+ if (mqttChanged || tlsChanged) {
117
+ this.logger.log('MQTT config changed, restart required');
118
+ return Promise.resolve({ restartRequired: true });
119
+ }
120
+ }
121
+ else {
122
+ const wsChanged = oldConfig.ws.host !== newConfig.ws.host ||
123
+ oldConfig.ws.port !== newConfig.ws.port ||
124
+ oldConfig.ws.baseTopic !== newConfig.ws.baseTopic ||
125
+ oldConfig.ws.secure !== newConfig.ws.secure ||
126
+ oldConfig.ws.connectTimeout !== newConfig.ws.connectTimeout ||
127
+ oldConfig.ws.reconnectInterval !== newConfig.ws.reconnectInterval;
128
+ if (wsChanged) {
129
+ this.logger.log('WebSocket config changed, restart required');
130
+ return Promise.resolve({ restartRequired: true });
131
+ }
132
+ }
117
133
  return Promise.resolve({ restartRequired: false });
118
134
  }
119
135
  this.pluginConfig = null;
@@ -126,16 +142,16 @@ let Zigbee2mqttService = class Zigbee2mqttService {
126
142
  }
127
143
  }
128
144
  isBridgeOnline() {
129
- return this.mqttAdapter.isBridgeOnline();
145
+ return this.activeAdapter.isBridgeOnline();
130
146
  }
131
147
  getRegisteredDevices() {
132
- return this.mqttAdapter.getRegisteredDevices();
148
+ return this.activeAdapter.getRegisteredDevices();
133
149
  }
134
150
  async requestDeviceState(friendlyName) {
135
- return this.mqttAdapter.requestState(friendlyName);
151
+ return this.activeAdapter.requestState(friendlyName);
136
152
  }
137
153
  getCachedState(friendlyName) {
138
- return this.mqttAdapter.getCachedState(friendlyName);
154
+ return this.activeAdapter.getCachedState(friendlyName);
139
155
  }
140
156
  async initialize() {
141
157
  const devices = await this.devicesService.findAll(devices_zigbee2mqtt_constants_1.DEVICES_ZIGBEE2MQTT_TYPE);
@@ -149,8 +165,23 @@ let Zigbee2mqttService = class Zigbee2mqttService {
149
165
  this.state = 'starting';
150
166
  this.logger.log('Starting Zigbee2MQTT plugin service');
151
167
  try {
152
- const mqttConfig = this.buildMqttConfig();
153
- await this.mqttAdapter.connect(mqttConfig);
168
+ const config = this.config;
169
+ const previousAdapter = this.activeAdapter;
170
+ this.activeAdapter = config.connectionType === 'ws' ? this.wsAdapter : this.mqttAdapter;
171
+ if (this.activeAdapter !== previousAdapter) {
172
+ previousAdapter.setCallbacks({});
173
+ this.registerCallbacks(this.activeAdapter);
174
+ }
175
+ if (config.connectionType === 'ws') {
176
+ const wsConfig = this.buildWsConfig();
177
+ this.logger.log('Using WebSocket connection to Zigbee2MQTT');
178
+ await this.activeAdapter.connect(wsConfig);
179
+ }
180
+ else {
181
+ const mqttConfig = this.buildMqttConfig();
182
+ this.logger.log('Using MQTT connection to Zigbee2MQTT');
183
+ await this.activeAdapter.connect(mqttConfig);
184
+ }
154
185
  this.logger.log('Zigbee2MQTT plugin service started successfully');
155
186
  this.state = 'started';
156
187
  }
@@ -168,7 +199,7 @@ let Zigbee2mqttService = class Zigbee2mqttService {
168
199
  this.transformersRestored = false;
169
200
  this.logger.log('Stopping Zigbee2MQTT plugin service');
170
201
  try {
171
- await this.mqttAdapter.disconnect();
202
+ await this.activeAdapter.disconnect();
172
203
  const devices = await this.devicesService.findAll(devices_zigbee2mqtt_constants_1.DEVICES_ZIGBEE2MQTT_TYPE);
173
204
  for (const device of devices) {
174
205
  await this.deviceConnectivityService.setConnectionState(device.id, {
@@ -185,6 +216,17 @@ let Zigbee2mqttService = class Zigbee2mqttService {
185
216
  this.state = 'stopped';
186
217
  }
187
218
  }
219
+ registerCallbacks(adapter) {
220
+ adapter.setCallbacks({
221
+ onBridgeOnline: () => this.handleBridgeOnline(),
222
+ onBridgeOffline: () => this.handleBridgeOffline(),
223
+ onDevicesReceived: (devices) => this.handleDevicesReceived(devices),
224
+ onDeviceStateChanged: (friendlyName, state) => this.handleDeviceStateChanged(friendlyName, state),
225
+ onDeviceAvailabilityChanged: (friendlyName, available) => this.handleDeviceAvailabilityChanged(friendlyName, available),
226
+ onDeviceJoined: (ieeeAddress, friendlyName) => this.handleDeviceJoined(ieeeAddress, friendlyName),
227
+ onDeviceLeft: (ieeeAddress, friendlyName) => this.handleDeviceLeft(ieeeAddress, friendlyName),
228
+ });
229
+ }
188
230
  buildMqttConfig() {
189
231
  const config = this.config;
190
232
  return {
@@ -209,6 +251,17 @@ let Zigbee2mqttService = class Zigbee2mqttService {
209
251
  : undefined,
210
252
  };
211
253
  }
254
+ buildWsConfig() {
255
+ const config = this.config;
256
+ return {
257
+ host: config.ws.host,
258
+ port: config.ws.port,
259
+ baseTopic: config.ws.baseTopic,
260
+ secure: config.ws.secure,
261
+ connectTimeout: config.ws.connectTimeout,
262
+ reconnectInterval: config.ws.reconnectInterval,
263
+ };
264
+ }
212
265
  async handleBridgeOnline() {
213
266
  this.logger.log('Bridge is online');
214
267
  this.bridgeOnline = true;
@@ -249,12 +302,12 @@ let Zigbee2mqttService = class Zigbee2mqttService {
249
302
  this.pendingDevices = devices;
250
303
  return;
251
304
  }
252
- const registeredDevices = this.mqttAdapter.getRegisteredDevices();
305
+ const registeredDevices = this.activeAdapter.getRegisteredDevices();
253
306
  await this.deviceMapper.restoreTransformersForExistingDevices(registeredDevices);
254
307
  this.transformersRestored = true;
255
308
  const existingDevices = await this.devicesService.findAll(devices_zigbee2mqtt_constants_1.DEVICES_ZIGBEE2MQTT_TYPE);
256
309
  for (const device of existingDevices) {
257
- const cachedState = this.mqttAdapter.getCachedState(device.identifier);
310
+ const cachedState = this.activeAdapter.getCachedState(device.identifier);
258
311
  if (Object.keys(cachedState).length > 0) {
259
312
  try {
260
313
  await this.deviceMapper.updateDeviceState(device.identifier, cachedState);
@@ -369,6 +422,7 @@ exports.Zigbee2mqttService = Zigbee2mqttService = __decorate([
369
422
  (0, common_1.Injectable)(),
370
423
  __metadata("design:paramtypes", [config_service_1.ConfigService,
371
424
  mqtt_client_adapter_service_1.Z2mMqttClientAdapterService,
425
+ ws_client_adapter_service_1.Z2mWsClientAdapterService,
372
426
  device_mapper_service_1.Z2mDeviceMapperService,
373
427
  devices_service_1.DevicesService,
374
428
  device_connectivity_service_1.DeviceConnectivityService,
@@ -1 +1 @@
1
- {"version":3,"file":"zigbee2mqtt.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zigbee2mqtt.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.ts"],"names":[],"mappings":"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"}