homebridge-smartthings-oauth 1.0.14 → 1.0.16
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 +71 -0
- package/README.md +9 -1
- package/config.schema.json +28 -2
- package/dist/multiServiceAccessory.d.ts +1 -0
- package/dist/multiServiceAccessory.d.ts.map +1 -1
- package/dist/multiServiceAccessory.js +34 -2
- package/dist/multiServiceAccessory.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +29 -10
- package/dist/platform.js.map +1 -1
- package/dist/services/televisionService.d.ts +40 -0
- package/dist/services/televisionService.d.ts.map +1 -0
- package/dist/services/televisionService.js +591 -0
- package/dist/services/televisionService.js.map +1 -0
- package/package.json +1 -1
- package/README_MIGRATION.md +0 -123
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,77 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
+
## [1.0.16] - TelevisionSpeaker Control Improvements
|
|
5
|
+
### Fixed
|
|
6
|
+
- **🔊 TelevisionSpeaker Service**: Fixed speaker control issues that prevented audio controls from working in HomeKit
|
|
7
|
+
- Properly configured TelevisionSpeaker service as linked service to Television
|
|
8
|
+
- Added Speaker Active characteristic that responds to TV power and mute states
|
|
9
|
+
- Fixed volume control bounds and properties (0-100 range with proper step increments)
|
|
10
|
+
- Enhanced VolumeControlType detection (ABSOLUTE vs RELATIVE based on Samsung TV capabilities)
|
|
11
|
+
- **🎛️ Service Architecture**: Improved HomeKit Television service implementation
|
|
12
|
+
- Set Television service as primary service using `setPrimaryService()`
|
|
13
|
+
- Corrected service linking hierarchy between Television, TelevisionSpeaker, and InputSource services
|
|
14
|
+
- Enhanced event processing to update both TV and speaker characteristics simultaneously
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **🔇 Speaker State Management**: Speaker active/inactive state now properly reflects TV power and mute status
|
|
18
|
+
- **📱 HomeKit Integration**: Improved native TV interface experience with proper audio controls
|
|
19
|
+
- **🎚️ Volume Control**: Enhanced volume slider responsiveness and real-time updates
|
|
20
|
+
|
|
21
|
+
### Technical Details
|
|
22
|
+
- Added Speaker Active characteristic with proper state management
|
|
23
|
+
- Implemented dynamic VolumeControlType configuration based on device capabilities
|
|
24
|
+
- Enhanced service linking architecture following HomeKit Television service specifications
|
|
25
|
+
- Improved event processing for synchronized TV and speaker state updates
|
|
26
|
+
|
|
27
|
+
## [1.0.15] - Television Service Support & IgnoreDevices Bug Fixes
|
|
28
|
+
### Added
|
|
29
|
+
- **🎬 Television Service**: Samsung TVs now appear as proper Television accessories in HomeKit instead of simple switches
|
|
30
|
+
- **📺 Input Source Control**: Full support for HDMI inputs, TV tuner, and custom input names from SmartThings
|
|
31
|
+
- **🔊 Audio Controls**: Complete volume control, mute/unmute, and volume up/down buttons via TelevisionSpeaker service
|
|
32
|
+
- **🎨 Picture Mode Support**: Control Samsung picture modes (Standard, Dynamic, Movie, etc.) from HomeKit
|
|
33
|
+
- **🎮 Remote Control**: Support for media playback controls (rewind, fast forward, channel up/down)
|
|
34
|
+
- **🔇 TelevisionSpeaker Integration**: Proper speaker service with Active characteristic and volume bounds (0-100)
|
|
35
|
+
- **⚙️ Configuration Options**:
|
|
36
|
+
- `enableTelevisionService` (default: true) - Enable/disable Television service for TV devices
|
|
37
|
+
- `removeLegacySwitchForTV` (default: false) - Option to remove legacy switch service for TVs
|
|
38
|
+
- `PollTelevisionsSeconds` (default: 15) - TV-specific polling interval
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
- **🔧 IgnoreDevices Functionality**: Fixed multiple issues that prevented the `IgnoreDevices` configuration from working properly
|
|
42
|
+
- Fixed Unicode character handling for device names with smart quotes (`'`) and special characters
|
|
43
|
+
- Added proper input validation to ensure `IgnoreDevices` is configured as an array of strings
|
|
44
|
+
- Fixed whitespace trimming in device name comparisons
|
|
45
|
+
- Added comprehensive debug logging to help troubleshoot ignore list issues
|
|
46
|
+
- **📖 Configuration Documentation**: Enhanced `config.schema.json` with better descriptions and examples for `IgnoreDevices`
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- **🔍 Smart TV Detection**: Automatic detection of Samsung TVs based on device capabilities
|
|
50
|
+
- **🏠 HomeKit Category**: TVs now appear with proper Television icon and controls in Home app
|
|
51
|
+
- **📊 Capability Mapping**: Enhanced capability detection to include TV-specific Samsung capabilities
|
|
52
|
+
- **🐛 Device Name Normalization**: Device names and ignore list entries are now properly normalized for consistent matching
|
|
53
|
+
- **⚠️ Error Handling**: Added warning messages for invalid `IgnoreDevices` configuration formats
|
|
54
|
+
|
|
55
|
+
### Technical Details
|
|
56
|
+
- Created `TelevisionService` class extending `BaseService`
|
|
57
|
+
- TV detection based on `samsungvd.deviceCategory`, `samsungvd.mediaInputSource`, audio capabilities, and TV channels
|
|
58
|
+
- Proper HomeKit Television service implementation with primary service designation
|
|
59
|
+
- TelevisionSpeaker service with both absolute and relative volume control support
|
|
60
|
+
- Speaker Active characteristic properly linked to TV power and mute states
|
|
61
|
+
- Volume characteristics with proper bounds (0-100) and step increments
|
|
62
|
+
- Maintains backward compatibility - existing Switch services continue working
|
|
63
|
+
- Stable UUIDs prevent service duplication across restarts
|
|
64
|
+
- Graceful fallback for missing TV capabilities
|
|
65
|
+
- Enhanced character normalization using Unicode regex patterns (`\u2018`, `\u2019`, `\u201C`, `\u201D`)
|
|
66
|
+
- Added debug logs showing device name comparisons: `"normalized_device_name" vs "normalized_ignore_name"`
|
|
67
|
+
- Improved error messages guide users to correct configuration format
|
|
68
|
+
- Case-insensitive matching with automatic whitespace trimming
|
|
69
|
+
|
|
70
|
+
### Migration Notes
|
|
71
|
+
- **Non-breaking**: Existing TV devices will automatically upgrade to Television service on next restart
|
|
72
|
+
- **Legacy Support**: Original switch functionality preserved by default
|
|
73
|
+
- **No User Action Required**: TV detection and upgrade happens automatically
|
|
74
|
+
|
|
4
75
|
## [1.0.9] - Homebridge v2.0 Compatibility
|
|
5
76
|
### Added
|
|
6
77
|
- **Homebridge v2.0 Support**: Added support for Homebridge v2.0.0-beta.0 and above
|
package/README.md
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
<p align="center">
|
|
3
3
|
|
|
4
|
-
<img src="https://raw.githubusercontent.com/homebridge/branding/latest/logos/homebridge-color-round-stylized.png" width="150">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/homebridge/branding/latest/logos/homebridge-color-round-stylized.png" width="150">
|
|
5
5
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
+
<p align="center">
|
|
9
|
+
<a href="https://github.com/homebridge/homebridge/wiki/Verified-Plugins"><img src="https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59&style=for-the-badge&logoColor=%23FFFFFF&logo=homebridge" alt="verified-by-homebridge"></a>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
8
12
|
# SmartThings Homebridge Plugin with OAuth Support
|
|
9
13
|
|
|
10
14
|
A modern SmartThings plugin for Homebridge that provides seamless integration with your SmartThings devices. This plugin features automatic device discovery, OAuth authentication, and access token refresh capabilities.
|
|
@@ -168,6 +172,10 @@ If you encounter issues:
|
|
|
168
172
|
2. Ensure all URLs and credentials are correct
|
|
169
173
|
3. Verify your tunnel service is running properly
|
|
170
174
|
|
|
175
|
+
## 📄 Changelog
|
|
176
|
+
|
|
177
|
+
See [CHANGELOG.md](./CHANGELOG.md) for version history and detailed release notes.
|
|
178
|
+
|
|
171
179
|
## 📄 Credits
|
|
172
180
|
|
|
173
181
|
This is a fork of the original homebridge-smartthings plugin created by [@iklein99](https://github.com/iklein99/), enhanced with OAuth support and automatic token refresh capabilities.
|
package/config.schema.json
CHANGED
|
@@ -73,6 +73,13 @@
|
|
|
73
73
|
"required": false,
|
|
74
74
|
"default": 10
|
|
75
75
|
},
|
|
76
|
+
"PollTelevisionsSeconds": {
|
|
77
|
+
"title": "Poll Television devices (zero = don't poll)",
|
|
78
|
+
"type": "integer",
|
|
79
|
+
"required": false,
|
|
80
|
+
"default": 15,
|
|
81
|
+
"description": "How often to poll TV devices for status updates. TVs typically respond slower than other devices, so a higher interval is recommended."
|
|
82
|
+
},
|
|
76
83
|
"PollWindowShadesSeconds": {
|
|
77
84
|
"title": "Poll Window Shades (zero = don't poll)",
|
|
78
85
|
"type": "integer",
|
|
@@ -104,6 +111,20 @@
|
|
|
104
111
|
],
|
|
105
112
|
"default": "None"
|
|
106
113
|
},
|
|
114
|
+
"enableTelevisionService": {
|
|
115
|
+
"title": "Enable Television Service for TV devices",
|
|
116
|
+
"type": "boolean",
|
|
117
|
+
"required": false,
|
|
118
|
+
"default": true,
|
|
119
|
+
"description": "When enabled, Samsung TVs will be exposed as proper Television accessories with input source control, volume control, and picture modes. When disabled, TVs will continue to appear as simple switches."
|
|
120
|
+
},
|
|
121
|
+
"removeLegacySwitchForTV": {
|
|
122
|
+
"title": "Remove Legacy Switch Service for TVs",
|
|
123
|
+
"type": "boolean",
|
|
124
|
+
"required": false,
|
|
125
|
+
"default": false,
|
|
126
|
+
"description": "When enabled, removes the basic switch service for TV devices, leaving only the Television service. When disabled (default), both services are available for backward compatibility."
|
|
127
|
+
},
|
|
107
128
|
"IgnoreLocations": {
|
|
108
129
|
"title": "Locations to Ignore",
|
|
109
130
|
"type": "array",
|
|
@@ -115,10 +136,15 @@
|
|
|
115
136
|
"IgnoreDevices": {
|
|
116
137
|
"title": "Devices to Ignore",
|
|
117
138
|
"type": "array",
|
|
139
|
+
"description": "List of device names to ignore. Device names are case-insensitive and whitespace is trimmed. Special characters like smart quotes (') are automatically normalized to regular quotes (').",
|
|
118
140
|
"items": {
|
|
119
141
|
"title": "Device Name",
|
|
120
|
-
"type": "string"
|
|
121
|
-
|
|
142
|
+
"type": "string",
|
|
143
|
+
"description": "Exact device name as it appears in SmartThings (case-insensitive)"
|
|
144
|
+
},
|
|
145
|
+
"examples": [
|
|
146
|
+
["Living Room Light", "Kitchen Switch", "Bedroom Fan"]
|
|
147
|
+
]
|
|
122
148
|
}
|
|
123
149
|
}
|
|
124
150
|
},
|
|
@@ -49,6 +49,7 @@ export declare class MultiServiceAccessory {
|
|
|
49
49
|
addComponent(componentId: string, capabilities: string[]): void;
|
|
50
50
|
isOnline(): boolean;
|
|
51
51
|
static capabilitySupported(capability: string): boolean;
|
|
52
|
+
private isTelevisionDevice;
|
|
52
53
|
refreshStatus(): Promise<boolean>;
|
|
53
54
|
forceNextStatusRefresh(): void;
|
|
54
55
|
startPollingState(pollSeconds: number, getValue: () => Promise<CharacteristicValue>, service: Service, chracteristic: WithUUID<new () => Characteristic>, targetStateCharacteristic?: WithUUID<new () => Characteristic>, getTargetState?: () => Promise<CharacteristicValue>): NodeJS.Timer | void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiServiceAccessory.d.ts","sourceRoot":"","sources":["../src/multiServiceAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACpH,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAChC,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAmB5D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"multiServiceAccessory.d.ts","sourceRoot":"","sources":["../src/multiServiceAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ const thermostatService_1 = require("./services/thermostatService");
|
|
|
24
24
|
const statelessProgrammableSwitchService_1 = require("./services/statelessProgrammableSwitchService");
|
|
25
25
|
const airConditionerService_1 = require("./services/airConditionerService");
|
|
26
26
|
const acLightingService_1 = require("./services/acLightingService");
|
|
27
|
+
const televisionService_1 = require("./services/televisionService");
|
|
27
28
|
const smartThingsCommand_1 = require("./services/smartThingsCommand");
|
|
28
29
|
// type DeviceStatus = {
|
|
29
30
|
// timestamp: number;
|
|
@@ -124,6 +125,31 @@ class MultiServiceAccessory {
|
|
|
124
125
|
};
|
|
125
126
|
this.components.push(component);
|
|
126
127
|
let capabilitiesToCover = [...capabilities];
|
|
128
|
+
// Check if this device is a TV and TV service is enabled
|
|
129
|
+
const isTelevisionEnabled = this.platform.config.enableTelevisionService !== false; // Default to true
|
|
130
|
+
const removeLegacySwitch = this.platform.config.removeLegacySwitchForTV === true; // Default to false
|
|
131
|
+
if (isTelevisionEnabled && componentId === 'main' && this.isTelevisionDevice()) {
|
|
132
|
+
this.log.debug(`Detected TV device: ${this.name}, setting up Television service`);
|
|
133
|
+
// Register the Television service with all TV-related capabilities
|
|
134
|
+
const tvCapabilities = televisionService_1.TelevisionService.getTvCapabilities().filter(cap => capabilities.includes(cap));
|
|
135
|
+
if (tvCapabilities.length > 0) {
|
|
136
|
+
this.log.debug(`Creating Television service for ${this.name} with capabilities: ${tvCapabilities.join(', ')}`);
|
|
137
|
+
const serviceInstance = new televisionService_1.TelevisionService(this.platform, this.accessory, componentId, tvCapabilities, this, this.name, component);
|
|
138
|
+
this.services.push(serviceInstance);
|
|
139
|
+
// Remove TV capabilities from the list to avoid duplicate services
|
|
140
|
+
capabilitiesToCover = capabilitiesToCover.filter(cap => !tvCapabilities.includes(cap));
|
|
141
|
+
// If configured to remove legacy switch, remove the 'switch' capability
|
|
142
|
+
if (removeLegacySwitch && tvCapabilities.includes('switch')) {
|
|
143
|
+
this.log.debug(`Removing legacy switch service for TV: ${this.name}`);
|
|
144
|
+
// 'switch' capability is already removed from capabilitiesToCover above
|
|
145
|
+
}
|
|
146
|
+
else if (tvCapabilities.includes('switch')) {
|
|
147
|
+
// Keep the switch capability for legacy compatibility
|
|
148
|
+
capabilitiesToCover.push('switch');
|
|
149
|
+
this.log.debug(`Keeping legacy switch service alongside Television service for: ${this.name}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
127
153
|
// Start with comboServices and remove used capabilities to avoid duplicated sensors.
|
|
128
154
|
// For example, there is no need to expose a temperature sensor in case of a thermostat which already exposes that charateristic.
|
|
129
155
|
MultiServiceAccessory.comboCapabilityMap
|
|
@@ -149,9 +175,15 @@ class MultiServiceAccessory {
|
|
|
149
175
|
if (Object.keys(MultiServiceAccessory.capabilityMap).find(c => c === capability)) {
|
|
150
176
|
return true;
|
|
151
177
|
}
|
|
152
|
-
|
|
153
|
-
|
|
178
|
+
// Check if it's a TV-related capability
|
|
179
|
+
if (televisionService_1.TelevisionService.getTvCapabilities().includes(capability)) {
|
|
180
|
+
return true;
|
|
154
181
|
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
// Check if this device is a Television
|
|
185
|
+
isTelevisionDevice() {
|
|
186
|
+
return televisionService_1.TelevisionService.isTelevisionDevice(this.accessory.context.device);
|
|
155
187
|
}
|
|
156
188
|
// public async refreshStatus(): Promise<boolean> {
|
|
157
189
|
// return super.refreshStatus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiServiceAccessory.js","sourceRoot":"","sources":["../src/multiServiceAccessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multiServiceAccessory.js","sourceRoot":"","sources":["../src/multiServiceAccessory.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5H,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAA0C,MAAM,yBAAyB,CAAC;AAEnG;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,qBAAqB;aAyBxD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IA1B1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,gBAAgB,CAAgB;IACjC,IAAI,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,UAAU,CAEhB;IAEF,SAAgB,UAAU,sBAGvB;IAEH,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,mBAAmB,CAA8C;gBAGvD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5H,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAA0C,MAAM,yBAAyB,CAAC;AAEnG;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,qBAAqB;aAyBxD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IA1B1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,gBAAgB,CAAgB;IACjC,IAAI,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,UAAU,CAEhB;IAEF,SAAgB,UAAU,sBAGvB;IAEH,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,mBAAmB,CAA8C;gBAGvD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA8I1B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAkBxC,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAmE1C,iBAAiB,CAAC,OAAO,KAAA,EAAE,GAAG,UAAQ;IA0BtC;;;;OAIG;IACH,eAAe,CAAC,OAAO,KAAA;IAqDvB,uBAAuB,CAAC,MAAM,KAAA,GAAG,OAAO;IAqBxC,qBAAqB,CAAC,MAAM,KAAA,EAAE,SAAS,KAAA,GAAG,qBAAqB;IAmBxD,2BAA2B,IAAI,gBAAgB;CAGvD"}
|
package/dist/platform.js
CHANGED
|
@@ -106,8 +106,10 @@ class IKHomeBridgeHomebridgePlatform {
|
|
|
106
106
|
await this.auth.handleCrashLoopRecovery();
|
|
107
107
|
// After attempting recovery, it's best to let Homebridge restart the plugin cleanly.
|
|
108
108
|
// Or, if handleCrashLoopRecovery sets a state for re-auth, allow it to proceed.
|
|
109
|
-
// For now, we'll log and let the user know. A manual restart of Homebridge might be needed
|
|
110
|
-
|
|
109
|
+
// For now, we'll log and let the user know. A manual restart of Homebridge might be needed
|
|
110
|
+
// if the auth flow doesn't auto-trigger UI.
|
|
111
|
+
this.log.warn('[CRASH LOOP RECOVERY] Token clearing initiated. Monitor logs for re-authentication steps.' +
|
|
112
|
+
' A Homebridge restart may be required.');
|
|
111
113
|
// We might want to return here to prevent further execution in a potentially unstable state until re-auth completes.
|
|
112
114
|
return;
|
|
113
115
|
}
|
|
@@ -146,7 +148,8 @@ class IKHomeBridgeHomebridgePlatform {
|
|
|
146
148
|
// Record that an initialization error occurred.
|
|
147
149
|
// If this error is one that leads to a crash and restart, it will be logged by CrashLoopManager.
|
|
148
150
|
await this.crashLoopManager.recordPotentialCrash("API_INIT_FAILURE" /* CrashErrorType.API_INIT_FAILURE */);
|
|
149
|
-
this.log.error('Platform initialization failed. This might lead to a restart.
|
|
151
|
+
this.log.error('Platform initialization failed. This might lead to a restart.' +
|
|
152
|
+
' If this persists, a crash loop recovery might be attempted.');
|
|
150
153
|
}
|
|
151
154
|
});
|
|
152
155
|
}
|
|
@@ -190,18 +193,34 @@ class IKHomeBridgeHomebridgePlatform {
|
|
|
190
193
|
}
|
|
191
194
|
let deviceName = '';
|
|
192
195
|
try {
|
|
193
|
-
//
|
|
194
|
-
deviceName = device.label;
|
|
196
|
+
// Handle special characters like right single quote (') that SmartThings uses
|
|
197
|
+
deviceName = device.label.toString().replace(/[\u2018\u2019]/g, '\'').replace(/[\u201C\u201D]/g, '"');
|
|
195
198
|
}
|
|
196
199
|
catch (error) {
|
|
197
200
|
this.log.warn(`Error getting device name for ${device.label}: ${error}`);
|
|
198
201
|
deviceName = device.label;
|
|
199
202
|
}
|
|
200
|
-
if
|
|
201
|
-
|
|
202
|
-
this.
|
|
203
|
-
this.
|
|
204
|
-
|
|
203
|
+
// Check if device should be ignored
|
|
204
|
+
if (this.config.IgnoreDevices && Array.isArray(this.config.IgnoreDevices)) {
|
|
205
|
+
this.log.debug(`Checking if device "${deviceName}" should be ignored against list: [${this.config.IgnoreDevices.join(', ')}]`);
|
|
206
|
+
const shouldIgnore = this.config.IgnoreDevices.find(ignoreName => {
|
|
207
|
+
if (typeof ignoreName !== 'string') {
|
|
208
|
+
this.log.warn(`Invalid ignore device entry: ${ignoreName} (expected string)`);
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
// Normalize both names for comparison - handle special characters
|
|
212
|
+
const normalizedIgnoreName = ignoreName.replace(/[\u2018\u2019]/g, '\'').replace(/[\u201C\u201D]/g, '"').toLowerCase().trim();
|
|
213
|
+
const normalizedDeviceName = deviceName.toLowerCase().trim();
|
|
214
|
+
this.log.debug(`Comparing normalized names: "${normalizedDeviceName}" vs "${normalizedIgnoreName}"`);
|
|
215
|
+
return normalizedIgnoreName === normalizedDeviceName;
|
|
216
|
+
});
|
|
217
|
+
if (shouldIgnore) {
|
|
218
|
+
this.log.info(`Ignoring ${device.label} because it is in the Ignore Devices list`);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else if (this.config.IgnoreDevices) {
|
|
223
|
+
this.log.warn('IgnoreDevices configuration is not an array. Expected format: ["Device Name 1", "Device Name 2"]');
|
|
205
224
|
}
|
|
206
225
|
if (!this.locationIDsToIgnore.find(locationID => device.locationId === locationID)) {
|
|
207
226
|
this.log.debug('Pushing ' + device.label);
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { IKHomeBridgeHomebridgePlatform } from '../platform';
|
|
3
|
+
import { BaseService } from './baseService';
|
|
4
|
+
import { MultiServiceAccessory } from '../multiServiceAccessory';
|
|
5
|
+
import { ShortEvent } from '../webhook/subscriptionHandler';
|
|
6
|
+
export declare class TelevisionService extends BaseService {
|
|
7
|
+
private televisionService;
|
|
8
|
+
private televisionSpeakerService;
|
|
9
|
+
private inputServices;
|
|
10
|
+
private inputSourcesMap;
|
|
11
|
+
private currentInputSource;
|
|
12
|
+
private currentVolume;
|
|
13
|
+
private isMuted;
|
|
14
|
+
constructor(platform: IKHomeBridgeHomebridgePlatform, accessory: PlatformAccessory, componentId: string, capabilities: string[], multiServiceAccessory: MultiServiceAccessory, name: string, deviceStatus: any);
|
|
15
|
+
private setupTelevisionService;
|
|
16
|
+
private setupTelevisionSpeaker;
|
|
17
|
+
private setupInputSources;
|
|
18
|
+
private loadInputSources;
|
|
19
|
+
private getInputSourceType;
|
|
20
|
+
private isCapabilitySupported;
|
|
21
|
+
private startPolling;
|
|
22
|
+
private getTelevisionActive;
|
|
23
|
+
private setTelevisionActive;
|
|
24
|
+
private getActiveIdentifier;
|
|
25
|
+
private setActiveIdentifier;
|
|
26
|
+
private setRemoteKey;
|
|
27
|
+
private getPictureMode;
|
|
28
|
+
private setPictureMode;
|
|
29
|
+
private getMute;
|
|
30
|
+
private setMute;
|
|
31
|
+
private getVolume;
|
|
32
|
+
private setVolume;
|
|
33
|
+
private setVolumeSelector;
|
|
34
|
+
private getSpeakerActive;
|
|
35
|
+
private setSpeakerActive;
|
|
36
|
+
processEvent(event: ShortEvent): void;
|
|
37
|
+
static isTelevisionDevice(device: any): boolean;
|
|
38
|
+
static getTvCapabilities(): string[];
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=televisionService.d.ts.map
|
|
@@ -0,0 +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;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;YA8BnB,YAAY;YA8DZ,cAAc;YAoCd,cAAc;YA2Bd,OAAO;YAwBP,OAAO;YAoBP,SAAS;YA4BT,SAAS;YAoBT,iBAAiB;YAmBjB,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"}
|
|
@@ -0,0 +1,591 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelevisionService = void 0;
|
|
4
|
+
const baseService_1 = require("./baseService");
|
|
5
|
+
class TelevisionService extends baseService_1.BaseService {
|
|
6
|
+
constructor(platform, accessory, componentId, capabilities, multiServiceAccessory, name, deviceStatus) {
|
|
7
|
+
super(platform, accessory, componentId, capabilities, multiServiceAccessory, name, deviceStatus);
|
|
8
|
+
this.inputServices = [];
|
|
9
|
+
this.inputSourcesMap = [];
|
|
10
|
+
this.currentInputSource = 1; // Default to first input
|
|
11
|
+
this.currentVolume = 0;
|
|
12
|
+
this.isMuted = false;
|
|
13
|
+
this.log.debug(`Adding TelevisionService to ${this.name}`);
|
|
14
|
+
// Setup the main Television service
|
|
15
|
+
this.televisionService = this.setupTelevisionService();
|
|
16
|
+
// Setup the Television Speaker service
|
|
17
|
+
this.televisionSpeakerService = this.setupTelevisionSpeaker();
|
|
18
|
+
// Setup Input Source services
|
|
19
|
+
this.setupInputSources();
|
|
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
|
|
23
|
+
this.televisionService.addLinkedService(this.televisionSpeakerService);
|
|
24
|
+
this.inputServices.forEach(inputService => {
|
|
25
|
+
this.televisionService.addLinkedService(inputService);
|
|
26
|
+
});
|
|
27
|
+
// Set the main service for BaseService compatibility
|
|
28
|
+
this.service = this.televisionService;
|
|
29
|
+
// Set the accessory category to Television for proper HomeKit presentation
|
|
30
|
+
accessory.category = 31 /* this.platform.api.hap.Categories.TELEVISION */;
|
|
31
|
+
// Start polling for updates
|
|
32
|
+
this.startPolling();
|
|
33
|
+
}
|
|
34
|
+
setupTelevisionService() {
|
|
35
|
+
const tvService = this.accessory.getService(this.platform.Service.Television) ||
|
|
36
|
+
this.accessory.addService(this.platform.Service.Television, this.name, 'Television');
|
|
37
|
+
// Set the display name
|
|
38
|
+
tvService.setCharacteristic(this.platform.Characteristic.Name, this.name);
|
|
39
|
+
// Configure the Active characteristic (power on/off)
|
|
40
|
+
tvService.getCharacteristic(this.platform.Characteristic.Active)
|
|
41
|
+
.onGet(this.getTelevisionActive.bind(this))
|
|
42
|
+
.onSet(this.setTelevisionActive.bind(this));
|
|
43
|
+
// Configure Active Identifier (current input source)
|
|
44
|
+
tvService.getCharacteristic(this.platform.Characteristic.ActiveIdentifier)
|
|
45
|
+
.onGet(this.getActiveIdentifier.bind(this))
|
|
46
|
+
.onSet(this.setActiveIdentifier.bind(this));
|
|
47
|
+
// Configure Configured Name (read-only)
|
|
48
|
+
tvService.getCharacteristic(this.platform.Characteristic.ConfiguredName)
|
|
49
|
+
.onGet(() => this.name);
|
|
50
|
+
// Configure Sleep Discovery Mode (not supported by Samsung TVs typically)
|
|
51
|
+
tvService.getCharacteristic(this.platform.Characteristic.SleepDiscoveryMode)
|
|
52
|
+
.onGet(() => this.platform.Characteristic.SleepDiscoveryMode.NOT_DISCOVERABLE);
|
|
53
|
+
// Configure Remote Key (for remote control commands)
|
|
54
|
+
tvService.getCharacteristic(this.platform.Characteristic.RemoteKey)
|
|
55
|
+
.onSet(this.setRemoteKey.bind(this));
|
|
56
|
+
// Configure Picture Mode if supported
|
|
57
|
+
if (this.isCapabilitySupported('custom.picturemode')) {
|
|
58
|
+
tvService.getCharacteristic(this.platform.Characteristic.PictureMode)
|
|
59
|
+
.onGet(this.getPictureMode.bind(this))
|
|
60
|
+
.onSet(this.setPictureMode.bind(this));
|
|
61
|
+
}
|
|
62
|
+
return tvService;
|
|
63
|
+
}
|
|
64
|
+
setupTelevisionSpeaker() {
|
|
65
|
+
const speakerService = this.accessory.getService(this.platform.Service.TelevisionSpeaker) ||
|
|
66
|
+
this.accessory.addService(this.platform.Service.TelevisionSpeaker, `${this.name} Speaker`, 'TelevisionSpeaker');
|
|
67
|
+
// Set the display name
|
|
68
|
+
speakerService.setCharacteristic(this.platform.Characteristic.Name, `${this.name} Speaker`);
|
|
69
|
+
// Configure Mute characteristic (required)
|
|
70
|
+
speakerService.getCharacteristic(this.platform.Characteristic.Mute)
|
|
71
|
+
.onGet(this.getMute.bind(this))
|
|
72
|
+
.onSet(this.setMute.bind(this));
|
|
73
|
+
// Configure Volume Control Type - specify what type of volume control is supported
|
|
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
|
|
78
|
+
speakerService.getCharacteristic(this.platform.Characteristic.Volume)
|
|
79
|
+
.setProps({
|
|
80
|
+
minValue: 0,
|
|
81
|
+
maxValue: 100,
|
|
82
|
+
minStep: 1,
|
|
83
|
+
})
|
|
84
|
+
.onGet(this.getVolume.bind(this))
|
|
85
|
+
.onSet(this.setVolume.bind(this));
|
|
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));
|
|
98
|
+
return speakerService;
|
|
99
|
+
}
|
|
100
|
+
setupInputSources() {
|
|
101
|
+
// Get input sources from device status
|
|
102
|
+
this.loadInputSources();
|
|
103
|
+
// Create InputSource services for each input
|
|
104
|
+
this.inputSourcesMap.forEach((input, index) => {
|
|
105
|
+
const inputService = this.accessory.getService(`Input-${input.id}`) ||
|
|
106
|
+
this.accessory.addService(this.platform.Service.InputSource, input.name, `Input-${input.id}`);
|
|
107
|
+
// Configure the input source
|
|
108
|
+
inputService
|
|
109
|
+
.setCharacteristic(this.platform.Characteristic.Identifier, index + 1)
|
|
110
|
+
.setCharacteristic(this.platform.Characteristic.ConfiguredName, input.name)
|
|
111
|
+
.setCharacteristic(this.platform.Characteristic.IsConfigured, this.platform.Characteristic.IsConfigured.CONFIGURED)
|
|
112
|
+
.setCharacteristic(this.platform.Characteristic.InputSourceType, this.getInputSourceType(input.id))
|
|
113
|
+
.setCharacteristic(this.platform.Characteristic.CurrentVisibilityState, this.platform.Characteristic.CurrentVisibilityState.SHOWN);
|
|
114
|
+
// Configure visibility state (can be changed by user)
|
|
115
|
+
inputService.getCharacteristic(this.platform.Characteristic.TargetVisibilityState)
|
|
116
|
+
.onGet(() => this.platform.Characteristic.TargetVisibilityState.SHOWN)
|
|
117
|
+
.onSet((value) => {
|
|
118
|
+
// Handle input visibility changes if needed
|
|
119
|
+
this.log.debug(`Input ${input.name} visibility changed to ${value}`);
|
|
120
|
+
});
|
|
121
|
+
this.inputServices.push(inputService);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
loadInputSources() {
|
|
125
|
+
var _a, _b;
|
|
126
|
+
// Try to load from Samsung's mediaInputSource capability from component status
|
|
127
|
+
const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
|
|
128
|
+
const inputSourceData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a['samsungvd.mediaInputSource'];
|
|
129
|
+
if ((_b = inputSourceData === null || inputSourceData === void 0 ? void 0 : inputSourceData.supportedInputSourcesMap) === null || _b === void 0 ? void 0 : _b.value) {
|
|
130
|
+
this.inputSourcesMap = inputSourceData.supportedInputSourcesMap.value;
|
|
131
|
+
this.log.debug(`Loaded ${this.inputSourcesMap.length} input sources for ${this.name}`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// Fallback to common input sources if not available
|
|
135
|
+
this.inputSourcesMap = [
|
|
136
|
+
{ id: 'dtv', name: 'TV' },
|
|
137
|
+
{ id: 'HDMI1', name: 'HDMI 1' },
|
|
138
|
+
{ id: 'HDMI2', name: 'HDMI 2' },
|
|
139
|
+
{ id: 'HDMI3', name: 'HDMI 3' },
|
|
140
|
+
{ id: 'HDMI4', name: 'HDMI 4' },
|
|
141
|
+
];
|
|
142
|
+
this.log.debug(`Using fallback input sources for ${this.name}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
getInputSourceType(inputId) {
|
|
146
|
+
// Map Samsung input IDs to HomeKit input source types
|
|
147
|
+
const inputTypeMappings = {
|
|
148
|
+
'dtv': this.platform.Characteristic.InputSourceType.TUNER,
|
|
149
|
+
'HDMI1': this.platform.Characteristic.InputSourceType.HDMI,
|
|
150
|
+
'HDMI2': this.platform.Characteristic.InputSourceType.HDMI,
|
|
151
|
+
'HDMI3': this.platform.Characteristic.InputSourceType.HDMI,
|
|
152
|
+
'HDMI4': this.platform.Characteristic.InputSourceType.HDMI,
|
|
153
|
+
'USB': this.platform.Characteristic.InputSourceType.USB,
|
|
154
|
+
'COMPONENT': this.platform.Characteristic.InputSourceType.COMPONENT_VIDEO,
|
|
155
|
+
'COMPOSITE': this.platform.Characteristic.InputSourceType.COMPOSITE_VIDEO,
|
|
156
|
+
};
|
|
157
|
+
return inputTypeMappings[inputId] || this.platform.Characteristic.InputSourceType.OTHER;
|
|
158
|
+
}
|
|
159
|
+
isCapabilitySupported(capability) {
|
|
160
|
+
return this.capabilities.includes(capability);
|
|
161
|
+
}
|
|
162
|
+
startPolling() {
|
|
163
|
+
// Poll for TV state updates - use TV-specific polling interval or fall back to switches/lights interval
|
|
164
|
+
let pollSeconds = 15; // default for TVs
|
|
165
|
+
if (this.platform.config.PollTelevisionsSeconds !== undefined) {
|
|
166
|
+
pollSeconds = this.platform.config.PollTelevisionsSeconds;
|
|
167
|
+
}
|
|
168
|
+
else if (this.platform.config.PollSwitchesAndLightsSeconds !== undefined) {
|
|
169
|
+
pollSeconds = this.platform.config.PollSwitchesAndLightsSeconds;
|
|
170
|
+
}
|
|
171
|
+
if (pollSeconds > 0) {
|
|
172
|
+
this.multiServiceAccessory.startPollingState(pollSeconds, this.getTelevisionActive.bind(this), this.televisionService, this.platform.Characteristic.Active);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Television Active (Power) Methods
|
|
176
|
+
async getTelevisionActive() {
|
|
177
|
+
this.log.debug(`Getting TV active state for ${this.name}`);
|
|
178
|
+
return new Promise((resolve, reject) => {
|
|
179
|
+
this.getStatus().then(success => {
|
|
180
|
+
var _a, _b;
|
|
181
|
+
if (success) {
|
|
182
|
+
try {
|
|
183
|
+
const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
|
|
184
|
+
const switchData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.switch;
|
|
185
|
+
const switchState = (_b = switchData === null || switchData === void 0 ? void 0 : switchData.switch) === null || _b === void 0 ? void 0 : _b.value;
|
|
186
|
+
const isActive = switchState === 'on';
|
|
187
|
+
this.log.debug(`TV active state for ${this.name}: ${isActive}`);
|
|
188
|
+
resolve(isActive ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
this.log.error(`Error getting TV active state for ${this.name}:`, error);
|
|
192
|
+
reject(new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
reject(new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */));
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
async setTelevisionActive(value) {
|
|
202
|
+
this.log.debug(`Setting TV active state for ${this.name} to ${value}`);
|
|
203
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
204
|
+
this.log.error(`${this.name} is offline`);
|
|
205
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
206
|
+
}
|
|
207
|
+
const command = value === this.platform.Characteristic.Active.ACTIVE ? 'on' : 'off';
|
|
208
|
+
const success = await this.multiServiceAccessory.sendCommand('switch', command);
|
|
209
|
+
if (success) {
|
|
210
|
+
this.log.debug(`TV power ${command} successful for ${this.name}`);
|
|
211
|
+
this.multiServiceAccessory.forceNextStatusRefresh();
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.log.error(`TV power command failed for ${this.name}`);
|
|
215
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Active Identifier (Input Source) Methods
|
|
219
|
+
async getActiveIdentifier() {
|
|
220
|
+
this.log.debug(`Getting active input for ${this.name}`);
|
|
221
|
+
return new Promise((resolve) => {
|
|
222
|
+
this.getStatus().then(success => {
|
|
223
|
+
var _a, _b;
|
|
224
|
+
if (success) {
|
|
225
|
+
try {
|
|
226
|
+
// Try to get current input from Samsung's mediaInputSource capability
|
|
227
|
+
const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
|
|
228
|
+
const mediaInputData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a['samsungvd.mediaInputSource'];
|
|
229
|
+
const currentInput = (_b = mediaInputData === null || mediaInputData === void 0 ? void 0 : mediaInputData.inputSource) === null || _b === void 0 ? void 0 : _b.value;
|
|
230
|
+
if (currentInput) {
|
|
231
|
+
const inputIndex = this.inputSourcesMap.findIndex(input => input.id === currentInput);
|
|
232
|
+
this.currentInputSource = inputIndex >= 0 ? inputIndex + 1 : 1;
|
|
233
|
+
}
|
|
234
|
+
this.log.debug(`Active input identifier for ${this.name}: ${this.currentInputSource}`);
|
|
235
|
+
resolve(this.currentInputSource);
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
this.log.debug(`Could not determine active input for ${this.name}, using default`);
|
|
239
|
+
resolve(this.currentInputSource);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
resolve(this.currentInputSource);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
async setActiveIdentifier(value) {
|
|
249
|
+
this.log.debug(`Setting active input for ${this.name} to ${value}`);
|
|
250
|
+
const inputIndex = Number(value) - 1;
|
|
251
|
+
if (inputIndex >= 0 && inputIndex < this.inputSourcesMap.length) {
|
|
252
|
+
const targetInput = this.inputSourcesMap[inputIndex];
|
|
253
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
254
|
+
this.log.error(`${this.name} is offline`);
|
|
255
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
256
|
+
}
|
|
257
|
+
// Send input source change command to Samsung TV
|
|
258
|
+
const success = await this.multiServiceAccessory.sendCommand('samsungvd.mediaInputSource', 'setInputSource', [targetInput.id]);
|
|
259
|
+
if (success) {
|
|
260
|
+
this.currentInputSource = Number(value);
|
|
261
|
+
this.log.debug(`Input source changed to ${targetInput.name} for ${this.name}`);
|
|
262
|
+
this.multiServiceAccessory.forceNextStatusRefresh();
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this.log.error(`Failed to change input source for ${this.name}`);
|
|
266
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
this.log.error(`Invalid input identifier ${value} for ${this.name}`);
|
|
271
|
+
throw new this.platform.api.hap.HapStatusError(-70410 /* this.platform.api.hap.HAPStatus.INVALID_VALUE_IN_REQUEST */);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// Remote Key Methods
|
|
275
|
+
async setRemoteKey(value) {
|
|
276
|
+
this.log.debug(`Received remote key command for ${this.name}: ${value}`);
|
|
277
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
278
|
+
this.log.error(`${this.name} is offline`);
|
|
279
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
280
|
+
}
|
|
281
|
+
// Map HomeKit remote keys to Samsung TV commands
|
|
282
|
+
let command = '';
|
|
283
|
+
let capability = '';
|
|
284
|
+
switch (value) {
|
|
285
|
+
case this.platform.Characteristic.RemoteKey.REWIND:
|
|
286
|
+
capability = 'mediaPlayback';
|
|
287
|
+
command = 'rewind';
|
|
288
|
+
break;
|
|
289
|
+
case this.platform.Characteristic.RemoteKey.FAST_FORWARD:
|
|
290
|
+
capability = 'mediaPlayback';
|
|
291
|
+
command = 'fastForward';
|
|
292
|
+
break;
|
|
293
|
+
case this.platform.Characteristic.RemoteKey.NEXT_TRACK:
|
|
294
|
+
// Samsung TVs don't typically support track navigation, but we can try channel up
|
|
295
|
+
capability = 'tvChannel';
|
|
296
|
+
command = 'channelUp';
|
|
297
|
+
break;
|
|
298
|
+
case this.platform.Characteristic.RemoteKey.PREVIOUS_TRACK:
|
|
299
|
+
capability = 'tvChannel';
|
|
300
|
+
command = 'channelDown';
|
|
301
|
+
break;
|
|
302
|
+
case this.platform.Characteristic.RemoteKey.ARROW_UP:
|
|
303
|
+
case this.platform.Characteristic.RemoteKey.ARROW_DOWN:
|
|
304
|
+
case this.platform.Characteristic.RemoteKey.ARROW_LEFT:
|
|
305
|
+
case this.platform.Characteristic.RemoteKey.ARROW_RIGHT:
|
|
306
|
+
case this.platform.Characteristic.RemoteKey.SELECT:
|
|
307
|
+
case this.platform.Characteristic.RemoteKey.BACK:
|
|
308
|
+
case this.platform.Characteristic.RemoteKey.EXIT:
|
|
309
|
+
case this.platform.Characteristic.RemoteKey.PLAY_PAUSE:
|
|
310
|
+
// These would require Samsung's custom remote control capabilities
|
|
311
|
+
this.log.debug(`Remote key ${value} not implemented for Samsung TV`);
|
|
312
|
+
return;
|
|
313
|
+
case this.platform.Characteristic.RemoteKey.INFORMATION:
|
|
314
|
+
// Could potentially map to info button
|
|
315
|
+
this.log.debug(`Information key pressed for ${this.name}`);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
if (command && capability) {
|
|
319
|
+
try {
|
|
320
|
+
const success = await this.multiServiceAccessory.sendCommand(capability, command);
|
|
321
|
+
if (success) {
|
|
322
|
+
this.log.debug(`Remote key command ${command} successful for ${this.name}`);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
this.log.error(`Remote key command ${command} failed for ${this.name}`);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
this.log.error(`Error sending remote key command for ${this.name}:`, error);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// Picture Mode Methods
|
|
334
|
+
async getPictureMode() {
|
|
335
|
+
this.log.debug(`Getting picture mode for ${this.name}`);
|
|
336
|
+
return new Promise((resolve) => {
|
|
337
|
+
this.getStatus().then(success => {
|
|
338
|
+
var _a, _b;
|
|
339
|
+
if (success) {
|
|
340
|
+
try {
|
|
341
|
+
const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
|
|
342
|
+
const pictureModeData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a['custom.picturemode'];
|
|
343
|
+
const pictureMode = (_b = pictureModeData === null || pictureModeData === void 0 ? void 0 : pictureModeData.pictureMode) === null || _b === void 0 ? void 0 : _b.value;
|
|
344
|
+
if (pictureMode) {
|
|
345
|
+
// Map Samsung picture modes to HomeKit values
|
|
346
|
+
const pictureModeMap = {
|
|
347
|
+
'Standard': this.platform.Characteristic.PictureMode.STANDARD,
|
|
348
|
+
'Dynamic': this.platform.Characteristic.PictureMode.VIVID,
|
|
349
|
+
'Movie (Calibrated)': this.platform.Characteristic.PictureMode.STANDARD, // Fallback to STANDARD
|
|
350
|
+
'FILMMAKER MODE': this.platform.Characteristic.PictureMode.STANDARD, // Fallback to STANDARD
|
|
351
|
+
'Eco': this.platform.Characteristic.PictureMode.STANDARD,
|
|
352
|
+
};
|
|
353
|
+
const homekitMode = pictureModeMap[pictureMode] || this.platform.Characteristic.PictureMode.STANDARD;
|
|
354
|
+
this.log.debug(`Picture mode for ${this.name}: ${pictureMode} -> ${homekitMode}`);
|
|
355
|
+
resolve(homekitMode);
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
resolve(this.platform.Characteristic.PictureMode.STANDARD);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
this.log.debug(`Could not get picture mode for ${this.name}, using default`);
|
|
363
|
+
resolve(this.platform.Characteristic.PictureMode.STANDARD);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
resolve(this.platform.Characteristic.PictureMode.STANDARD);
|
|
368
|
+
}
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
async setPictureMode(value) {
|
|
373
|
+
this.log.debug(`Setting picture mode for ${this.name} to ${value}`);
|
|
374
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
375
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
376
|
+
}
|
|
377
|
+
// Map HomeKit picture modes back to Samsung modes
|
|
378
|
+
const reversePictureModeMap = {
|
|
379
|
+
[this.platform.Characteristic.PictureMode.STANDARD]: 'Standard',
|
|
380
|
+
[this.platform.Characteristic.PictureMode.VIVID]: 'Dynamic',
|
|
381
|
+
};
|
|
382
|
+
const samsungMode = reversePictureModeMap[Number(value)];
|
|
383
|
+
if (samsungMode) {
|
|
384
|
+
const success = await this.multiServiceAccessory.sendCommand('custom.picturemode', 'setPictureMode', [samsungMode]);
|
|
385
|
+
if (success) {
|
|
386
|
+
this.log.debug(`Picture mode changed to ${samsungMode} for ${this.name}`);
|
|
387
|
+
this.multiServiceAccessory.forceNextStatusRefresh();
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
this.log.error(`Failed to change picture mode for ${this.name}`);
|
|
391
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// Speaker Methods
|
|
396
|
+
async getMute() {
|
|
397
|
+
this.log.debug(`Getting mute state for ${this.name}`);
|
|
398
|
+
return new Promise((resolve) => {
|
|
399
|
+
this.getStatus().then(success => {
|
|
400
|
+
var _a, _b;
|
|
401
|
+
if (success) {
|
|
402
|
+
try {
|
|
403
|
+
const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
|
|
404
|
+
const audioMuteData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.audioMute;
|
|
405
|
+
const muteState = (_b = audioMuteData === null || audioMuteData === void 0 ? void 0 : audioMuteData.mute) === null || _b === void 0 ? void 0 : _b.value;
|
|
406
|
+
this.isMuted = muteState === 'muted';
|
|
407
|
+
this.log.debug(`Mute state for ${this.name}: ${this.isMuted}`);
|
|
408
|
+
resolve(this.isMuted);
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
this.log.debug(`Could not get mute state for ${this.name}, using cached value`);
|
|
412
|
+
resolve(this.isMuted);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
resolve(this.isMuted);
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
async setMute(value) {
|
|
422
|
+
this.log.debug(`Setting mute state for ${this.name} to ${value}`);
|
|
423
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
424
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
425
|
+
}
|
|
426
|
+
const command = value ? 'mute' : 'unmute';
|
|
427
|
+
const success = await this.multiServiceAccessory.sendCommand('audioMute', command);
|
|
428
|
+
if (success) {
|
|
429
|
+
this.isMuted = Boolean(value);
|
|
430
|
+
this.log.debug(`Mute ${command} successful for ${this.name}`);
|
|
431
|
+
this.multiServiceAccessory.forceNextStatusRefresh();
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
this.log.error(`Mute command failed for ${this.name}`);
|
|
435
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
async getVolume() {
|
|
439
|
+
this.log.debug(`Getting volume for ${this.name}`);
|
|
440
|
+
return new Promise((resolve) => {
|
|
441
|
+
this.getStatus().then(success => {
|
|
442
|
+
var _a, _b;
|
|
443
|
+
if (success) {
|
|
444
|
+
try {
|
|
445
|
+
const component = this.multiServiceAccessory.components.find(c => c.componentId === this.componentId);
|
|
446
|
+
const audioVolumeData = (_a = component === null || component === void 0 ? void 0 : component.status) === null || _a === void 0 ? void 0 : _a.audioVolume;
|
|
447
|
+
const volume = (_b = audioVolumeData === null || audioVolumeData === void 0 ? void 0 : audioVolumeData.volume) === null || _b === void 0 ? void 0 : _b.value;
|
|
448
|
+
if (typeof volume === 'number') {
|
|
449
|
+
this.currentVolume = volume;
|
|
450
|
+
this.log.debug(`Volume for ${this.name}: ${volume}`);
|
|
451
|
+
resolve(volume);
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
resolve(this.currentVolume);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
this.log.debug(`Could not get volume for ${this.name}, using cached value`);
|
|
459
|
+
resolve(this.currentVolume);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
resolve(this.currentVolume);
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
async setVolume(value) {
|
|
469
|
+
this.log.debug(`Setting volume for ${this.name} to ${value}`);
|
|
470
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
471
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
472
|
+
}
|
|
473
|
+
const volumeLevel = Number(value);
|
|
474
|
+
const success = await this.multiServiceAccessory.sendCommand('audioVolume', 'setVolume', [volumeLevel]);
|
|
475
|
+
if (success) {
|
|
476
|
+
this.currentVolume = volumeLevel;
|
|
477
|
+
this.log.debug(`Volume set to ${volumeLevel} for ${this.name}`);
|
|
478
|
+
this.multiServiceAccessory.forceNextStatusRefresh();
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
this.log.error(`Volume command failed for ${this.name}`);
|
|
482
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
async setVolumeSelector(value) {
|
|
486
|
+
this.log.debug(`Volume selector for ${this.name}: ${value}`);
|
|
487
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
488
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
489
|
+
}
|
|
490
|
+
const command = value === this.platform.Characteristic.VolumeSelector.INCREMENT ? 'volumeUp' : 'volumeDown';
|
|
491
|
+
const success = await this.multiServiceAccessory.sendCommand('audioVolume', command);
|
|
492
|
+
if (success) {
|
|
493
|
+
this.log.debug(`Volume ${command} successful for ${this.name}`);
|
|
494
|
+
this.multiServiceAccessory.forceNextStatusRefresh();
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
this.log.error(`Volume ${command} failed for ${this.name}`);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
// Speaker Active Methods
|
|
501
|
+
async getSpeakerActive() {
|
|
502
|
+
this.log.debug(`Getting speaker active state for ${this.name}`);
|
|
503
|
+
// Speaker is active when TV is active and not muted
|
|
504
|
+
const tvActive = await this.getTelevisionActive();
|
|
505
|
+
const isMuted = await this.getMute();
|
|
506
|
+
const speakerActive = tvActive === this.platform.Characteristic.Active.ACTIVE && !isMuted;
|
|
507
|
+
return speakerActive ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE;
|
|
508
|
+
}
|
|
509
|
+
async setSpeakerActive(value) {
|
|
510
|
+
this.log.debug(`Setting speaker active state for ${this.name} to ${value}`);
|
|
511
|
+
if (!this.multiServiceAccessory.isOnline()) {
|
|
512
|
+
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
513
|
+
}
|
|
514
|
+
// For speaker active/inactive, we control the mute state
|
|
515
|
+
// Active = unmute, Inactive = mute
|
|
516
|
+
const shouldMute = value === this.platform.Characteristic.Active.INACTIVE;
|
|
517
|
+
await this.setMute(shouldMute);
|
|
518
|
+
}
|
|
519
|
+
// Event Processing
|
|
520
|
+
processEvent(event) {
|
|
521
|
+
this.log.debug(`Processing event for TV ${this.name}: ${event.capability} = ${event.value}`);
|
|
522
|
+
switch (event.capability) {
|
|
523
|
+
case 'switch':
|
|
524
|
+
const isActive = event.value === 'on';
|
|
525
|
+
this.televisionService.updateCharacteristic(this.platform.Characteristic.Active, isActive ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
|
|
526
|
+
break;
|
|
527
|
+
case 'audioMute':
|
|
528
|
+
this.isMuted = event.value === 'muted';
|
|
529
|
+
this.televisionSpeakerService.updateCharacteristic(this.platform.Characteristic.Mute, this.isMuted);
|
|
530
|
+
// Update speaker active state based on mute status
|
|
531
|
+
this.televisionSpeakerService.updateCharacteristic(this.platform.Characteristic.Active, !this.isMuted ? this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE);
|
|
532
|
+
break;
|
|
533
|
+
case 'audioVolume':
|
|
534
|
+
if (typeof event.value === 'number') {
|
|
535
|
+
this.currentVolume = event.value;
|
|
536
|
+
if (this.televisionSpeakerService.testCharacteristic(this.platform.Characteristic.Volume)) {
|
|
537
|
+
this.televisionSpeakerService.updateCharacteristic(this.platform.Characteristic.Volume, this.currentVolume);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
break;
|
|
541
|
+
case 'samsungvd.mediaInputSource':
|
|
542
|
+
if (event.attribute === 'inputSource') {
|
|
543
|
+
const inputIndex = this.inputSourcesMap.findIndex(input => input.id === event.value);
|
|
544
|
+
if (inputIndex >= 0) {
|
|
545
|
+
this.currentInputSource = inputIndex + 1;
|
|
546
|
+
this.televisionService.updateCharacteristic(this.platform.Characteristic.ActiveIdentifier, this.currentInputSource);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
break;
|
|
550
|
+
case 'custom.picturemode':
|
|
551
|
+
if (event.attribute === 'pictureMode' && this.televisionService.testCharacteristic(this.platform.Characteristic.PictureMode)) {
|
|
552
|
+
// Update picture mode if the service supports it
|
|
553
|
+
this.getPictureMode().then(mode => {
|
|
554
|
+
this.televisionService.updateCharacteristic(this.platform.Characteristic.PictureMode, mode);
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
break;
|
|
558
|
+
default:
|
|
559
|
+
this.log.debug(`Unhandled TV event capability: ${event.capability}`);
|
|
560
|
+
break;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
// Static method to detect if a device is a TV
|
|
564
|
+
static isTelevisionDevice(device) {
|
|
565
|
+
var _a, _b, _c, _d;
|
|
566
|
+
// Check for Samsung TV-specific indicators
|
|
567
|
+
const hasDeviceCategory = (_a = device.components) === null || _a === void 0 ? void 0 : _a.some(component => { var _a; return (_a = component.capabilities) === null || _a === void 0 ? void 0 : _a.some(cap => cap.id === 'samsungvd.deviceCategory'); });
|
|
568
|
+
const hasMediaInput = (_b = device.components) === null || _b === void 0 ? void 0 : _b.some(component => { var _a; return (_a = component.capabilities) === null || _a === void 0 ? void 0 : _a.some(cap => cap.id === 'samsungvd.mediaInputSource'); });
|
|
569
|
+
const hasAudioCapabilities = (_c = device.components) === null || _c === void 0 ? void 0 : _c.some(component => { var _a; return (_a = component.capabilities) === null || _a === void 0 ? void 0 : _a.some(cap => cap.id === 'audioVolume' || cap.id === 'audioMute'); });
|
|
570
|
+
const hasTvChannel = (_d = device.components) === null || _d === void 0 ? void 0 : _d.some(component => { var _a; return (_a = component.capabilities) === null || _a === void 0 ? void 0 : _a.some(cap => cap.id === 'tvChannel'); });
|
|
571
|
+
// A device is considered a TV if it has multiple TV-specific capabilities
|
|
572
|
+
const tvIndicatorCount = [hasDeviceCategory, hasMediaInput, hasAudioCapabilities, hasTvChannel].filter(Boolean).length;
|
|
573
|
+
return tvIndicatorCount >= 2; // Require at least 2 TV-specific capability groups
|
|
574
|
+
}
|
|
575
|
+
// Static method to get TV-related capabilities for the capability map
|
|
576
|
+
static getTvCapabilities() {
|
|
577
|
+
return [
|
|
578
|
+
'switch', // Power control
|
|
579
|
+
'samsungvd.deviceCategory',
|
|
580
|
+
'samsungvd.mediaInputSource',
|
|
581
|
+
'audioVolume',
|
|
582
|
+
'audioMute',
|
|
583
|
+
'tvChannel',
|
|
584
|
+
'mediaPlayback',
|
|
585
|
+
'custom.picturemode',
|
|
586
|
+
'custom.soundmode'
|
|
587
|
+
];
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
exports.TelevisionService = TelevisionService;
|
|
591
|
+
//# sourceMappingURL=televisionService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"televisionService.js","sourceRoot":"","sources":["../../src/services/televisionService.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAI5C,MAAa,iBAAkB,SAAQ,yBAAW;IAShD,YACE,QAAwC,EACxC,SAA4B,EAC5B,WAAmB,EACnB,YAAsB,EACtB,qBAA4C,EAC5C,IAAY,EACZ,YAAY;QAEZ,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAf3F,kBAAa,GAAc,EAAE,CAAC;QAC9B,oBAAe,GAAsC,EAAE,CAAC;QACxD,uBAAkB,GAAG,CAAC,CAAC,CAAC,yBAAyB;QACjD,kBAAa,GAAG,CAAC,CAAC;QAClB,YAAO,GAAG,KAAK,CAAC;QAatB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D,oCAAoC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEvD,uCAAuC;QACvC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9D,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,0DAA0D;QAC1D,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;QAE3C,2FAA2F;QAC3F,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACxC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,qDAAqD;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEtC,2EAA2E;QAC3E,SAAS,CAAC,QAAQ,uDAA8C,CAAC;QAEjE,4BAA4B;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,sBAAsB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEvF,uBAAuB;QACvB,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,qDAAqD;QACrD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;aAC7D,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9C,qDAAqD;QACrD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC;aACvE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9C,wCAAwC;QACxC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aACrE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,0EAA0E;QAC1E,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;aACzE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAEjF,qDAAqD;QACrD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;aAChE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvC,sCAAsC;QACtC,IAAI,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC;iBAClE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,sBAAsB;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACvF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAElH,uBAAuB;QACvB,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC;QAE5F,2CAA2C;QAC3C,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;aAChE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElC,mFAAmF;QACnF,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sCAAsC;YACtC,cAAc,CAAC,iBAAiB,CAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAC9C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CACxD,CAAC;YAEF,wDAAwD;YACxD,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;iBAClE,QAAQ,CAAC;gBACR,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,GAAG;gBACb,OAAO,EAAE,CAAC;aACX,CAAC;iBACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,cAAc,CAAC,iBAAiB,CAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAC9C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CACxD,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC1E,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5C,yDAAyD;QACzD,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;aAClE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3C,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,iBAAiB;QACvB,uCAAuC;QACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,6CAA6C;QAC7C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC;gBACjE,IAAI,CAAC,SAAS,CAAC,UAAU,CACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EACjC,KAAK,CAAC,IAAI,EACV,SAAS,KAAK,CAAC,EAAE,EAAE,CACpB,CAAC;YAEJ,6BAA6B;YAC7B,YAAY;iBACT,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC;iBACrE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC;iBAC1E,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC;iBAClH,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBAClG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAErI,sDAAsD;YACtD,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;iBAC/E,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC;iBACrE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,4CAA4C;gBAC5C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,0BAA0B,KAAK,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB;;QACtB,+EAA+E;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAG,4BAA4B,CAAQ,CAAC;QAEjF,IAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,wBAAwB,0CAAE,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,wBAAwB,CAAC,KAAK,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,MAAM,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,IAAI,CAAC,eAAe,GAAG;gBACrB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;gBACzB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aAChC,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAe;QACxC,sDAAsD;QACtD,MAAM,iBAAiB,GAAG;YACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK;YACzD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI;YAC1D,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI;YAC1D,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI;YAC1D,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI;YAC1D,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG;YACvD,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,eAAe;YACzE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,eAAe;SAC1E,CAAC;QAEF,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC;IAC1F,CAAC;IAEO,qBAAqB,CAAC,UAAkB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAEO,YAAY;QAClB,wGAAwG;QACxG,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC,kBAAkB;QACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC9D,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,KAAK,SAAS,EAAE,CAAC;YAC3E,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC;QAClE,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAC1C,WAAW,EACX,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oCAAoC;IAC5B,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;wBACtG,MAAM,UAAU,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,MAAa,CAAC;wBACpD,MAAM,WAAW,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,KAAK,CAAC;wBAC9C,MAAM,QAAQ,GAAG,WAAW,KAAK,IAAI,CAAC;wBACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC;wBAChE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAChH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;wBACzE,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC,CAAC;oBAClH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC,CAAC;gBAClH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAA0B;QAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;YAC1C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEhF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;IACH,CAAC;IAED,2CAA2C;IACnC,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAExD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,sEAAsE;wBACtE,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;wBACtG,MAAM,cAAc,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAG,4BAA4B,CAAQ,CAAC;wBAChF,MAAM,YAAY,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,0CAAE,KAAK,CAAC;wBACxD,IAAI,YAAY,EAAE,CAAC;4BACjB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;4BACtF,IAAI,CAAC,kBAAkB,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjE,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;wBACvF,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACnC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;wBACnF,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAA0B;QAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;gBAC1C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;YAChH,CAAC;YAED,iDAAiD;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,4BAA4B,EAAE,gBAAgB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAE/H,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,WAAW,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;YAChH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,uEAA0D,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,qBAAqB;IACb,KAAK,CAAC,YAAY,CAAC,KAA0B;QACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;YAC1C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,iDAAiD;QACjD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM;gBAChD,UAAU,GAAG,eAAe,CAAC;gBAC7B,OAAO,GAAG,QAAQ,CAAC;gBACnB,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY;gBACtD,UAAU,GAAG,eAAe,CAAC;gBAC7B,OAAO,GAAG,aAAa,CAAC;gBACxB,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU;gBACpD,kFAAkF;gBAClF,UAAU,GAAG,WAAW,CAAC;gBACzB,OAAO,GAAG,WAAW,CAAC;gBACtB,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc;gBACxD,UAAU,GAAG,WAAW,CAAC;gBACzB,OAAO,GAAG,aAAa,CAAC;gBACxB,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;YACrD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC;YACvD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC;YACvD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC;YACxD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;YACnD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;YACjD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;YACjD,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU;gBACpD,mEAAmE;gBACnE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,iCAAiC,CAAC,CAAC;gBACrE,OAAO;YACT,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW;gBACrD,uCAAuC;gBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO;QACX,CAAC;QAED,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAClF,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,OAAO,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,OAAO,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACf,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAExD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;wBACtG,MAAM,eAAe,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAG,oBAAoB,CAAQ,CAAC;wBACzE,MAAM,WAAW,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,0CAAE,KAAK,CAAC;wBACxD,IAAI,WAAW,EAAE,CAAC;4BAChB,8CAA8C;4BAC9C,MAAM,cAAc,GAAG;gCACrB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ;gCAC7D,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK;gCACzD,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,uBAAuB;gCAChG,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,uBAAuB;gCAC5F,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ;6BACzD,CAAC;4BACF,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC;4BACrG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,KAAK,WAAW,OAAO,WAAW,EAAE,CAAC,CAAC;4BAClF,OAAO,CAAC,WAAW,CAAC,CAAC;wBACvB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC7D,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;wBAC7E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAA0B;QACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,kDAAkD;QAClD,MAAM,qBAAqB,GAAG;YAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,UAAU;YAC/D,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS;SAC5D,CAAC;QAEF,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACpH,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,WAAW,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;YAChH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IACV,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;wBACtG,MAAM,aAAa,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,SAAgB,CAAC;wBAC1D,MAAM,SAAS,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,0CAAE,KAAK,CAAC;wBAC7C,IAAI,CAAC,OAAO,GAAG,SAAS,KAAK,OAAO,CAAC;wBACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC/D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;wBAChF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAA0B;QAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,OAAO,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAElD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;wBACtG,MAAM,eAAe,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,WAAkB,CAAC;wBAC9D,MAAM,MAAM,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,0CAAE,KAAK,CAAC;wBAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC/B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;4BAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;4BACrD,OAAO,CAAC,MAAM,CAAC,CAAC;wBAClB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;wBAC5E,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAA0B;QAChD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAExG,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,WAAW,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAA0B;QACxD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAErF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,OAAO,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,OAAO,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,yBAAyB;IACjB,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhE,oDAAoD;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErC,MAAM,aAAa,GAAG,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC;QAC1F,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;IACnH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAA0B;QACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,4EAA+D,CAAC;QAChH,CAAC;QAED,yDAAyD;QACzD,mCAAmC;QACnC,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1E,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,mBAAmB;IACZ,YAAY,CAAC,KAAiB;QACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAE7F,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,QAAQ;gBACX,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;gBACtC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CACzC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CACrG,CAAC;gBACF,MAAM;YAER,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;gBACvC,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAChD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EACjC,IAAI,CAAC,OAAO,CACb,CAAC;gBACF,mDAAmD;gBACnD,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAChD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAC1G,CAAC;gBACF,MAAM;YAER,KAAK,aAAa;gBAChB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;oBACjC,IAAI,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC1F,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAChD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,IAAI,CAAC,aAAa,CACnB,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,4BAA4B;gBAC/B,IAAI,KAAK,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;oBACtC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrF,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;wBACpB,IAAI,CAAC,kBAAkB,GAAG,UAAU,GAAG,CAAC,CAAC;wBACzC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CACzC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC7C,IAAI,CAAC,kBAAkB,CACxB,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,oBAAoB;gBACvB,IAAI,KAAK,CAAC,SAAS,KAAK,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7H,iDAAiD;oBACjD,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBAC9F,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER;gBACE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACrE,MAAM;QACV,CAAC;IACH,CAAC;IAED,8CAA8C;IACvC,MAAM,CAAC,kBAAkB,CAAC,MAAW;;QAC1C,2CAA2C;QAC3C,MAAM,iBAAiB,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAC5D,OAAA,MAAA,SAAS,CAAC,YAAY,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,0BAA0B,CAAC,CAAA,EAAA,CAC3E,CAAC;QAEF,MAAM,aAAa,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WACxD,OAAA,MAAA,SAAS,CAAC,YAAY,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,4BAA4B,CAAC,CAAA,EAAA,CAC7E,CAAC;QAEF,MAAM,oBAAoB,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAC/D,OAAA,MAAA,SAAS,CAAC,YAAY,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,aAAa,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,CAAA,EAAA,CACxF,CAAC;QAEF,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WACvD,OAAA,MAAA,SAAS,CAAC,YAAY,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,CAAA,EAAA,CAC5D,CAAC;QAEF,0EAA0E;QAC1E,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAEvH,OAAO,gBAAgB,IAAI,CAAC,CAAC,CAAC,mDAAmD;IACnF,CAAC;IAED,sEAAsE;IAC/D,MAAM,CAAC,iBAAiB;QAC7B,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,0BAA0B;YAC1B,4BAA4B;YAC5B,aAAa;YACb,WAAW;YACX,WAAW;YACX,eAAe;YACf,oBAAoB;YACpB,kBAAkB;SACnB,CAAC;IACJ,CAAC;CACF;AA5rBD,8CA4rBC"}
|
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.
|
|
5
|
+
"version": "1.0.16",
|
|
6
6
|
"description": "Connects SmartThings devices to Homebridge. Automatically discovers devices.",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"repository": {
|
package/README_MIGRATION.md
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
# SmartThings Plugin - Homebridge v2.0 Migration
|
|
2
|
-
|
|
3
|
-
## 🎉 Migration Complete!
|
|
4
|
-
|
|
5
|
-
The SmartThings Homebridge plugin has been successfully updated to support Homebridge v2.0!
|
|
6
|
-
|
|
7
|
-
## What's New
|
|
8
|
-
|
|
9
|
-
### ✅ Homebridge v2.0 Support
|
|
10
|
-
- **Compatible with**: Homebridge v1.6.0+ and v2.0.0-beta.0+
|
|
11
|
-
- **Backward Compatible**: All existing functionality preserved
|
|
12
|
-
- **No Breaking Changes**: Existing users can upgrade safely
|
|
13
|
-
|
|
14
|
-
### ✅ HAP-NodeJS v1 Compliance
|
|
15
|
-
- **BatteryService Updated**: Renamed to `Battery` (required by HAP-NodeJS v1)
|
|
16
|
-
- **Modern API Usage**: Already using modern Homebridge API patterns
|
|
17
|
-
- **No Deprecated Code**: Clean, future-proof implementation
|
|
18
|
-
|
|
19
|
-
### ✅ Enhanced Error Handling
|
|
20
|
-
- **Crash Loop Recovery**: Improved error handling and recovery mechanisms
|
|
21
|
-
- **Better Logging**: Enhanced debugging and troubleshooting capabilities
|
|
22
|
-
|
|
23
|
-
## For Users
|
|
24
|
-
|
|
25
|
-
### Current Homebridge v1.x Users
|
|
26
|
-
- **No Action Required**: Your plugin will continue to work exactly as before
|
|
27
|
-
- **Safe to Update**: You can update to this version without any issues
|
|
28
|
-
- **Future Ready**: You'll be ready when Homebridge v2.0 is released
|
|
29
|
-
|
|
30
|
-
### Homebridge v2.0 Beta Users
|
|
31
|
-
- **Ready to Test**: Plugin now supports Homebridge v2.0.0-beta.0
|
|
32
|
-
- **Full Functionality**: All features work as expected
|
|
33
|
-
- **Report Issues**: If you encounter any issues, please report them
|
|
34
|
-
|
|
35
|
-
## Technical Changes
|
|
36
|
-
|
|
37
|
-
### What Was Updated
|
|
38
|
-
1. **BatteryService → Battery**: Class name change (required by HAP-NodeJS v1)
|
|
39
|
-
2. **Package.json**: Added Homebridge v2.0.0-beta.0 support
|
|
40
|
-
3. **Error Handling**: Added crash loop recovery method
|
|
41
|
-
4. **Documentation**: Comprehensive migration documentation
|
|
42
|
-
|
|
43
|
-
### What Was Already Compliant
|
|
44
|
-
- ✅ Characteristic enum access patterns
|
|
45
|
-
- ✅ No deprecated method usage
|
|
46
|
-
- ✅ Modern API patterns
|
|
47
|
-
- ✅ TypeScript compliance
|
|
48
|
-
|
|
49
|
-
## Testing Status
|
|
50
|
-
|
|
51
|
-
### ✅ Completed
|
|
52
|
-
- **Build**: TypeScript compilation successful
|
|
53
|
-
- **Lint**: Code quality checks passed
|
|
54
|
-
- **Compatibility**: Backward compatibility verified
|
|
55
|
-
- **Documentation**: Migration guides created
|
|
56
|
-
|
|
57
|
-
### 🔄 Recommended Testing
|
|
58
|
-
- **Installation**: Test with Homebridge v2.0.0-beta.0
|
|
59
|
-
- **Authentication**: Verify OAuth flow works
|
|
60
|
-
- **Device Discovery**: Test device registration
|
|
61
|
-
- **Real-time Updates**: Test webhook functionality
|
|
62
|
-
- **All Device Types**: Test switches, lights, thermostats, sensors, etc.
|
|
63
|
-
|
|
64
|
-
## Migration Documents
|
|
65
|
-
|
|
66
|
-
### 📋 Planning Documents
|
|
67
|
-
- `HOMEBRIDGE_V2_MIGRATION_PLAN.md` - Comprehensive migration plan
|
|
68
|
-
- `MIGRATION_TASKS.md` - Detailed task breakdown
|
|
69
|
-
- `MIGRATION_PROGRESS.md` - Progress tracking
|
|
70
|
-
|
|
71
|
-
### 📊 Summary Documents
|
|
72
|
-
- `MIGRATION_SUMMARY.md` - Technical summary of changes
|
|
73
|
-
- `README_MIGRATION.md` - This user-friendly guide
|
|
74
|
-
|
|
75
|
-
## Next Steps
|
|
76
|
-
|
|
77
|
-
### For Users
|
|
78
|
-
1. **Update Plugin**: Install the latest version
|
|
79
|
-
2. **Test Functionality**: Verify all devices work as expected
|
|
80
|
-
3. **Monitor Logs**: Watch for any issues
|
|
81
|
-
4. **Report Issues**: If problems occur, report with logs
|
|
82
|
-
|
|
83
|
-
### For Developers
|
|
84
|
-
1. **Test with Beta**: Test with Homebridge v2.0.0-beta.0
|
|
85
|
-
2. **Monitor Updates**: Watch for Homebridge v2.0 final release
|
|
86
|
-
3. **Update Documentation**: Update when v2.0 is stable
|
|
87
|
-
4. **Remove Beta Support**: Remove `-beta.0` when v2.0 is released
|
|
88
|
-
|
|
89
|
-
## Risk Assessment
|
|
90
|
-
|
|
91
|
-
### ✅ Low Risk
|
|
92
|
-
- **BatteryService Rename**: Simple refactoring, well-tested
|
|
93
|
-
- **Package.json Update**: Standard version update
|
|
94
|
-
- **Error Handling**: Added with proper safeguards
|
|
95
|
-
|
|
96
|
-
### ⚠️ Medium Risk
|
|
97
|
-
- **Homebridge v2.0 Testing**: Need testing with actual beta version
|
|
98
|
-
- **Storage API**: May need updates in future versions
|
|
99
|
-
|
|
100
|
-
## Support
|
|
101
|
-
|
|
102
|
-
### Getting Help
|
|
103
|
-
- **GitHub Issues**: Report bugs and feature requests
|
|
104
|
-
- **Documentation**: Check the migration documents
|
|
105
|
-
- **Community**: Homebridge community forums
|
|
106
|
-
|
|
107
|
-
### Known Issues
|
|
108
|
-
- None currently identified
|
|
109
|
-
- All existing functionality preserved
|
|
110
|
-
- No breaking changes introduced
|
|
111
|
-
|
|
112
|
-
## Conclusion
|
|
113
|
-
|
|
114
|
-
The SmartThings Homebridge plugin is now **ready for Homebridge v2.0**!
|
|
115
|
-
|
|
116
|
-
- ✅ **Migration Complete**: All required changes implemented
|
|
117
|
-
- ✅ **Backward Compatible**: Existing users unaffected
|
|
118
|
-
- ✅ **Future Ready**: Ready for Homebridge v2.0 release
|
|
119
|
-
- ✅ **Well Documented**: Comprehensive migration guides provided
|
|
120
|
-
|
|
121
|
-
**Status**: Ready for production use and Homebridge v2.0 testing
|
|
122
|
-
**Risk Level**: Low
|
|
123
|
-
**Compatibility**: Full backward and forward compatibility
|