@o-lukas/homebridge-smartthings-tv 2.1.2 → 2.2.0-next.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.
package/README.md CHANGED
@@ -8,13 +8,13 @@
8
8
  ![GitHub issues](https://img.shields.io/github/issues/o-lukas/homebridge-smartthings-tv?label=Issues)
9
9
  [![Build and Lint](https://github.com/o-lukas/homebridge-smartthings-tv/actions/workflows/build.yml/badge.svg)](https://github.com/o-lukas/homebridge-smartthings-tv/actions/workflows/build.yml)
10
10
 
11
- This is a plugin for [Homebridge](https://github.com/homebridge/homebridge). It offers some basic functions to control Samsung TVs using the SmartThings API.
11
+ This is a plugin for [Homebridge](https://github.com/homebridge/homebridge). It offers some basic functions to control Samsung TVs and SoundBars using the SmartThings API.
12
12
 
13
- # Configuration
13
+ Both device types will be registered as TVs because this is the only device type that is able to control input sources at the moment.
14
14
 
15
- The easiest way to configure the plugin is to use [Homebridge Config UI X](https://github.com/oznu/homebridge-config-ui-x) which should contain a description for every needed property. The only property needed to make the plugin work is the SmartThings API token. The other properties enable some additional functions but are not mandatory for the plugin to work.
15
+ ## Configuration
16
16
 
17
- ## Configuration example
17
+ The easiest way to configure the plugin is to use [Homebridge Config UI X](https://github.com/oznu/homebridge-config-ui-x) which should contain a description for every needed property. The only property needed to make the plugin work is the SmartThings API token. The other properties enable some additional functions but are not mandatory for the plugin to work.
18
18
 
19
19
  The following snippet shows the most simple configuration you can use for the plugin:
20
20
 
@@ -99,8 +99,6 @@ The following snippets shows all available properties you can use for the plugin
99
99
  }
100
100
  ```
101
101
 
102
- ## Available configuration properties
103
-
104
102
  ### token
105
103
 
106
104
  The SmartThings API token is needed to authenticate the requests sent to the SmartThings API. To generate a token open [SmartThings website]( https://account.smartthings.com/tokens) and generate a new one (make sure at least devices is selected).
@@ -117,14 +115,23 @@ Enable debug logging for cyclic calls (e.g. polling).
117
115
 
118
116
  To use installed application as input sources, a [predefined list of applications](./src/res/apps.json) will be used. This list will be checked for availability at the TV(s) and eventually be registered as input sources. Make sure to have the TV(s) turned on when starting your instance as this functionality requires your TV(s) be turned on to determine whether an application is installed or not. On startup the applications will be opened to determine if they are available. Do not use your TV until the input source is being changed back to the first one (usually Live TV).
119
117
 
118
+ > [!NOTE]
119
+ > Not implemented for SoundBars.
120
+
120
121
  ### registerPictureModes
121
122
 
122
123
  Registers all available picture modes as separate switches that can be toggled to enable/disable a picture mode. Uses the names as exposed from the SmartThings API.
123
124
 
125
+ > [!NOTE]
126
+ > Not implemented for SoundBars.
127
+
124
128
  ### registerSoundModes
125
129
 
126
130
  Registers all available sound modes as separate switches that can be toggled to enable/disable a sound mode. Uses the names as exposed from the SmartThings API.
127
131
 
132
+ > [!NOTE]
133
+ > Not implemented for SoundBars.
134
+
128
135
  ### registerVolumeSlider
129
136
 
130
137
  Registers a separate volume slider accessorry that will be exposed as a light bulb accessory (because there is currently no option to change a speaker volume directly using Home).
@@ -141,67 +148,81 @@ Devices not to be registered.
141
148
 
142
149
  Use the device mappings when e.g. turning on the accessory does not work as expected. When a device mapping is available the wake-on-lan functionality is used to turn on the device instead of the SmartThings API. To make use of the functionality you must enter the mapping using the SmartThings device ID and the mac address of the device. If status does not show up properly you can use the ping functionality to determine the device status. To make use of it you must enter the SmartThings device ID and the ip address of the device.
143
150
 
151
+ The following table gives an overview which properties do work for the device types:
152
+
153
+ | Configuration property | TV | SoundBar |
154
+ | ---------------------- | ------------------ | ------------------ |
155
+ | deviceId | :white_check_mark: | :white_check_mark: |
156
+ | nameOverride | :white_check_mark: | :white_check_mark: |
157
+ | wol | :white_check_mark: | :white_check_mark: |
158
+ | macAddress | :white_check_mark: | :white_check_mark: |
159
+ | ping | :white_check_mark: | :white_check_mark: |
160
+ | ipAddress | :white_check_mark: | :white_check_mark: |
161
+ | infoKey | :white_check_mark: | :x: |
162
+ | inputSources | :white_check_mark: | :white_check_mark: |
163
+ | applications | :white_check_mark: | :x: |
164
+
144
165
  #### deviceId
145
166
 
146
- The SmartThings device id. Check the log or go to https://account.smartthings.com/ and get the device id.
167
+ The SmartThings device id. Check the log or go to <https://account.smartthings.com/> and get the device id.
147
168
 
148
- ### nameOverride
169
+ #### nameOverride
149
170
 
150
171
  Use this to override the default display name of the device. Must be configured here because name configured in HomeKit will get lost after restart.
151
172
 
152
- ### wol
173
+ #### wol
153
174
 
154
175
  Enables usage of wake-on-lan functionality to turn the device on. Use only if using the SmartThings API does not work for your device.
155
176
 
156
- ### macAddress
177
+ #### macAddress
157
178
 
158
179
  The mac address of the device to turn device on using wake-on-lan functionality.
159
180
 
160
- ### ping
181
+ #### ping
161
182
 
162
183
  Enables usage of ping functionality to determine if device is turned on. Use only if using the SmartThings API does not work for your device.
163
184
 
164
- ### ipAddress
185
+ #### ipAddress
165
186
 
166
187
  The IP address of the device (assign a static IP address to make sure it does not change) to determine the status using ping.
167
188
 
168
- ### infoKey
189
+ #### infoKey
169
190
 
170
191
  The key to be emulated when pressing info button in HomeKit remote. The list of valid values must be read from the log as it differs per device. To do so enable capabilityLogging and look for log entry containing the possible values.
171
192
 
172
- ### inputSources
193
+ #### inputSources
173
194
 
174
195
  Overrides the device's default input sources map to add custom input sources. Check the log for information about the default input sources.
175
196
 
176
- #### name
197
+ ##### name
177
198
 
178
199
  The input source's name.
179
200
 
180
- #### id
201
+ ##### id
181
202
 
182
203
  The input source's id.
183
204
 
184
- ### applications
205
+ #### applications
185
206
 
186
207
  Overrides the default application mapping list to add custom applications. See [registerApplications](#registerapplications) for more details about application registration.
187
208
 
188
- #### name
209
+ ##### name
189
210
 
190
211
  The application's name.
191
212
 
192
- #### ids
213
+ ##### ids
193
214
 
194
215
  The application's possible ids. Since some applications have different ids for different versions of TVs you can provide a list here so the plugin will try every id and use the one that's working.
195
216
 
196
- # Common issues
217
+ ## Common issues
197
218
 
198
- ## TV does not show in HomeKit
219
+ ### TV does not show in HomeKit
199
220
 
200
221
  After starting you have to add the TV manually to HomeKit because they are published as external accessory to get over the limit of only one TV per bridge.
201
222
 
202
223
  If your TV is lost after an update/restart/etc. you might need to reset the connection. To do so reset the externally published accessories in Homebridge using: Unpair Bridges / Cameras / TVs / External Accessories in the Homebridge settings.
203
224
 
204
- ## TV does not turn on
225
+ ### TV does not turn on
205
226
 
206
227
  The command to turn the TV on using the SmartThings API does not work for some TVs. To solve this problem you can use the built-in wake-on-lan functionality. To activate this functionality add a device mapping containing the device id and the mac address of your TV.
207
228
 
@@ -226,7 +247,7 @@ The command to turn the TV on using the SmartThings API does not work for some T
226
247
  }
227
248
  ```
228
249
 
229
- ## TV state does not match actual state
250
+ ### TV state does not match actual state
230
251
 
231
252
  Some TVs report a false active state using the SmartThings API. To get the actual state of the television you can use the build-in ping functionality. To activate this functionality add a device mapping containing the device id and the IP address of your TV.
232
253
 
@@ -251,21 +272,21 @@ Some TVs report a false active state using the SmartThings API. To get the actua
251
272
  }
252
273
  ```
253
274
 
254
- ## Picture/sound mode switches do not match TV picture mode settings
275
+ ### Picture/sound mode switches do not match TV picture mode settings
255
276
 
256
277
  Some TVs always report the same picture & sound mode. This will cause the exposed switches to not match the actual picture/sound mode state. I have not found a proper solution for this problem yet. But toggling the buttons will still work.
257
278
 
258
- ## Error `invalid device state`
279
+ ### Error `invalid device state`
259
280
 
260
281
  Sometimes the SmartThings API seems to loose the contact to the device and does not update it's state so every request will end up with an error message like `invalid device state`. To fix this try to remove the device from your SmartThings account and add it again. This seems to fix the problem.
261
282
 
262
- ## DisplayPort input sources do not show up
283
+ ### DisplayPort input sources do not show up
263
284
 
264
285
  For some TVs display port sources do not show up. When having the same problem you might try to use [inputSources](#inputsources). `Id` might be something like `Display Port` but you will have to experiment a bit trying different ids until you find the the right one.
265
286
 
266
- ## Name of TV gets reset in HomeKit after HomeBridge restart
287
+ ### Name of TV gets reset in HomeKit after HomeBridge restart
267
288
 
268
- The configured name can not be cached because TV is published as external accessory. To permanently change the name use [nameOverride](#nameOverride).
289
+ The configured name can not be cached because TV is published as external accessory. To permanently change the name use [nameOverride](#nameoverride).
269
290
 
270
291
  ***
271
292
 
@@ -65,6 +65,15 @@ export declare class SmartThingsPlatform implements DynamicPlatformPlugin {
65
65
  * @param deviceMappings the array of configured DeviceMapping
66
66
  */
67
67
  registerTvDevice(client: SmartThingsClient, device: Device, deviceMapping: DeviceMapping | undefined): Promise<void>;
68
+ /**
69
+ * Registers a SmartThings Soundbar Device for Homebridge.
70
+ *
71
+ * @param client the SmartThingsClient used to send API calls
72
+ * @param device the SmartThings Device
73
+ * @param accessory the cached PlatformAccessory or undefined if no cached PlatformAccessory exists
74
+ * @param deviceMappings the array of configured DeviceMapping
75
+ */
76
+ registerSoundbarDevice(client: SmartThingsClient, device: Device, deviceMapping: DeviceMapping | undefined): Promise<void>;
68
77
  /**
69
78
  * Register the modes of the device passed in as platform accessories.
70
79
  * Handles caching of accessories as well.
@@ -1 +1 @@
1
- {"version":3,"file":"smartThingsPlatform.d.ts","sourceRoot":"","sources":["../src/smartThingsPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EAEf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,EAAE,SAAS,EAAoB,MAAM,uBAAuB,CAAC;AAIzH;;GAEG;AACH,cAAM,aAAa;aACW,QAAQ,EAAE,MAAM;aAC1B,YAAY,EAAE,MAAM;aACpB,UAAU,EAAE,MAAM;aAClB,SAAS,EAAE,MAAM;aACjB,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;aAC1C,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;KAAC,CAAC;aAC7C,OAAO,EAAE,MAAM;gBANL,QAAQ,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC,EAC1C,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;KAAC,CAAC,EAC7C,OAAO,EAAE,MAAM;CAElC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,qBAAqB;aAQ7C,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAT1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;gBAGpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAwB1B;;OAEG;IAEH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;;;;;OAMG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC;IAqB/F;;;;;;OAMG;IACG,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC;IAe/F;;;;;;;OAOG;IACG,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS;IAwD1G;;;;;;;;OAQG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAClF,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC5F;IAwBH;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;CAqCrF"}
1
+ {"version":3,"file":"smartThingsPlatform.d.ts","sourceRoot":"","sources":["../src/smartThingsPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EAEf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,EAAE,SAAS,EAAoB,MAAM,uBAAuB,CAAC;AAKzH;;GAEG;AACH,cAAM,aAAa;aACW,QAAQ,EAAE,MAAM;aAC1B,YAAY,EAAE,MAAM;aACpB,UAAU,EAAE,MAAM;aAClB,SAAS,EAAE,MAAM;aACjB,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;aAC1C,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;KAAC,CAAC;aAC7C,OAAO,EAAE,MAAM;gBANL,QAAQ,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC,EAC1C,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;KAAC,CAAC,EAC7C,OAAO,EAAE,MAAM;CAElC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,qBAAqB;aAQ7C,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAT1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;gBAGpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAwB1B;;OAEG;IAEH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;;;;;OAMG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC;IAqB/F;;;;;;OAMG;IACG,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC;IAmB/F;;;;;;;OAOG;IACG,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS;IAwD1G;;;;;;;OAOG;IACG,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS;IAmChH;;;;;;;;OAQG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAClF,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC5F;IAwBH;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;CAqCrF"}
@@ -6,6 +6,7 @@ const tvAccessory_1 = require("./tvAccessory");
6
6
  const core_sdk_1 = require("@smartthings/core-sdk");
7
7
  const switchAccessory_1 = require("./switchAccessory");
8
8
  const sliderAccessory_1 = require("./sliderAccessory");
9
+ const soundbarAccessory_1 = require("./soundbarAccessory");
9
10
  /**
10
11
  * Class implements the configured Device to mac and ip address mappings.
11
12
  */
@@ -99,6 +100,9 @@ class SmartThingsPlatform {
99
100
  case 'x.com.st.d.monitor':
100
101
  await this.registerTvDevice(client, device, deviceMappings.find(mapping => mapping.deviceId === device.deviceId));
101
102
  break;
103
+ case 'oic.d.networkaudio':
104
+ await this.registerSoundbarDevice(client, device, deviceMappings.find(mapping => mapping.deviceId === device.deviceId));
105
+ break;
102
106
  default:
103
107
  this.log.debug('Ignoring SmartThings device %s because device type %s is not implemented: %s', device.name ? device.name + ' (' + device.deviceId + ')' : device.deviceId, (_b = device.ocf) === null || _b === void 0 ? void 0 : _b.ocfDeviceType, JSON.stringify(device, null, 2));
104
108
  break;
@@ -114,7 +118,7 @@ class SmartThingsPlatform {
114
118
  */
115
119
  async registerTvDevice(client, device, deviceMapping) {
116
120
  var _a, _b, _c, _d, _e, _f;
117
- this.log.info('Adding new accessory: %s', device.name ? device.name + ' (' + device.deviceId + ')' : device.deviceId);
121
+ this.log.info('Adding new TV accessory: %s', device.name ? device.name + ' (' + device.deviceId + ')' : device.deviceId);
118
122
  const component = (_a = device.components) === null || _a === void 0 ? void 0 : _a.at(0);
119
123
  if (!component) {
120
124
  this.log.info('Can\'t register TV accessory because (main) component does not exist');
@@ -152,6 +156,37 @@ class SmartThingsPlatform {
152
156
  }
153
157
  }
154
158
  }
159
+ /**
160
+ * Registers a SmartThings Soundbar Device for Homebridge.
161
+ *
162
+ * @param client the SmartThingsClient used to send API calls
163
+ * @param device the SmartThings Device
164
+ * @param accessory the cached PlatformAccessory or undefined if no cached PlatformAccessory exists
165
+ * @param deviceMappings the array of configured DeviceMapping
166
+ */
167
+ async registerSoundbarDevice(client, device, deviceMapping) {
168
+ var _a, _b, _c, _d, _e;
169
+ this.log.info('Adding new soundbar accessory: %s', device.name ? device.name + ' (' + device.deviceId + ')' : device.deviceId);
170
+ const component = (_a = device.components) === null || _a === void 0 ? void 0 : _a.at(0);
171
+ if (!component) {
172
+ this.log.info('Can\'t register soundbar accessory because (main) component does not exist');
173
+ return;
174
+ }
175
+ let displayName = (_b = device.name) !== null && _b !== void 0 ? _b : device.deviceId;
176
+ if (deviceMapping === null || deviceMapping === void 0 ? void 0 : deviceMapping.nameOverride) {
177
+ this.log.info('Overriding device default name \'%s\' with configured display name \'%s\'', device.name, deviceMapping.nameOverride);
178
+ displayName = deviceMapping.nameOverride;
179
+ }
180
+ const accessory = new this.api.platformAccessory(displayName, device.deviceId);
181
+ accessory.context.device = device;
182
+ accessory.category = 31 /* this.api.hap.Categories.TELEVISION */;
183
+ this.api.publishExternalAccessories(settings_1.PLUGIN_NAME, [accessory]);
184
+ const tv = new soundbarAccessory_1.SoundbarAccessory(displayName, device, component, client, this.log, this, accessory, (_c = this.config.capabilityLogging) !== null && _c !== void 0 ? _c : false, (_d = this.config.pollInterval) !== null && _d !== void 0 ? _d : undefined, (_e = this.config.cyclicCallsLogging) !== null && _e !== void 0 ? _e : false, deviceMapping === null || deviceMapping === void 0 ? void 0 : deviceMapping.macAddress, deviceMapping === null || deviceMapping === void 0 ? void 0 : deviceMapping.ipAddress, deviceMapping === null || deviceMapping === void 0 ? void 0 : deviceMapping.inputSources);
185
+ await tv.registerCapabilities();
186
+ if (this.config.registerVolumeSlider) {
187
+ this.registerVolumeSlider(client, device, component);
188
+ }
189
+ }
155
190
  /**
156
191
  * Register the modes of the device passed in as platform accessories.
157
192
  * Handles caching of accessories as well.
@@ -1 +1 @@
1
- {"version":3,"file":"smartThingsPlatform.js","sourceRoot":"","sources":["../src/smartThingsPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartThingsPlatform.js","sourceRoot":"","sources":["../src/smartThingsPlatform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { PlatformAccessory, Logger } from 'homebridge';
2
+ import { SmartThingsPlatform } from './smartThingsPlatform';
3
+ import { SmartThingsClient, Device, Component } from '@smartthings/core-sdk';
4
+ import { SmartThingsAccessory } from './smartThingsAccessory';
5
+ /**
6
+ * Class implements a SmartThings soundbar accessory.
7
+ */
8
+ export declare class SoundbarAccessory extends SmartThingsAccessory {
9
+ private readonly logCapabilities;
10
+ private readonly pollingInterval;
11
+ private readonly cyclicCallsLogging;
12
+ private readonly macAddress;
13
+ private readonly ipAddress;
14
+ private readonly inputSources;
15
+ private service;
16
+ private speakerService;
17
+ private inputSourceServices;
18
+ private capabilities;
19
+ private activeIdentifierChangeTime;
20
+ private activeIdentifierChangeValue;
21
+ constructor(name: string, device: Device, component: Component, client: SmartThingsClient, log: Logger, platform: SmartThingsPlatform, accessory: PlatformAccessory, logCapabilities: boolean, pollingInterval: number | undefined, cyclicCallsLogging: boolean, macAddress?: string | undefined, ipAddress?: string | undefined, inputSources?: [{
22
+ name: string;
23
+ id: string;
24
+ }] | undefined);
25
+ /**
26
+ * Registers all available capabilities of the SmartThings Component.
27
+ */
28
+ registerCapabilities(): Promise<void>;
29
+ /**
30
+ * Registers the SmartThings Capablity if it's functionality is implemented.
31
+ *
32
+ * @param capability the Capability
33
+ */
34
+ private registerCapability;
35
+ /**
36
+ * Setter for Homebridge accessory Active property.
37
+ *
38
+ * @param value the CharacteristicValue
39
+ */
40
+ private setActive;
41
+ /**
42
+ * Getter for Homebridge accessory Active property.
43
+ *
44
+ * @param log flag to turn logging on/off
45
+ * @returns the CharacteristicValue
46
+ */
47
+ private getActive;
48
+ /**
49
+ * Setter for Homebridge accessory VolumeSelector property.
50
+ *
51
+ * @param value the CharacteristicValue
52
+ */
53
+ private setVolumeSelector;
54
+ /**
55
+ * Setter for Homebridge accessory Volume property.
56
+ *
57
+ * @param value the CharacteristicValue
58
+ */
59
+ private setVolume;
60
+ /**
61
+ * Getter for Homebridge accessory Volume property.
62
+ *
63
+ * @param log flag to turn logging on/off
64
+ * @returns the CharacteristicValue
65
+ */
66
+ private getVolume;
67
+ /**
68
+ * Setter for Homebridge accessory Mute property.
69
+ *
70
+ * @param value the CharacteristicValue
71
+ */
72
+ private setMute;
73
+ /**
74
+ * Getter for Homebridge accessory Mute property.
75
+ *
76
+ * @param log flag to turn logging on/off
77
+ * @returns the CharacteristicValue
78
+ */
79
+ private getMute;
80
+ /**
81
+ * Setter for Homebridge accessory ActiveIdentifier property.
82
+ *
83
+ * @param value the CharacteristicValue
84
+ */
85
+ private setActiveIdentifier;
86
+ /**
87
+ * Getter for Homebridge accessory ActiveIdentifier property.
88
+ *
89
+ * @param log flag to turn logging on/off
90
+ * @returns the CharacteristicValue
91
+ */
92
+ private getActiveIdentifier;
93
+ /**
94
+ * Setter for Homebridge accessory RemoteKey property.
95
+ *
96
+ * @param value the CharacteristicValue
97
+ */
98
+ private setRemoteKey;
99
+ /**
100
+ * Validates that the SmartThings Capability needed to execute the remote key is available.
101
+ *
102
+ * @param capabilityId the identifier of the SmartThings Capablity
103
+ * @param remoteKey the remote key
104
+ * @returns TRUE in case capability is available - FALSE otherwise
105
+ */
106
+ private validateRemoteKeyCapability;
107
+ /**
108
+ * Registers all available media input sources (e.g. HDMI inputs).
109
+ */
110
+ private registerAvailableInputSources;
111
+ /**
112
+ * Registers a Homebridge input source.
113
+ *
114
+ * @param id the input source id
115
+ * @param name the input source display name
116
+ * @param inputSource the InputSourceType or @code undefined @endcode to use @link guessInputSourceType @endlink
117
+ * to determine InputSourceType
118
+ */
119
+ private registerInputSource;
120
+ /**
121
+ * Guesses the InputSourceType from the identifier of the input source.
122
+ *
123
+ * @param inputSourceId the identifier of the input source
124
+ * @returns the InputSourceType (HDMI|TUNER|OTHER)
125
+ */
126
+ private guessInputSourceType;
127
+ }
128
+ //# sourceMappingURL=soundbarAccessory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soundbarAccessory.d.ts","sourceRoot":"","sources":["../src/soundbarAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAuB,MAAM,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAGzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,oBAAoB;IAgBvD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IApB/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,2BAA2B,CAAK;gBAGtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,iBAAiB,EACX,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,kBAAkB,EAAE,OAAO,EAC3B,UAAU,GAAE,MAAM,GAAG,SAAqB,EAC1C,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,YAAY,GAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC,GAAG,SAAqB;IAqBrF;;OAEG;IACU,oBAAoB;IAQjC;;;;OAIG;YACW,kBAAkB;IAgEhC;;;;OAIG;YACW,SAAS;IAmBvB;;;;;OAKG;YACW,SAAS;IAoBvB;;;;OAIG;YACW,iBAAiB;IAM/B;;;;OAIG;YACW,SAAS;IAKvB;;;;;OAKG;YACW,SAAS;IAKvB;;;;OAIG;YACW,OAAO;IAKrB;;;;;OAKG;YACW,OAAO;IAKrB;;;;OAIG;YACW,mBAAmB;IAUjC;;;;;OAKG;YACW,mBAAmB;IAyBjC;;;;OAIG;YACW,YAAY;IAkC1B;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IASnC;;OAEG;YACW,6BAA6B;IAqB3C;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SoundbarAccessory = void 0;
7
+ const wol_1 = require("wol");
8
+ const ping_1 = __importDefault(require("ping"));
9
+ const smartThingsAccessory_1 = require("./smartThingsAccessory");
10
+ /**
11
+ * Class implements a SmartThings soundbar accessory.
12
+ */
13
+ class SoundbarAccessory extends smartThingsAccessory_1.SmartThingsAccessory {
14
+ constructor(name, device, component, client, log, platform, accessory, logCapabilities, pollingInterval, cyclicCallsLogging, macAddress = undefined, ipAddress = undefined, inputSources = undefined) {
15
+ var _a, _b;
16
+ super(device, component, client, platform, accessory, log);
17
+ this.logCapabilities = logCapabilities;
18
+ this.pollingInterval = pollingInterval;
19
+ this.cyclicCallsLogging = cyclicCallsLogging;
20
+ this.macAddress = macAddress;
21
+ this.ipAddress = ipAddress;
22
+ this.inputSources = inputSources;
23
+ this.inputSourceServices = [];
24
+ this.capabilities = [];
25
+ this.activeIdentifierChangeTime = 0;
26
+ this.activeIdentifierChangeValue = 0;
27
+ this.accessory.getService(this.platform.Service.AccessoryInformation)
28
+ .setCharacteristic(this.platform.Characteristic.Name, name);
29
+ this.service = (_a = this.accessory.getService(this.platform.Service.Television)) !== null && _a !== void 0 ? _a : this.accessory.addService(this.platform.Service.Television);
30
+ this.service
31
+ .setCharacteristic(this.platform.Characteristic.SleepDiscoveryMode, this.platform.Characteristic.SleepDiscoveryMode.ALWAYS_DISCOVERABLE)
32
+ .setCharacteristic(this.platform.Characteristic.ConfiguredName, name);
33
+ this.service.getCharacteristic(this.platform.Characteristic.RemoteKey)
34
+ .onSet(this.setRemoteKey.bind(this));
35
+ this.speakerService = (_b = this.accessory.getService(this.platform.Service.TelevisionSpeaker)) !== null && _b !== void 0 ? _b : this.accessory.addService(this.platform.Service.TelevisionSpeaker);
36
+ this.service.addLinkedService(this.speakerService);
37
+ }
38
+ /**
39
+ * Registers all available capabilities of the SmartThings Component.
40
+ */
41
+ async registerCapabilities() {
42
+ var _a;
43
+ this.logInfo('Registering capabilities for component %s', this.component.id);
44
+ for (const reference of this.component.capabilities) {
45
+ await this.registerCapability(await this.client.capabilities.get(reference.id, (_a = reference.version) !== null && _a !== void 0 ? _a : 0));
46
+ }
47
+ }
48
+ /**
49
+ * Registers the SmartThings Capablity if it's functionality is implemented.
50
+ *
51
+ * @param capability the Capability
52
+ */
53
+ async registerCapability(capability) {
54
+ let inputSourcePollingStarted = false;
55
+ if (this.logCapabilities) {
56
+ this.logDebug('Available capability: %s', JSON.stringify(capability, null, 2));
57
+ }
58
+ if (capability.id && !this.capabilities.includes(capability.id)) {
59
+ this.capabilities.push(capability.id);
60
+ }
61
+ switch (capability.id) {
62
+ case 'switch':
63
+ this.logCapabilityRegistration(capability);
64
+ this.service.getCharacteristic(this.platform.Characteristic.Active)
65
+ .onSet(this.setActive.bind(this))
66
+ .onGet(this.getActive.bind(this));
67
+ this.startStatusPolling(capability.name, this.service, this.platform.Characteristic.Active, this.getActive.bind(this, this.cyclicCallsLogging), this.pollingInterval);
68
+ break;
69
+ case 'audioVolume':
70
+ this.logCapabilityRegistration(capability);
71
+ this.speakerService
72
+ .setCharacteristic(this.platform.Characteristic.Active, this.platform.Characteristic.Active.ACTIVE);
73
+ this.speakerService
74
+ .setCharacteristic(this.platform.Characteristic.VolumeControlType, this.platform.Characteristic.VolumeControlType.ABSOLUTE);
75
+ this.speakerService
76
+ .getCharacteristic(this.platform.Characteristic.Volume)
77
+ .onGet(this.getVolume.bind(this))
78
+ .onSet(this.setVolume.bind(this));
79
+ this.speakerService.getCharacteristic(this.platform.Characteristic.VolumeSelector)
80
+ .onSet(this.setVolumeSelector.bind(this));
81
+ this.startStatusPolling(capability.name, this.speakerService, this.platform.Characteristic.Volume, this.getVolume.bind(this, this.cyclicCallsLogging), this.pollingInterval);
82
+ break;
83
+ case 'audioMute':
84
+ this.logCapabilityRegistration(capability);
85
+ this.speakerService.getCharacteristic(this.platform.Characteristic.Mute)
86
+ .onSet(this.setMute.bind(this))
87
+ .onGet(this.getMute.bind(this));
88
+ this.startStatusPolling(capability.name, this.speakerService, this.platform.Characteristic.Mute, this.getMute.bind(this, this.cyclicCallsLogging), this.pollingInterval);
89
+ break;
90
+ case 'samsungvd.audioInputSource':
91
+ this.logCapabilityRegistration(capability);
92
+ await this.registerAvailableInputSources();
93
+ if (this.inputSourceServices.length > 0) {
94
+ this.service.getCharacteristic(this.platform.Characteristic.ActiveIdentifier)
95
+ .onSet(this.setActiveIdentifier.bind(this))
96
+ .onGet(this.getActiveIdentifier.bind(this));
97
+ if (!inputSourcePollingStarted) {
98
+ inputSourcePollingStarted = true;
99
+ this.startStatusPolling('activeIdentifier', this.service, this.platform.Characteristic.ActiveIdentifier, this.getActiveIdentifier.bind(this, this.cyclicCallsLogging), this.pollingInterval);
100
+ }
101
+ }
102
+ break;
103
+ }
104
+ }
105
+ /**
106
+ * Setter for Homebridge accessory Active property.
107
+ *
108
+ * @param value the CharacteristicValue
109
+ */
110
+ async setActive(value) {
111
+ this.logDebug('Set active to: %s', value);
112
+ if (value) {
113
+ if (this.macAddress) {
114
+ this.logDebug('Use wake-on-lan functionality because mac-address has been configured');
115
+ if (await (0, wol_1.wake)(this.macAddress)) {
116
+ this.logDebug('Successfully woke device');
117
+ }
118
+ else {
119
+ this.logError('Could not wake device - if this error keeps occuring try to disable wake-on-lan functionality');
120
+ }
121
+ }
122
+ else {
123
+ await this.executeCommand('switch', 'on');
124
+ }
125
+ }
126
+ else {
127
+ await this.executeCommand('switch', 'off');
128
+ }
129
+ }
130
+ /**
131
+ * Getter for Homebridge accessory Active property.
132
+ *
133
+ * @param log flag to turn logging on/off
134
+ * @returns the CharacteristicValue
135
+ */
136
+ async getActive(log = true) {
137
+ if (this.ipAddress) {
138
+ try {
139
+ const status = await ping_1.default.promise.probe(this.ipAddress);
140
+ if (log) {
141
+ this.logDebug('ping status: %s', status);
142
+ }
143
+ return status === null || status === void 0 ? void 0 : status.alive;
144
+ }
145
+ catch (exc) {
146
+ this.logError('error when pinging device: %s\n\
147
+ ping command fails mostly because of permission issues - falling back to SmartThings API for getting active state', exc);
148
+ return false;
149
+ }
150
+ }
151
+ const status = await this.getCapabilityStatus('switch', log);
152
+ return (status === null || status === void 0 ? void 0 : status.switch.value) === 'on' ? true : false;
153
+ }
154
+ /**
155
+ * Setter for Homebridge accessory VolumeSelector property.
156
+ *
157
+ * @param value the CharacteristicValue
158
+ */
159
+ async setVolumeSelector(value) {
160
+ const increment = value === this.platform.Characteristic.VolumeSelector.INCREMENT;
161
+ this.logDebug('%s volume', increment ? 'Increasing' : 'Decreasing');
162
+ await this.executeCommand('audioVolume', increment ? 'volumeUp' : 'volumeDown');
163
+ }
164
+ /**
165
+ * Setter for Homebridge accessory Volume property.
166
+ *
167
+ * @param value the CharacteristicValue
168
+ */
169
+ async setVolume(value) {
170
+ this.logDebug('Set volume to: %s', value);
171
+ await this.executeCommand('audioVolume', 'setVolume', [value]);
172
+ }
173
+ /**
174
+ * Getter for Homebridge accessory Volume property.
175
+ *
176
+ * @param log flag to turn logging on/off
177
+ * @returns the CharacteristicValue
178
+ */
179
+ async getVolume(log = true) {
180
+ const status = await this.getCapabilityStatus('audioVolume', log);
181
+ return status === null || status === void 0 ? void 0 : status.volume.value;
182
+ }
183
+ /**
184
+ * Setter for Homebridge accessory Mute property.
185
+ *
186
+ * @param value the CharacteristicValue
187
+ */
188
+ async setMute(value) {
189
+ this.logDebug('Set mute to: %s', value);
190
+ await this.executeCommand('audioMute', value ? 'mute' : 'unmute');
191
+ }
192
+ /**
193
+ * Getter for Homebridge accessory Mute property.
194
+ *
195
+ * @param log flag to turn logging on/off
196
+ * @returns the CharacteristicValue
197
+ */
198
+ async getMute(log = true) {
199
+ const status = await this.getCapabilityStatus('audioMute', log);
200
+ return (status === null || status === void 0 ? void 0 : status.mute.value) === 'muted' ? true : false;
201
+ }
202
+ /**
203
+ * Setter for Homebridge accessory ActiveIdentifier property.
204
+ *
205
+ * @param value the CharacteristicValue
206
+ */
207
+ async setActiveIdentifier(value) {
208
+ var _a;
209
+ this.logDebug('Set active identifier to: %s', value);
210
+ const inputSource = this.inputSourceServices[value];
211
+ this.activeIdentifierChangeTime = Date.now();
212
+ this.activeIdentifierChangeValue = value;
213
+ await this.executeCommand('samsungvd.audioInputSource', 'setInputSource', [(_a = inputSource.name) !== null && _a !== void 0 ? _a : '']);
214
+ }
215
+ /**
216
+ * Getter for Homebridge accessory ActiveIdentifier property.
217
+ *
218
+ * @param log flag to turn logging on/off
219
+ * @returns the CharacteristicValue
220
+ */
221
+ async getActiveIdentifier(log = true) {
222
+ var _a;
223
+ const status = await this.getCapabilityStatus('samsungvd.audioInputSource', log);
224
+ if (Date.parse((_a = status === null || status === void 0 ? void 0 : status.inputSource.timestamp) !== null && _a !== void 0 ? _a : '') > this.activeIdentifierChangeTime) {
225
+ const id = this.inputSourceServices.findIndex(inputSource => inputSource.name === (status === null || status === void 0 ? void 0 : status.inputSource.value));
226
+ if (log) {
227
+ this.logDebug('ActiveIdentifier has been changed on the device - using API result: %s', id);
228
+ }
229
+ if (id < 0) {
230
+ this.logWarn('Could not find input source for name \'%s\' - using first input source \'%s\' as active identifier', status === null || status === void 0 ? void 0 : status.inputSource.value, this.inputSourceServices[0].name);
231
+ return 0;
232
+ }
233
+ return id;
234
+ }
235
+ else {
236
+ if (log) {
237
+ this.logDebug('ActiveIdentifier has not been changed on the device - using temporary result: %s', this.activeIdentifierChangeValue);
238
+ }
239
+ return this.activeIdentifierChangeValue;
240
+ }
241
+ }
242
+ /**
243
+ * Setter for Homebridge accessory RemoteKey property.
244
+ *
245
+ * @param value the CharacteristicValue
246
+ */
247
+ async setRemoteKey(value) {
248
+ switch (value) {
249
+ case this.platform.Characteristic.RemoteKey.REWIND:
250
+ if (this.validateRemoteKeyCapability('mediaPlayback', 'REWIND')) {
251
+ await this.executeCommand('mediaPlayback', 'rewind');
252
+ }
253
+ break;
254
+ case this.platform.Characteristic.RemoteKey.FAST_FORWARD:
255
+ if (this.validateRemoteKeyCapability('mediaPlayback', 'FAST_FORWARD')) {
256
+ await this.executeCommand('mediaPlayback', 'fastForward');
257
+ }
258
+ break;
259
+ case this.platform.Characteristic.RemoteKey.PLAY_PAUSE:
260
+ if (this.validateRemoteKeyCapability('mediaPlayback', 'PLAY_PAUSE')) {
261
+ await this.executeCommand('mediaPlayback', 'play');
262
+ }
263
+ break;
264
+ case this.platform.Characteristic.RemoteKey.EXIT:
265
+ if (this.validateRemoteKeyCapability('mediaPlayback', 'EXIT')) {
266
+ await this.executeCommand('mediaPlayback', 'stop');
267
+ }
268
+ break;
269
+ case this.platform.Characteristic.RemoteKey.BACK:
270
+ if (this.validateRemoteKeyCapability('mediaPlayback', 'BACK')) {
271
+ await this.executeCommand('mediaPlayback', 'stop');
272
+ }
273
+ break;
274
+ }
275
+ }
276
+ /**
277
+ * Validates that the SmartThings Capability needed to execute the remote key is available.
278
+ *
279
+ * @param capabilityId the identifier of the SmartThings Capablity
280
+ * @param remoteKey the remote key
281
+ * @returns TRUE in case capability is available - FALSE otherwise
282
+ */
283
+ validateRemoteKeyCapability(capabilityId, remoteKey) {
284
+ if (this.capabilities.includes(capabilityId)) {
285
+ return true;
286
+ }
287
+ else {
288
+ this.logError('can\'t handle RemoteKey %s because %s capability is not available', remoteKey, capabilityId);
289
+ return false;
290
+ }
291
+ }
292
+ /**
293
+ * Registers all available media input sources (e.g. HDMI inputs).
294
+ */
295
+ async registerAvailableInputSources() {
296
+ var _a;
297
+ const status = await this.client.devices.getCapabilityStatus(this.device.deviceId, this.component.id, 'samsungvd.audioInputSource');
298
+ this.logWarn('Status: %s', JSON.stringify(status));
299
+ const supportedInputSources = [...new Set(status.supportedInputSources.value)].map((s) => {
300
+ return {
301
+ name: s,
302
+ id: s,
303
+ };
304
+ });
305
+ if (this.inputSources) {
306
+ this.logInfo('Overriding default input sources map "%s" with custom map "%s"', JSON.stringify(supportedInputSources, null, 2), JSON.stringify(this.inputSources, null, 2));
307
+ }
308
+ for (const inputSource of (_a = this.inputSources) !== null && _a !== void 0 ? _a : supportedInputSources) {
309
+ this.registerInputSource(inputSource.id, inputSource.name);
310
+ }
311
+ }
312
+ /**
313
+ * Registers a Homebridge input source.
314
+ *
315
+ * @param id the input source id
316
+ * @param name the input source display name
317
+ * @param inputSource the InputSourceType or @code undefined @endcode to use @link guessInputSourceType @endlink
318
+ * to determine InputSourceType
319
+ */
320
+ registerInputSource(id, name, inputSource = undefined) {
321
+ var _a;
322
+ this.logInfo('Registering input source: %s (%s)', name, id);
323
+ let inputSourceType = inputSource;
324
+ if (inputSourceType === undefined) {
325
+ inputSourceType = this.guessInputSourceType(id);
326
+ this.logDebug('Guessed input source type for %s is: %i', name, inputSourceType);
327
+ }
328
+ const inputSourceService = (_a = this.accessory.getService(id)) !== null && _a !== void 0 ? _a : this.accessory.addService(this.platform.Service.InputSource, id, id);
329
+ inputSourceService.name = id;
330
+ inputSourceService
331
+ .setCharacteristic(this.platform.Characteristic.Identifier, this.inputSourceServices.length)
332
+ .setCharacteristic(this.platform.Characteristic.ConfiguredName, name)
333
+ .setCharacteristic(this.platform.Characteristic.IsConfigured, this.platform.Characteristic.IsConfigured.CONFIGURED)
334
+ .setCharacteristic(this.platform.Characteristic.InputSourceType, inputSourceType);
335
+ this.service.addLinkedService(inputSourceService);
336
+ this.inputSourceServices.push(inputSourceService);
337
+ }
338
+ /**
339
+ * Guesses the InputSourceType from the identifier of the input source.
340
+ *
341
+ * @param inputSourceId the identifier of the input source
342
+ * @returns the InputSourceType (HDMI|TUNER|OTHER)
343
+ */
344
+ guessInputSourceType(inputSourceId) {
345
+ if (inputSourceId.startsWith('HDMI')) {
346
+ return this.platform.Characteristic.InputSourceType.HDMI;
347
+ }
348
+ else {
349
+ return this.platform.Characteristic.InputSourceType.OTHER;
350
+ }
351
+ }
352
+ }
353
+ exports.SoundbarAccessory = SoundbarAccessory;
354
+ //# sourceMappingURL=soundbarAccessory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soundbarAccessory.js","sourceRoot":"","sources":["../src/soundbarAccessory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge SmartThings TV",
3
3
  "name": "@o-lukas/homebridge-smartthings-tv",
4
- "version": "2.1.2",
4
+ "version": "2.2.0-next.1",
5
5
  "description": "This is a plugin for Homebridge. It offers some basic functions to control Samsung TVs using the SmartThings API.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -60,7 +60,11 @@
60
60
  },
61
61
  "release": {
62
62
  "branches": [
63
- "main"
63
+ "main",
64
+ {
65
+ "name": "next",
66
+ "prerelease": true
67
+ }
64
68
  ]
65
69
  }
66
70
  }