homebridge-virtual-accessories 3.14.22 → 3.15.1

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 (153) hide show
  1. package/config.schema.json +7 -22
  2. package/dist/accessories/accessory.d.ts +11 -9
  3. package/dist/accessories/accessory.js +121 -16
  4. package/dist/accessories/accessory.js.map +1 -1
  5. package/dist/accessories/companions/companionSwitch.d.ts +2 -2
  6. package/dist/accessories/companions/companionSwitch.js +12 -12
  7. package/dist/accessories/companions/companionSwitch.js.map +1 -1
  8. package/dist/accessories/externalAccessory.d.ts +2 -2
  9. package/dist/accessories/externalAccessory.js +2 -2
  10. package/dist/accessories/externalAccessory.js.map +1 -1
  11. package/dist/accessories/positionAccessory.d.ts +30 -0
  12. package/dist/accessories/positionAccessory.js +170 -0
  13. package/dist/accessories/positionAccessory.js.map +1 -0
  14. package/dist/accessories/updatableChargingState.d.ts +2 -2
  15. package/dist/accessories/virtualAccessoryAirPurifier.d.ts +15 -18
  16. package/dist/accessories/virtualAccessoryAirPurifier.js +118 -112
  17. package/dist/accessories/virtualAccessoryAirPurifier.js.map +1 -1
  18. package/dist/accessories/virtualAccessoryBattery.d.ts +11 -14
  19. package/dist/accessories/virtualAccessoryBattery.js +95 -83
  20. package/dist/accessories/virtualAccessoryBattery.js.map +1 -1
  21. package/dist/accessories/virtualAccessoryDoor.d.ts +4 -7
  22. package/dist/accessories/virtualAccessoryDoor.js +5 -11
  23. package/dist/accessories/virtualAccessoryDoor.js.map +1 -1
  24. package/dist/accessories/virtualAccessoryDoorbell.d.ts +13 -16
  25. package/dist/accessories/virtualAccessoryDoorbell.js +116 -80
  26. package/dist/accessories/virtualAccessoryDoorbell.js.map +1 -1
  27. package/dist/accessories/virtualAccessoryFan.d.ts +12 -14
  28. package/dist/accessories/virtualAccessoryFan.js +99 -75
  29. package/dist/accessories/virtualAccessoryFan.js.map +1 -1
  30. package/dist/accessories/virtualAccessoryFilterMaintenance.d.ts +7 -11
  31. package/dist/accessories/virtualAccessoryFilterMaintenance.js +63 -55
  32. package/dist/accessories/virtualAccessoryFilterMaintenance.js.map +1 -1
  33. package/dist/accessories/virtualAccessoryGarageDoor.d.ts +13 -13
  34. package/dist/accessories/virtualAccessoryGarageDoor.js +142 -114
  35. package/dist/accessories/virtualAccessoryGarageDoor.js.map +1 -1
  36. package/dist/accessories/virtualAccessoryHeaterCooler.d.ts +32 -34
  37. package/dist/accessories/virtualAccessoryHeaterCooler.js +321 -284
  38. package/dist/accessories/virtualAccessoryHeaterCooler.js.map +1 -1
  39. package/dist/accessories/virtualAccessoryHumidifierDehumidifier.d.ts +24 -26
  40. package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js +248 -217
  41. package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js.map +1 -1
  42. package/dist/accessories/virtualAccessoryInputSource.d.ts +25 -27
  43. package/dist/accessories/virtualAccessoryInputSource.js +122 -105
  44. package/dist/accessories/virtualAccessoryInputSource.js.map +1 -1
  45. package/dist/accessories/virtualAccessoryLightbulb.d.ts +17 -18
  46. package/dist/accessories/virtualAccessoryLightbulb.js +187 -133
  47. package/dist/accessories/virtualAccessoryLightbulb.js.map +1 -1
  48. package/dist/accessories/virtualAccessoryLock.d.ts +17 -18
  49. package/dist/accessories/virtualAccessoryLock.js +192 -154
  50. package/dist/accessories/virtualAccessoryLock.js.map +1 -1
  51. package/dist/accessories/virtualAccessoryMicrophone.d.ts +7 -7
  52. package/dist/accessories/virtualAccessoryMicrophone.js +68 -37
  53. package/dist/accessories/virtualAccessoryMicrophone.js.map +1 -1
  54. package/dist/accessories/virtualAccessorySecuritySystem.d.ts +9 -12
  55. package/dist/accessories/virtualAccessorySecuritySystem.js +103 -104
  56. package/dist/accessories/virtualAccessorySecuritySystem.js.map +1 -1
  57. package/dist/accessories/virtualAccessorySmartSpeaker.d.ts +18 -20
  58. package/dist/accessories/virtualAccessorySmartSpeaker.js +130 -95
  59. package/dist/accessories/virtualAccessorySmartSpeaker.js.map +1 -1
  60. package/dist/accessories/virtualAccessorySpeaker.d.ts +12 -15
  61. package/dist/accessories/virtualAccessorySpeaker.js +95 -70
  62. package/dist/accessories/virtualAccessorySpeaker.js.map +1 -1
  63. package/dist/accessories/virtualAccessorySwitch.d.ts +6 -11
  64. package/dist/accessories/virtualAccessorySwitch.js +73 -71
  65. package/dist/accessories/virtualAccessorySwitch.js.map +1 -1
  66. package/dist/accessories/virtualAccessoryTelevision.d.ts +28 -30
  67. package/dist/accessories/virtualAccessoryTelevision.js +143 -108
  68. package/dist/accessories/virtualAccessoryTelevision.js.map +1 -1
  69. package/dist/accessories/virtualAccessoryValve.d.ts +15 -19
  70. package/dist/accessories/virtualAccessoryValve.js +116 -105
  71. package/dist/accessories/virtualAccessoryValve.js.map +1 -1
  72. package/dist/accessories/virtualAccessoryWindow.d.ts +4 -7
  73. package/dist/accessories/virtualAccessoryWindow.js +5 -11
  74. package/dist/accessories/virtualAccessoryWindow.js.map +1 -1
  75. package/dist/accessories/virtualAccessoryWindowCovering.d.ts +4 -7
  76. package/dist/accessories/virtualAccessoryWindowCovering.js +5 -11
  77. package/dist/accessories/virtualAccessoryWindowCovering.js.map +1 -1
  78. package/dist/characteristicsUtils.d.ts +173 -0
  79. package/dist/characteristicsUtils.js +618 -0
  80. package/dist/characteristicsUtils.js.map +1 -0
  81. package/dist/configuration/accessories/configurationFilterMaintenance.js +0 -1
  82. package/dist/configuration/accessories/configurationFilterMaintenance.js.map +1 -1
  83. package/dist/configuration/accessories/configurationHeaterCooler.js +0 -1
  84. package/dist/configuration/accessories/configurationHeaterCooler.js.map +1 -1
  85. package/dist/configuration/accessories/configurationValve.js +0 -1
  86. package/dist/configuration/accessories/configurationValve.js.map +1 -1
  87. package/dist/configuration/configurationMeasurementSensor.d.ts +0 -1
  88. package/dist/configuration/configurationMeasurementSensor.js +0 -15
  89. package/dist/configuration/configurationMeasurementSensor.js.map +1 -1
  90. package/dist/configuration/configurationOpenableAccesory.d.ts +1 -1
  91. package/dist/configuration/configurationOpenableAccesory.js +1 -1
  92. package/dist/configuration/configurationTimer.js +0 -1
  93. package/dist/configuration/configurationTimer.js.map +1 -1
  94. package/dist/configuration/utils.js.map +1 -1
  95. package/dist/platform.d.ts +2 -0
  96. package/dist/platform.js +6 -2
  97. package/dist/platform.js.map +1 -1
  98. package/dist/sensors/binarySensor.d.ts +8 -13
  99. package/dist/sensors/binarySensor.js +50 -48
  100. package/dist/sensors/binarySensor.js.map +1 -1
  101. package/dist/sensors/companions/companionSensors.js +4 -5
  102. package/dist/sensors/companions/companionSensors.js.map +1 -1
  103. package/dist/sensors/measurementSensor.d.ts +6 -10
  104. package/dist/sensors/measurementSensor.js +23 -23
  105. package/dist/sensors/measurementSensor.js.map +1 -1
  106. package/dist/sensors/triggers/triggerCron.js +0 -1
  107. package/dist/sensors/triggers/triggerCron.js.map +1 -1
  108. package/dist/sensors/triggers/triggerIkeaMatterStock.js +0 -1
  109. package/dist/sensors/triggers/triggerIkeaMatterStock.js.map +1 -1
  110. package/dist/sensors/triggers/triggerPing.js +2 -3
  111. package/dist/sensors/triggers/triggerPing.js.map +1 -1
  112. package/dist/sensors/triggers/triggerSunEvents.js.map +1 -1
  113. package/dist/sensors/triggers/triggerWebhook.js +0 -1
  114. package/dist/sensors/triggers/triggerWebhook.js.map +1 -1
  115. package/dist/sensors/virtualSensorCarbonDioxide.d.ts +3 -9
  116. package/dist/sensors/virtualSensorCarbonDioxide.js +8 -13
  117. package/dist/sensors/virtualSensorCarbonDioxide.js.map +1 -1
  118. package/dist/sensors/virtualSensorCarbonMonoxide.d.ts +3 -9
  119. package/dist/sensors/virtualSensorCarbonMonoxide.js +8 -13
  120. package/dist/sensors/virtualSensorCarbonMonoxide.js.map +1 -1
  121. package/dist/sensors/virtualSensorContact.d.ts +3 -9
  122. package/dist/sensors/virtualSensorContact.js +8 -13
  123. package/dist/sensors/virtualSensorContact.js.map +1 -1
  124. package/dist/sensors/virtualSensorHumidity.d.ts +1 -7
  125. package/dist/sensors/virtualSensorHumidity.js +8 -16
  126. package/dist/sensors/virtualSensorHumidity.js.map +1 -1
  127. package/dist/sensors/virtualSensorLeak.d.ts +3 -9
  128. package/dist/sensors/virtualSensorLeak.js +8 -13
  129. package/dist/sensors/virtualSensorLeak.js.map +1 -1
  130. package/dist/sensors/virtualSensorMotion.d.ts +3 -9
  131. package/dist/sensors/virtualSensorMotion.js +8 -13
  132. package/dist/sensors/virtualSensorMotion.js.map +1 -1
  133. package/dist/sensors/virtualSensorOccupancy.d.ts +3 -9
  134. package/dist/sensors/virtualSensorOccupancy.js +8 -13
  135. package/dist/sensors/virtualSensorOccupancy.js.map +1 -1
  136. package/dist/sensors/virtualSensorSmoke.d.ts +3 -9
  137. package/dist/sensors/virtualSensorSmoke.js +8 -13
  138. package/dist/sensors/virtualSensorSmoke.js.map +1 -1
  139. package/dist/sensors/virtualSensorTemperature.d.ts +3 -8
  140. package/dist/sensors/virtualSensorTemperature.js +24 -18
  141. package/dist/sensors/virtualSensorTemperature.js.map +1 -1
  142. package/dist/utils/timer.js +0 -1
  143. package/dist/utils/timer.js.map +1 -1
  144. package/dist/utils/tlv.js +1 -2
  145. package/dist/utils/tlv.js.map +1 -1
  146. package/dist/utils/utils.js.map +1 -1
  147. package/dist/utils/virtualLogger.js.map +1 -1
  148. package/dist/webhookServer.js +3 -3
  149. package/dist/webhookServer.js.map +1 -1
  150. package/package.json +2 -2
  151. package/dist/accessories/openingAccessory.d.ts +0 -36
  152. package/dist/accessories/openingAccessory.js +0 -165
  153. package/dist/accessories/openingAccessory.js.map +0 -1
@@ -913,20 +913,18 @@
913
913
  "properties": {
914
914
  "type": {
915
915
  "title": "Type *",
916
- "description": "Sensor type (Critical sensor notifications bypass 'Do Not Disturb' focus mode)",
916
+ "description": "Measurement sensor type",
917
917
  "type": "string",
918
918
  "oneOf": [
919
919
  { "title": "Humidity", "enum": ["humidity"] },
920
920
  { "title": "Temperature", "enum": ["temperature"] }
921
921
  ]
922
922
  },
923
- "temperatureUnits": {
924
- "title": "Temperature Units *",
925
- "type": "string",
926
- "oneOf": [
927
- { "title": "Celsius (ºC)", "enum": ["celsius"] },
928
- { "title": "Fahrenheit (ºF)", "enum": ["fahrenheit"] }
929
- ],
923
+ "": {
924
+ "title": " ",
925
+ "description": "Note: Temperature units are set in Homebridge UI under Settings - Display (default: Celsius).",
926
+ "type": "object",
927
+ "properties": {},
930
928
  "condition": {
931
929
  "functionBody": "return model.devices[arrayIndices].measurement && model.devices[arrayIndices].measurement.type === 'temperature';"
932
930
  }
@@ -934,20 +932,7 @@
934
932
  },
935
933
  "condition": {
936
934
  "functionBody": "return model.devices[arrayIndices].accessoryType === 'measurement';"
937
- },
938
- "allOf": [
939
- {
940
- "if": {
941
- "properties": {
942
- "type": { "const": "temperature" }
943
- },
944
- "required": [ "type" ]
945
- },
946
- "then": {
947
- "required": [ "temperatureUnits" ]
948
- }
949
- }
950
- ]
935
+ }
951
936
  },
952
937
  "resetTimer": {
953
938
  "title": "Reset Timer",
@@ -1,29 +1,31 @@
1
- import type { PlatformAccessory, Service } from 'homebridge';
1
+ import { PlatformAccessory, Service, WithUUID } from 'homebridge';
2
2
  import { VirtualAccessoriesPlatform } from '../platform.js';
3
3
  import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
4
4
  import { VirtualLogger } from '../utils/virtualLogger.js';
5
+ import { CharacteristicUtils } from '../characteristicsUtils.js';
5
6
  /**
6
7
  * Abstract Accessory
7
8
  */
8
- export declare abstract class Accessory {
9
- service?: Service;
9
+ export declare abstract class Accessory extends CharacteristicUtils {
10
10
  readonly platform: VirtualAccessoriesPlatform;
11
11
  readonly accessory: PlatformAccessory;
12
12
  readonly accessoryConfiguration: AccessoryConfiguration;
13
13
  readonly log: VirtualLogger;
14
+ protected serviceType: WithUUID<typeof Service>;
14
15
  protected accessoryName: string;
15
- protected defaultState: any;
16
+ protected defaultState: number | boolean;
16
17
  protected storagePath: string;
17
18
  protected accessoryInformationService?: Service;
18
- constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
19
+ constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration, serviceType: WithUUID<typeof Service>, createService?: boolean);
19
20
  isExternalAccessory(): boolean;
20
- updateConfiguredName(): void;
21
+ updateInformationServiceConfiguredName(): void;
21
22
  private readonly EMPTY_ACCESSORY_STATE;
22
23
  protected isEmptyAccessoryState(json: any): boolean;
23
24
  protected loadAccessoryState(storagePath: string): any;
24
25
  private saveAccessoryState;
25
- protected deleteAccessoryState(storagePath: string): void;
26
- protected storeState(): void;
27
- protected abstract getAccessoryTypeName(): string;
26
+ protected deleteState(storagePath: string): void;
27
+ protected saveState(): void;
28
+ getServiceType(): WithUUID<typeof Service>;
29
+ getServiceTypeName(serviceType: WithUUID<typeof Service>): string;
28
30
  protected abstract getJsonState(): string;
29
31
  }
@@ -1,22 +1,26 @@
1
- /* eslint-disable max-len */
2
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { CharacteristicType, ServiceType } from '../platform.js';
3
+ import { CharacteristicUtils } from '../characteristicsUtils.js';
3
4
  import fs from 'fs';
4
5
  /**
5
6
  * Abstract Accessory
6
7
  */
7
- export class Accessory {
8
- service;
8
+ export class Accessory extends CharacteristicUtils {
9
+ //service!: Service;
9
10
  platform;
10
11
  accessory;
11
12
  accessoryConfiguration;
12
13
  log;
14
+ serviceType;
13
15
  accessoryName = '';
14
16
  defaultState;
15
17
  storagePath;
16
18
  accessoryInformationService;
17
- constructor(platform, accessory, accessoryConfiguration) {
19
+ constructor(platform, accessory, accessoryConfiguration, serviceType, createService = true) {
20
+ super();
18
21
  this.accessory = accessory;
19
22
  this.platform = platform;
23
+ this.serviceType = serviceType;
20
24
  // The accessory configuration is stored in the context in VirtualAccessoryPlatform.discoverDevices()
21
25
  this.accessoryConfiguration = accessoryConfiguration;
22
26
  this.accessoryName = this.accessoryConfiguration.accessoryName;
@@ -24,22 +28,27 @@ export class Accessory {
24
28
  this.log.debug(`[${this.accessoryName}] Accessory context: ${JSON.stringify(accessory.context)}`);
25
29
  this.storagePath = accessory.context.storagePath;
26
30
  if (!this.accessoryConfiguration.accessoryIsStateful) {
27
- this.deleteAccessoryState(this.storagePath);
31
+ this.deleteState(this.storagePath);
28
32
  }
29
- // set accessory information
30
- this.accessoryInformationService = this.accessory.getService(this.platform.Service.AccessoryInformation) || this.accessory.addService(this.platform.Service.AccessoryInformation);
33
+ // Set accessory information
34
+ this.accessoryInformationService = this.accessory.getService(ServiceType.AccessoryInformation);
31
35
  this.accessoryInformationService
32
- .setCharacteristic(this.platform.Characteristic.Manufacturer, 'Virtual Accessories for Homebridge')
33
- .setCharacteristic(this.platform.Characteristic.Model, `Virtual Accessory - ${this.getAccessoryTypeName()}`)
34
- .setCharacteristic(this.platform.Characteristic.SerialNumber, this.accessory.UUID)
35
- .setCharacteristic(this.platform.Characteristic.Name, this.accessoryConfiguration.accessoryName)
36
- .setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.accessory.context.firmwareVersion);
36
+ .setCharacteristic(CharacteristicType.Manufacturer, 'Virtual Accessories for Homebridge')
37
+ .setCharacteristic(CharacteristicType.Model, `Virtual Accessory - ${this.getServiceTypeName(serviceType)}`)
38
+ .setCharacteristic(CharacteristicType.SerialNumber, this.accessory.UUID)
39
+ .setCharacteristic(CharacteristicType.Name, this.accessoryName)
40
+ .setCharacteristic(CharacteristicType.FirmwareRevision, this.accessory.context.firmwareVersion);
41
+ // Set accessory service info
42
+ if (createService) {
43
+ this.service = this.accessory.getService(serviceType) || this.accessory.addService(serviceType);
44
+ this.updateName(this.accessoryName);
45
+ }
37
46
  }
38
47
  isExternalAccessory() {
39
48
  return [26 /* Categories.SPEAKER */, 31 /* Categories.TELEVISION */].includes(this.accessory.category);
40
49
  }
41
- updateConfiguredName() {
42
- const configuredName = this.accessoryInformationService.getCharacteristic(this.platform.Characteristic.ConfiguredName);
50
+ updateInformationServiceConfiguredName() {
51
+ const configuredName = this.accessoryInformationService.getCharacteristic(CharacteristicType.ConfiguredName);
43
52
  if (configuredName !== undefined) {
44
53
  this.accessoryInformationService.removeCharacteristic(configuredName);
45
54
  }
@@ -68,7 +77,7 @@ export class Accessory {
68
77
  this.log.error(`[${this.accessoryName}] Error saving state: ${error}`);
69
78
  }
70
79
  }
71
- deleteAccessoryState(storagePath) {
80
+ deleteState(storagePath) {
72
81
  this.log.debug(`[${this.accessoryName}] Deleting state file ${storagePath}`);
73
82
  if (fs.existsSync(storagePath)) {
74
83
  try {
@@ -80,10 +89,106 @@ export class Accessory {
80
89
  }
81
90
  }
82
91
  // Store device state if stateful
83
- storeState() {
92
+ saveState() {
84
93
  if (this.accessoryConfiguration.accessoryIsStateful) {
85
94
  this.saveAccessoryState(this.storagePath, this.getJsonState());
86
95
  }
87
96
  }
97
+ getServiceType() {
98
+ return this.serviceType;
99
+ }
100
+ getServiceTypeName(serviceType) {
101
+ let accessoryTypeName;
102
+ switch (serviceType) {
103
+ case ServiceType.AirPurifier: {
104
+ accessoryTypeName = 'AirPurifier';
105
+ break;
106
+ }
107
+ case ServiceType.Battery: {
108
+ accessoryTypeName = 'Battery';
109
+ break;
110
+ }
111
+ case ServiceType.Door: {
112
+ accessoryTypeName = 'Door';
113
+ break;
114
+ }
115
+ case ServiceType.Doorbell: {
116
+ accessoryTypeName = 'Doorbell';
117
+ break;
118
+ }
119
+ case ServiceType.Fan: {
120
+ accessoryTypeName = 'Fan';
121
+ break;
122
+ }
123
+ case ServiceType.FilterMaintenance: {
124
+ accessoryTypeName = 'Filter';
125
+ break;
126
+ }
127
+ case ServiceType.GarageDoorOpener: {
128
+ accessoryTypeName = 'GarageDoor';
129
+ break;
130
+ }
131
+ case ServiceType.HeaterCooler: {
132
+ accessoryTypeName = 'HeaterCooler';
133
+ break;
134
+ }
135
+ case ServiceType.HumidifierDehumidifier: {
136
+ accessoryTypeName = 'HumidifierDehumidifier';
137
+ break;
138
+ }
139
+ case ServiceType.InputSource: {
140
+ accessoryTypeName = 'InputSource';
141
+ break;
142
+ }
143
+ case ServiceType.Lightbulb: {
144
+ accessoryTypeName = 'Lightbulb';
145
+ break;
146
+ }
147
+ case ServiceType.LockMechanism: {
148
+ accessoryTypeName = 'Lock';
149
+ break;
150
+ }
151
+ case ServiceType.Microphone: {
152
+ accessoryTypeName = 'Microphone';
153
+ break;
154
+ }
155
+ case ServiceType.SecuritySystem: {
156
+ accessoryTypeName = 'SecuritySystem';
157
+ break;
158
+ }
159
+ case ServiceType.SmartSpeaker: {
160
+ accessoryTypeName = 'SmartSpeaker';
161
+ break;
162
+ }
163
+ case ServiceType.Speaker: {
164
+ accessoryTypeName = 'Speaker';
165
+ break;
166
+ }
167
+ case ServiceType.Switch: {
168
+ accessoryTypeName = 'Switch';
169
+ break;
170
+ }
171
+ case ServiceType.Television: {
172
+ accessoryTypeName = 'Television';
173
+ break;
174
+ }
175
+ case ServiceType.Valve: {
176
+ accessoryTypeName = 'Valve';
177
+ break;
178
+ }
179
+ case ServiceType.Window: {
180
+ accessoryTypeName = 'Window';
181
+ break;
182
+ }
183
+ case ServiceType.WindowCovering: {
184
+ accessoryTypeName = 'WindowCovering';
185
+ break;
186
+ }
187
+ default: {
188
+ accessoryTypeName = 'unknown';
189
+ }
190
+ }
191
+ return accessoryTypeName;
192
+ }
88
193
  }
89
194
  //# sourceMappingURL=accessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/accessories/accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/accessories/accessory.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,6 @@ export declare class CompanionSwitch extends Switch {
11
11
  private companionName;
12
12
  private partnerAccessory;
13
13
  constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration, companionName: string, partnerAccessory: TriggerableEventAccessory);
14
- setOn(value: CharacteristicValue): Promise<void>;
15
- getOn(): Promise<CharacteristicValue>;
14
+ getOnHandler(): Promise<CharacteristicValue>;
15
+ setOnHandler(value: CharacteristicValue): Promise<void>;
16
16
  }
@@ -24,23 +24,23 @@ export class CompanionSwitch extends Switch {
24
24
  // Replace the Name Characteristic
25
25
  this.service.setCharacteristic(this.platform.Characteristic.Name, this.companionName);
26
26
  // Update the initial state of the accessory
27
- this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Setting Companion Switch Current State: ${Switch.getStateName(this.states.SwitchState)}`);
28
- this.service.updateCharacteristic(this.platform.Characteristic.On, (this.states.SwitchState));
27
+ this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Setting Companion Switch Current State: ${Switch.getOnName(this.getOn())}`);
28
+ this.updateOn(this.getOn());
29
29
  // register handlers
30
30
  this.service.getCharacteristic(this.platform.Characteristic.On)
31
- .onSet(this.setOn.bind(this))
32
- .onGet(this.getOn.bind(this));
31
+ .onSet(this.setOnHandler.bind(this))
32
+ .onGet(this.getOnHandler.bind(this));
33
33
  }
34
- async setOn(value) {
35
- this.log.info(`[${this.accessoryConfiguration.accessoryName}] Calling super.On()`, this.muteLogging);
36
- super.setOn(value);
37
- this.log.info(`[${this.accessoryConfiguration.accessoryName}] Calling super.On()`, this.muteLogging);
38
- if (this.states.SwitchState === CompanionSwitch.ON) {
34
+ async getOnHandler() {
35
+ return super.getOn();
36
+ }
37
+ async setOnHandler(value) {
38
+ this.log.info(`[${this.accessoryName}] Calling super.On()`, this.muteLogging);
39
+ super.setOnHandler(value);
40
+ this.log.info(`[${this.accessoryName}] Calling super.On()`, this.muteLogging);
41
+ if (this.getOn() === CompanionSwitch.ON) {
39
42
  this.partnerAccessory.triggerEvent(this);
40
43
  }
41
44
  }
42
- async getOn() {
43
- return super.getOn();
44
- }
45
45
  }
46
46
  //# sourceMappingURL=companionSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"companionSwitch.js","sourceRoot":"","sources":["../../../src/accessories/companions/companionSwitch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"companionSwitch.js","sourceRoot":"","sources":["../../../src/accessories/companions/companionSwitch.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGtD;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM;IAExB,OAAO,GAAW,SAAS,CAAC;IAErC,aAAa,CAAS;IACtB,gBAAgB,CAA4B;IAEpD,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C,EAC9C,aAAqB,EACrB,gBAA2C;QAE3C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5H,kCAAkC;QAClC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,aAAc,CAAC,CAAC;QAEvF,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,aAAa,6CAA6C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3I,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5B,oBAAoB;QAEpB,IAAI,CAAC,OAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aAC7D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAA0B;QAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9E,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9E,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { PlatformAccessory } from 'homebridge';
1
+ import { PlatformAccessory, Service, WithUUID } from 'homebridge';
2
2
  import { VirtualAccessoriesPlatform } from '../platform.js';
3
3
  import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
4
4
  import { Accessory } from './accessory.js';
@@ -6,6 +6,6 @@ import { Accessory } from './accessory.js';
6
6
  * ExternalAccessory - Abstract accessory
7
7
  */
8
8
  export declare abstract class ExternalAccessory extends Accessory {
9
- constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
9
+ constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration, serviceType: WithUUID<typeof Service>);
10
10
  getExternalAccessoryCategory(): number;
11
11
  }
@@ -3,8 +3,8 @@ import { Accessory } from './accessory.js';
3
3
  * ExternalAccessory - Abstract accessory
4
4
  */
5
5
  export class ExternalAccessory extends Accessory {
6
- constructor(platform, accessory, accessoryConfiguration) {
7
- super(platform, accessory, accessoryConfiguration);
6
+ constructor(platform, accessory, accessoryConfiguration, serviceType) {
7
+ super(platform, accessory, accessoryConfiguration, serviceType);
8
8
  }
9
9
  getExternalAccessoryCategory() {
10
10
  return this.accessory.category;
@@ -1 +1 @@
1
- {"version":3,"file":"externalAccessory.js","sourceRoot":"","sources":["../../src/accessories/externalAccessory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,SAAS;IAEvD,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C;QAE9C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACrD,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"externalAccessory.js","sourceRoot":"","sources":["../../src/accessories/externalAccessory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,SAAS;IAEvD,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C,EAC9C,WAAqC;QAErC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import { CharacteristicValue, PlatformAccessory, Service, WithUUID } from 'homebridge';
2
+ import { VirtualAccessoriesPlatform } from '../platform.js';
3
+ import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
4
+ import { Accessory } from './accessory.js';
5
+ import { OpenableAccessoryConfiguration } from '../configuration/configurationOpenableAccesory.js';
6
+ /**
7
+ * PositionAccessory - Abstract accessory
8
+ */
9
+ export declare abstract class PositionAccessory extends Accessory {
10
+ private static readonly MIN_TIMEOUT_SECS;
11
+ private static readonly DEFAULT_TIMEOUT_SECS;
12
+ private readonly stateStorageKey;
13
+ private transitionTimer;
14
+ private transitionSteps;
15
+ private openableAccessoryConfiguration;
16
+ constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration, serviceType: WithUUID<typeof Service>);
17
+ getCurrentPositionHandler(): Promise<CharacteristicValue>;
18
+ getTargetPositionHandler(): Promise<CharacteristicValue>;
19
+ setTargetPositionHandler(value: CharacteristicValue): Promise<void>;
20
+ getPositionStateHandler(): Promise<CharacteristicValue>;
21
+ protected getJsonState(): string;
22
+ protected abstract getOpenableAccessoryConfiguration(): OpenableAccessoryConfiguration;
23
+ static get CLOSED(): number;
24
+ static get OPEN(): number;
25
+ static get DECREASING(): number;
26
+ static get INCREASING(): number;
27
+ static get STOPPED(): number;
28
+ static getPositionName(position: number): string;
29
+ static getPositionStateName(state: number): string;
30
+ }
@@ -0,0 +1,170 @@
1
+ import { CharacteristicType } from '../platform.js';
2
+ import { Accessory } from './accessory.js';
3
+ import { Timer } from '../utils/timer.js';
4
+ /**
5
+ * PositionAccessory - Abstract accessory
6
+ */
7
+ export class PositionAccessory extends Accessory {
8
+ static MIN_TIMEOUT_SECS = 1;
9
+ static DEFAULT_TIMEOUT_SECS = 3;
10
+ stateStorageKey = 'Position';
11
+ transitionTimer;
12
+ transitionSteps = 0;
13
+ openableAccessoryConfiguration;
14
+ constructor(platform, accessory, accessoryConfiguration, serviceType) {
15
+ super(platform, accessory, accessoryConfiguration, serviceType);
16
+ // Default state
17
+ let CurrentPosition = PositionAccessory.CLOSED;
18
+ let TargetPosition = PositionAccessory.CLOSED;
19
+ const PositionState = PositionAccessory.STOPPED;
20
+ // First configure the device based on the accessory details
21
+ this.openableAccessoryConfiguration = this.getOpenableAccessoryConfiguration();
22
+ this.defaultState = this.openableAccessoryConfiguration.defaultState === 'open' ? PositionAccessory.OPEN : PositionAccessory.CLOSED;
23
+ CurrentPosition = this.defaultState;
24
+ // If the accessory is stateful retrieve stored state
25
+ if (this.accessoryConfiguration.accessoryIsStateful) {
26
+ const accessoryState = this.loadAccessoryState(this.storagePath);
27
+ const cachedState = accessoryState[this.stateStorageKey];
28
+ if (cachedState !== undefined) {
29
+ CurrentPosition = cachedState;
30
+ }
31
+ }
32
+ TargetPosition = CurrentPosition;
33
+ const timerIsResettable = true;
34
+ this.transitionTimer = new Timer(this.accessoryConfiguration.accessoryName, this.log, timerIsResettable);
35
+ // Update the initial state of the accessory
36
+ this.setCurrentPosition(CurrentPosition);
37
+ this.setTargetPosition(TargetPosition);
38
+ this.setPositionState(PositionState);
39
+ // Last register handlers
40
+ this.service.getCharacteristic(CharacteristicType.CurrentPosition)
41
+ .onGet(this.getCurrentPositionHandler.bind(this));
42
+ this.service.getCharacteristic(CharacteristicType.TargetPosition)
43
+ .onSet(this.setTargetPositionHandler.bind(this))
44
+ .onGet(this.getTargetPositionHandler.bind(this));
45
+ this.service.getCharacteristic(CharacteristicType.PositionState)
46
+ .onGet(this.getPositionStateHandler.bind(this));
47
+ }
48
+ //
49
+ // ****************************** Handlers ******************************
50
+ //
51
+ // CurrentPosition
52
+ async getCurrentPositionHandler() {
53
+ // If timer is running, then blinds are moving, so calculate the interim position
54
+ if (this.transitionTimer.isTimerRunning()) {
55
+ const runtimeMillis = this.transitionTimer.getRuntime() * 1000;
56
+ const remainingSteps = Math.ceil(this.transitionTimer.getRemainingDurationMillis() / runtimeMillis * this.transitionSteps);
57
+ const TargetPosition = this.getTargetPosition();
58
+ this.updateCurrentPosition(TargetPosition - remainingSteps);
59
+ }
60
+ const currentPosition = this.getCurrentPosition();
61
+ this.log.debug(`[${this.accessoryName}] Getting Current Position: ${PositionAccessory.getPositionName(currentPosition)}`);
62
+ return currentPosition;
63
+ }
64
+ // TargetPosition
65
+ async getTargetPositionHandler() {
66
+ const targetPosition = this.getCharacteristicValue(CharacteristicType.TargetPosition);
67
+ this.log.debug(`[${this.accessoryName}] Getting Target Position: ${PositionAccessory.getPositionName(targetPosition)}`);
68
+ return targetPosition;
69
+ }
70
+ async setTargetPositionHandler(value) {
71
+ let TargetPosition = value;
72
+ TargetPosition = this.updateTargetPosition(TargetPosition);
73
+ this.log.info(`[${this.accessoryName}] Setting Target Position: ${PositionAccessory.getPositionName(TargetPosition)}`);
74
+ const CurrentPosition = this.getCurrentPosition();
75
+ let PositionState = (TargetPosition > CurrentPosition) ? PositionAccessory.INCREASING : PositionAccessory.DECREASING;
76
+ PositionState = this.updatePositionState(PositionState);
77
+ this.log.info(`[${this.accessoryName}] Setting Position State: ${PositionAccessory.getPositionStateName(PositionState)}`);
78
+ const transitionDuration = this.openableAccessoryConfiguration.transitionDuration;
79
+ const transitionDelay = (transitionDuration ? transitionDuration : PositionAccessory.DEFAULT_TIMEOUT_SECS);
80
+ this.transitionSteps = TargetPosition - CurrentPosition;
81
+ this.log.debug(`[${this.accessoryName}] Transition Steps: ${this.transitionSteps}`);
82
+ const proportionalTransitionDelay = Math.max(
83
+ // Round up to the nearest second
84
+ Math.ceil(transitionDelay / 100 * Math.abs(this.transitionSteps)), PositionAccessory.MIN_TIMEOUT_SECS);
85
+ this.log.debug(`[${this.accessoryName}] Proportional Delay: ${proportionalTransitionDelay}/(${transitionDelay})`);
86
+ const updateIntervalMillis = 100;
87
+ // Stop transition timer, if running
88
+ this.transitionTimer.stop();
89
+ this.transitionTimer.start(() => {
90
+ const PositionState = this.updatePositionState(PositionAccessory.STOPPED);
91
+ this.log.info(`[${this.accessoryName}] Setting Position State: ${PositionAccessory.getPositionStateName(PositionState)}`);
92
+ const CurrentPosition = this.updateCurrentPosition(this.getTargetPosition());
93
+ this.log.info(`[${this.accessoryName}] Setting Current Position: ${PositionAccessory.getPositionName(CurrentPosition)}`);
94
+ this.transitionSteps = 0;
95
+ this.saveState();
96
+ }, proportionalTransitionDelay, updateIntervalMillis);
97
+ }
98
+ // PositionState
99
+ async getPositionStateHandler() {
100
+ const positionState = this.getPositionState();
101
+ this.log.debug(`[${this.accessoryName}] Getting Position State: ${PositionAccessory.getPositionStateName(positionState)}`);
102
+ return positionState;
103
+ }
104
+ //
105
+ getJsonState() {
106
+ const json = JSON.stringify({
107
+ [this.stateStorageKey]: this.getCurrentPosition(),
108
+ });
109
+ return json;
110
+ }
111
+ //
112
+ // ****************************** Characteristics ******************************
113
+ //
114
+ // Lazy static getters
115
+ static get CLOSED() { return 0; } // 0%
116
+ static get OPEN() { return 100; } // 100%
117
+ static get DECREASING() { return CharacteristicType.PositionState.DECREASING; } // -> CLOSING
118
+ static get INCREASING() { return CharacteristicType.PositionState.INCREASING; } // -> OPENING
119
+ static get STOPPED() { return CharacteristicType.PositionState.STOPPED; } // -> OPEN or CLOSED
120
+ static getPositionName(position) {
121
+ let name;
122
+ switch (position) {
123
+ case undefined: {
124
+ name = 'undefined';
125
+ break;
126
+ }
127
+ case PositionAccessory.CLOSED: {
128
+ name = 'CLOSED';
129
+ break;
130
+ }
131
+ case PositionAccessory.OPEN: {
132
+ name = 'OPEN';
133
+ break;
134
+ }
135
+ default: {
136
+ name = `POSITION: ${position.toString()}%`;
137
+ }
138
+ }
139
+ if (position > PositionAccessory.OPEN) {
140
+ name = `INVALID ${name}%`;
141
+ }
142
+ return name;
143
+ }
144
+ static getPositionStateName(state) {
145
+ let name;
146
+ switch (state) {
147
+ case undefined: {
148
+ name = 'undefined';
149
+ break;
150
+ }
151
+ case PositionAccessory.DECREASING: {
152
+ name = 'DECREASING';
153
+ break;
154
+ }
155
+ case PositionAccessory.INCREASING: {
156
+ name = 'INCREASING';
157
+ break;
158
+ }
159
+ case PositionAccessory.STOPPED: {
160
+ name = 'STOPPED';
161
+ break;
162
+ }
163
+ default: {
164
+ name = state.toString();
165
+ }
166
+ }
167
+ return name;
168
+ }
169
+ }
170
+ //# sourceMappingURL=positionAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positionAccessory.js","sourceRoot":"","sources":["../../src/accessories/positionAccessory.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  *
3
3
  */
4
- export interface UpdatableChargingState {
5
- updateChargingState(charging: boolean, charge: number, accessoryId: string): void;
4
+ export interface UpdatableChargingStatus {
5
+ updateChargingStatus(charging: boolean, charge: number, accessoryId: string): void;
6
6
  }