homebridge-freeathome-local-api 1.2.0 → 1.4.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,26 @@ 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.4.0](https://github.com/pgerke/homebridge-freeathome-local-api/releases/tag/1.4) - 09.10.2022
9
+
10
+ ### Added
11
+
12
+ - [PG-218](https://pgerke.atlassian.net/browse/PG-218):
13
+ Added an option to disable TLS certificate verification. This is useful if the System Access Point is using a self-signed TLS certificate, but should not be used lightly as it may pose a security risk.
14
+
15
+ ## [1.3.0](https://github.com/pgerke/homebridge-freeathome-local-api/releases/tag/1.3) - 13.09.2022
16
+
17
+ ### Added
18
+
19
+ - [PG-215](https://pgerke.atlassian.net/browse/PG-215):
20
+ Support mapping types. You can now define that a switch actuator shall be created as an outlet instead of a switch / light bulb.
21
+
8
22
  ## [1.2.0](https://github.com/pgerke/homebridge-freeathome-local-api/releases/tag/1.2) - 21.08.2022
9
23
 
10
24
  ### Added
11
25
 
12
- - Experimentally support blinds and shutter actuators
26
+ - [PG-211](https://pgerke.atlassian.net/browse/PG-211):
27
+ Experimentally support blinds and shutter actuators
13
28
 
14
29
  ## 1.1.1 - 24.07.2022
15
30
 
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": {
@@ -41,6 +41,13 @@
41
41
  "required": false,
42
42
  "default": true
43
43
  },
44
+ "disableCertificateVerification": {
45
+ "title": "Disable TLS Certificate Verification",
46
+ "description": "Disables TLS certificate verification which can be useful in certain scenarios (e.g. self-signed certificates). Disabling TLS certificate verification poses a security risk!",
47
+ "type": "boolean",
48
+ "required": false,
49
+ "default": false
50
+ },
44
51
  "verboseErrors": {
45
52
  "title": "Verbose Errors",
46
53
  "description": "Determines whether verbose error messages shall be used, for example for message validation. This is a debug option that should only be enabled if needed.",
@@ -63,6 +70,23 @@
63
70
  "type": "string"
64
71
  },
65
72
  "required": false
73
+ },
74
+ "typeMappings": {
75
+ "title": "Type Mappings",
76
+ "type": "array",
77
+ "items": {
78
+ "type": "object",
79
+ "properties": {
80
+ "channel": {
81
+ "type": "string"
82
+ },
83
+ "type": {
84
+ "type": "string",
85
+ "enum": ["Undefined", "Outlet"]
86
+ }
87
+ }
88
+ },
89
+ "required": false
66
90
  }
67
91
  }
68
92
  }
@@ -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;AAgB/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;IAoG1B;;;;;;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,8 @@ 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");
17
+ const https_1 = require("https");
16
18
  const DelayFactor = 200;
17
19
  /** The free@home Homebridge platform. */
18
20
  class FreeAtHomeHomebridgePlatform {
@@ -47,6 +49,8 @@ class FreeAtHomeHomebridgePlatform {
47
49
  };
48
50
  // Create a system access point instance
49
51
  this.sysap = new freeathome_local_api_client_1.SystemAccessPoint(this.config.host, this.config.user, this.config.password, this.config.tlsEnabled, this.config.verboseErrors, this.fahLogger);
52
+ https_1.globalAgent.options.rejectUnauthorized =
53
+ !this.config.disableCertificateVerification;
50
54
  // React to web socket events
51
55
  this.sysap.on("websocket-open", () => {
52
56
  this.wsConnectionAttempt = 0;
@@ -61,7 +65,7 @@ class FreeAtHomeHomebridgePlatform {
61
65
  }
62
66
  const delay = DelayFactor * 2 ** this.wsConnectionAttempt++;
63
67
  this.log.info(`Attempting to reconnect in ${delay}ms [${this.wsConnectionAttempt}/${this.maxWsRetryCount}]`);
64
- setTimeout(() => this.sysap.connectWebSocket(this.config.tlsEnabled), delay);
68
+ setTimeout(() => this.sysap.connectWebSocket(!this.config.disableCertificateVerification), delay);
65
69
  });
66
70
  // Subscribe to web socket messages
67
71
  this.webSocketSubscription = this.sysap
@@ -81,7 +85,7 @@ class FreeAtHomeHomebridgePlatform {
81
85
  .then(() => this.log.info(`Discovery completed: ${this.fahAccessories.size} accessories detected`))
82
86
  .catch((error) => this.log.error("Device discovery failed", error));
83
87
  // Connect to system access point web socket
84
- this.sysap.connectWebSocket(this.config.tlsEnabled);
88
+ this.sysap.connectWebSocket(!this.config.disableCertificateVerification);
85
89
  });
86
90
  this.api.on("shutdown", () => {
87
91
  log.debug("Executed shutdown callback");
@@ -208,10 +212,11 @@ class FreeAtHomeHomebridgePlatform {
208
212
  return true;
209
213
  }
210
214
  createAccessory(serial, functionID, channelId, accessory) {
215
+ const accessoryType = this.resolveAccessoryType(serial, channelId);
211
216
  switch (functionID.toUpperCase()) {
212
217
  case functionId_1.FunctionID.FID_DES_AUTOMATIC_DOOR_OPENER_ACTUATOR:
213
218
  case functionId_1.FunctionID.FID_SWITCH_ACTUATOR:
214
- this.fahAccessories.set(`${serial}_${channelId}`, new switchActuatorAccessory_1.SwitchActuatorAccessory(this, accessory));
219
+ this.fahAccessories.set(`${serial}_${channelId}`, new switchActuatorAccessory_1.SwitchActuatorAccessory(this, accessory, accessoryType));
215
220
  return;
216
221
  case functionId_1.FunctionID.FID_ROOM_TEMPERATURE_CONTROLLER_MASTER_WITHOUT_FAN:
217
222
  this.fahAccessories.set(`${serial}_${channelId}`, new roomTemperatureControllerAccessory_1.RoomTemperatureControllerAccessory(this, accessory));
@@ -262,6 +267,23 @@ class FreeAtHomeHomebridgePlatform {
262
267
  .get(`${match[1]}_${match[2]}`)) === null || _a === void 0 ? void 0 : _a.updateDatapoint(match[3], message[util_1.EmptyGuid].datapoints[datapoint]);
263
268
  });
264
269
  }
270
+ resolveAccessoryType(device, channel) {
271
+ var _a;
272
+ if (!this.config.typeMappings)
273
+ return typeMappings_1.AccessoryType.Undefined;
274
+ const key = `${device.toUpperCase()}/${channel.toUpperCase()}`;
275
+ const mappings = this.config.typeMappings.filter((e) => e.channel.toUpperCase() === key);
276
+ switch (mappings.length) {
277
+ case 0:
278
+ return typeMappings_1.AccessoryType.Undefined;
279
+ case 1:
280
+ break;
281
+ default:
282
+ this.log.warn(`Multiple type mappings are defined for channel '${key}'. The first mapping is used.`);
283
+ break;
284
+ }
285
+ return (_a = typeMappings_1.AccessoryType[mappings[0].type]) !== null && _a !== void 0 ? _a : typeMappings_1.AccessoryType.Undefined;
286
+ }
265
287
  }
266
288
  exports.FreeAtHomeHomebridgePlatform = FreeAtHomeHomebridgePlatform;
267
289
  //# 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":"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"}
@@ -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.4.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",
@@ -45,32 +45,32 @@
45
45
  "smarthome"
46
46
  ],
47
47
  "dependencies": {
48
- "freeathome-local-api-client": "^1.3.3",
48
+ "freeathome-local-api-client": "^1.3.4",
49
49
  "node-fetch": "^2.6.7",
50
- "rxjs": "^7.5.6"
50
+ "rxjs": "^7.5.7"
51
51
  },
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.8.3",
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.39.0",
59
+ "@typescript-eslint/parser": "^5.39.0",
60
+ "eslint": "^8.25.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.3.0",
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
- "nodemon": "^2.0.19",
69
+ "nodemon": "^2.0.20",
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.4"
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 () => {