@fastybird/smart-panel-backend 1.1.0-alpha.23 → 1.1.0-alpha.24

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 (27) hide show
  1. package/dist/modules/devices/devices.module.js +2 -0
  2. package/dist/modules/devices/devices.module.js.map +1 -1
  3. package/dist/modules/devices/services/channels.properties.service.d.ts +3 -1
  4. package/dist/modules/devices/services/channels.properties.service.js +17 -10
  5. package/dist/modules/devices/services/channels.properties.service.js.map +1 -1
  6. package/dist/modules/devices/services/property-command-window.service.d.ts +1 -1
  7. package/dist/modules/devices/services/property-command-window.service.js +2 -0
  8. package/dist/modules/devices/services/property-command-window.service.js.map +1 -1
  9. package/dist/modules/devices/services/property-metadata.service.d.ts +31 -0
  10. package/dist/modules/devices/services/property-metadata.service.js +152 -0
  11. package/dist/modules/devices/services/property-metadata.service.js.map +1 -0
  12. package/dist/modules/devices/services/property-value-lock.service.d.ts +3 -1
  13. package/dist/modules/devices/services/property-value-lock.service.js +13 -2
  14. package/dist/modules/devices/services/property-value-lock.service.js.map +1 -1
  15. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.d.ts +2 -1
  16. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +12 -4
  17. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  18. package/dist/plugins/devices-homekit/mappers/base.mapper.js +3 -2
  19. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  20. package/dist/plugins/devices-homekit/mappers/characteristic-write.d.ts +2 -0
  21. package/dist/plugins/devices-homekit/mappers/characteristic-write.js +17 -0
  22. package/dist/plugins/devices-homekit/mappers/characteristic-write.js.map +1 -0
  23. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +1 -1
  24. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +13 -12
  25. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  26. package/dist/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +2 -2
@@ -8,6 +8,9 @@ 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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.PropertyValueLockService = exports.PropertyValueLockLostError = void 0;
13
16
  const node_crypto_1 = require("node:crypto");
@@ -15,6 +18,8 @@ const promises_1 = require("node:fs/promises");
15
18
  const node_net_1 = require("node:net");
16
19
  const typeorm_1 = require("typeorm");
17
20
  const common_1 = require("@nestjs/common");
21
+ const config_1 = require("@nestjs/config");
22
+ const config_utils_1 = require("../../../common/utils/config.utils");
18
23
  const shared_lock_socket_path_utils_1 = require("../../../common/utils/shared-lock-socket-path.utils");
19
24
  const PROPERTY_VALUE_LOCK_TABLE = 'devices_module_property_value_locks';
20
25
  const PROPERTY_VALUE_LOCK_CLAIM_TTL_MS = 60_000;
@@ -29,10 +34,14 @@ class PropertyValueLockLostError extends Error {
29
34
  }
30
35
  exports.PropertyValueLockLostError = PropertyValueLockLostError;
31
36
  let PropertyValueLockService = class PropertyValueLockService {
32
- constructor(dataSource) {
37
+ constructor(dataSource, configService = new config_1.ConfigService()) {
33
38
  this.dataSource = dataSource;
39
+ this.enabled = (0, config_utils_1.getEnvValue)(configService, 'FB_PROPERTY_VALUE_LOCKS_ENABLED', false);
34
40
  }
35
41
  async runExclusive(propertyId, operation) {
42
+ if (!this.enabled) {
43
+ return operation({ assertOwned: () => Promise.resolve() });
44
+ }
36
45
  const ownerToken = (0, node_crypto_1.randomUUID)();
37
46
  const ownerSocket = await this.openOwnerSocket(ownerToken);
38
47
  let acquired = false;
@@ -142,6 +151,8 @@ let PropertyValueLockService = class PropertyValueLockService {
142
151
  exports.PropertyValueLockService = PropertyValueLockService;
143
152
  exports.PropertyValueLockService = PropertyValueLockService = __decorate([
144
153
  (0, common_1.Injectable)(),
145
- __metadata("design:paramtypes", [typeorm_1.DataSource])
154
+ __param(1, (0, common_1.Optional)()),
155
+ __metadata("design:paramtypes", [typeorm_1.DataSource,
156
+ config_1.ConfigService])
146
157
  ], PropertyValueLockService);
147
158
  //# sourceMappingURL=property-value-lock.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"property-value-lock.service.js","sourceRoot":"","sources":["../../../../src/modules/devices/services/property-value-lock.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"property-value-lock.service.js","sourceRoot":"","sources":["../../../../src/modules/devices/services/property-value-lock.service.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class HomeKitEventListener {
5
5
  private readonly mapperRegistry;
6
6
  private readonly logger;
7
7
  constructor(mapperRegistry: HomeKitMapperRegistryService);
8
- handlePropertyValueChanged(property: ChannelPropertyEntity): void;
8
+ handlePropertyValueSet(property: ChannelPropertyEntity): void;
9
+ handlePropertyValueChanged(property: ChannelPropertyEntity, acceptedValue?: boolean): void;
9
10
  handleChannelInputOccurrence(occurrence: ChannelInputOccurrencePayload): void;
10
11
  }
@@ -22,7 +22,10 @@ let HomeKitEventListener = HomeKitEventListener_1 = class HomeKitEventListener {
22
22
  this.mapperRegistry = mapperRegistry;
23
23
  this.logger = new common_1.Logger(HomeKitEventListener_1.name);
24
24
  }
25
- handlePropertyValueChanged(property) {
25
+ handlePropertyValueSet(property) {
26
+ this.handlePropertyValueChanged(property, true);
27
+ }
28
+ handlePropertyValueChanged(property, acceptedValue = false) {
26
29
  if (!property || !property.id) {
27
30
  return;
28
31
  }
@@ -37,7 +40,7 @@ let HomeKitEventListener = HomeKitEventListener_1 = class HomeKitEventListener {
37
40
  const hapValue = binding.toHomeKit
38
41
  ? binding.toHomeKit(rawValue)
39
42
  : rawValue;
40
- if (binding.pendingWrite && Object.is(hapValue, binding.pendingWrite.previousValue)) {
43
+ if (!acceptedValue && binding.pendingWrite && Object.is(hapValue, binding.pendingWrite.previousValue)) {
41
44
  this.logger.debug(`Suppressing stale HomeKit characteristic update: property=${property.id} value=${JSON.stringify(rawValue)}`);
42
45
  continue;
43
46
  }
@@ -54,7 +57,7 @@ let HomeKitEventListener = HomeKitEventListener_1 = class HomeKitEventListener {
54
57
  }
55
58
  for (const listener of listeners) {
56
59
  try {
57
- listener.onPropertyChanged(property, rawValue);
60
+ listener.onPropertyChanged(property, rawValue, acceptedValue);
58
61
  }
59
62
  catch (error) {
60
63
  const err = error;
@@ -81,10 +84,15 @@ let HomeKitEventListener = HomeKitEventListener_1 = class HomeKitEventListener {
81
84
  exports.HomeKitEventListener = HomeKitEventListener;
82
85
  __decorate([
83
86
  (0, event_emitter_1.OnEvent)(devices_constants_1.EventType.CHANNEL_PROPERTY_VALUE_SET),
84
- (0, event_emitter_1.OnEvent)(devices_constants_1.EventType.CHANNEL_PROPERTY_UPDATED),
85
87
  __metadata("design:type", Function),
86
88
  __metadata("design:paramtypes", [devices_entity_1.ChannelPropertyEntity]),
87
89
  __metadata("design:returntype", void 0)
90
+ ], HomeKitEventListener.prototype, "handlePropertyValueSet", null);
91
+ __decorate([
92
+ (0, event_emitter_1.OnEvent)(devices_constants_1.EventType.CHANNEL_PROPERTY_UPDATED),
93
+ __metadata("design:type", Function),
94
+ __metadata("design:paramtypes", [devices_entity_1.ChannelPropertyEntity, Object]),
95
+ __metadata("design:returntype", void 0)
88
96
  ], HomeKitEventListener.prototype, "handlePropertyValueChanged", null);
89
97
  __decorate([
90
98
  (0, event_emitter_1.OnEvent)(devices_constants_1.EventType.CHANNEL_INPUT_OCCURRENCE),
@@ -1 +1 @@
1
- {"version":3,"file":"homekit-event.listener.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/listeners/homekit-event.listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"homekit-event.listener.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/listeners/homekit-event.listener.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseHomeKitMapper = void 0;
4
4
  const hap_nodejs_1 = require("@homebridge/hap-nodejs");
5
5
  const devices_constants_1 = require("../../../modules/devices/devices.constants");
6
+ const characteristic_write_1 = require("./characteristic-write");
6
7
  class BaseHomeKitMapper {
7
8
  createBaseAccessory(device, category) {
8
9
  const accessoryUuid = hap_nodejs_1.uuid.generate(`fastybird.smart-panel.device.${device.id}`);
@@ -58,7 +59,7 @@ class BaseHomeKitMapper {
58
59
  property.permissions.some((p) => [devices_constants_1.PermissionType.READ_WRITE, devices_constants_1.PermissionType.WRITE_ONLY].includes(p));
59
60
  const isCharacteristicWritable = characteristic.props.perms.includes("pw");
60
61
  if (isPropertyWritable && isCharacteristicWritable) {
61
- characteristic.onSet(async (value) => {
62
+ (0, characteristic_write_1.bindCharacteristicWrite)(characteristic, async (value) => {
62
63
  const startingRevision = binding.revision;
63
64
  const token = (binding.nextWriteToken ?? 0) + 1;
64
65
  binding.nextWriteToken = token;
@@ -88,7 +89,7 @@ class BaseHomeKitMapper {
88
89
  binding.pendingWrite = undefined;
89
90
  }
90
91
  }
91
- });
92
+ }, () => binding.currentValue);
92
93
  }
93
94
  context.registerBinding(binding);
94
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.mapper.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/mappers/base.mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.mapper.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/mappers/base.mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Characteristic, CharacteristicValue } from '@homebridge/hap-nodejs';
2
+ export declare function bindCharacteristicWrite(characteristic: Characteristic, write: (value: CharacteristicValue) => Promise<void>, currentValue: () => CharacteristicValue): void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bindCharacteristicWrite = bindCharacteristicWrite;
4
+ function bindCharacteristicWrite(characteristic, write, currentValue) {
5
+ if (!characteristic.props.perms.includes("wr")) {
6
+ characteristic.setProps({ perms: [...characteristic.props.perms, "wr"] });
7
+ }
8
+ characteristic.onSet(async (value) => {
9
+ await write(value);
10
+ const current = currentValue();
11
+ if (!Object.is(characteristic.value, current)) {
12
+ characteristic.updateValue(current);
13
+ }
14
+ return current;
15
+ });
16
+ }
17
+ //# sourceMappingURL=characteristic-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characteristic-write.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/mappers/characteristic-write.ts"],"names":[],"mappings":";;AAOA,0DAgBC;AAhBD,SAAgB,uBAAuB,CACtC,cAA8B,EAC9B,KAAoD,EACpD,YAAuC;IAEvC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,MAAsB,EAAE,CAAC;QAChE,cAAc,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,OAAuB,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC/C,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -23,7 +23,7 @@ export interface CharacteristicBinding {
23
23
  export interface PropertyEventListener {
24
24
  deviceId: string;
25
25
  propertyId: string;
26
- onPropertyChanged: (property: ChannelPropertyEntity, rawValue: unknown) => void;
26
+ onPropertyChanged: (property: ChannelPropertyEntity, rawValue: unknown, acceptedValue?: boolean) => void;
27
27
  }
28
28
  export interface InputOccurrenceListener {
29
29
  deviceId: string;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ThermostatCoordinator = void 0;
4
4
  const hap_nodejs_1 = require("@homebridge/hap-nodejs");
5
5
  const devices_constants_1 = require("../../../modules/devices/devices.constants");
6
+ const characteristic_write_1 = require("./characteristic-write");
6
7
  class ThermostatCoordinator {
7
8
  constructor(config) {
8
9
  this.config = config;
@@ -70,7 +71,7 @@ class ThermostatCoordinator {
70
71
  const hasWritableTemp = this.isPropertyWritable(this.config.heaterTempProperty) ||
71
72
  this.isPropertyWritable(this.config.coolerTempProperty);
72
73
  if (hasWritableTemp && this.targetTempChar.props.perms.includes("pw")) {
73
- this.targetTempChar.onSet(async (value) => {
74
+ (0, characteristic_write_1.bindCharacteristicWrite)(this.targetTempChar, async (value) => {
74
75
  const targetVal = Number(value);
75
76
  const targetMode = this.deriveTargetHeatingCoolingState();
76
77
  const commands = [];
@@ -110,14 +111,14 @@ class ThermostatCoordinator {
110
111
  if (commands.length > 0) {
111
112
  await this.dispatchPendingBatch(commands);
112
113
  }
113
- });
114
+ }, () => this.targetTempChar.value);
114
115
  }
115
116
  this.currentHeatingCoolingChar.onGet(() => this.deriveCurrentHeatingCoolingState());
116
117
  this.targetHeatingCoolingChar.onGet(() => this.deriveTargetHeatingCoolingState());
117
118
  const hasWritableState = (this.config.heaterOnProperty && this.isPropertyWritable(this.config.heaterOnProperty)) ||
118
119
  (this.config.coolerOnProperty && this.isPropertyWritable(this.config.coolerOnProperty));
119
120
  if (hasWritableState && this.targetHeatingCoolingChar.props.perms.includes("pw")) {
120
- this.targetHeatingCoolingChar.onSet(async (value) => {
121
+ (0, characteristic_write_1.bindCharacteristicWrite)(this.targetHeatingCoolingChar, async (value) => {
121
122
  const targetMode = Number(value);
122
123
  const commands = [];
123
124
  if (targetMode === hap_nodejs_1.Characteristic.TargetHeatingCoolingState.OFF) {
@@ -155,7 +156,7 @@ class ThermostatCoordinator {
155
156
  if (commands.length > 0) {
156
157
  await this.dispatchPendingBatch(commands);
157
158
  }
158
- });
159
+ }, () => this.targetHeatingCoolingChar.value);
159
160
  }
160
161
  if (this.heatingThresholdChar && this.config.heaterTempProperty) {
161
162
  const heaterTempProp = this.config.heaterTempProperty;
@@ -169,10 +170,10 @@ class ThermostatCoordinator {
169
170
  });
170
171
  if (this.isPropertyWritable(heaterTempProp) &&
171
172
  this.heatingThresholdChar.props.perms.includes("pw")) {
172
- this.heatingThresholdChar.onSet(async (value) => {
173
+ (0, characteristic_write_1.bindCharacteristicWrite)(this.heatingThresholdChar, async (value) => {
173
174
  const target = Number(value);
174
175
  await this.dispatchPending(heaterTempProp.id, target);
175
- });
176
+ }, () => this.heatingThresholdChar.value);
176
177
  }
177
178
  }
178
179
  if (this.coolingThresholdChar && this.config.coolerTempProperty) {
@@ -187,10 +188,10 @@ class ThermostatCoordinator {
187
188
  });
188
189
  if (this.isPropertyWritable(coolerTempProp) &&
189
190
  this.coolingThresholdChar.props.perms.includes("pw")) {
190
- this.coolingThresholdChar.onSet(async (value) => {
191
+ (0, characteristic_write_1.bindCharacteristicWrite)(this.coolingThresholdChar, async (value) => {
191
192
  const target = Number(value);
192
193
  await this.dispatchPending(coolerTempProp.id, target);
193
- });
194
+ }, () => this.coolingThresholdChar.value);
194
195
  }
195
196
  }
196
197
  if (this.config.lockedProperty) {
@@ -198,10 +199,10 @@ class ThermostatCoordinator {
198
199
  this.lockPhysicalControlsChar = this.config.service.getCharacteristic(hap_nodejs_1.Characteristic.LockPhysicalControls);
199
200
  this.lockPhysicalControlsChar.onGet(() => this.getLockPhysicalControls());
200
201
  if (this.isPropertyWritable(lockProp) && this.lockPhysicalControlsChar.props.perms.includes("pw")) {
201
- this.lockPhysicalControlsChar.onSet(async (value) => {
202
+ (0, characteristic_write_1.bindCharacteristicWrite)(this.lockPhysicalControlsChar, async (value) => {
202
203
  const isLocked = value === hap_nodejs_1.Characteristic.LockPhysicalControls.CONTROL_LOCK_ENABLED;
203
204
  await this.dispatchPending(lockProp.id, isLocked);
204
- });
205
+ }, () => this.lockPhysicalControlsChar.value);
205
206
  }
206
207
  }
207
208
  }
@@ -220,9 +221,9 @@ class ThermostatCoordinator {
220
221
  const listener = {
221
222
  deviceId: this.config.device.id,
222
223
  propertyId: prop.id,
223
- onPropertyChanged: (_property, rawValue) => {
224
+ onPropertyChanged: (_property, rawValue, acceptedValue) => {
224
225
  const pending = this.pendingWrites.get(prop.id);
225
- if (pending && Object.is(rawValue, pending.previousValue)) {
226
+ if (!acceptedValue && pending && Object.is(rawValue, pending.previousValue)) {
226
227
  return;
227
228
  }
228
229
  this.revisions.set(prop.id, (this.revisions.get(prop.id) ?? 0) + 1);
@@ -1 +1 @@
1
- {"version":3,"file":"thermostat-coordinator.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/mappers/thermostat-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermostat-coordinator.js","sourceRoot":"","sources":["../../../../src/plugins/devices-homekit/mappers/thermostat-coordinator.ts"],"names":[],"mappings":"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"}