homebridge-freeathome-local-api 1.2.0 → 1.3.0

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.
File without changes
@@ -0,0 +1,6 @@
1
+ projectKey=homebridge-freeathome-local-api
2
+ serverUrl=https://spectre-ubuntu:30010
3
+ serverVersion=9.6.1.59531
4
+ dashboardUrl=https://spectre-ubuntu:30010/dashboard?id=homebridge-freeathome-local-api
5
+ ceTaskId=AYMzOpD3dP9M_ELFTlAW
6
+ ceTaskUrl=https://spectre-ubuntu:30010/api/ce/task?id=AYMzOpD3dP9M_ELFTlAW
package/CHANGELOG.md CHANGED
@@ -5,11 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.0](https://github.com/pgerke/homebridge-freeathome-local-api/releases/tag/1.3) - 13.09.2022
9
+
10
+ ### Added
11
+
12
+ - [PG-215](https://pgerke.atlassian.net/browse/PG-215):
13
+ Support mapping types. You can now define that a switch actuator shall be created as an outlet instead of a switch / light bulb.
14
+
8
15
  ## [1.2.0](https://github.com/pgerke/homebridge-freeathome-local-api/releases/tag/1.2) - 21.08.2022
9
16
 
10
17
  ### Added
11
18
 
12
- - Experimentally support blinds and shutter actuators
19
+ - [PG-211](https://pgerke.atlassian.net/browse/PG-211):
20
+ Experimentally support blinds and shutter actuators
13
21
 
14
22
  ## 1.1.1 - 24.07.2022
15
23
 
package/README.md CHANGED
@@ -63,6 +63,34 @@ A sample configuration section for the plugin with ignored channels might look l
63
63
  }
64
64
  ```
65
65
 
66
+ ## Type Mappings
67
+
68
+ Starting with plugin version v1.3.0, you can add type mappings to the config file to determine how certain devices are displayed in Apple Home. For example, a free@home binary switch actuator might be mapped to a light bulb, a regular switch or an outlet. Unfortunately, there is no way to determine the type of the connected device of a switch programmatically. So a type mapping is needed to advise the plugin to use another than the default service.
69
+
70
+ A sample configuration section for the plugin with type mappings might look like this:
71
+
72
+ ```json
73
+ {
74
+ "name": "My free@home Setup",
75
+ "host": "sysap.home.net",
76
+ "user": "12345678-9ACB-DEF0-1234-56789ABCDEF0",
77
+ "password": "s3cre3tP4ssw0rt",
78
+ "tlsEnabled": false,
79
+ "verboseErrors": false,
80
+ "experimental": false,
81
+ "typeMappings": [{ "channel": "ABB700123456/ch0001", "type": "Outlet" }],
82
+ "platform": "FreeAtHomeLocalApi"
83
+ }
84
+ ```
85
+
86
+ Please note that **the type property is case-sensitive**, `outlet` will not work!
87
+
88
+ The following type mappings are supported:
89
+
90
+ | FunctionID | Default Service | Alternative Service | Mapping Type |
91
+ | ------------------------ | --------------- | ------------------- | ------------ |
92
+ | 7: `FID_SWITCH_ACTUATOR` | Switch | Outlet | `Outlet` |
93
+
66
94
  ## Requirements
67
95
 
68
96
  - free@home Access Point running firmware version >2.6.0
@@ -3,7 +3,7 @@
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
5
  "headerDisplay": "A Homebridge plugin for interfacing with a BUSCH-JAEGER free@home setup.",
6
- "footerDisplay": "Control you free@home system with Apple Home using the System Access Point local API.",
6
+ "footerDisplay": "Control your free@home system with Apple Home using the System Access Point local API.",
7
7
  "schema": {
8
8
  "type": "object",
9
9
  "properties": {
@@ -63,6 +63,23 @@
63
63
  "type": "string"
64
64
  },
65
65
  "required": false
66
+ },
67
+ "typeMappings": {
68
+ "title": "Type Mappings",
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object",
72
+ "properties": {
73
+ "channel": {
74
+ "type": "string"
75
+ },
76
+ "type": {
77
+ "type": "string",
78
+ "enum": ["Undefined", "Outlet"]
79
+ }
80
+ }
81
+ },
82
+ "required": false
66
83
  }
67
84
  }
68
85
  }
@@ -42,5 +42,6 @@ export declare class FreeAtHomeHomebridgePlatform implements DynamicPlatformPlug
42
42
  private createAccessory;
43
43
  private isIgnoredChannel;
44
44
  private processWebSocketMesage;
45
+ private resolveAccessoryType;
45
46
  }
46
47
  //# sourceMappingURL=platform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,iBAAiB,EAIlB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAyB,MAAM,qBAAqB,CAAC;AAc/E,6CAA6C;AAC7C,qBAAa,4BAA6B,YAAW,qBAAqB;aA8BtD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IA/B1B,4BAA4B;IAC5B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,mCAAmC;IACnC,SAAgB,cAAc,EAAE,OAAO,cAAc,CACvB;IAC9B,8CAA8C;IAC9C,SAAgB,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAM;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE5B;IACP,8BAA8B;IAC9B,SAAgB,KAAK,EAAE,iBAAiB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAe;IACrD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,OAAO,KAAK,gBAAgB,GAE3B;IAED;;;;;OAKG;gBAEe,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA+F1B;;;;;;OAMG;IACI,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IA+BtD,kFAAkF;YACpE,eAAe;IAmF7B,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,eAAe;IA8DvB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,sBAAsB;CAoB/B"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,iBAAiB,EAIlB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAyB,MAAM,qBAAqB,CAAC;AAe/E,6CAA6C;AAC7C,qBAAa,4BAA6B,YAAW,qBAAqB;aA8BtD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IA/B1B,4BAA4B;IAC5B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,mCAAmC;IACnC,SAAgB,cAAc,EAAE,OAAO,cAAc,CACvB;IAC9B,8CAA8C;IAC9C,SAAgB,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAM;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE5B;IACP,8BAA8B;IAC9B,SAAgB,KAAK,EAAE,iBAAiB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAe;IACrD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,OAAO,KAAK,gBAAgB,GAE3B;IAED;;;;;OAKG;gBAEe,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA+F1B;;;;;;OAMG;IACI,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IA+BtD,kFAAkF;YACpE,eAAe;IAmF7B,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,eAAe;IAgEvB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,oBAAoB;CAsB7B"}
package/dist/platform.js CHANGED
@@ -13,6 +13,7 @@ const smokeDetectorAccessory_1 = require("./smokeDetectorAccessory");
13
13
  const motionSensorAccessory_1 = require("./motionSensorAccessory");
14
14
  const doorOpenerAccessory_1 = require("./doorOpenerAccessory");
15
15
  const shutterActuatorAccessory_1 = require("./shutterActuatorAccessory");
16
+ const typeMappings_1 = require("./typeMappings");
16
17
  const DelayFactor = 200;
17
18
  /** The free@home Homebridge platform. */
18
19
  class FreeAtHomeHomebridgePlatform {
@@ -208,10 +209,11 @@ class FreeAtHomeHomebridgePlatform {
208
209
  return true;
209
210
  }
210
211
  createAccessory(serial, functionID, channelId, accessory) {
212
+ const accessoryType = this.resolveAccessoryType(serial, channelId);
211
213
  switch (functionID.toUpperCase()) {
212
214
  case functionId_1.FunctionID.FID_DES_AUTOMATIC_DOOR_OPENER_ACTUATOR:
213
215
  case functionId_1.FunctionID.FID_SWITCH_ACTUATOR:
214
- this.fahAccessories.set(`${serial}_${channelId}`, new switchActuatorAccessory_1.SwitchActuatorAccessory(this, accessory));
216
+ this.fahAccessories.set(`${serial}_${channelId}`, new switchActuatorAccessory_1.SwitchActuatorAccessory(this, accessory, accessoryType));
215
217
  return;
216
218
  case functionId_1.FunctionID.FID_ROOM_TEMPERATURE_CONTROLLER_MASTER_WITHOUT_FAN:
217
219
  this.fahAccessories.set(`${serial}_${channelId}`, new roomTemperatureControllerAccessory_1.RoomTemperatureControllerAccessory(this, accessory));
@@ -262,6 +264,23 @@ class FreeAtHomeHomebridgePlatform {
262
264
  .get(`${match[1]}_${match[2]}`)) === null || _a === void 0 ? void 0 : _a.updateDatapoint(match[3], message[util_1.EmptyGuid].datapoints[datapoint]);
263
265
  });
264
266
  }
267
+ resolveAccessoryType(device, channel) {
268
+ var _a;
269
+ if (!this.config.typeMappings)
270
+ return typeMappings_1.AccessoryType.Undefined;
271
+ const key = `${device.toUpperCase()}/${channel.toUpperCase()}`;
272
+ const mappings = this.config.typeMappings.filter((e) => e.channel.toUpperCase() === key);
273
+ switch (mappings.length) {
274
+ case 0:
275
+ return typeMappings_1.AccessoryType.Undefined;
276
+ case 1:
277
+ break;
278
+ default:
279
+ this.log.warn(`Multiple type mappings are defined for channel '${key}'. The first mapping is used.`);
280
+ break;
281
+ }
282
+ return (_a = typeMappings_1.AccessoryType[mappings[0].type]) !== null && _a !== void 0 ? _a : typeMappings_1.AccessoryType.Undefined;
283
+ }
265
284
  }
266
285
  exports.FreeAtHomeHomebridgePlatform = FreeAtHomeHomebridgePlatform;
267
286
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shutterActuatorAccessory.d.ts","sourceRoot":"","sources":["../src/shutterActuatorAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,mBAAmB;IAa7D,QAAQ,CAAC,QAAQ,EAAE,4BAA4B;IAC/C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAb1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAU;IAEjC;;;;OAIG;gBAEQ,QAAQ,EAAE,4BAA4B,EACtC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IA2D1D,OAAO,CAAC,gBAAgB;YAWV,iBAAiB;IAsBf,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAkCxE"}
1
+ {"version":3,"file":"shutterActuatorAccessory.d.ts","sourceRoot":"","sources":["../src/shutterActuatorAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,mBAAmB;IAa7D,QAAQ,CAAC,QAAQ,EAAE,4BAA4B;IAC/C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAb1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAU;IAEjC;;;;OAIG;gBAEQ,QAAQ,EAAE,4BAA4B,EACtC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IA2D1D,OAAO,CAAC,gBAAgB;YAWV,iBAAiB;IAsBf,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAmCxE"}
@@ -105,6 +105,7 @@ class ShutterActuatorAccessory extends freeAtHomeAccessory_1.FreeAtHomeAccessory
105
105
  case "odp0003":
106
106
  this.stateObstructed = !!parseInt(value);
107
107
  this.doUpdateDatapoint("Shutter Actuator", this.service, this.platform.Characteristic.ObstructionDetected, this.stateObstructed);
108
+ return;
108
109
  default:
109
110
  return;
110
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shutterActuatorAccessory.js","sourceRoot":"","sources":["../src/shutterActuatorAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shutterActuatorAccessory.js","sourceRoot":"","sources":["../src/shutterActuatorAccessory.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAG5D,iCAAmC;AAEnC;;;;;;GAMG;AACH,MAAa,wBAAyB,SAAQ,yCAAmB;IAO/D;;;;OAIG;IACH,YACW,QAAsC,EACtC,SAA+C;;QAExD,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAHlB,aAAQ,GAAR,QAAQ,CAA8B;QACtC,cAAS,GAAT,SAAS,CAAsC;QAIxD,oBAAoB;QACpB,IAAI,CAAC,oBAAoB;YACvB,GAAG;gBACH,QAAQ,CAAC,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,mCAAI,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAC7C,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,CACtD,CAAC;QACF,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,0CAAE,OAAO,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,mBAAmB;YACtB,cAAc;gBACd,IAAI,CAAC,kBAAkB;oBACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO;gBAClD,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC;gBAChC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAC/B,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,mCAAI,GAAG,CAC7D,CAAC;QAEF,wFAAwF;QACxF,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC/D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAElE,4DAA4D;QAC5D,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC;aAC/D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC;aACtC,QAAQ,CAAC;YACR,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACL,0DAA0D;QAC1D,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;aAC7D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;aACpC,QAAQ,CAAC;YACR,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACvB,CAAC,CAAC;QACL,2DAA2D;QAC3D,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;aACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxC,QAAQ,CAAC;YACR,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACL,gEAAgE;QAChE,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC;aACnE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,KAAyB;QAChD,QAAQ,KAAK,EAAE;YACb,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC;YAC/D,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC;YAC/D;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC;SAC7D;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAA0B;QACxD,6CAA6C;QAC7C,IAAI,KAAK,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO;;YACzC,IAAI,CAAC,mBAAmB,GAAG,KAAe,CAAC;QAEhD,YAAY;QACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CACpB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,sBAC3B,IAAI,CAAC,YACP,0CAA0C,KAAK,CAAC,QAAQ,EAAE,EAAE,CAC7D,CAAC;QAEF,0BAA0B;QAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CACpC,gBAAS,EACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAChC,SAAS,EACT,CAAC,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAC5C,CAAC;IACJ,CAAC;IAEe,eAAe,CAAC,SAAiB,EAAE,KAAa;QAC9D,6BAA6B;QAC7B,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS;gBACZ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACvD,gBAAgB;gBAChB,IAAI,CAAC,iBAAiB,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAC1C,IAAI,CAAC,kBAAkB,CACxB,CAAC;gBACF,OAAO;YACT,KAAK,SAAS;gBACZ,IAAI,CAAC,oBAAoB,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,iBAAiB,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,EAC5C,IAAI,CAAC,oBAAoB,CAC1B,CAAC;gBACF,OAAO;YACT,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,mBAAmB,EAChD,IAAI,CAAC,eAAe,CACrB,CAAC;gBACF,OAAO;YACT;gBACE,OAAO;SACV;IACH,CAAC;CACF;AA7ID,4DA6IC"}
@@ -1,4 +1,5 @@
1
1
  import { PlatformAccessory } from "homebridge";
2
+ import { AccessoryType } from "./typeMappings";
2
3
  import { FreeAtHomeAccessory } from "./freeAtHomeAccessory";
3
4
  import { FreeAtHomeContext } from "./freeAtHomeContext";
4
5
  import { FreeAtHomeHomebridgePlatform } from "./platform";
@@ -12,14 +13,16 @@ import { FreeAtHomeHomebridgePlatform } from "./platform";
12
13
  export declare class SwitchActuatorAccessory extends FreeAtHomeAccessory {
13
14
  readonly platform: FreeAtHomeHomebridgePlatform;
14
15
  readonly accessory: PlatformAccessory<FreeAtHomeContext>;
16
+ readonly accessoryType: AccessoryType;
15
17
  private readonly service;
16
18
  private stateOn;
17
19
  /**
18
20
  * Constructs a new switch actuator accessory instance.
19
21
  * @param platform The free&#64;home Homebridge platform controlling the accessory
20
22
  * @param accessory The platform accessory.
23
+ * @param accessoryType The accessory type
21
24
  */
22
- constructor(platform: FreeAtHomeHomebridgePlatform, accessory: PlatformAccessory<FreeAtHomeContext>);
25
+ constructor(platform: FreeAtHomeHomebridgePlatform, accessory: PlatformAccessory<FreeAtHomeContext>, accessoryType?: AccessoryType);
23
26
  private setOn;
24
27
  updateDatapoint(datapoint: string, value: string): void;
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switchActuatorAccessory.d.ts","sourceRoot":"","sources":["../src/switchActuatorAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAU5D,QAAQ,CAAC,QAAQ,EAAE,4BAA4B;IAC/C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAV1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;OAIG;gBAEQ,QAAQ,EAAE,4BAA4B,EACtC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;YAqB5C,KAAK;IAsBH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAaxE"}
1
+ {"version":3,"file":"switchActuatorAccessory.d.ts","sourceRoot":"","sources":["../src/switchActuatorAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAW5D,QAAQ,CAAC,QAAQ,EAAE,4BAA4B;IAC/C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,aAAa;IAZvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;;OAKG;gBAEQ,QAAQ,EAAE,4BAA4B,EACtC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAC/C,aAAa,GAAE,aAAuC;YA6BnD,KAAK;IAsBH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAaxE"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SwitchActuatorAccessory = void 0;
4
+ const typeMappings_1 = require("./typeMappings");
4
5
  const freeAtHomeAccessory_1 = require("./freeAtHomeAccessory");
5
6
  const util_1 = require("./util");
6
7
  /**
@@ -15,18 +16,27 @@ class SwitchActuatorAccessory extends freeAtHomeAccessory_1.FreeAtHomeAccessory
15
16
  * Constructs a new switch actuator accessory instance.
16
17
  * @param platform The free&#64;home Homebridge platform controlling the accessory
17
18
  * @param accessory The platform accessory.
19
+ * @param accessoryType The accessory type
18
20
  */
19
- constructor(platform, accessory) {
21
+ constructor(platform, accessory, accessoryType = typeMappings_1.AccessoryType.Undefined) {
20
22
  var _a, _b;
21
23
  super(platform, accessory);
22
24
  this.platform = platform;
23
25
  this.accessory = accessory;
26
+ this.accessoryType = accessoryType;
24
27
  // set initial state
25
28
  this.stateOn = !!parseInt((_b = (_a = this.accessory.context.channel.outputs) === null || _a === void 0 ? void 0 : _a.odp0000.value) !== null && _b !== void 0 ? _b : "0");
26
- // get the Switch service if it exists, otherwise create a new service instance
29
+ /*
30
+ * Configure the service service for the switch actuator. By default the Switch service will be used.
31
+ * If the instance was initialized with configureAsOutlet set to true, a Outlet service will be used instead.
32
+ * In any case, the service instance will be re-used if it exists already, otherwise create a new instance is created.
33
+ */
34
+ const serviceType = accessoryType === typeMappings_1.AccessoryType.Outlet
35
+ ? this.platform.Service.Outlet
36
+ : this.platform.Service.Switch;
27
37
  this.service =
28
- this.accessory.getService(this.platform.Service.Switch) ||
29
- this.accessory.addService(this.platform.Service.Switch);
38
+ this.accessory.getService(serviceType) ||
39
+ this.accessory.addService(serviceType);
30
40
  // register handlers for the On/Off Characteristic
31
41
  this.service
32
42
  .getCharacteristic(this.platform.Characteristic.On)
@@ -1 +1 @@
1
- {"version":3,"file":"switchActuatorAccessory.js","sourceRoot":"","sources":["../src/switchActuatorAccessory.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAG5D,iCAAmC;AAEnC;;;;;;GAMG;AACH,MAAa,uBAAwB,SAAQ,yCAAmB;IAI9D;;;;OAIG;IACH,YACW,QAAsC,EACtC,SAA+C;;QAExD,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAHlB,aAAQ,GAAR,QAAQ,CAA8B;QACtC,cAAS,GAAT,SAAS,CAAsC;QAIxD,oBAAoB;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CACvB,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,mCAAI,GAAG,CAC7D,CAAC;QAEF,+EAA+E;QAC/E,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1D,kDAAkD;QAClD,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aAClD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,KAA0B;QAC5C,2CAA2C;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO;;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAgB,CAAC;QAErC,YAAY;QACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CACpB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,qBAC3B,IAAI,CAAC,YACP,8BAA8B,KAAK,CAAC,QAAQ,EAAE,EAAE,CACjD,CAAC;QAEF,0BAA0B;QAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CACpC,gBAAS,EACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAChC,SAAS,EACT,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAClB,CAAC;IACJ,CAAC;IAEe,eAAe,CAAC,SAAiB,EAAE,KAAa;QAC9D,6BAA6B;QAC7B,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QAEpC,gBAAgB;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,CACpB,iBAAiB,EACjB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAC/B,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;CACF;AAnED,0DAmEC"}
1
+ {"version":3,"file":"switchActuatorAccessory.js","sourceRoot":"","sources":["../src/switchActuatorAccessory.ts"],"names":[],"mappings":";;;AACA,iDAA+C;AAC/C,+DAA4D;AAG5D,iCAAmC;AAEnC;;;;;;GAMG;AACH,MAAa,uBAAwB,SAAQ,yCAAmB;IAI9D;;;;;OAKG;IACH,YACW,QAAsC,EACtC,SAA+C,EAC/C,gBAA+B,4BAAa,CAAC,SAAS;;QAE/D,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAJlB,aAAQ,GAAR,QAAQ,CAA8B;QACtC,cAAS,GAAT,SAAS,CAAsC;QAC/C,kBAAa,GAAb,aAAa,CAAyC;QAI/D,oBAAoB;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CACvB,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAC,KAAK,mCAAI,GAAG,CAC7D,CAAC;QAEF;;;;WAIG;QACH,MAAM,WAAW,GACf,aAAa,KAAK,4BAAa,CAAC,MAAM;YACpC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;YAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEzC,kDAAkD;QAClD,IAAI,CAAC,OAAO;aACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aAClD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,KAA0B;QAC5C,2CAA2C;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO;;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAgB,CAAC;QAErC,YAAY;QACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CACpB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,qBAC3B,IAAI,CAAC,YACP,8BAA8B,KAAK,CAAC,QAAQ,EAAE,EAAE,CACjD,CAAC;QAEF,0BAA0B;QAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CACpC,gBAAS,EACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAChC,SAAS,EACT,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAClB,CAAC;IACJ,CAAC;IAEe,eAAe,CAAC,SAAiB,EAAE,KAAa;QAC9D,6BAA6B;QAC7B,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QAEpC,gBAAgB;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,CACpB,iBAAiB,EACjB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAC/B,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;CACF;AA7ED,0DA6EC"}
@@ -0,0 +1,12 @@
1
+ export interface TypeMapping {
2
+ channel: string;
3
+ type: keyof typeof AccessoryType;
4
+ }
5
+ /** The enumeration defining the supported accessory types */
6
+ export declare enum AccessoryType {
7
+ /** The undefined type. This is the default value. */
8
+ Undefined = 0,
9
+ /** An outlet */
10
+ Outlet = 1
11
+ }
12
+ //# sourceMappingURL=typeMappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeMappings.d.ts","sourceRoot":"","sources":["../src/typeMappings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,OAAO,aAAa,CAAC;CAClC;AAED,8DAA8D;AAC9D,oBAAY,aAAa;IACvB,qDAAqD;IACrD,SAAS,IAAI;IACb,gBAAgB;IAChB,MAAM,IAAA;CACP"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccessoryType = void 0;
4
+ /** The enumeration defining the supported accessory types */
5
+ var AccessoryType;
6
+ (function (AccessoryType) {
7
+ /** The undefined type. This is the default value. */
8
+ AccessoryType[AccessoryType["Undefined"] = 0] = "Undefined";
9
+ /** An outlet */
10
+ AccessoryType[AccessoryType["Outlet"] = 1] = "Outlet";
11
+ })(AccessoryType = exports.AccessoryType || (exports.AccessoryType = {}));
12
+ //# sourceMappingURL=typeMappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeMappings.js","sourceRoot":"","sources":["../src/typeMappings.ts"],"names":[],"mappings":";;;AAKA,8DAA8D;AAC9D,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,qDAAqD;IACrD,2DAAa,CAAA;IACb,gBAAgB;IAChB,qDAAM,CAAA;AACR,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "free@home Local API",
3
3
  "name": "homebridge-freeathome-local-api",
4
- "version": "1.2.0",
4
+ "version": "1.3.0",
5
5
  "preview": false,
6
6
  "description": "Control your free@home setup using the local API provided by your System Access Point",
7
7
  "license": "MIT",
@@ -52,25 +52,25 @@
52
52
  "devDependencies": {
53
53
  "@istanbuljs/nyc-config-typescript": "^1.0.2",
54
54
  "@types/events": "^3.0.0",
55
- "@types/jasmine": "^4.0.3",
56
- "@types/node": "^18.7.8",
55
+ "@types/jasmine": "^4.3.0",
56
+ "@types/node": "^18.7.16",
57
57
  "@types/node-fetch": "^2.6.2",
58
- "@typescript-eslint/eslint-plugin": "^5.33.1",
59
- "@typescript-eslint/parser": "^5.33.1",
60
- "eslint": "^8.22.0",
58
+ "@typescript-eslint/eslint-plugin": "^5.36.2",
59
+ "@typescript-eslint/parser": "^5.36.2",
60
+ "eslint": "^8.23.0",
61
61
  "eslint-config-prettier": "^8.5.0",
62
62
  "eslint-plugin-import": "^2.26.0",
63
- "eslint-plugin-n": "^15.2.4",
63
+ "eslint-plugin-n": "^15.2.5",
64
64
  "eslint-plugin-prettier": "^4.2.1",
65
- "eslint-plugin-promise": "^6.0.0",
65
+ "eslint-plugin-promise": "^6.0.1",
66
66
  "homebridge": "^1.5.0",
67
- "jasmine": "^4.3.0",
67
+ "jasmine": "^4.4.0",
68
68
  "jasmine-spec-reporter": "^7.0.0",
69
69
  "nodemon": "^2.0.19",
70
70
  "nyc": "^15.1.0",
71
71
  "prettier": "^2.7.1",
72
72
  "rimraf": "^3.0.2",
73
73
  "ts-node": "^10.9.1",
74
- "typescript": "^4.7.4"
74
+ "typescript": "^4.8.3"
75
75
  }
76
76
  }
@@ -14,6 +14,8 @@ import {
14
14
  isFreeAtHomeAccessory,
15
15
  } from "../src/freeAtHomeContext";
16
16
  import { FreeAtHomeHomebridgePlatform } from "../src/platform";
17
+ import { SwitchActuatorAccessory } from "../src/switchActuatorAccessory";
18
+ import { AccessoryType } from "../src/typeMappings";
17
19
  import { EmptyGuid } from "../src/util";
18
20
  import { TestAccessory } from "./TestAccessory.mock";
19
21
 
@@ -96,6 +98,15 @@ const configuration: Configuration = {
96
98
  },
97
99
  },
98
100
  },
101
+ ABB700000005: {
102
+ floor: "1",
103
+ room: "1",
104
+ channels: {
105
+ ch0001: {
106
+ functionID: "7",
107
+ },
108
+ },
109
+ },
99
110
  },
100
111
  floorplan: {
101
112
  floors: {},
@@ -337,7 +348,7 @@ describe("free@home Homebridge Platform", () => {
337
348
  platform.accessories.push(knownAccessory);
338
349
  spyOn(platform.sysap, "getConfiguration").and.resolveTo(configuration);
339
350
  await instance.discoverDevices();
340
- expect(instance.fahAccessories.size).toBe(5);
351
+ expect(instance.fahAccessories.size).toBe(6);
341
352
  });
342
353
 
343
354
  it("should discover devices from the system access point without ignore list", async () => {
@@ -353,7 +364,7 @@ describe("free@home Homebridge Platform", () => {
353
364
  };
354
365
  spyOn(platform.sysap, "getConfiguration").and.resolveTo(configuration);
355
366
  await instance.discoverDevices();
356
- expect(instance.fahAccessories.size).toBe(8);
367
+ expect(instance.fahAccessories.size).toBe(9);
357
368
  });
358
369
 
359
370
  it("should discover devices from the system access point in experimental mode", async () => {
@@ -370,7 +381,7 @@ describe("free@home Homebridge Platform", () => {
370
381
  };
371
382
  spyOn(platform.sysap, "getConfiguration").and.resolveTo(configuration);
372
383
  await instance.discoverDevices();
373
- expect(instance.fahAccessories.size).toBe(8);
384
+ expect(instance.fahAccessories.size).toBe(9);
374
385
  });
375
386
 
376
387
  it("should not create an accessory for an unknown function ID", () => {
@@ -471,4 +482,62 @@ describe("free@home Homebridge Platform", () => {
471
482
  expect(spy.calls.count()).toBe(1);
472
483
  expect(spy).toHaveBeenCalledWith("odp0000", "2");
473
484
  });
485
+
486
+ it("should resolve to mapped type", async () => {
487
+ config.typeMappings = [{ channel: "ABB700000005/ch0001", type: "Outlet" }];
488
+ const platform = new FreeAtHomeHomebridgePlatform(logger, config, api);
489
+ const instance = platform as unknown as {
490
+ readonly fahAccessories: Map<string, FreeAtHomeAccessory>;
491
+ discoverDevices(): Promise<void>;
492
+ };
493
+ spyOn(platform.sysap, "getConfiguration").and.resolveTo(configuration);
494
+ await instance.discoverDevices();
495
+ const accessory = instance.fahAccessories.get("ABB700000005_ch0001");
496
+ expect(accessory).toBeDefined();
497
+ expect(accessory).toBeInstanceOf(SwitchActuatorAccessory);
498
+ expect((accessory as SwitchActuatorAccessory).accessoryType).toBe(
499
+ AccessoryType.Outlet
500
+ );
501
+ });
502
+
503
+ it("should resolve to unknown mapped types to Undefined", async () => {
504
+ config.typeMappings = [{ channel: "ABB700000005/ch0001", type: "outlet" }];
505
+ const platform = new FreeAtHomeHomebridgePlatform(logger, config, api);
506
+ const instance = platform as unknown as {
507
+ readonly fahAccessories: Map<string, FreeAtHomeAccessory>;
508
+ discoverDevices(): Promise<void>;
509
+ };
510
+ spyOn(platform.sysap, "getConfiguration").and.resolveTo(configuration);
511
+ await instance.discoverDevices();
512
+ const accessory = instance.fahAccessories.get("ABB700000005_ch0001");
513
+ expect(accessory).toBeDefined();
514
+ expect(accessory).toBeInstanceOf(SwitchActuatorAccessory);
515
+ expect((accessory as SwitchActuatorAccessory).accessoryType).toBe(
516
+ AccessoryType.Undefined
517
+ );
518
+ });
519
+
520
+ it("should use the first mapping rule to resolve the mapped types if a channel has multiple mappings", async () => {
521
+ config.typeMappings = [
522
+ { channel: "ABB700000005/ch0001", type: "Outlet" },
523
+ { channel: "ABB700000005/ch0001", type: "outlet" },
524
+ ];
525
+ const platform = new FreeAtHomeHomebridgePlatform(logger, config, api);
526
+ const instance = platform as unknown as {
527
+ readonly fahAccessories: Map<string, FreeAtHomeAccessory>;
528
+ discoverDevices(): Promise<void>;
529
+ };
530
+ spyOn(platform.sysap, "getConfiguration").and.resolveTo(configuration);
531
+ await instance.discoverDevices();
532
+ const accessory = instance.fahAccessories.get("ABB700000005_ch0001");
533
+ // eslint-disable-next-line @typescript-eslint/unbound-method
534
+ expect(logger.warn).toHaveBeenCalledWith(
535
+ "Multiple type mappings are defined for channel 'ABB700000005/CH0001'. The first mapping is used."
536
+ );
537
+ expect(accessory).toBeDefined();
538
+ expect(accessory).toBeInstanceOf(SwitchActuatorAccessory);
539
+ expect((accessory as SwitchActuatorAccessory).accessoryType).toBe(
540
+ AccessoryType.Outlet
541
+ );
542
+ });
474
543
  });
@@ -8,6 +8,7 @@ import {
8
8
  import { PlatformAccessory } from "homebridge/lib/platformAccessory";
9
9
  import { FreeAtHomeContext } from "../src/freeAtHomeContext";
10
10
  import { SwitchActuatorAccessory } from "../src/switchActuatorAccessory";
11
+ import { AccessoryType } from "../src/typeMappings";
11
12
  import { EmptyGuid } from "../src/util";
12
13
  import { MockFreeAtHomeHomebridgePlatform } from "./platform.mock";
13
14
 
@@ -36,7 +37,7 @@ describe("Switch Actuator Accessory", () => {
36
37
  platform.resetLoggerCalls();
37
38
  });
38
39
 
39
- it("should be created", async () => {
40
+ it("should be created as switch", async () => {
40
41
  const accessory = new SwitchActuatorAccessory(platform, platformAccessory);
41
42
  expect(accessory).toBeTruthy();
42
43
  const instance = accessory as unknown as {
@@ -46,6 +47,28 @@ describe("Switch Actuator Accessory", () => {
46
47
  accessory.platform.Characteristic.On
47
48
  );
48
49
  expect(await characteristic.handleGetRequest()).toBeFalse();
50
+ expect(instance.service.getServiceId()).toBe(
51
+ "00000049-0000-1000-8000-0026BB765291"
52
+ );
53
+ });
54
+
55
+ it("should be created as outlet", async () => {
56
+ const accessory = new SwitchActuatorAccessory(
57
+ platform,
58
+ platformAccessory,
59
+ AccessoryType.Outlet
60
+ );
61
+ expect(accessory).toBeTruthy();
62
+ const instance = accessory as unknown as {
63
+ service: Service;
64
+ };
65
+ const characteristic = instance.service.getCharacteristic(
66
+ accessory.platform.Characteristic.On
67
+ );
68
+ expect(await characteristic.handleGetRequest()).toBeFalse();
69
+ expect(instance.service.getServiceId()).toBe(
70
+ "00000047-0000-1000-8000-0026BB765291"
71
+ );
49
72
  });
50
73
 
51
74
  it("should be created with non-default state", async () => {