homebridge-virtual-accessories 3.14.19 → 3.14.22

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.
@@ -124,7 +124,7 @@
124
124
  "description": "Accessory name as it will be displayed in HomeKit",
125
125
  "type": "string",
126
126
  "required": true,
127
- "pattern": "^[a-zA-Z0-9\\s']*$"
127
+ "pattern": "^(?=[\\p{L}\\p{N}])[\\p{L}\\p{N}\\s']*(?<=[\\p{L}\\p{N}])$"
128
128
  },
129
129
  "accessoryType": {
130
130
  "title": "Accessory Type",
@@ -155,12 +155,7 @@ export class Switch extends Accessory {
155
155
  }
156
156
  // Setup stuff
157
157
  setupResetTimer(timerConfig) {
158
- const duration = timerConfig.durationIsRandom ?
159
- Math.floor(Math.random() *
160
- (timerConfig.durationRandomMax.toSeconds() + 1 - timerConfig.durationRandomMin.toSeconds()) +
161
- timerConfig.durationRandomMin.toSeconds()) :
162
- timerConfig.duration.toSeconds();
163
- this.resetTimer = new Timer(this.accessoryConfiguration.accessoryName, this.log, this.accessoryConfiguration.resetTimer.isResettable, duration);
158
+ this.resetTimer = new Timer(this.accessoryConfiguration.accessoryName, this.log, this.accessoryConfiguration.resetTimer.isResettable, (timerConfig.duration !== undefined) ? timerConfig.duration.toSeconds() : 0, this.accessoryConfiguration.resetTimer.durationIsRandom, (timerConfig.durationRandomMin !== undefined) ? timerConfig.durationRandomMin.toSeconds() : 0, (timerConfig.durationRandomMax !== undefined) ? timerConfig.durationRandomMax.toSeconds() : 0);
164
159
  }
165
160
  createCompanionSensor() {
166
161
  this.companionSensor = CompanionSensor.getTriggerableCompanionSensor(this.platform, this.accessory, this.accessoryConfiguration);
@@ -1 +1 @@
1
- {"version":3,"file":"virtualAccessorySwitch.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessorySwitch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtualAccessorySwitch.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessorySwitch.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -175,7 +175,7 @@ export class VirtualAccessoriesPlatform {
175
175
  const configuredDevice = configDevices.find(device => this.api.hap.uuid.generate(device.accessoryID) === cachedAccessory.UUID);
176
176
  // If there is no configured device for this cached accessory
177
177
  if (!configuredDevice) {
178
- this.log.info(`Removing deleted accessory: ${cachedAccessory.displayName}`);
178
+ this.log.warn(`Removing deleted accessory: ${cachedAccessory.displayName}`);
179
179
  // Unregister the accessory from the platform
180
180
  this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [cachedAccessory]);
181
181
  // Delete any stateful info, if it exists
@@ -49,7 +49,7 @@ export class TemperatureSensor extends MeasurementSensor {
49
49
  }
50
50
  // Updatable Sensor interface
51
51
  updateMeasurementSensor(value, accessoryId) {
52
- this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Request update humidity sensor to ${value}${this.getDegreeUnits()}`);
52
+ this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Request update temperature sensor to ${value}${this.getDegreeUnits()}`);
53
53
  if (accessoryId !== this.accessoryConfiguration.accessoryID) {
54
54
  this.log.error(`[${this.accessoryConfiguration.accessoryName}] Accessory Id ${accessoryId} is not valid for this accessory`);
55
55
  throw new SensorValueUpdateNotAllowed(`Invalid accessory id: ${accessoryId}`);
@@ -1 +1 @@
1
- {"version":3,"file":"virtualSensorTemperature.js","sourceRoot":"","sources":["../../src/sensors/virtualSensorTemperature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtualSensorTemperature.js","sourceRoot":"","sources":["../../src/sensors/virtualSensorTemperature.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,12 @@ export declare class Timer {
7
7
  private readonly oneSecond;
8
8
  private accessoryName;
9
9
  private log;
10
- private timerIsResettable;
11
10
  private id;
11
+ private timerIsResettable;
12
+ private durationIsRandom;
12
13
  private defaultDuration;
14
+ private durationRandomMin;
15
+ private durationRandomMax;
13
16
  private updateIntervalMillis;
14
17
  private startTime;
15
18
  private isRunning;
@@ -19,8 +22,12 @@ export declare class Timer {
19
22
  /**
20
23
  * Set duration in seconds
21
24
  */
25
+ constructor(accessoryName: string, log: VirtualLogger);
22
26
  constructor(accessoryName: string, log: VirtualLogger, timerIsResettable: boolean);
23
27
  constructor(accessoryName: string, log: VirtualLogger, timerIsResettable: boolean, duration: number);
28
+ constructor(accessoryName: string, log: VirtualLogger, timerIsResettable: boolean, duration: number, // seconds
29
+ durationIsRandom: boolean, durationMin: number, // seconds
30
+ durationMax: number);
24
31
  /**
25
32
  * Set duration/oneOffDuration in seconds
26
33
  */
@@ -28,6 +35,7 @@ export declare class Timer {
28
35
  start(callback: () => void, oneOffDuration: number): void;
29
36
  start(callback: () => void, oneOffDuration: number, updateIntervalMillis: number): void;
30
37
  stop(): void;
38
+ private calculateRuntime;
31
39
  getStartTime(): ZonedDateTime;
32
40
  /**
33
41
  * Returns runtime in seconds
@@ -7,23 +7,29 @@ export class Timer {
7
7
  oneSecond = 1000; // in milliseconds
8
8
  accessoryName;
9
9
  log;
10
- timerIsResettable = false;
11
10
  id;
11
+ timerIsResettable = false;
12
+ durationIsRandom = false;
12
13
  defaultDuration = 0;
14
+ durationRandomMin = 0;
15
+ durationRandomMax = 0;
13
16
  updateIntervalMillis = this.oneSecond;
14
17
  startTime;
15
18
  isRunning = false;
16
19
  runtime = 0;
17
20
  remainingDurationMillis = 0;
18
21
  logDebugCountdown = false;
19
- constructor(accessoryName, log, timerIsResettable = false, duration) {
22
+ constructor(accessoryName, log, timerIsResettable = false, duration = 0, // seconds
23
+ durationIsRandom = false, durationRandomMin = 0, // seconds
24
+ durationRandomMax = 0) {
20
25
  this.accessoryName = accessoryName;
21
26
  this.log = log;
22
27
  this.timerIsResettable = timerIsResettable;
28
+ this.durationIsRandom = durationIsRandom;
29
+ this.setDefaultDuration(duration);
30
+ this.durationRandomMin = durationRandomMin;
31
+ this.durationRandomMax = durationRandomMax;
23
32
  this.startTime = Utils.now();
24
- if (duration !== undefined) {
25
- this.setDefaultDuration(duration);
26
- }
27
33
  }
28
34
  start(callback, oneOffDuration, updateIntervalMillis) {
29
35
  if (this.isRunning && !this.timerIsResettable) {
@@ -32,8 +38,9 @@ export class Timer {
32
38
  // In case timer is running, stop it
33
39
  this.stop();
34
40
  // Now setup new run
35
- this.runtime = (oneOffDuration === undefined) ? this.defaultDuration : oneOffDuration;
41
+ this.runtime = (oneOffDuration === undefined) ? this.calculateRuntime() : oneOffDuration;
36
42
  this.updateIntervalMillis = (updateIntervalMillis === undefined) ? this.oneSecond : updateIntervalMillis;
43
+ this.log.debug(`[${this.accessoryName} Timer] Runtime: ${this.runtime} seconds`);
37
44
  if (this.updateIntervalMillis < 1) {
38
45
  this.log.error(`[${this.accessoryName} Timer] updateIntervalMillis is less than 1: ${this.updateIntervalMillis} seconds. Setting to 1s/1000 ms`);
39
46
  this.updateIntervalMillis = this.oneSecond;
@@ -72,6 +79,30 @@ export class Timer {
72
79
  this.logDebugCountdown = false;
73
80
  this.log.debug(`[${this.accessoryName} Timer] Stop - Cleared Duration: ${this.getRemainingDuration()} seconds`);
74
81
  }
82
+ calculateRuntime() {
83
+ // If the duration is random, get random duration between random max and random min
84
+ if (this.durationIsRandom) {
85
+ let randomDuration = 0;
86
+ // Validate that random max and random min are not negative, and max is not less than min
87
+ if (this.durationRandomMax < 0 ||
88
+ this.durationRandomMin < 0 ||
89
+ (this.durationRandomMax < this.durationRandomMin)) {
90
+ return randomDuration;
91
+ }
92
+ // If random max and random min are the same value, return that value
93
+ if (this.durationRandomMax === this.durationRandomMin) {
94
+ return this.durationRandomMin;
95
+ }
96
+ // Calculate the random duration
97
+ randomDuration =
98
+ Math.floor(Math.random() * (this.durationRandomMax - this.durationRandomMin + 1)
99
+ + this.durationRandomMin);
100
+ return randomDuration;
101
+ }
102
+ else {
103
+ return this.defaultDuration;
104
+ }
105
+ }
75
106
  getStartTime() {
76
107
  return this.startTime;
77
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/utils/timer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/utils/timer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-virtual-accessories",
3
3
  "displayName": "Virtual Accessories for Homebridge",
4
4
  "type": "module",
5
- "version": "3.14.19",
5
+ "version": "3.14.22",
6
6
  "description": "Virtual HomeKit accessories for Homebridge.",
7
7
  "author": "justjam2013",
8
8
  "license": "MIT",
@@ -98,7 +98,7 @@
98
98
  "schemas": "schemas/"
99
99
  },
100
100
  "engines": {
101
- "node": "^20.0.0 || ^22.0.0 || ^24.0.0",
101
+ "node": "^22.0.0 || ^24.0.0",
102
102
  "homebridge": "^1.8.0 || ^2.0.0-beta.0"
103
103
  },
104
104
  "scripts": {
@@ -122,7 +122,7 @@
122
122
  "devDependencies": {
123
123
  "@eslint/js": "^9.39.1",
124
124
  "@types/cheerio": "^1.0.0",
125
- "@types/node": "^25.0.2",
125
+ "@types/node": "^26.0.0",
126
126
  "eslint": "^10.0.1",
127
127
  "homebridge": "^2.0.0-beta.64",
128
128
  "nodemon": "^3.1.11",
@@ -131,11 +131,8 @@
131
131
  "typescript": "^6.0.3",
132
132
  "typescript-eslint": "^8.46.4"
133
133
  },
134
- "overrides": {
135
- "net-ping": {
136
- "raw-socket": {
137
- "nan": "^2.23.*"
138
- }
139
- }
134
+ "allowScripts": {
135
+ "@justjam2013/raw-socket": true,
136
+ "fsevents": true
140
137
  }
141
138
  }
@@ -123,7 +123,8 @@
123
123
  "title": "Nombre del Accesorio",
124
124
  "description": "Nombre del accesorio tal como se mostrará en HomeKit",
125
125
  "type": "string",
126
- "required": true
126
+ "required": true,
127
+ "pattern": "^(?=[\\p{L}\\p{N}])[\\p{L}\\p{N}\\s']*(?<=[\\p{L}\\p{N}])$"
127
128
  },
128
129
  "accessoryType": {
129
130
  "title": "Tipo de Accesorio",
@@ -305,9 +306,17 @@
305
306
  "oneOf": [
306
307
  { "title": "Calefactor", "enum": ["heater"] },
307
308
  { "title": "Aire Acondicionado", "enum": ["cooler"] },
308
- { "title": "Calefactor y Aire Acondicionado", "enum": ["auto"] }
309
+ { "title": "Calefactor y Aire Acondicionado", "enum": ["auto"] },
310
+ { "title": "Sauna", "enum": ["sauna"] }
309
311
  ]
310
312
  },
313
+ "hasFan": {
314
+ "title": "Tiene ventilador",
315
+ "type": "boolean",
316
+ "condition": {
317
+ "functionBody": "return model.devices[arrayIndices].heaterCooler && ['heater', 'cooler', 'auto'].includes(model.devices[arrayIndices].heaterCooler.type);"
318
+ }
319
+ },
311
320
  "temperatureDisplayUnits": {
312
321
  "title": "Unidades de Temperatura *",
313
322
  "type": "string",
@@ -356,6 +365,26 @@
356
365
  "functionBody": "return model.devices[arrayIndices].heaterCooler && model.devices[arrayIndices].heaterCooler.temperatureDisplayUnits === 'fahrenheit' && ['cooler', 'auto'].includes(model.devices[arrayIndices].heaterCooler.type);"
357
366
  }
358
367
  },
368
+ "saunaHeatingThresholdCelsius": {
369
+ "title": "Umbral de Calefacción de la Sauna ºC *",
370
+ "description": "Nivel de temperatura por debajo del cual se enciende el calefactor de la sauna (15ºC - 90ºC)",
371
+ "type": "integer",
372
+ "minimum": 15,
373
+ "maximum": 90,
374
+ "condition": {
375
+ "functionBody": "return model.devices[arrayIndices].heaterCooler && model.devices[arrayIndices].heaterCooler.temperatureDisplayUnits === 'celsius' && ['sauna'].includes(model.devices[arrayIndices].heaterCooler.type);"
376
+ }
377
+ },
378
+ "saunaHeatingThresholdFahrenheit": {
379
+ "title": "Umbral de Calefacción de la Sauna ºF *",
380
+ "description": "Nivel de temperatura por debajo del cual se enciende el calefactor de la sauna (59ºF - 194ºF)",
381
+ "type": "integer",
382
+ "minimum": 59,
383
+ "maximum": 194,
384
+ "condition": {
385
+ "functionBody": "return model.devices[arrayIndices].heaterCooler && model.devices[arrayIndices].heaterCooler.temperatureDisplayUnits === 'fahrenheit' && ['sauna'].includes(model.devices[arrayIndices].heaterCooler.type);"
386
+ }
387
+ },
359
388
  "": {
360
389
  "title": "",
361
390
  "description": "Nota: El valor del umbral de calefacción **debe ser menor** que el valor del umbral de refrigeración",
@@ -668,27 +697,24 @@
668
697
  "title": "Sistema de Seguridad",
669
698
  "type": "object",
670
699
  "properties": {
671
- "": {
700
+ "armedModesTitle": {
672
701
  "title": "Modos Armados",
673
702
  "description": "Modos del sistema de seguridad (Se requieren 'Fuera de Casa' y 'En Casa')",
674
703
  "type": "object",
675
704
  "properties": {}
676
705
  },
677
706
  "hasAwayMode": {
678
- "title": "Modo Fuera de Casa",
679
- "type": "boolean",
680
- "disabled": true,
681
- "default": true
707
+ "title": "❎ Modo Fuera de Casa",
708
+ "type": "object",
709
+ "properties": {}
682
710
  },
683
711
  "hasHomeMode": {
684
- "title": "Modo En Casa",
685
- "type": "boolean",
686
- "disabled": true,
687
- "default": true
712
+ "title": "❎ Modo En Casa",
713
+ "type": "object",
714
+ "properties": {}
688
715
  },
689
716
  "hasNightMode": {
690
717
  "title": "Modo Noche",
691
- "description": "El modo noche es un modo armado personalizado",
692
718
  "type": "boolean"
693
719
  },
694
720
  "defaultState": {
@@ -872,7 +898,8 @@
872
898
  { "title": "Cronograma Cron", "enum": ["cron"] },
873
899
  { "title": "Eventos Solares (Amanecer/Atardecer)", "enum": ["sunevents"] },
874
900
  { "title": "Webhook", "enum": ["webhook"] },
875
- { "title": "Disparador al Iniciar Homebridge", "enum": ["startup"] }
901
+ { "title": "Disparador al Iniciar Homebridge", "enum": ["startup"] },
902
+ { "title": "Disparador de Niveles de Stock de Ikea Matter", "enum": ["ikeamatterstock"] }
876
903
  ]
877
904
  }
878
905
  },
@@ -1118,6 +1145,13 @@
1118
1145
  "type": "integer",
1119
1146
  "minimum": 0
1120
1147
  },
1148
+ "interval": {
1149
+ "title": "Intervalo entres Pings",
1150
+ "description": "Intervalo entres pings en minutos - bajo para infraestructura crítica, más alto para dispositivos no críticos (predeterminado: 1 minuto)",
1151
+ "type": "integer",
1152
+ "minimum": 1,
1153
+ "maximum": 15
1154
+ },
1121
1155
  "isDisabled": {
1122
1156
  "title": "Desactivar Disparador",
1123
1157
  "description": "Encender o apagar el disparador",
@@ -1255,6 +1289,55 @@
1255
1289
  "condition": {
1256
1290
  "functionBody": "return model.devices[arrayIndices].sensor && model.devices[arrayIndices].sensor.trigger === 'startup';"
1257
1291
  }
1292
+ },
1293
+ "ikeaMatterStockTrigger": {
1294
+ "title": "Disparador de disponibilidad de dispositivo Matter de IKEA",
1295
+ "type": "object",
1296
+ "properties": {
1297
+ "country": {
1298
+ "title": "País *",
1299
+ "type": "string",
1300
+ "oneOf": [
1301
+ { "title": "Australia", "enum": ["Australia"] },
1302
+ { "title": "Canadá", "enum": ["Canada"] },
1303
+ { "title": "Japón", "enum": ["Japan"] },
1304
+ { "title": "Corea", "enum": ["Korea"] },
1305
+ { "title": "Nueva Zelanda", "enum": ["New Zealand"] },
1306
+ { "title": "Reino Unido", "enum": ["UK"] },
1307
+ { "title": "EE.UU", "enum": ["USA"] }
1308
+ ]
1309
+ },
1310
+ "storeLocation": {
1311
+ "title": "Ubicación de la tienda *",
1312
+ "description": "Ubicación de la tienda (utilice el buscador de tiendas de IKEA)",
1313
+ "type": "string"
1314
+ },
1315
+ "itemName": {
1316
+ "title": "Artículo *",
1317
+ "type": "string",
1318
+ "oneOf": [
1319
+ { "title": "ALPSTUGA", "enum": ["ALPSTUGA"] },
1320
+ { "title": "BILRESA", "enum": ["BILRESA"] },
1321
+ { "title": "GRILLPLATS", "enum": ["GRILLPLATS"] },
1322
+ { "title": "KLIPPBOK", "enum": ["KLIPPBOK"] },
1323
+ { "title": "MYGGBETT", "enum": ["MYGGBETT"] },
1324
+ { "title": "MYGGSPRAY", "enum": ["MYGGSPRAY"] },
1325
+ { "title": "TIMMERFLOTTE", "enum": ["TIMMERFLOTTE"] },
1326
+ { "title": "KAJPLATS - E26/E27 - Color (1055/1100/1160 lumen)", "enum": ["KAJPLATS-COLOR-M"] },
1327
+ { "title": "KAJPLATS - E26/E27 - White (450/470/485 lumen)", "enum": ["KAJPLATS-WHITE-S"] },
1328
+ { "title": "KAJPLATS - E26/E27 - White (1055/1100/1160 lumen)", "enum": ["KAJPLATS-WHITE-M"] },
1329
+ { "title": "KAJPLATS - E26/E27 - White (1520/1521/1600 lumen)", "enum": ["KAJPLATS-WHITE-L"] }
1330
+ ]
1331
+ },
1332
+ "isDisabled": {
1333
+ "title": "Desactivar Disparador",
1334
+ "description": "Encender o apagar el disparador",
1335
+ "type": "boolean"
1336
+ }
1337
+ },
1338
+ "condition": {
1339
+ "functionBody": "return model.devices[arrayIndices].sensor && model.devices[arrayIndices].sensor.trigger === 'ikeamatterstock';"
1340
+ }
1258
1341
  }
1259
1342
  },
1260
1343
  "allOf": [
@@ -1682,6 +1765,27 @@
1682
1765
  }
1683
1766
  }
1684
1767
  }
1768
+ },
1769
+ {
1770
+ "if": {
1771
+ "properties": {
1772
+ "sensor": {
1773
+ "properties": {
1774
+ "trigger": { "const": "ikeamatterstock" }
1775
+ },
1776
+ "required": [ "trigger" ]
1777
+ }
1778
+ },
1779
+ "required": [ "sensor" ]
1780
+ },
1781
+ "then": {
1782
+ "required": [ "ikeaMatterStockTrigger" ],
1783
+ "properties": {
1784
+ "ikeaMatterStockTrigger": {
1785
+ "required": [ "country", "storeLocation", "itemName" ]
1786
+ }
1787
+ }
1788
+ }
1685
1789
  }
1686
1790
  ]
1687
1791
  }
@@ -124,7 +124,7 @@
124
124
  "description": "Accessoire naam zoals het wordt weergegeven in HomeKit",
125
125
  "type": "string",
126
126
  "required": true,
127
- "pattern": "^[a-zA-Z0-9\\s']*$"
127
+ "pattern": "^(?=[\\p{L}\\p{N}])[\\p{L}\\p{N}\\s']*(?<=[\\p{L}\\p{N}])$"
128
128
  },
129
129
  "accessoryType": {
130
130
  "title": "Accessoire Type",
@@ -162,18 +162,6 @@
162
162
  "functionBody": "return ['airpurifier', 'door', 'fan', 'garagedoor', 'heatercooler', 'humidifierdehumidifier', 'lightbulb', 'lock', 'securitysystem', 'speaker', 'switch', 'television', 'valve', 'window', 'windowcovering'].includes(model.devices[arrayIndices].accessoryType);"
163
163
  }
164
164
  },
165
- "deviceType": {
166
- "title": "Soort Verbinding *",
167
- "description": "Accessoire is HomeKit of Matter Verbinding",
168
- "type": "string",
169
- "oneOf": [
170
- { "title": "HomeKit", "const": "homekit" },
171
- { "title": "Matter", "const": "matter" }
172
- ],
173
- "condition": {
174
- "functionBody": "return model.devices[arrayIndices].accessoryType == 'switch';"
175
- }
176
- },
177
165
  "airPurifier": {
178
166
  "title": "Luchtreiniger",
179
167
  "type": "object",
@@ -1142,7 +1130,7 @@
1142
1130
  }
1143
1131
  },
1144
1132
  "pingTrigger": {
1145
- "title": "Ping a Host activering",
1133
+ "title": "Ping een Host als activering",
1146
1134
  "type": "object",
1147
1135
  "properties": {
1148
1136
  "host": {
@@ -1157,6 +1145,13 @@
1157
1145
  "type": "integer",
1158
1146
  "minimum": 0
1159
1147
  },
1148
+ "interval": {
1149
+ "title": "Interval Tussen Pings",
1150
+ "description": "Interval tussen pings in minuten - laag voor kritieke infrastructuur, hoger voor niet-kritieke apparaten (standaard: 1 minuut)",
1151
+ "type": "integer",
1152
+ "minimum": 1,
1153
+ "maximum": 15
1154
+ },
1160
1155
  "isDisabled": {
1161
1156
  "title": "activering uitschakelen",
1162
1157
  "description": "uitschakelen/inschakelen van activering",