@fastybird/smart-panel-backend 1.1.0-alpha.2 → 1.1.0-alpha.3
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/dist/common/utils/transform.utils.js +3 -0
- package/dist/common/utils/transform.utils.js.map +1 -1
- package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +2 -0
- package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +143 -102
- package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
- package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +4 -0
- package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +18 -1
- package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
- package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +2 -2
- package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +4 -0
- package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
- package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +0 -1
- package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +7 -12
- package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
- package/dist/plugins/devices-shelly-ng/utils/transform.utils.d.ts +2 -0
- package/dist/plugins/devices-shelly-ng/utils/transform.utils.js +14 -1
- package/dist/plugins/devices-shelly-ng/utils/transform.utils.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -47,6 +47,9 @@ const coerceNumberSafe = (input, opts = {}) => {
|
|
|
47
47
|
if (input === null) {
|
|
48
48
|
return opts.allowNull ? null : 0;
|
|
49
49
|
}
|
|
50
|
+
if (typeof input !== 'number' && typeof input !== 'string' && typeof input !== 'boolean') {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
50
53
|
if (typeof input === 'number') {
|
|
51
54
|
if (!Number.isFinite(input)) {
|
|
52
55
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.utils.js","sourceRoot":"","sources":["../../../src/common/utils/transform.utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transform.utils.js","sourceRoot":"","sources":["../../../src/common/utils/transform.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,8 @@ export declare class DelegatesManagerService {
|
|
|
58
58
|
private applyTransformer;
|
|
59
59
|
private handleChange;
|
|
60
60
|
private setDefaultPropertyValue;
|
|
61
|
+
private wireElectricalChannels;
|
|
62
|
+
private wireMeterProperty;
|
|
61
63
|
private determineCategory;
|
|
62
64
|
private handleNumericChange;
|
|
63
65
|
private scheduleWrite;
|
|
@@ -199,60 +199,7 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
199
199
|
await comp.set(val);
|
|
200
200
|
return true;
|
|
201
201
|
});
|
|
202
|
-
|
|
203
|
-
const electricalEnergy = await this.channelsService.findOneBy('identifier', `energy:${comp.id}`, device.id, devices_shelly_ng_constants_1.DEVICES_SHELLY_NG_TYPE);
|
|
204
|
-
if (electricalEnergy === null) {
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
const consumption = await this.channelsPropertiesService.findOneBy('identifier', 'aenergy', electricalEnergy.id);
|
|
208
|
-
if (consumption === null) {
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
await this.setDefaultPropertyValue(device.id, consumption, (0, transform_utils_2.toEnergy)(comp.aenergy));
|
|
212
|
-
this.changeHandlers.set(`${delegate.id}|${comp.key}|aenergy`, (val) => {
|
|
213
|
-
this.handleNumericChange(comp.key, 'aenergy', consumption.id, val, (n) => this.handleChange(consumption, (0, transform_utils_2.toEnergy)(n), false));
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (typeof comp.apower !== 'undefined') {
|
|
219
|
-
const electricalPower = await this.channelsService.findOneBy('identifier', `power:${comp.id}`, device.id, devices_shelly_ng_constants_1.DEVICES_SHELLY_NG_TYPE);
|
|
220
|
-
if (electricalPower === null) {
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
const power = await this.channelsPropertiesService.findOneBy('identifier', 'apower', electricalPower.id);
|
|
224
|
-
if (power === null) {
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
await this.setDefaultPropertyValue(device.id, power, Math.max(0, comp.apower));
|
|
228
|
-
this.changeHandlers.set(`${delegate.id}|${comp.key}|apower`, (val) => {
|
|
229
|
-
this.handleNumericChange(comp.key, 'apower', power.id, val, (n) => this.handleChange(power, Math.max(0, n), false));
|
|
230
|
-
});
|
|
231
|
-
if (typeof comp.voltage !== 'undefined') {
|
|
232
|
-
const voltage = await this.channelsPropertiesService.findOneBy('identifier', 'voltage', electricalPower.id);
|
|
233
|
-
if (voltage === null) {
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
await this.setDefaultPropertyValue(device.id, voltage, comp.voltage);
|
|
237
|
-
this.changeHandlers.set(`${delegate.id}|${comp.key}|voltage`, (val) => {
|
|
238
|
-
this.handleNumericChange(comp.key, 'voltage', voltage.id, val, (n) => this.handleChange(voltage, n, false));
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
if (typeof comp.current !== 'undefined') {
|
|
243
|
-
const current = await this.channelsPropertiesService.findOneBy('identifier', 'current', electricalPower.id);
|
|
244
|
-
if (current === null) {
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
await this.setDefaultPropertyValue(device.id, current, comp.current);
|
|
248
|
-
this.changeHandlers.set(`${delegate.id}|${comp.key}|current`, (val) => {
|
|
249
|
-
this.handleNumericChange(comp.key, 'current', current.id, val, (n) => this.handleChange(current, n, false));
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
202
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
256
203
|
}
|
|
257
204
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
258
205
|
return delegate;
|
|
@@ -314,6 +261,7 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
314
261
|
await comp.stop();
|
|
315
262
|
return true;
|
|
316
263
|
});
|
|
264
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
317
265
|
}
|
|
318
266
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
319
267
|
return delegate;
|
|
@@ -362,6 +310,7 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
362
310
|
return true;
|
|
363
311
|
});
|
|
364
312
|
}
|
|
313
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
365
314
|
}
|
|
366
315
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
367
316
|
return delegate;
|
|
@@ -495,6 +444,7 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
495
444
|
]);
|
|
496
445
|
return true;
|
|
497
446
|
});
|
|
447
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
498
448
|
}
|
|
499
449
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
500
450
|
return delegate;
|
|
@@ -653,6 +603,7 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
653
603
|
], Math.round((0, transform_utils_1.clampNumber)(whiteValue, 0, 255)));
|
|
654
604
|
return true;
|
|
655
605
|
});
|
|
606
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
656
607
|
}
|
|
657
608
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
658
609
|
return delegate;
|
|
@@ -746,6 +697,7 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
746
697
|
await comp.set(outputValue, Math.round((0, transform_utils_1.clampNumber)(brightnessValue, 0, 100)), Math.round((0, transform_utils_1.clampNumber)(ctValue, 2_700, 6_500)));
|
|
747
698
|
return true;
|
|
748
699
|
});
|
|
700
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
749
701
|
}
|
|
750
702
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
751
703
|
return delegate;
|
|
@@ -800,54 +752,59 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
800
752
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
801
753
|
return delegate;
|
|
802
754
|
for (const comp of delegate.pm1.values()) {
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
755
|
+
await this.wireElectricalChannels(delegate, device, comp);
|
|
756
|
+
}
|
|
757
|
+
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
758
|
+
return delegate;
|
|
759
|
+
for (const comp of delegate.em.values()) {
|
|
760
|
+
const phases = [
|
|
761
|
+
{ id: 'a', power: comp.a_act_power, voltage: comp.a_voltage, current: comp.a_current, freq: comp.a_freq },
|
|
762
|
+
{ id: 'b', power: comp.b_act_power, voltage: comp.b_voltage, current: comp.b_current, freq: comp.b_freq },
|
|
763
|
+
{ id: 'c', power: comp.c_act_power, voltage: comp.c_voltage, current: comp.c_current, freq: comp.c_freq },
|
|
764
|
+
];
|
|
765
|
+
for (const phase of phases) {
|
|
766
|
+
const channelIdentifier = `power:${comp.id}:${phase.id}`;
|
|
767
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, `${phase.id}_act_power`, `${phase.id}_act_power`, phase.power, true);
|
|
768
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, `${phase.id}_voltage`, `${phase.id}_voltage`, phase.voltage, true);
|
|
769
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, `${phase.id}_current`, `${phase.id}_current`, phase.current, true);
|
|
770
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, `${phase.id}_freq`, `${phase.id}_freq`, phase.freq, true);
|
|
771
|
+
}
|
|
772
|
+
const totalChannelIdentifier = `power:${comp.id}:total`;
|
|
773
|
+
await this.wireMeterProperty(delegate, device, comp.key, totalChannelIdentifier, 'total_act_power', 'total_act_power', comp.total_act_power, true);
|
|
774
|
+
await this.wireMeterProperty(delegate, device, comp.key, totalChannelIdentifier, 'total_current', 'total_current', comp.total_current, true);
|
|
775
|
+
}
|
|
776
|
+
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
777
|
+
return delegate;
|
|
778
|
+
for (const comp of delegate.emData.values()) {
|
|
779
|
+
const phases = [
|
|
780
|
+
{ id: 'a', energy: comp.a_total_act_energy, returned: comp.a_total_act_ret_energy },
|
|
781
|
+
{ id: 'b', energy: comp.b_total_act_energy, returned: comp.b_total_act_ret_energy },
|
|
782
|
+
{ id: 'c', energy: comp.c_total_act_energy, returned: comp.c_total_act_ret_energy },
|
|
783
|
+
];
|
|
784
|
+
for (const phase of phases) {
|
|
785
|
+
const channelIdentifier = `energy:${comp.id}:${phase.id}`;
|
|
786
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, `${phase.id}_total_act_energy`, `${phase.id}_total_act_energy`, phase.energy, false);
|
|
787
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, `${phase.id}_total_act_ret_energy`, `${phase.id}_total_act_ret_energy`, phase.returned, false);
|
|
788
|
+
}
|
|
789
|
+
const totalChannelIdentifier = `energy:${comp.id}:total`;
|
|
790
|
+
await this.wireMeterProperty(delegate, device, comp.key, totalChannelIdentifier, 'total_act', 'total_act', comp.total_act, false);
|
|
791
|
+
await this.wireMeterProperty(delegate, device, comp.key, totalChannelIdentifier, 'total_act_ret', 'total_act_ret', comp.total_act_ret, false);
|
|
792
|
+
}
|
|
793
|
+
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
794
|
+
return delegate;
|
|
795
|
+
for (const comp of delegate.em1.values()) {
|
|
796
|
+
const channelIdentifier = `power:${comp.id}`;
|
|
797
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, 'act_power', 'act_power', comp.act_power, true);
|
|
798
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, 'voltage', 'voltage', comp.voltage, true);
|
|
799
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, 'current', 'current', comp.current, true);
|
|
800
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, 'freq', 'freq', comp.freq, true);
|
|
801
|
+
}
|
|
802
|
+
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
803
|
+
return delegate;
|
|
804
|
+
for (const comp of delegate.em1Data.values()) {
|
|
805
|
+
const channelIdentifier = `energy:${comp.id}`;
|
|
806
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, 'total_act_energy', 'total_act_energy', comp.total_act_energy, false);
|
|
807
|
+
await this.wireMeterProperty(delegate, device, comp.key, channelIdentifier, 'total_act_ret_energy', 'total_act_ret_energy', comp.total_act_ret_energy, false);
|
|
851
808
|
}
|
|
852
809
|
if (this.insertGeneration.get(shelly.id) !== generation)
|
|
853
810
|
return delegate;
|
|
@@ -1142,6 +1099,87 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
1142
1099
|
}
|
|
1143
1100
|
set.add(property.id);
|
|
1144
1101
|
}
|
|
1102
|
+
async wireElectricalChannels(delegate, device, comp) {
|
|
1103
|
+
if (typeof comp.aenergy !== 'undefined') {
|
|
1104
|
+
const electricalEnergy = await this.channelsService.findOneBy('identifier', `energy:${comp.id}`, device.id, devices_shelly_ng_constants_1.DEVICES_SHELLY_NG_TYPE);
|
|
1105
|
+
if (electricalEnergy === null) {
|
|
1106
|
+
}
|
|
1107
|
+
else {
|
|
1108
|
+
const consumption = await this.channelsPropertiesService.findOneBy('identifier', 'aenergy', electricalEnergy.id);
|
|
1109
|
+
if (consumption === null) {
|
|
1110
|
+
}
|
|
1111
|
+
else {
|
|
1112
|
+
await this.setDefaultPropertyValue(device.id, consumption, (0, transform_utils_2.toEnergy)(comp.aenergy));
|
|
1113
|
+
this.changeHandlers.set(`${delegate.id}|${comp.key}|aenergy.total`, (val) => {
|
|
1114
|
+
this.handleNumericChange(comp.key, 'aenergy.total', consumption.id, val, (n) => this.handleChange(consumption, (0, transform_utils_2.toEnergy)(n), false));
|
|
1115
|
+
});
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
if (typeof comp.apower !== 'undefined' ||
|
|
1120
|
+
typeof comp.voltage !== 'undefined' ||
|
|
1121
|
+
typeof comp.current !== 'undefined') {
|
|
1122
|
+
const electricalPower = await this.channelsService.findOneBy('identifier', `power:${comp.id}`, device.id, devices_shelly_ng_constants_1.DEVICES_SHELLY_NG_TYPE);
|
|
1123
|
+
if (electricalPower === null) {
|
|
1124
|
+
}
|
|
1125
|
+
else {
|
|
1126
|
+
if (typeof comp.apower !== 'undefined') {
|
|
1127
|
+
const power = await this.channelsPropertiesService.findOneBy('identifier', 'apower', electricalPower.id);
|
|
1128
|
+
if (power === null) {
|
|
1129
|
+
}
|
|
1130
|
+
else {
|
|
1131
|
+
await this.setDefaultPropertyValue(device.id, power, Math.max(0, comp.apower));
|
|
1132
|
+
this.changeHandlers.set(`${delegate.id}|${comp.key}|apower`, (val) => {
|
|
1133
|
+
this.handleNumericChange(comp.key, 'apower', power.id, val, (n) => this.handleChange(power, Math.max(0, n), false));
|
|
1134
|
+
});
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
if (typeof comp.voltage !== 'undefined') {
|
|
1138
|
+
const voltage = await this.channelsPropertiesService.findOneBy('identifier', 'voltage', electricalPower.id);
|
|
1139
|
+
if (voltage === null) {
|
|
1140
|
+
}
|
|
1141
|
+
else {
|
|
1142
|
+
await this.setDefaultPropertyValue(device.id, voltage, comp.voltage);
|
|
1143
|
+
this.changeHandlers.set(`${delegate.id}|${comp.key}|voltage`, (val) => {
|
|
1144
|
+
this.handleNumericChange(comp.key, 'voltage', voltage.id, val, (n) => this.handleChange(voltage, n, false));
|
|
1145
|
+
});
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
if (typeof comp.current !== 'undefined') {
|
|
1149
|
+
const current = await this.channelsPropertiesService.findOneBy('identifier', 'current', electricalPower.id);
|
|
1150
|
+
if (current === null) {
|
|
1151
|
+
}
|
|
1152
|
+
else {
|
|
1153
|
+
await this.setDefaultPropertyValue(device.id, current, comp.current);
|
|
1154
|
+
this.changeHandlers.set(`${delegate.id}|${comp.key}|current`, (val) => {
|
|
1155
|
+
this.handleNumericChange(comp.key, 'current', current.id, val, (n) => this.handleChange(current, n, false));
|
|
1156
|
+
});
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
async wireMeterProperty(delegate, device, compKey, channelIdentifier, attr, propertyIdentifier, value, allowNull) {
|
|
1163
|
+
if (typeof value === 'undefined') {
|
|
1164
|
+
return;
|
|
1165
|
+
}
|
|
1166
|
+
const channel = await this.channelsService.findOneBy('identifier', channelIdentifier, device.id, devices_shelly_ng_constants_1.DEVICES_SHELLY_NG_TYPE);
|
|
1167
|
+
if (channel === null) {
|
|
1168
|
+
return;
|
|
1169
|
+
}
|
|
1170
|
+
const property = await this.channelsPropertiesService.findOneBy('identifier', propertyIdentifier, channel.id);
|
|
1171
|
+
if (property === null) {
|
|
1172
|
+
return;
|
|
1173
|
+
}
|
|
1174
|
+
if (value !== null) {
|
|
1175
|
+
await this.setDefaultPropertyValue(device.id, property, value);
|
|
1176
|
+
}
|
|
1177
|
+
this.changeHandlers.set(`${delegate.id}|${compKey}|${attr}`, (val) => {
|
|
1178
|
+
this.handleNumericChange(compKey, attr, property.id, val, (n) => this.handleChange(property, n, false), {
|
|
1179
|
+
allowNull,
|
|
1180
|
+
});
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
1145
1183
|
determineCategory(delegate) {
|
|
1146
1184
|
if (delegate.descriptor && delegate.descriptor.categories.length > 0) {
|
|
1147
1185
|
return delegate.descriptor.categories[0];
|
|
@@ -1164,6 +1202,9 @@ let DelegatesManagerService = DelegatesManagerService_1 = class DelegatesManager
|
|
|
1164
1202
|
return devices_constants_1.DeviceCategory.GENERIC;
|
|
1165
1203
|
}
|
|
1166
1204
|
handleNumericChange(compKey, attr, propertyId, val, write, opts) {
|
|
1205
|
+
if (val === null && opts?.allowNull) {
|
|
1206
|
+
return;
|
|
1207
|
+
}
|
|
1167
1208
|
const n = (0, transform_utils_1.coerceNumberSafe)(val, opts);
|
|
1168
1209
|
if (n === null || Number.isNaN(n)) {
|
|
1169
1210
|
this.logger.warn(`Dropping invalid numeric update for ${compKey}.${attr} -> ${(0, transform_utils_1.safeToString)(val)} (property=${propertyId})`);
|