homebridge-smartthings-oauth 1.0.15 → 1.0.17

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/CHANGELOG.md CHANGED
@@ -1,13 +1,94 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
+ ## [1.0.17] - Official SmartThings API Compliance & Samsung TV Fixes
4
+ ### Fixed
5
+ - **📋 Official SmartThings API Compliance**: Completely aligned implementation with official SmartThings capability specifications
6
+ - Updated audioVolume commands to match official spec (0-100 integer values with "%" unit)
7
+ - Fixed audioMute commands to use both setMute("muted"/"unmuted") and simple mute/unmute fallback
8
+ - Enhanced mediaInputSource to support both Samsung-specific and standard input source commands
9
+ - Added proper mediaPlayback support for play, pause, stop, rewind, fastForward commands
10
+ - Implemented tvChannel support for channelUp, channelDown, and setTvChannel commands
11
+ - **🔊 Samsung TV Volume Control**: Fixed critical issue where volume commands would report success but not actually change TV volume
12
+ - Implemented automatic unmute before setting volume when TV is muted
13
+ - Added proper volume range validation (0-100) and integer conversion per official spec
14
+ - Enhanced volume command logging for better debugging
15
+ - Added delayed status refresh to verify volume changes took effect
16
+ - **🔇 Enhanced Mute Control**: Improved mute/unmute command reliability with official spec compliance
17
+ - Primary: Uses setMute command with "muted"/"unmuted" string arguments (official spec)
18
+ - Fallback: Uses simple mute/unmute commands for compatibility
19
+ - Enhanced logging and status verification
20
+ - **📺 Input Source Control**: Enhanced input source switching with dual capability support
21
+ - Primary: Samsung-specific samsungvd.mediaInputSource capability
22
+ - Fallback: Standard mediaInputSource capability for broader compatibility
23
+ - Better error handling and logging for failed input changes
24
+ - **🎮 Media Playback Controls**: Added full media playback support based on official mediaPlayback capability
25
+ - Play/Pause remote key support with smart play/pause detection
26
+ - Rewind and Fast Forward controls
27
+ - Proper capability detection before sending commands
28
+ - **📡 Channel Controls**: Added TV channel control support based on official tvChannel capability
29
+ - Channel Up/Down via remote control keys
30
+ - Capability detection to ensure TV supports channel control
31
+
32
+ ## [1.0.16] - Official SmartThings API Compliance & Samsung TV Fixes
33
+ ### Fixed
34
+ - **📋 Official SmartThings API Compliance**: Completely aligned implementation with official SmartThings capability specifications
35
+ - Updated audioVolume commands to match official spec (0-100 integer values with "%" unit)
36
+ - Fixed audioMute commands to use both setMute("muted"/"unmuted") and simple mute/unmute fallback
37
+ - Enhanced mediaInputSource to support both Samsung-specific and standard input source commands
38
+ - Added proper mediaPlayback support for play, pause, stop, rewind, fastForward commands
39
+ - Implemented tvChannel support for channelUp, channelDown, and setTvChannel commands
40
+ - **🔊 Samsung TV Volume Control**: Fixed critical issue where volume commands would report success but not actually change TV volume
41
+ - Implemented automatic unmute before setting volume when TV is muted
42
+ - Added proper volume range validation (0-100) and integer conversion per official spec
43
+ - Enhanced volume command logging for better debugging
44
+ - Added delayed status refresh to verify volume changes took effect
45
+ - **🔇 Enhanced Mute Control**: Improved mute/unmute command reliability with official spec compliance
46
+ - Primary: Uses setMute command with "muted"/"unmuted" string arguments (official spec)
47
+ - Fallback: Uses simple mute/unmute commands for compatibility
48
+ - Enhanced logging and status verification
49
+ - **📺 Input Source Control**: Enhanced input source switching with dual capability support
50
+ - Primary: Samsung-specific samsungvd.mediaInputSource capability
51
+ - Fallback: Standard mediaInputSource capability for broader compatibility
52
+ - Better error handling and logging for failed input changes
53
+ - **🎮 Media Playback Controls**: Added full media playback support based on official mediaPlayback capability
54
+ - Play/Pause remote key support with smart play/pause detection
55
+ - Rewind and Fast Forward controls
56
+ - Proper capability detection before sending commands
57
+ - **📡 Channel Controls**: Added TV channel control support based on official tvChannel capability
58
+ - Channel Up/Down via remote control keys
59
+ - Capability detection to ensure TV supports channel control
60
+
61
+ ### Added
62
+ - **📖 Official Capability Validation**: All commands now validate against official SmartThings capability specifications
63
+ - **🔄 Smart Command Fallbacks**: Multiple command strategies for better device compatibility
64
+ - **📊 Enhanced Logging**: Detailed logging with ✅/❌ indicators for successful/failed commands
65
+ - **⏱️ Improved Timing**: Optimized status refresh timing for better command verification
66
+
67
+ ### Changed
68
+ - **🔇 Speaker State Management**: Speaker active/inactive state now properly reflects TV power and mute status
69
+ - **📱 HomeKit Integration**: Improved native TV interface experience with proper audio controls
70
+ - **🎚️ Volume Control**: Enhanced volume slider responsiveness with Samsung TV-specific unmute logic
71
+ - **🔧 Command Processing**: All commands now follow official SmartThings capability specifications
72
+ - **🎛️ Remote Control**: Remote keys now properly map to official SmartThings capabilities
73
+
74
+ ### Technical Details
75
+ - Implemented official audioVolume capability (integer 0-100, setVolume command, volumeUp/volumeDown)
76
+ - Implemented official audioMute capability (setMute with "muted"/"unmuted", mute/unmute fallbacks)
77
+ - Implemented official mediaInputSource capability (setInputSource with enum values)
78
+ - Implemented official mediaPlayback capability (play, pause, stop, rewind, fastForward)
79
+ - Implemented official tvChannel capability (channelUp, channelDown, setTvChannel)
80
+ - Added capability detection before sending commands to prevent unsupported operations
81
+ - Enhanced service linking architecture following HomeKit Television service specifications
82
+ - Improved event processing for synchronized TV and speaker state updates
3
83
 
4
84
  ## [1.0.15] - Television Service Support & IgnoreDevices Bug Fixes
5
85
  ### Added
6
86
  - **🎬 Television Service**: Samsung TVs now appear as proper Television accessories in HomeKit instead of simple switches
7
87
  - **📺 Input Source Control**: Full support for HDMI inputs, TV tuner, and custom input names from SmartThings
8
- - **🔊 Audio Controls**: Volume control, mute/unmute, and volume up/down buttons via TelevisionSpeaker service
88
+ - **🔊 Audio Controls**: Complete volume control, mute/unmute, and volume up/down buttons via TelevisionSpeaker service
9
89
  - **🎨 Picture Mode Support**: Control Samsung picture modes (Standard, Dynamic, Movie, etc.) from HomeKit
10
90
  - **🎮 Remote Control**: Support for media playback controls (rewind, fast forward, channel up/down)
91
+ - **🔇 TelevisionSpeaker Integration**: Proper speaker service with Active characteristic and volume bounds (0-100)
11
92
  - **⚙️ Configuration Options**:
12
93
  - `enableTelevisionService` (default: true) - Enable/disable Television service for TV devices
13
94
  - `removeLegacySwitchForTV` (default: false) - Option to remove legacy switch service for TVs
@@ -31,6 +112,10 @@ All notable changes to this project will be documented in this file.
31
112
  ### Technical Details
32
113
  - Created `TelevisionService` class extending `BaseService`
33
114
  - TV detection based on `samsungvd.deviceCategory`, `samsungvd.mediaInputSource`, audio capabilities, and TV channels
115
+ - Proper HomeKit Television service implementation with primary service designation
116
+ - TelevisionSpeaker service with both absolute and relative volume control support
117
+ - Speaker Active characteristic properly linked to TV power and mute states
118
+ - Volume characteristics with proper bounds (0-100) and step increments
34
119
  - Maintains backward compatibility - existing Switch services continue working
35
120
  - Stable UUIDs prevent service duplication across restarts
36
121
  - Graceful fallback for missing TV capabilities
@@ -31,6 +31,8 @@ export declare class TelevisionService extends BaseService {
31
31
  private getVolume;
32
32
  private setVolume;
33
33
  private setVolumeSelector;
34
+ private getSpeakerActive;
35
+ private setSpeakerActive;
34
36
  processEvent(event: ShortEvent): void;
35
37
  static isTelevisionDevice(device: any): boolean;
36
38
  static getTvCapabilities(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"televisionService.d.ts","sourceRoot":"","sources":["../../src/services/televisionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAGtB,QAAQ,EAAE,8BAA8B,EACxC,SAAS,EAAE,iBAAiB,EAC5B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EACZ,YAAY,KAAA;IA+Bd,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,YAAY;YAoBN,mBAAmB;YAwBnB,mBAAmB;YAqBnB,mBAAmB;YA4BnB,mBAAmB;YA8BnB,YAAY;YA8DZ,cAAc;YAoCd,cAAc;YA2Bd,OAAO;YAwBP,OAAO;YAoBP,SAAS;YA4BT,SAAS;YAoBT,iBAAiB;IAmBxB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;WA6D9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;WAyBxC,iBAAiB,IAAI,MAAM,EAAE;CAa5C"}
1
+ {"version":3,"file":"televisionService.d.ts","sourceRoot":"","sources":["../../src/services/televisionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAGtB,QAAQ,EAAE,8BAA8B,EACxC,SAAS,EAAE,iBAAiB,EAC5B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EACZ,YAAY,KAAA;IAkCd,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,sBAAsB;IAiD9B,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,YAAY;YAoBN,mBAAmB;YAwBnB,mBAAmB;YAqBnB,mBAAmB;YA4BnB,mBAAmB;YA8CnB,YAAY;YAuFZ,cAAc;YAoCd,cAAc;YA2Bd,OAAO;YAwBP,OAAO;YAoCP,SAAS;YA4BT,SAAS;YAgDT,iBAAiB;YA0BjB,gBAAgB;YAWhB,gBAAgB;IAcvB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;WAkE9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;WAyBxC,iBAAiB,IAAI,MAAM,EAAE;CAa5C"}
@@ -17,7 +17,9 @@ class TelevisionService extends baseService_1.BaseService {
17
17
  this.televisionSpeakerService = this.setupTelevisionSpeaker();
18
18
  // Setup Input Source services
19
19
  this.setupInputSources();
20
- // Link services together
20
+ // Configure the Television service as the primary service
21
+ this.televisionService.setPrimaryService();
22
+ // Link services together - TelevisionSpeaker and InputSources must be linked to Television
21
23
  this.televisionService.addLinkedService(this.televisionSpeakerService);
22
24
  this.inputServices.forEach(inputService => {
23
25
  this.televisionService.addLinkedService(inputService);
@@ -62,22 +64,37 @@ class TelevisionService extends baseService_1.BaseService {
62
64
  setupTelevisionSpeaker() {
63
65
  const speakerService = this.accessory.getService(this.platform.Service.TelevisionSpeaker) ||
64
66
  this.accessory.addService(this.platform.Service.TelevisionSpeaker, `${this.name} Speaker`, 'TelevisionSpeaker');
65
- // Configure Mute characteristic
67
+ // Set the display name
68
+ speakerService.setCharacteristic(this.platform.Characteristic.Name, `${this.name} Speaker`);
69
+ // Configure Mute characteristic (required)
66
70
  speakerService.getCharacteristic(this.platform.Characteristic.Mute)
67
71
  .onGet(this.getMute.bind(this))
68
72
  .onSet(this.setMute.bind(this));
69
- // Configure Volume Control Type (supports both relative and absolute)
70
- speakerService.getCharacteristic(this.platform.Characteristic.VolumeControlType)
71
- .onGet(() => this.platform.Characteristic.VolumeControlType.ABSOLUTE);
72
- // Configure Volume Selector (for volume up/down commands)
73
- speakerService.getCharacteristic(this.platform.Characteristic.VolumeSelector)
74
- .onSet(this.setVolumeSelector.bind(this));
75
- // Configure Volume if supported
73
+ // Configure Volume Control Type - specify what type of volume control is supported
76
74
  if (this.isCapabilitySupported('audioVolume')) {
75
+ // TV supports absolute volume control
76
+ speakerService.setCharacteristic(this.platform.Characteristic.VolumeControlType, this.platform.Characteristic.VolumeControlType.ABSOLUTE);
77
+ // Add Volume characteristic for absolute volume control
77
78
  speakerService.getCharacteristic(this.platform.Characteristic.Volume)
79
+ .setProps({
80
+ minValue: 0,
81
+ maxValue: 100,
82
+ minStep: 1,
83
+ })
78
84
  .onGet(this.getVolume.bind(this))
79
85
  .onSet(this.setVolume.bind(this));
80
86
  }
87
+ else {
88
+ // Fallback to relative volume control only
89
+ speakerService.setCharacteristic(this.platform.Characteristic.VolumeControlType, this.platform.Characteristic.VolumeControlType.RELATIVE);
90
+ }
91
+ // Configure Volume Selector (for volume up/down commands) - always available
92
+ speakerService.getCharacteristic(this.platform.Characteristic.VolumeSelector)
93
+ .onSet(this.setVolumeSelector.bind(this));
94
+ // Configure Active characteristic (speaker active state)
95
+ speakerService.getCharacteristic(this.platform.Characteristic.Active)
96
+ .onGet(this.getSpeakerActive.bind(this))
97
+ .onSet(this.setSpeakerActive.bind(this));
81
98
  return speakerService;
82
99
  }
83
100
  setupInputSources() {
@@ -237,20 +254,33 @@ class TelevisionService extends baseService_1.BaseService {
237
254
  this.log.error(`${this.name} is offline`);
238
255
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
239
256
  }
240
- // Send input source change command to Samsung TV
241
- const success = await this.multiServiceAccessory.sendCommand('samsungvd.mediaInputSource', 'setInputSource', [targetInput.id]);
257
+ this.log.debug(`Attempting to set input source to ${targetInput.name} (${targetInput.id}) for ${this.name}`);
258
+ // According to official SmartThings spec, try multiple approaches:
259
+ // 1. Samsung-specific samsungvd.mediaInputSource with setInputSource command
260
+ // 2. Standard mediaInputSource with setInputSource command (fallback)
261
+ let success = false;
262
+ // Try Samsung-specific capability first (most likely to work for Samsung TVs)
263
+ this.log.debug(`Using Samsung-specific input source command: samsungvd.mediaInputSource.setInputSource("${targetInput.id}")`);
264
+ success = await this.multiServiceAccessory.sendCommand('samsungvd.mediaInputSource', 'setInputSource', [targetInput.id]);
265
+ // Fallback to standard mediaInputSource capability if Samsung-specific fails
266
+ if (!success) {
267
+ this.log.debug(`Fallback: Using standard input source command: mediaInputSource.setInputSource("${targetInput.id}")`);
268
+ success = await this.multiServiceAccessory.sendCommand('mediaInputSource', 'setInputSource', [targetInput.id]);
269
+ }
242
270
  if (success) {
243
271
  this.currentInputSource = Number(value);
244
- this.log.debug(`Input source changed to ${targetInput.name} for ${this.name}`);
245
- this.multiServiceAccessory.forceNextStatusRefresh();
272
+ this.log.info(`✅ Input source set successfully to ${targetInput.name} (${targetInput.id}) for ${this.name}`);
273
+ setTimeout(() => {
274
+ this.multiServiceAccessory.forceNextStatusRefresh();
275
+ }, 1000);
246
276
  }
247
277
  else {
248
- this.log.error(`Failed to change input source for ${this.name}`);
278
+ this.log.error(`❌ Failed to set input source to ${targetInput.name} for ${this.name} - both Samsung and standard commands failed`);
249
279
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
250
280
  }
251
281
  }
252
282
  else {
253
- this.log.error(`Invalid input identifier ${value} for ${this.name}`);
283
+ this.log.error(`Invalid input identifier ${value} for ${this.name} (available: 1-${this.inputSourcesMap.length})`);
254
284
  throw new this.platform.api.hap.HapStatusError(-70410 /* this.platform.api.hap.HAPStatus.INVALID_VALUE_IN_REQUEST */);
255
285
  }
256
286
  }
@@ -266,21 +296,38 @@ class TelevisionService extends baseService_1.BaseService {
266
296
  let capability = '';
267
297
  switch (value) {
268
298
  case this.platform.Characteristic.RemoteKey.REWIND:
269
- capability = 'mediaPlayback';
270
- command = 'rewind';
299
+ if (this.isCapabilitySupported('mediaPlayback')) {
300
+ capability = 'mediaPlayback';
301
+ command = 'rewind';
302
+ }
271
303
  break;
272
304
  case this.platform.Characteristic.RemoteKey.FAST_FORWARD:
273
- capability = 'mediaPlayback';
274
- command = 'fastForward';
305
+ if (this.isCapabilitySupported('mediaPlayback')) {
306
+ capability = 'mediaPlayback';
307
+ command = 'fastForward';
308
+ }
275
309
  break;
276
310
  case this.platform.Characteristic.RemoteKey.NEXT_TRACK:
277
- // Samsung TVs don't typically support track navigation, but we can try channel up
278
- capability = 'tvChannel';
279
- command = 'channelUp';
311
+ // According to official tvChannel spec, try channelUp
312
+ if (this.isCapabilitySupported('tvChannel')) {
313
+ capability = 'tvChannel';
314
+ command = 'channelUp';
315
+ }
280
316
  break;
281
317
  case this.platform.Characteristic.RemoteKey.PREVIOUS_TRACK:
282
- capability = 'tvChannel';
283
- command = 'channelDown';
318
+ // According to official tvChannel spec, try channelDown
319
+ if (this.isCapabilitySupported('tvChannel')) {
320
+ capability = 'tvChannel';
321
+ command = 'channelDown';
322
+ }
323
+ break;
324
+ case this.platform.Characteristic.RemoteKey.PLAY_PAUSE:
325
+ // According to official mediaPlayback spec, try play/pause
326
+ if (this.isCapabilitySupported('mediaPlayback')) {
327
+ capability = 'mediaPlayback';
328
+ command = 'play'; // Start with play, could be enhanced to check current playback status
329
+ this.log.debug(`Play/Pause key pressed - sending play command for ${this.name}`);
330
+ }
284
331
  break;
285
332
  case this.platform.Characteristic.RemoteKey.ARROW_UP:
286
333
  case this.platform.Characteristic.RemoteKey.ARROW_DOWN:
@@ -289,29 +336,38 @@ class TelevisionService extends baseService_1.BaseService {
289
336
  case this.platform.Characteristic.RemoteKey.SELECT:
290
337
  case this.platform.Characteristic.RemoteKey.BACK:
291
338
  case this.platform.Characteristic.RemoteKey.EXIT:
292
- case this.platform.Characteristic.RemoteKey.PLAY_PAUSE:
293
- // These would require Samsung's custom remote control capabilities
294
- this.log.debug(`Remote key ${value} not implemented for Samsung TV`);
339
+ // These would require Samsung's custom remote control capabilities (not in standard SmartThings spec)
340
+ this.log.debug(`Navigation/control key ${value} - requires Samsung remote control capability (not implemented)`);
295
341
  return;
296
342
  case this.platform.Characteristic.RemoteKey.INFORMATION:
297
- // Could potentially map to info button
298
- this.log.debug(`Information key pressed for ${this.name}`);
343
+ // Could potentially map to info button (not in standard SmartThings spec)
344
+ this.log.debug(`Information key pressed for ${this.name} - not in standard capabilities`);
345
+ return;
346
+ default:
347
+ this.log.warn(`Unsupported remote key: ${value} for ${this.name}`);
299
348
  return;
300
349
  }
301
350
  if (command && capability) {
302
351
  try {
352
+ this.log.debug(`Sending remote key command: ${capability}.${command} for ${this.name}`);
303
353
  const success = await this.multiServiceAccessory.sendCommand(capability, command);
304
354
  if (success) {
305
- this.log.debug(`Remote key command ${command} successful for ${this.name}`);
355
+ this.log.info(`✅ Remote key command ${capability}.${command} successful for ${this.name}`);
356
+ setTimeout(() => {
357
+ this.multiServiceAccessory.forceNextStatusRefresh();
358
+ }, 500);
306
359
  }
307
360
  else {
308
- this.log.error(`Remote key command ${command} failed for ${this.name}`);
361
+ this.log.error(`❌ Remote key command ${capability}.${command} failed for ${this.name}`);
309
362
  }
310
363
  }
311
364
  catch (error) {
312
- this.log.error(`Error sending remote key command for ${this.name}:`, error);
365
+ this.log.error(`Error sending remote key command ${capability}.${command} for ${this.name}:`, error);
313
366
  }
314
367
  }
368
+ else {
369
+ this.log.debug(`Remote key ${value} - no suitable capability found for ${this.name}`);
370
+ }
315
371
  }
316
372
  // Picture Mode Methods
317
373
  async getPictureMode() {
@@ -406,15 +462,29 @@ class TelevisionService extends baseService_1.BaseService {
406
462
  if (!this.multiServiceAccessory.isOnline()) {
407
463
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
408
464
  }
409
- const command = value ? 'mute' : 'unmute';
410
- const success = await this.multiServiceAccessory.sendCommand('audioMute', command);
465
+ // According to official SmartThings audioMute capability spec:
466
+ // - setMute command takes "muted" or "unmuted" string argument
467
+ // - mute/unmute commands take no arguments
468
+ // Try the more explicit setMute command first, fallback to simple commands
469
+ const muteState = value ? 'muted' : 'unmuted';
470
+ this.log.debug(`Sending mute command: audioMute.setMute("${muteState}") for ${this.name}`);
471
+ let success = await this.multiServiceAccessory.sendCommand('audioMute', 'setMute', [muteState]);
472
+ // Fallback to simple mute/unmute commands if setMute fails
473
+ if (!success) {
474
+ const fallbackCommand = value ? 'mute' : 'unmute';
475
+ this.log.debug(`Fallback: Sending audioMute.${fallbackCommand} for ${this.name}`);
476
+ success = await this.multiServiceAccessory.sendCommand('audioMute', fallbackCommand);
477
+ }
411
478
  if (success) {
412
479
  this.isMuted = Boolean(value);
413
- this.log.debug(`Mute ${command} successful for ${this.name}`);
414
- this.multiServiceAccessory.forceNextStatusRefresh();
480
+ this.log.info(`✅ Mute command sent successfully to ${this.name}: ${muteState}`);
481
+ // Force a status refresh after a delay to verify the mute change
482
+ setTimeout(() => {
483
+ this.multiServiceAccessory.forceNextStatusRefresh();
484
+ }, 1000);
415
485
  }
416
486
  else {
417
- this.log.error(`Mute command failed for ${this.name}`);
487
+ this.log.error(`❌ Both setMute and ${value ? 'mute' : 'unmute'} commands failed for ${this.name}`);
418
488
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
419
489
  }
420
490
  }
@@ -449,19 +519,44 @@ class TelevisionService extends baseService_1.BaseService {
449
519
  });
450
520
  }
451
521
  async setVolume(value) {
522
+ var _a, _b, _c;
452
523
  this.log.debug(`Setting volume for ${this.name} to ${value}`);
453
524
  if (!this.multiServiceAccessory.isOnline()) {
454
525
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
455
526
  }
456
527
  const volumeLevel = Number(value);
457
- const success = await this.multiServiceAccessory.sendCommand('audioVolume', 'setVolume', [volumeLevel]);
528
+ // For Samsung TVs, we may need to unmute first if currently muted
529
+ // Check if TV is muted and unmute it before setting volume
530
+ try {
531
+ const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
532
+ const muteState = (_c = (_b = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.audioMute) === null || _b === void 0 ? void 0 : _b.mute) === null || _c === void 0 ? void 0 : _c.value;
533
+ if (muteState === 'muted' && volumeLevel > 0) {
534
+ this.log.debug(`TV is muted, unmuting before setting volume for ${this.name}`);
535
+ await this.multiServiceAccessory.sendCommand('audioMute', 'unmute');
536
+ // Small delay to ensure unmute command processes
537
+ await new Promise(resolve => setTimeout(resolve, 500));
538
+ }
539
+ }
540
+ catch (error) {
541
+ this.log.debug(`Could not check mute state before volume change: ${error}`);
542
+ }
543
+ // Samsung TVs sometimes require the volume to be sent as an integer within specific range
544
+ // Ensure volume is bounded between 0-100 and sent as integer
545
+ const boundedVolume = Math.max(0, Math.min(100, Math.round(volumeLevel)));
546
+ this.log.debug(`Sending volume command: audioVolume.setVolume with value [${boundedVolume}] for ${this.name}`);
547
+ const success = await this.multiServiceAccessory.sendCommand('audioVolume', 'setVolume', [boundedVolume]);
458
548
  if (success) {
459
- this.currentVolume = volumeLevel;
460
- this.log.debug(`Volume set to ${volumeLevel} for ${this.name}`);
461
- this.multiServiceAccessory.forceNextStatusRefresh();
549
+ this.currentVolume = boundedVolume;
550
+ this.log.info(`✅ Volume command sent successfully to ${this.name}: ${boundedVolume}% - Please check if TV volume actually changed`);
551
+ // Samsung TVs sometimes don't report volume changes correctly via API
552
+ // But the commands still work. Force status refresh but don't rely solely on API feedback
553
+ setTimeout(() => {
554
+ this.multiServiceAccessory.forceNextStatusRefresh();
555
+ this.log.debug(`Status refresh completed for ${this.name} - note: Samsung TVs may not report volume changes accurately`);
556
+ }, 1000);
462
557
  }
463
558
  else {
464
- this.log.error(`Volume command failed for ${this.name}`);
559
+ this.log.error(`❌ Volume command failed for ${this.name} - SmartThings API rejected the command`);
465
560
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
466
561
  }
467
562
  }
@@ -471,15 +566,40 @@ class TelevisionService extends baseService_1.BaseService {
471
566
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
472
567
  }
473
568
  const command = value === this.platform.Characteristic.VolumeSelector.INCREMENT ? 'volumeUp' : 'volumeDown';
569
+ this.log.debug(`Sending volume selector command: audioVolume.${command} for ${this.name}`);
570
+ // For Samsung TVs, volumeUp/volumeDown might work better than setVolume
571
+ // These commands don't require specific volume levels and work incrementally
474
572
  const success = await this.multiServiceAccessory.sendCommand('audioVolume', command);
475
573
  if (success) {
476
574
  this.log.debug(`Volume ${command} successful for ${this.name}`);
477
- this.multiServiceAccessory.forceNextStatusRefresh();
575
+ // Force a status refresh after a delay to verify the volume change
576
+ setTimeout(() => {
577
+ this.multiServiceAccessory.forceNextStatusRefresh();
578
+ }, 1000);
478
579
  }
479
580
  else {
480
581
  this.log.error(`Volume ${command} failed for ${this.name}`);
481
582
  }
482
583
  }
584
+ // Speaker Active Methods
585
+ async getSpeakerActive() {
586
+ this.log.debug(`Getting speaker active state for ${this.name}`);
587
+ // Speaker is active when TV is active and not muted
588
+ const tvActive = await this.getTelevisionActive();
589
+ const isMuted = await this.getMute();
590
+ const speakerActive = tvActive === this.platform.Characteristic.Active.ACTIVE && !isMuted;
591
+ return speakerActive ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE;
592
+ }
593
+ async setSpeakerActive(value) {
594
+ this.log.debug(`Setting speaker active state for ${this.name} to ${value}`);
595
+ if (!this.multiServiceAccessory.isOnline()) {
596
+ throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
597
+ }
598
+ // For speaker active/inactive, we control the mute state
599
+ // Active = unmute, Inactive = mute
600
+ const shouldMute = value === this.platform.Characteristic.Active.INACTIVE;
601
+ await this.setMute(shouldMute);
602
+ }
483
603
  // Event Processing
484
604
  processEvent(event) {
485
605
  this.log.debug(`Processing event for TV ${this.name}: ${event.capability} = ${event.value}`);
@@ -491,6 +611,8 @@ class TelevisionService extends baseService_1.BaseService {
491
611
  case 'audioMute':
492
612
  this.isMuted = event.value === 'muted';
493
613
  this.televisionSpeakerService.updateCharacteristic(this.platform.Characteristic.Mute, this.isMuted);
614
+ // Update speaker active state based on mute status
615
+ this.televisionSpeakerService.updateCharacteristic(this.platform.Characteristic.Active, !this.isMuted ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
494
616
  break;
495
617
  case 'audioVolume':
496
618
  if (typeof event.value === 'number') {
@@ -545,7 +667,7 @@ class TelevisionService extends baseService_1.BaseService {
545
667
  'tvChannel',
546
668
  'mediaPlayback',
547
669
  'custom.picturemode',
548
- 'custom.soundmode'
670
+ 'custom.soundmode',
549
671
  ];
550
672
  }
551
673
  }
@@ -1 +1 @@
1
- {"version":3,"file":"televisionService.js","sourceRoot":"","sources":["../../src/services/televisionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"televisionService.js","sourceRoot":"","sources":["../../src/services/televisionService.ts"],"names":[],"mappings":"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"}
package/logs.txt ADDED
@@ -0,0 +1,7 @@
1
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] [{"capability":"audioVolume","command":"setVolume","arguments":[0]}] successful for 77" OLED
2
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] Volume set to 0 for 77" OLED
3
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] Getting volume for 77" OLED
4
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] Refreshing status for 77" OLED - current timestamp is 0
5
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] Calling Smartthings to get an update for 77" OLED
6
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] Updated status for 77" OLED-main: {"mediaPlayback":{"supportedPlaybackCommands":{"value":["play","pause","stop","fastForward","rewind"],"timestamp":"2025-06-16T14:32:24.258Z"},"playbackStatus":{"value":null}},"samsungim.fixedFindNode":{},"samsungvd.supportsPowerOnByOcf":{"supportsPowerOnByOcf":{"value":"true","timestamp":"2025-09-03T07:10:37.846Z"}},"sec.deviceConnectionState":{"deviceConnectionState":{"value":null}},"mediaInputSource":{"supportedInputSources":{"value":[],"timestamp":"2025-06-16T14:32:24.258Z"},"inputSource":{"value":null}},"samsungvd.deviceCategory":{"category":{"value":"tv","timestamp":"2025-06-16T14:32:26.385Z"}},"switch":{"switch":{"value":"off","timestamp":"2025-09-03T07:27:56.566Z"}},"ocf":{"st":{"value":"2025-06-16T14:32:22Z","timestamp":"2025-06-16T14:32:24.705Z"},"mndt":{"value":"2023-01-01","timestamp":"2025-06-16T14:32:24.705Z"},"mnfv":{"value":"T-PTMCUABC-0080-2024.0|ST_ENERGY","timestamp":"2025-06-16T14:32:24.705Z"},"mnhw":{"value":"","timestamp":"2025-06-16T14:32:24.705Z"},"di":{"value":"2be36aa7-bd5c-8248-12c0-139e34748204","timestamp":"2025-06-16T14:32:24.705Z"},"mnsl":{"value":"","timestamp":"2025-06-16T14:32:24.705Z"},"dmv":{"value":"res.1.1.0,sh.1.1.0","timestamp":"2025-06-16T14:32:24.705Z"},"n":{"value":"77\" OLED","timestamp":"2025-06-16T14:32:24.705Z"},"mnmo":{"value":"QA77S90CAUXZN","timestamp":"2025-06-16T14:32:24.705Z"},"vid":{"value":"VD-STV-2023","timestamp":"2025-06-16T14:32:24.705Z"},"mnmn":{"value":"Samsung Electronics","timestamp":"2025-06-16T14:32:24.705Z"},"mnml":{"value":"","timestamp":"2025-06-16T14:32:24.705Z"},"mnpv":{"value":"8.0","timestamp":"2025-06-16T14:32:24.705Z"},"mnos":{"value":"Tizen","timestamp":"2025-06-16T14:32:24.705Z"},"pi":{"value":"2be36aa7-bd5c-8248-12c0-139e34748204","timestamp":"2025-06-16T14:32:24.705Z"},"icv":{"value":"core.1.1.0","timestamp":"2025-06-16T14:32:24.705Z"}},"samsungvd.supportsFeatures":{"mediaOutputSupported":{"value":true,"timestamp":"2025-06-16T14:32:26.257Z"},"imeAdvSupported":{"value":true,"timestamp":"2025-06-16T14:32:26.257Z"},"wifiUpdateSupport":{"value":null},"executableServiceList":{"value":null},"remotelessSupported":{"value":null},"artSupported":{"value":false,"timestamp":"2025-06-16T14:32:26.257Z"},"mobileCamSupported":{"value":true,"timestamp":"2025-06-16T14:32:26.257Z"}},"custom.accessibility":{},"custom.disabledCapabilities":{"disabledCapabilities":{"value":["samsungvd.ambientContent","sec.wifiConfiguration"],"timestamp":"2025-09-03T07:10:38.477Z"}},"samsungvd.remoteControl":{},"samsungvd.lightControl":{"supportedModeMap":{"value":null},"requestId":{"value":null},"selectedMode":{"value":null},"streamControl":{"value":null},"selectedAppId":{"value":null},"errorCode":{"value":null},"supportedModes":{"value":null}},"custom.launchapp":{},"samsungvd.firmwareVersion":{"firmwareVersion":{"value":"3.5.1","timestamp":"2025-06-16T14:32:26.385Z"}},"samsungvd.thingStatus":{"updatedTime":{"value":1756840506,"timestamp":"2025-09-02T19:15:05.592Z"},"status":{"value":"Idle","timestamp":"2025-09-02T19:15:05.592Z"}},"demandResponseLoadControl":{"drlcStatus":{"value":{"drlcType":1,"drlcLevel":0,"start":"2025-09-02T19:15:08Z","duration":99999999,"override":false},"timestamp":"2025-09-02T19:15:07.145Z"}},"audioVolume":{"volume":{"value":6,"unit":"%","timestamp":"2025-06-16T14:32:30.674Z"}},"powerConsumptionReport":{"powerConsumption":{"value":{"energy":0,"deltaEnergy":0,"power":0,"powerEnergy":0,"persistedEnergy":0,"energySaved":0,"persistedSavedEnergy":0,"start":"1970-01-01T00:00:00Z","end":"2025-09-02T19:15:07Z"},"timestamp":"2025-09-02T19:15:07.277Z"}},"samsungvd.mediaInputSource":{"supportedInputSourcesMap":{"value":[{"id":"dtv","name":"TV"},{"id":"HDMI1","name":"Etisalat"},{"id":"HDMI2","name":"PlayStation 5"},{"id":"HDMI3","name":"Samsung"},{"id":"HDMI3","name":"Nvidia"},{"id":"HDMI4","name":"Apple TV"}],"timestamp":"2025-09-03T07:10:37.235Z"},"inputSource":{"value":"dtv","timestamp":"2025-09-03T07:12:32.503Z"}},"custom.tvsearch":{},"samsungvd.ambient":{"info":{"value":{"event":"get_setting_all","requestId":"c2ff189a-e73c-4310-8b20-8f0306b01bec.1756841526829.f","data":{"daily_info":"on","family_info":"on","iot_home_summary":"on","music_widget":"on","tvplus":"on","iot_summary_visible":"on","iot_cam_visible":"off","iot_energy_visible":"off","bg_content_name":"com.samsung.tv.ambientbg-tranquilnature","food_widget_visible":"off","cn_music_visible":"off","bixby_greeting_visible":"off","hourly_onoff":"on","night_mode":"on","background":"off","sleep_mode":"off","slide_time":"15","sensitivity":"1","display_time":"120","json_sample_widget":"off","music_visible":"on","program_reminder_visible":"off","auto_adjustment":"off","power_animation_hide":"off","version":"1.24.235","preview_widget_list":{"screen_item_count":4,"widget_order":[{"widget_type":"daily_info"},{"widget_type":"family_info"},{"widget_type":"tvplus"},{"widget_type":"music_widget"},{"widget_type":"iot_home_summary"}]},"ambient_info_active":"off","voice":"off","support_fullview":false,"support_ultrasonic_sensor":false,"support_timeout_auto":false,"bixby_country":"en_GB","sleep_mode_set_time":"21:00-07:00","ultrasonic_sensor":"off","bg_content_support_list":["none","blossom","tranquilnature","islandflyover","fireplace","sparkle","wish","window","journey","spring"]}},"timestamp":"2025-09-02T19:32:09.035Z"}},"refresh":{},"custom.error":{"error":{"value":null}},"execute":{"data":{"value":null}},"tvChannel":{"tvChannel":{"value":"","timestamp":"2025-09-02T03:06:05.737Z"},"tvChannelName":{"value":"com.samsung.tv.csfs","timestamp":"2025-09-02T03:06:05.737Z"}},"custom.picturemode":{"pictureMode":{"value":"FILMMAKER MODE","timestamp":"2025-06-16T14:32:27.030Z"},"supportedPictureModes":{"value":["Dynamic","Eco","FILMMAKER MODE","Movie (Calibrated)","Standard"],"timestamp":"2025-06-16T14:32:27.030Z"},"supportedPictureModesMap":{"value":[{"id":"modeDynamic","name":"Dynamic"},{"id":"modeGen_65552","name":"Eco"},{"id":"modeFilmmakerMode","name":"FILMMAKER MODE"},{"id":"modeMovie","name":"Movie (Calibrated)"},{"id":"modeStandard","name":"Standard"}],"timestamp":"2025-06-16T14:32:27.030Z"}},"samsungvd.ambientContent":{"supportedAmbientApps":{"value":[],"timestamp":"2025-06-16T14:32:24.258Z"}},"custom.recording":{},"custom.energyType":{"energyType":{"value":"2.0","timestamp":"2025-09-02T19:15:08.584Z"},"energySavingSupport":{"value":true,"timestamp":"2025-09-02T19:15:08.584Z"},"drMaxDuration":{"value":99999999,"unit":"min","timestamp":"2025-09-02T19:15:08.584Z"},"energySavingLevel":{"value":1,"timestamp":"2025-09-02T19:15:08.584Z"},"energySavingInfo":{"value":null},"supportedEnergySavingLevels":{"value":[1],"timestamp":"2025-09-02T19:15:08.584Z"},"energySavingOperation":{"value":false,"timestamp":"2025-09-02T19:15:08.584Z"},"notificationTemplateID":{"value":null},"energySavingOperationSupport":{"value":true,"timestamp":"2025-09-02T19:15:08.584Z"}},"custom.soundmode":{"supportedSoundModesMap":{"value":[{"id":"modeAmplify","name":"Amplify"},{"id":"modeStandard","name":"Standard"}],"timestamp":"2025-06-16T14:32:30.542Z"},"soundMode":{"value":"Standard","timestamp":"2025-06-16T14:32:30.542Z"},"supportedSoundModes":{"value":["Amplify","Standard"],"timestamp":"2025-06-16T14:32:30.542Z"}},"audioMute":{"mute":{"value":"muted","timestamp":"2025-06-16T14:32:30.674Z"}},"mediaTrackControl":{"supportedTrackControlCommands":{"value":null}}}
7
+ [9/3/2025, 11:29:22 AM] [Smartthings Plug (IK)] Volume for 77" OLED: 6
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "displayName": "Homebridge Smartthings oAuth Plugin",
4
4
  "name": "homebridge-smartthings-oauth",
5
- "version": "1.0.15",
5
+ "version": "1.0.17",
6
6
  "description": "Connects SmartThings devices to Homebridge. Automatically discovers devices.",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {