homebridge-tasmota-control 1.4.1-beta.2 → 1.4.1-beta.4

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.
package/index.js CHANGED
@@ -85,12 +85,11 @@ class tasmotaPlatform {
85
85
 
86
86
  let i = 0;
87
87
  for (const type of info.deviceTypes) {
88
- const serialNumber = i === 0 ? info.serialNumber : info.serialNumber + type;
89
- info.serialNumber = serialNumber;
88
+ const serialNumber = i === 0 ? info.serialNumber : `${info.serialNumber}${i}`;
90
89
 
91
90
  let deviceType;
92
91
  switch (type) {
93
- case 0://mielhvac
92
+ case 0: //mielhvac
94
93
  //check files exists, if not then create it
95
94
  try {
96
95
  const postFix = device.host.split('.').join('');
@@ -112,19 +111,19 @@ class tasmotaPlatform {
112
111
  return;
113
112
  }
114
113
 
115
- deviceType = new MiElHvac(api, device, info, refreshInterval);
114
+ deviceType = new MiElHvac(api, device, info, serialNumber, refreshInterval);
116
115
  break;
117
116
  case 1: //switches
118
- deviceType = new Switches(api, device, info, refreshInterval);
117
+ deviceType = new Switches(api, device, info, serialNumber, refreshInterval);
119
118
  break;
120
119
  case 2: //lights
121
- deviceType = new Lights(api, device, info, refreshInterval);
120
+ deviceType = new Lights(api, device, info, serialNumber, refreshInterval);
122
121
  break;
123
122
  case 3: //fans
124
- deviceType = new Fans(api, device, info, refreshInterval);
123
+ deviceType = new Fans(api, device, info, serialNumber, refreshInterval);
125
124
  break;
126
125
  case 4: //sensors
127
- deviceType = new Sensors(api, device, info, refreshInterval);
126
+ deviceType = new Sensors(api, device, info, serialNumber, refreshInterval);
128
127
  break;
129
128
  default:
130
129
  const emitLog = disableLogWarn ? false : log.warn(`Device: ${host} ${deviceName}, unknown device: ${info.deviceTypes}.`);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Tasmota Control",
3
3
  "name": "homebridge-tasmota-control",
4
- "version": "1.4.1-beta.2",
4
+ "version": "1.4.1-beta.4",
5
5
  "description": "Homebridge plugin to control Tasmota flashed devices.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
package/src/fans.js CHANGED
@@ -6,7 +6,7 @@ import { ApiCommands } from './constants.js';
6
6
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
7
7
 
8
8
  class Fans extends EventEmitter {
9
- constructor(api, config, info, refreshInterval) {
9
+ constructor(api, config, info, serialNumber, refreshInterval) {
10
10
  super();
11
11
 
12
12
  Accessory = api.platformAccessory;
@@ -17,6 +17,7 @@ class Fans extends EventEmitter {
17
17
 
18
18
  //info
19
19
  this.info = info;
20
+ this.serialNumber = serialNumber;
20
21
 
21
22
  //other config
22
23
  this.lightsNamePrefix = config.lightsNamePrefix || false;
@@ -174,7 +175,7 @@ class Fans extends EventEmitter {
174
175
  this.emit('devInfo', `----- ${this.info.deviceName} -----`);
175
176
  this.emit('devInfo', `Manufacturer: Tasmota`);
176
177
  this.emit('devInfo', `Hardware: ${this.info.modelName}`);
177
- this.emit('devInfo', `Serialnr: ${this.info.serialNumber}`)
178
+ this.emit('devInfo', `Serialnr: ${this.serialNumber}`)
178
179
  this.emit('devInfo', `Firmware: ${this.info.firmwareRevision}`);
179
180
  this.emit('devInfo', `Relays: ${this.info.relaysCount}`);
180
181
  this.emit('devInfo', `Sensors: ${this.sensorsCount}`);
@@ -189,7 +190,7 @@ class Fans extends EventEmitter {
189
190
  try {
190
191
  //accessory
191
192
  const accessoryName = this.info.deviceName;
192
- const accessoryUUID = AccessoryUUID.generate(this.info.serialNumber);
193
+ const accessoryUUID = AccessoryUUID.generate(this.serialNumber);
193
194
  const accessoryCategory = Categories.FAN;
194
195
  const accessory = new Accessory(accessoryName, accessoryUUID, accessoryCategory);
195
196
 
@@ -198,7 +199,7 @@ class Fans extends EventEmitter {
198
199
  accessory.getService(Service.AccessoryInformation)
199
200
  .setCharacteristic(Characteristic.Manufacturer, 'Tasmota')
200
201
  .setCharacteristic(Characteristic.Model, this.info.modelName ?? 'Model Name')
201
- .setCharacteristic(Characteristic.SerialNumber, this.info.serialNumber ?? 'Serial Number')
202
+ .setCharacteristic(Characteristic.SerialNumber, this.serialNumber ?? 'Serial Number')
202
203
  .setCharacteristic(Characteristic.FirmwareRevision, this.info.firmwareRevision.replace(/[a-zA-Z]/g, '') ?? '0')
203
204
  .setCharacteristic(Characteristic.ConfiguredName, accessoryName);
204
205
 
package/src/lights.js CHANGED
@@ -6,7 +6,7 @@ import { ApiCommands } from './constants.js';
6
6
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
7
7
 
8
8
  class Lights extends EventEmitter {
9
- constructor(api, config, info, refreshInterval) {
9
+ constructor(api, config, info, serialNumber, refreshInterval) {
10
10
  super();
11
11
 
12
12
  Accessory = api.platformAccessory;
@@ -17,6 +17,7 @@ class Lights extends EventEmitter {
17
17
 
18
18
  //info
19
19
  this.info = info;
20
+ this.serialNumber = serialNumber;
20
21
 
21
22
  //other config
22
23
  this.lightsNamePrefix = config.lightsNamePrefix || false;
@@ -191,7 +192,7 @@ class Lights extends EventEmitter {
191
192
  this.emit('devInfo', `----- ${this.info.deviceName} -----`);
192
193
  this.emit('devInfo', `Manufacturer: Tasmota`);
193
194
  this.emit('devInfo', `Hardware: ${this.info.modelName}`);
194
- this.emit('devInfo', `Serialnr: ${this.info.serialNumber}`)
195
+ this.emit('devInfo', `Serialnr: ${this.serialNumber}`)
195
196
  this.emit('devInfo', `Firmware: ${this.info.firmwareRevision}`);
196
197
  this.emit('devInfo', `Relays: ${this.info.relaysCount}`);
197
198
  this.emit('devInfo', `----------------------------------`);
@@ -205,7 +206,7 @@ class Lights extends EventEmitter {
205
206
  try {
206
207
  //accessory
207
208
  const accessoryName = this.info.deviceName;
208
- const accessoryUUID = AccessoryUUID.generate(this.info.serialNumber);
209
+ const accessoryUUID = AccessoryUUID.generate(this.serialNumber);
209
210
  const accessoryCategory = Categories.LIGHTBULB
210
211
  const accessory = new Accessory(accessoryName, accessoryUUID, accessoryCategory);
211
212
 
@@ -214,7 +215,7 @@ class Lights extends EventEmitter {
214
215
  accessory.getService(Service.AccessoryInformation)
215
216
  .setCharacteristic(Characteristic.Manufacturer, 'Tasmota')
216
217
  .setCharacteristic(Characteristic.Model, this.info.modelName ?? 'Model Name')
217
- .setCharacteristic(Characteristic.SerialNumber, this.info.serialNumber ?? 'Serial Number')
218
+ .setCharacteristic(Characteristic.SerialNumber, this.serialNumber ?? 'Serial Number')
218
219
  .setCharacteristic(Characteristic.FirmwareRevision, this.info.firmwareRevision.replace(/[a-zA-Z]/g, '') ?? '0')
219
220
  .setCharacteristic(Characteristic.ConfiguredName, accessoryName);
220
221
 
package/src/mielhvac.js CHANGED
@@ -6,7 +6,7 @@ import { ApiCommands, MiElHVAC, TemperatureDisplayUnits } from './constants.js';
6
6
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
7
7
 
8
8
  class MiElHvac extends EventEmitter {
9
- constructor(api, config, info, refreshInterval) {
9
+ constructor(api, config, info, serialNumber, refreshInterval) {
10
10
  super();
11
11
 
12
12
  Accessory = api.platformAccessory;
@@ -17,6 +17,7 @@ class MiElHvac extends EventEmitter {
17
17
 
18
18
  //info
19
19
  this.info = info;
20
+ this.serialNumber = serialNumber;
20
21
 
21
22
  //mitsubishi ac
22
23
  const miElHvac = config.miElHvac ?? {};
@@ -811,7 +812,7 @@ class MiElHvac extends EventEmitter {
811
812
  this.emit('devInfo', `----- ${this.info.deviceName} -----`);
812
813
  this.emit('devInfo', `Manufacturer: Tasmota`);
813
814
  this.emit('devInfo', `Hardware: ${this.info.modelName}`);
814
- this.emit('devInfo', `Serialnr: ${this.info.serialNumber}`)
815
+ this.emit('devInfo', `Serialnr: ${this.serialNumber}`)
815
816
  this.emit('devInfo', `Firmware: ${this.info.firmwareRevision}`);
816
817
  this.emit('devInfo', `Sensor: MiELHVAC`);
817
818
  this.emit('devInfo', `----------------------------------`);
@@ -825,7 +826,7 @@ class MiElHvac extends EventEmitter {
825
826
  try {
826
827
  //accessory
827
828
  const accessoryName = this.info.deviceName;
828
- const accessoryUUID = AccessoryUUID.generate(this.info.serialNumber);
829
+ const accessoryUUID = AccessoryUUID.generate(this.serialNumber);
829
830
  const accessoryCategory = Categories.AIR_CONDITIONER
830
831
  const accessory = new Accessory(accessoryName, accessoryUUID, accessoryCategory);
831
832
 
@@ -834,7 +835,7 @@ class MiElHvac extends EventEmitter {
834
835
  accessory.getService(Service.AccessoryInformation)
835
836
  .setCharacteristic(Characteristic.Manufacturer, 'Tasmota')
836
837
  .setCharacteristic(Characteristic.Model, this.info.modelName ?? 'Model Name')
837
- .setCharacteristic(Characteristic.SerialNumber, this.info.serialNumber ?? 'Serial Number')
838
+ .setCharacteristic(Characteristic.SerialNumber, this.serialNumber ?? 'Serial Number')
838
839
  .setCharacteristic(Characteristic.FirmwareRevision, this.info.firmwareRevision.replace(/[a-zA-Z]/g, '') ?? '0')
839
840
  .setCharacteristic(Characteristic.ConfiguredName, accessoryName);
840
841
 
@@ -846,7 +847,7 @@ class MiElHvac extends EventEmitter {
846
847
  const coolDryFanMode = [MiElHVAC.SetMode.cool, MiElHVAC.SetMode.cool, MiElHVAC.SetMode.dry, MiElHVAC.SetMode.fan][this.coolDryFanMode]; //NONE, COOL, DRY, FAN
847
848
 
848
849
  //services
849
- this.miElHvacService = new Service.HeaterCooler(accessoryName, `HeaterCooler ${this.info.serialNumber}`);
850
+ this.miElHvacService = new Service.HeaterCooler(accessoryName, `HeaterCooler ${this.serialNumber}`);
850
851
  this.miElHvacService.setPrimaryService(true);
851
852
  this.miElHvacService.getCharacteristic(Characteristic.Active)
852
853
  .onGet(async () => {
package/src/sensors.js CHANGED
@@ -6,7 +6,7 @@ import { ApiCommands, SensorKeys } from './constants.js';
6
6
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
7
7
 
8
8
  class Sensors extends EventEmitter {
9
- constructor(api, config, info, refreshInterval) {
9
+ constructor(api, config, info, serialNumber, refreshInterval) {
10
10
  super();
11
11
 
12
12
  Accessory = api.platformAccessory;
@@ -17,6 +17,7 @@ class Sensors extends EventEmitter {
17
17
 
18
18
  //info
19
19
  this.info = info;
20
+ this.serialNumber = serialNumber;
20
21
 
21
22
  //other config
22
23
  this.sensorsNamePrefix = config.sensorsNamePrefix || false;
@@ -278,7 +279,7 @@ class Sensors extends EventEmitter {
278
279
  this.emit('devInfo', `----- ${this.info.deviceName} -----`);
279
280
  this.emit('devInfo', `Manufacturer: Tasmota`);
280
281
  this.emit('devInfo', `Hardware: ${this.info.modelName}`);
281
- this.emit('devInfo', `Serialnr: ${this.info.serialNumber}`)
282
+ this.emit('devInfo', `Serialnr: ${this.serialNumber}`)
282
283
  this.emit('devInfo', `Firmware: ${this.info.firmwareRevision}`);
283
284
  this.emit('devInfo', `Sensors: ${this.sensorsCount}`);
284
285
  this.emit('devInfo', `----------------------------------`);
@@ -292,7 +293,7 @@ class Sensors extends EventEmitter {
292
293
  try {
293
294
  //accessory
294
295
  const accessoryName = this.info.deviceName;
295
- const accessoryUUID = AccessoryUUID.generate(this.info.serialNumber);
296
+ const accessoryUUID = AccessoryUUID.generate(this.serialNumber);
296
297
  const accessoryCategory = Categories.SENSOR;
297
298
  const accessory = new Accessory(accessoryName, accessoryUUID, accessoryCategory);
298
299
 
@@ -301,7 +302,7 @@ class Sensors extends EventEmitter {
301
302
  accessory.getService(Service.AccessoryInformation)
302
303
  .setCharacteristic(Characteristic.Manufacturer, 'Tasmota')
303
304
  .setCharacteristic(Characteristic.Model, this.info.modelName ?? 'Model Name')
304
- .setCharacteristic(Characteristic.SerialNumber, this.info.serialNumber ?? 'Serial Number')
305
+ .setCharacteristic(Characteristic.SerialNumber, this.serialNumber ?? 'Serial Number')
305
306
  .setCharacteristic(Characteristic.FirmwareRevision, this.info.firmwareRevision.replace(/[a-zA-Z]/g, '') ?? '0')
306
307
  .setCharacteristic(Characteristic.ConfiguredName, accessoryName);
307
308
 
package/src/switches.js CHANGED
@@ -6,7 +6,7 @@ import { ApiCommands } from './constants.js';
6
6
  let Accessory, Characteristic, Service, Categories, AccessoryUUID;
7
7
 
8
8
  class Switches extends EventEmitter {
9
- constructor(api, config, info, refreshInterval) {
9
+ constructor(api, config, info, serialNumber, refreshInterval) {
10
10
  super();
11
11
 
12
12
  Accessory = api.platformAccessory;
@@ -17,6 +17,7 @@ class Switches extends EventEmitter {
17
17
 
18
18
  //info
19
19
  this.info = info;
20
+ this.serialNumber = serialNumber;
20
21
 
21
22
  //other config
22
23
  this.relaysDisplayType = config.relaysDisplayType || 0;
@@ -134,7 +135,7 @@ class Switches extends EventEmitter {
134
135
  this.emit('devInfo', `----- ${this.info.deviceName} -----`);
135
136
  this.emit('devInfo', `Manufacturer: Tasmota`);
136
137
  this.emit('devInfo', `Hardware: ${this.info.modelName}`);
137
- this.emit('devInfo', `Serialnr: ${this.info.serialNumber}`)
138
+ this.emit('devInfo', `Serialnr: ${this.serialNumber}`)
138
139
  this.emit('devInfo', `Firmware: ${this.info.firmwareRevision}`);
139
140
  this.emit('devInfo', `Relays: ${this.info.relaysCount}`);
140
141
  this.emit('devInfo', `----------------------------------`);
@@ -148,7 +149,7 @@ class Switches extends EventEmitter {
148
149
  try {
149
150
  //accessory
150
151
  const accessoryName = this.info.deviceName;
151
- const accessoryUUID = AccessoryUUID.generate(this.info.serialNumber);
152
+ const accessoryUUID = AccessoryUUID.generate(this.serialNumber);
152
153
  const accessoryCategory = this.relaysDisplayType === 0 ? Categories.OUTLET : Categories.SWITCH;
153
154
  const accessory = new Accessory(accessoryName, accessoryUUID, accessoryCategory);
154
155
 
@@ -157,7 +158,7 @@ class Switches extends EventEmitter {
157
158
  accessory.getService(Service.AccessoryInformation)
158
159
  .setCharacteristic(Characteristic.Manufacturer, 'Tasmota')
159
160
  .setCharacteristic(Characteristic.Model, this.info.modelName ?? 'Model Name')
160
- .setCharacteristic(Characteristic.SerialNumber, this.info.serialNumber ?? 'Serial Number')
161
+ .setCharacteristic(Characteristic.SerialNumber, this.serialNumber ?? 'Serial Number')
161
162
  .setCharacteristic(Characteristic.FirmwareRevision, this.info.firmwareRevision.replace(/[a-zA-Z]/g, '') ?? '0')
162
163
  .setCharacteristic(Characteristic.ConfiguredName, accessoryName);
163
164