homebridge-smartthings-oauth 1.0.28 → 1.0.30

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,5 +1,27 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
+ ## [1.0.30] - Complete Samsung TV Experience & Reference Implementation Alignment
4
+ ### Fixed
5
+ - **🚨 CRITICAL: Volume Slider Component Targeting**: Fixed volume slider targeting wrong device components (was controlling light sensor instead of TV audio)
6
+ - **Volume Slider Tile Placement**: Volume slider now appears within the same TV tile in HomeKit (not as separate accessory)
7
+ - **Direct API Calls**: Volume slider now uses direct SmartThings API calls to main TV component, ensuring reliable volume control
8
+ - **Component Confusion**: Added strict `componentId === 'main'` check to prevent volume slider creation on sensor components
9
+
10
+ ### Changed
11
+ - **Volume Slider Architecture**: Simplified to work as a service within the same TV accessory (same HomeKit tile)
12
+ - **TelevisionSpeaker Conflicts**: When volume slider is enabled, TelevisionSpeaker completely disables volume controls to prevent conflicts
13
+ - **API Communication**: Volume slider bypasses internal component status and uses direct API calls for immediate responsiveness
14
+ ## [1.0.29] - Complete Samsung TV Experience & Reference Implementation Alignment
15
+ ### Fixed
16
+ - **🚨 CRITICAL: Volume Slider Component Targeting**: Fixed volume slider targeting wrong device components (was controlling light sensor instead of TV audio)
17
+ - **Volume Slider Tile Placement**: Volume slider now appears within the same TV tile in HomeKit (not as separate accessory)
18
+ - **Direct API Calls**: Volume slider now uses direct SmartThings API calls to main TV component, ensuring reliable volume control
19
+ - **Component Confusion**: Added strict `componentId === 'main'` check to prevent volume slider creation on sensor components
20
+
21
+ ### Changed
22
+ - **Volume Slider Architecture**: Simplified to work as a service within the same TV accessory (same HomeKit tile)
23
+ - **TelevisionSpeaker Conflicts**: When volume slider is enabled, TelevisionSpeaker completely disables volume controls to prevent conflicts
24
+ - **API Communication**: Volume slider bypasses internal component status and uses direct API calls for immediate responsiveness
3
25
  ## [1.0.28] - Complete Samsung TV Experience & Reference Implementation Alignment
4
26
  ### Fixed
5
27
  - **🚨 CRITICAL: Volume Slider Component Targeting**: Fixed volume slider targeting wrong device components (was controlling light sensor instead of TV audio)
@@ -2,6 +2,7 @@ import { PlatformAccessory, Service } from 'homebridge';
2
2
  import { BaseService } from './baseService';
3
3
  import { MultiServiceAccessory } from '../multiServiceAccessory';
4
4
  import { IKHomeBridgeHomebridgePlatform } from '../platform';
5
+ import { ShortEvent } from '../webhook/subscriptionHandler';
5
6
  /**
6
7
  * Volume Slider Service (Within Same TV Accessory)
7
8
  * Creates a lightbulb service within the TV accessory for volume control.
@@ -42,6 +43,10 @@ export declare class VolumeSliderService extends BaseService {
42
43
  * Check if the given capabilities support volume slider functionality
43
44
  */
44
45
  static supportsVolumeSlider(capabilities: string[]): boolean;
46
+ /**
47
+ * Process webhook events for real-time updates
48
+ */
49
+ processEvent(event: ShortEvent): void;
45
50
  /**
46
51
  * Cleanup method to stop polling when accessory is removed
47
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"volumeSliderService.d.ts","sourceRoot":"","sources":["../../src/services/volumeSliderService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,YAAY,CAA6B;gBAG/C,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,EAAE,GAAG;IAgCnB,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;YACW,KAAK;IAenB;;;OAGG;YACW,KAAK;IA2CnB;;OAEG;YACW,aAAa;IAoB3B;;OAEG;YACW,aAAa;IA0D3B;;OAEG;WACW,2BAA2B,IAAI,MAAM,EAAE;IAIrD;;OAEG;WACW,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO;IAInE;;OAEG;IACI,OAAO,IAAI,IAAI;CAOvB"}
1
+ {"version":3,"file":"volumeSliderService.d.ts","sourceRoot":"","sources":["../../src/services/volumeSliderService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,YAAY,CAA6B;gBAG/C,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,EAAE,GAAG;IAgCnB,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;YACW,KAAK;IAwBnB;;;OAGG;YACW,KAAK;IAuBnB;;OAEG;YACW,aAAa;IA8B3B;;OAEG;YACW,aAAa;IA4C3B;;OAEG;WACW,2BAA2B,IAAI,MAAM,EAAE;IAIrD;;OAEG;WACW,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO;IAInE;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAkB5C;;OAEG;IACI,OAAO,IAAI,IAAI;CAOvB"}
@@ -46,13 +46,14 @@ class VolumeSliderService extends baseService_1.BaseService {
46
46
  this.pollInterval = setInterval(async () => {
47
47
  try {
48
48
  this.log.debug(`🔄 Volume slider polling for ${this.name}...`);
49
- // Force refresh of device status first to get latest data
50
- await this.multiServiceAccessory.refreshStatus();
51
- // Then poll both On (mute) and Brightness (volume) to sync with IR remote changes
52
- const onValue = await this.getOn();
53
- const brightnessValue = await this.getBrightness();
54
- this.service.updateCharacteristic(this.platform.Characteristic.On, onValue);
55
- this.service.updateCharacteristic(this.platform.Characteristic.Brightness, brightnessValue);
49
+ // Use the proper status mechanism instead of direct API calls
50
+ if (await this.getStatus()) {
51
+ // Update characteristics from device status
52
+ const onValue = await this.getOn();
53
+ const brightnessValue = await this.getBrightness();
54
+ this.service.updateCharacteristic(this.platform.Characteristic.On, onValue);
55
+ this.service.updateCharacteristic(this.platform.Characteristic.Brightness, brightnessValue);
56
+ }
56
57
  }
57
58
  catch (error) {
58
59
  this.log.debug(`Volume slider polling error for ${this.name}:`, error);
@@ -64,64 +65,52 @@ class VolumeSliderService extends baseService_1.BaseService {
64
65
  * On = true means NOT muted, On = false means muted
65
66
  */
66
67
  async getOn() {
67
- var _a, _b;
68
- try {
69
- // Get fresh status directly from SmartThings API for the main component
70
- const response = await this.platform.axInstance.get(`devices/${this.accessory.context.device.deviceId}/components/main/capabilities/audioMute/status`);
71
- const muteValue = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.mute) === null || _b === void 0 ? void 0 : _b.value;
72
- const isNotMuted = muteValue !== 'muted';
73
- this.log.debug(`Volume slider On state for ${this.name}: ${isNotMuted} (mute: ${muteValue}) from main component`);
74
- return isNotMuted;
75
- }
76
- catch (error) {
77
- this.log.debug(`Could not get mute state for slider ${this.name}:`, error);
78
- return true; // Default to not muted
79
- }
68
+ return new Promise((resolve) => {
69
+ this.getStatus().then(success => {
70
+ var _a, _b;
71
+ if (!success) {
72
+ this.log.debug(`Could not get status for mute check on ${this.name}`);
73
+ resolve(true); // Default to not muted if we can't get status
74
+ }
75
+ else {
76
+ try {
77
+ // Get mute status from component data (same pattern as TelevisionService)
78
+ const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
79
+ const audioMuteData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.audioMute;
80
+ const muteValue = (_b = audioMuteData === null || audioMuteData === void 0 ? void 0 : audioMuteData.mute) === null || _b === void 0 ? void 0 : _b.value;
81
+ const isNotMuted = muteValue !== 'muted';
82
+ this.log.debug(`Volume slider On state for ${this.name}: ${isNotMuted} (mute: ${muteValue})`);
83
+ resolve(isNotMuted);
84
+ }
85
+ catch (error) {
86
+ this.log.debug(`Error parsing mute status for ${this.name}:`, error);
87
+ resolve(true); // Default to not muted
88
+ }
89
+ }
90
+ });
91
+ });
80
92
  }
81
93
  /**
82
94
  * Set On state (toggle mute)
83
95
  * On = true means unmute, On = false means mute
84
96
  */
85
97
  async setOn(value) {
86
- try {
87
- if (value) {
88
- // Turning on = unmute
89
- this.log.debug(`Volume slider turning ON (unmuting) ${this.name}`);
90
- await this.platform.axInstance.post(`devices/${this.accessory.context.device.deviceId}/commands`, {
91
- commands: [{
92
- component: 'main', // Always target main component
93
- capability: 'audioMute',
94
- command: 'unmute',
95
- }],
96
- });
97
- this.log.info(`✅ Volume slider unmuted successfully for ${this.name}`);
98
- }
99
- else {
100
- // Turning off = mute
101
- this.log.debug(`Volume slider turning OFF (muting) ${this.name}`);
102
- await this.platform.axInstance.post(`devices/${this.accessory.context.device.deviceId}/commands`, {
103
- commands: [{
104
- component: 'main', // Always target main component
105
- capability: 'audioMute',
106
- command: 'mute',
107
- }],
108
- });
109
- this.log.info(`✅ Volume slider muted successfully for ${this.name}`);
110
- }
111
- // Update our characteristics immediately with fresh API calls (bypass cached status)
112
- setTimeout(async () => {
113
- try {
114
- this.log.debug(`🔄 Refreshing volume slider state after mute command for ${this.name}`);
115
- const onValue = await this.getOn(); // This makes a fresh API call
116
- this.service.updateCharacteristic(this.platform.Characteristic.On, onValue);
117
- }
118
- catch (error) {
119
- this.log.debug(`Status refresh after mute toggle failed for ${this.name}:`, error);
120
- }
121
- }, 2000); // Allow time for SmartThings to process the command
98
+ if (!this.multiServiceAccessory.isOnline()) {
99
+ this.log.error(`${this.name} is offline`);
100
+ throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
122
101
  }
123
- catch (error) {
124
- this.log.error(`❌ Failed to set mute state for volume slider ${this.name}:`, error);
102
+ const command = value ? 'unmute' : 'mute';
103
+ this.log.debug(`Volume slider turning ${value ? 'ON (unmuting)' : 'OFF (muting)'} ${this.name}`);
104
+ const success = await this.multiServiceAccessory.sendCommand('audioMute', command);
105
+ if (success) {
106
+ this.log.info(`✅ Volume slider ${command}d successfully for ${this.name}`);
107
+ // Force a status refresh after a delay to get updated values
108
+ setTimeout(() => {
109
+ this.multiServiceAccessory.forceNextStatusRefresh();
110
+ }, 1000);
111
+ }
112
+ else {
113
+ this.log.error(`❌ Failed to ${command} volume slider for ${this.name}`);
125
114
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
126
115
  }
127
116
  }
@@ -129,80 +118,77 @@ class VolumeSliderService extends baseService_1.BaseService {
129
118
  * Get Brightness (represents volume level 0-100)
130
119
  */
131
120
  async getBrightness() {
132
- var _a, _b;
133
- try {
134
- // Get fresh status directly from SmartThings API for the main component
135
- const response = await this.platform.axInstance.get(`devices/${this.accessory.context.device.deviceId}/components/main/capabilities/audioVolume/status`);
136
- const volume = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.volume) === null || _b === void 0 ? void 0 : _b.value;
137
- if (typeof volume === 'number') {
138
- const boundedVolume = Math.max(0, Math.min(100, volume)); // Bound between 0-100
139
- this.log.debug(`Volume slider brightness for ${this.name}: ${boundedVolume}% (from main component)`);
140
- return boundedVolume;
141
- }
142
- else {
143
- this.log.warn(`⚠️ No audioVolume data in main component for ${this.name} - API response:`, response.data);
144
- return 0;
145
- }
146
- }
147
- catch (error) {
148
- this.log.debug(`Could not get volume for slider ${this.name}:`, error);
149
- return 0;
150
- }
121
+ return new Promise((resolve) => {
122
+ this.getStatus().then(success => {
123
+ var _a, _b;
124
+ if (!success) {
125
+ this.log.debug(`Could not get status for volume check on ${this.name}`);
126
+ resolve(0); // Default to 0 volume if we can't get status
127
+ }
128
+ else {
129
+ try {
130
+ // Get volume from component data (same pattern as TelevisionService)
131
+ const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
132
+ const audioVolumeData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.audioVolume;
133
+ const volume = (_b = audioVolumeData === null || audioVolumeData === void 0 ? void 0 : audioVolumeData.volume) === null || _b === void 0 ? void 0 : _b.value;
134
+ if (typeof volume === 'number') {
135
+ const boundedVolume = Math.max(0, Math.min(100, volume)); // Bound between 0-100
136
+ this.log.debug(`Volume slider brightness for ${this.name}: ${boundedVolume}%`);
137
+ resolve(boundedVolume);
138
+ }
139
+ else {
140
+ this.log.warn(`⚠️ No audioVolume data for ${this.name}`);
141
+ resolve(0);
142
+ }
143
+ }
144
+ catch (error) {
145
+ this.log.debug(`Error parsing volume status for ${this.name}:`, error);
146
+ resolve(0); // Default to 0 volume
147
+ }
148
+ }
149
+ });
150
+ });
151
151
  }
152
152
  /**
153
153
  * Set Brightness (set volume level 0-100)
154
154
  */
155
155
  async setBrightness(value) {
156
156
  var _a, _b;
157
- try {
158
- const volume = Math.max(0, Math.min(100, value)); // Bound between 0-100
159
- this.log.debug(`Volume slider setting brightness to ${volume}% for ${this.name}`);
160
- // Set volume using SmartThings API to main component
161
- await this.platform.axInstance.post(`devices/${this.accessory.context.device.deviceId}/commands`, {
162
- commands: [{
163
- component: 'main', // Always target main component
164
- capability: 'audioVolume',
165
- command: 'setVolume',
166
- arguments: [volume],
167
- }],
168
- });
157
+ if (!this.multiServiceAccessory.isOnline()) {
158
+ this.log.error(`${this.name} is offline`);
159
+ throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
160
+ }
161
+ const volume = Math.max(0, Math.min(100, value)); // Bound between 0-100
162
+ this.log.debug(`Volume slider setting brightness to ${volume}% for ${this.name}`);
163
+ // Set volume using proper command mechanism
164
+ const success = await this.multiServiceAccessory.sendCommand('audioVolume', 'setVolume', [volume]);
165
+ if (success) {
166
+ this.log.info(`✅ Volume slider set successfully to ${volume}% for ${this.name}`);
169
167
  // If setting volume above 0 and TV is muted, automatically unmute
170
168
  if (volume > 0) {
171
169
  try {
172
- const response = await this.platform.axInstance.get(`devices/${this.accessory.context.device.deviceId}/components/main/capabilities/audioMute/status`);
173
- const muteValue = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.mute) === null || _b === void 0 ? void 0 : _b.value;
174
- if (muteValue === 'muted') {
175
- this.log.debug(`Auto-unmuting ${this.name} because volume was set to ${volume}%`);
176
- await this.platform.axInstance.post(`devices/${this.accessory.context.device.deviceId}/commands`, {
177
- commands: [{
178
- component: 'main', // Always target main component
179
- capability: 'audioMute',
180
- command: 'unmute',
181
- }],
182
- });
170
+ // Check current mute status from component data
171
+ if (await this.getStatus()) {
172
+ const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
173
+ const audioMuteData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.audioMute;
174
+ const muteValue = (_b = audioMuteData === null || audioMuteData === void 0 ? void 0 : audioMuteData.mute) === null || _b === void 0 ? void 0 : _b.value;
175
+ if (muteValue === 'muted') {
176
+ this.log.debug(`Auto-unmuting ${this.name} because volume was set to ${volume}%`);
177
+ await this.multiServiceAccessory.sendCommand('audioMute', 'unmute');
178
+ }
183
179
  }
184
180
  }
185
181
  catch (error) {
186
182
  this.log.debug(`Could not check/set mute state during volume change for ${this.name}:`, error);
187
183
  }
188
184
  }
189
- this.log.info(`✅ Volume slider set successfully to ${volume}% for ${this.name}`);
190
- // Update our characteristics immediately with fresh API calls (bypass cached status)
191
- setTimeout(async () => {
192
- try {
193
- this.log.debug(`🔄 Refreshing volume slider state after volume command for ${this.name}`);
194
- const brightnessValue = await this.getBrightness(); // This makes a fresh API call
195
- const onValue = await this.getOn(); // This makes a fresh API call
196
- this.service.updateCharacteristic(this.platform.Characteristic.Brightness, brightnessValue);
197
- this.service.updateCharacteristic(this.platform.Characteristic.On, onValue);
198
- }
199
- catch (error) {
200
- this.log.debug(`Status refresh after volume change failed for ${this.name}:`, error);
201
- }
202
- }, 2000); // Allow time for SmartThings to process the command
185
+ // Force a status refresh after a delay to get updated values
186
+ setTimeout(() => {
187
+ this.multiServiceAccessory.forceNextStatusRefresh();
188
+ }, 1000);
203
189
  }
204
- catch (error) {
205
- this.log.error(`❌ Failed to set volume for slider ${this.name}:`, error);
190
+ else {
191
+ this.log.error(`❌ Failed to set volume for slider ${this.name}`);
206
192
  throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
207
193
  }
208
194
  }
@@ -218,6 +204,27 @@ class VolumeSliderService extends baseService_1.BaseService {
218
204
  static supportsVolumeSlider(capabilities) {
219
205
  return capabilities.includes('audioVolume') || capabilities.includes('audioMute');
220
206
  }
207
+ /**
208
+ * Process webhook events for real-time updates
209
+ */
210
+ processEvent(event) {
211
+ this.log.debug(`Volume slider received event for ${this.name}: ${event.capability}.${event.attribute} = ${event.value}`);
212
+ try {
213
+ if (event.capability === 'audioMute' && event.attribute === 'mute') {
214
+ const isNotMuted = event.value !== 'muted';
215
+ this.service.updateCharacteristic(this.platform.Characteristic.On, isNotMuted);
216
+ this.log.debug(`Volume slider mute state updated via webhook for ${this.name}: ${isNotMuted}`);
217
+ }
218
+ else if (event.capability === 'audioVolume' && event.attribute === 'volume') {
219
+ const volume = Math.max(0, Math.min(100, Number(event.value) || 0));
220
+ this.service.updateCharacteristic(this.platform.Characteristic.Brightness, volume);
221
+ this.log.debug(`Volume slider volume updated via webhook for ${this.name}: ${volume}%`);
222
+ }
223
+ }
224
+ catch (error) {
225
+ this.log.debug(`Error processing event for volume slider ${this.name}:`, error);
226
+ }
227
+ }
221
228
  /**
222
229
  * Cleanup method to stop polling when accessory is removed
223
230
  */
@@ -1 +1 @@
1
- {"version":3,"file":"volumeSliderService.js","sourceRoot":"","sources":["../../src/services/volumeSliderService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"volumeSliderService.js","sourceRoot":"","sources":["../../src/services/volumeSliderService.ts"],"names":[],"mappings":"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"}
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.28",
5
+ "version": "1.0.30",
6
6
  "description": "Connects SmartThings devices to Homebridge. Automatically discovers devices.",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {