@o-lukas/homebridge-smartthings-tv 2.4.0 → 2.6.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pre-commit-config.yaml +4 -4
- package/README.md +7 -2
- package/config.schema.json +61 -3
- package/dist/smartThingsAccessory.js +11 -2
- package/dist/smartThingsAccessory.js.map +1 -1
- package/dist/smartThingsPlatform.d.ts +27 -4
- package/dist/smartThingsPlatform.js +79 -7
- package/dist/smartThingsPlatform.js.map +1 -1
- package/dist/tvAccessory.d.ts +10 -5
- package/dist/tvAccessory.js +50 -11
- package/dist/tvAccessory.js.map +1 -1
- package/homebridge-ui/public/index.html +294 -0
- package/homebridge-ui/server.js +51 -0
- package/package.json +12 -10
package/.pre-commit-config.yaml
CHANGED
|
@@ -4,18 +4,18 @@ repos:
|
|
|
4
4
|
- id: end-of-file-fixer
|
|
5
5
|
- id: trailing-whitespace
|
|
6
6
|
repo: https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
-
rev:
|
|
7
|
+
rev: v5.0.0
|
|
8
8
|
- hooks:
|
|
9
9
|
- files: \.[jt]sx?$
|
|
10
10
|
id: eslint
|
|
11
11
|
types:
|
|
12
12
|
- file
|
|
13
13
|
repo: https://github.com/pre-commit/mirrors-eslint
|
|
14
|
-
rev:
|
|
14
|
+
rev: v9.19.0
|
|
15
15
|
- hooks:
|
|
16
16
|
- id: commitizen
|
|
17
17
|
- id: commitizen-branch
|
|
18
18
|
stages:
|
|
19
|
-
- push
|
|
19
|
+
- pre-push
|
|
20
20
|
repo: https://github.com/commitizen-tools/commitizen
|
|
21
|
-
rev:
|
|
21
|
+
rev: v4.1.1
|
package/README.md
CHANGED
|
@@ -78,7 +78,8 @@ The following snippets shows all available properties you can use for the plugin
|
|
|
78
78
|
"xxxx"
|
|
79
79
|
]
|
|
80
80
|
}
|
|
81
|
-
]
|
|
81
|
+
],
|
|
82
|
+
"validateApplications": false
|
|
82
83
|
},
|
|
83
84
|
{
|
|
84
85
|
"deviceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
@@ -120,7 +121,7 @@ Enable debug logging for cyclic calls (e.g. polling).
|
|
|
120
121
|
|
|
121
122
|
### registerApplications
|
|
122
123
|
|
|
123
|
-
To use installed application as input sources, a [predefined list of applications](./src/
|
|
124
|
+
To use installed application as input sources, a [predefined list of applications](./src/tvApps.ts) will be used.
|
|
124
125
|
|
|
125
126
|
> [!NOTE]
|
|
126
127
|
> Not implemented for SoundBars.
|
|
@@ -222,6 +223,10 @@ The application's name.
|
|
|
222
223
|
|
|
223
224
|
The application's possible ids. Since some applications have different ids for different versions of TVs you can provide a list here so the plugin will try every id and use the one that's working.
|
|
224
225
|
|
|
226
|
+
#### validateApplications
|
|
227
|
+
|
|
228
|
+
Validates the list of applications by trying to open them when starting the plugin. This list will be checked for availability at the TV(s) and eventually be registered as input sources. Make sure to have the TV(s) turned on when starting your instance as this functionality requires your TV(s) be turned on to determine whether an application is installed or not. On startup the applications will be opened to determine if they are available. Do not use your TV until the input source is being changed back to the first one (usually Live TV). Afterwards the list of working applications will be written to this device list of applications. Note that this flag will be set to off after validation the application list. So check will only run on first start or manual reset.
|
|
229
|
+
|
|
225
230
|
#### category
|
|
226
231
|
|
|
227
232
|
The icon to be used as a hint to iOS clients about what type of Accessory this represents. Can be used to override default values.
|
package/config.schema.json
CHANGED
|
@@ -2,14 +2,66 @@
|
|
|
2
2
|
"pluginAlias": "smartthings-tv",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
+
"customUi": true,
|
|
5
6
|
"schema": {
|
|
6
7
|
"type": "object",
|
|
7
8
|
"properties": {
|
|
9
|
+
"tokenType": {
|
|
10
|
+
"title": "SmartThings authentication type",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"required": true,
|
|
13
|
+
"description": "The authentication type to be used for SmartThings API.",
|
|
14
|
+
"default": "pat",
|
|
15
|
+
"oneOf": [
|
|
16
|
+
{
|
|
17
|
+
"title": "PAT",
|
|
18
|
+
"enum": [
|
|
19
|
+
"pat"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"title": "OAuth",
|
|
24
|
+
"enum": [
|
|
25
|
+
"oauth"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
8
30
|
"token": {
|
|
9
|
-
"title": "SmartThings
|
|
31
|
+
"title": "SmartThings personal access token",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": true,
|
|
34
|
+
"description": "The SmartThings API token is needed to authenticate the requests sent to the SmartThings API. To generate a PAT open https://account.smartthings.com/tokens and generate a new one (make sure at least devices is selected).",
|
|
35
|
+
"condition": {
|
|
36
|
+
"functionBody": "return model.tokenType === \"pat\";"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"oauthClientId": {
|
|
40
|
+
"title": "OAuth client id",
|
|
41
|
+
"type": "string",
|
|
42
|
+
"required": true,
|
|
43
|
+
"description": "",
|
|
44
|
+
"condition": {
|
|
45
|
+
"functionBody": "return model.tokenType === \"oauth\";"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"oauthClientSecret": {
|
|
49
|
+
"title": "OAuth client secret",
|
|
50
|
+
"type": "string",
|
|
51
|
+
"required": true,
|
|
52
|
+
"description": "",
|
|
53
|
+
"condition": {
|
|
54
|
+
"functionBody": "return model.tokenType === \"oauth\";"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"oauthRefreshToken": {
|
|
58
|
+
"title": "OAuth refresh token",
|
|
10
59
|
"type": "string",
|
|
11
60
|
"required": true,
|
|
12
|
-
"description": "
|
|
61
|
+
"description": "",
|
|
62
|
+
"condition": {
|
|
63
|
+
"functionBody": "return model.tokenType === \"oauth\";"
|
|
64
|
+
}
|
|
13
65
|
},
|
|
14
66
|
"capabilityLogging": {
|
|
15
67
|
"title": "Capability Logging",
|
|
@@ -27,7 +79,7 @@
|
|
|
27
79
|
"title": "Register applications",
|
|
28
80
|
"type": "boolean",
|
|
29
81
|
"required": false,
|
|
30
|
-
"description": "To use installed application as input sources, a predefined list of applications will be used.
|
|
82
|
+
"description": "To use installed application as input sources, a predefined list of applications will be used."
|
|
31
83
|
},
|
|
32
84
|
"registerPictureModes": {
|
|
33
85
|
"title": "Register picture modes",
|
|
@@ -155,6 +207,12 @@
|
|
|
155
207
|
"required": false,
|
|
156
208
|
"description": "Overrides the default application mapping list to add custom applications."
|
|
157
209
|
},
|
|
210
|
+
"validateApplications": {
|
|
211
|
+
"title": "Validate application list",
|
|
212
|
+
"type": "boolean",
|
|
213
|
+
"description": "Validates the list of applications by trying to open them when starting the plugin. This list will be checked for availability at the TV(s) and eventually be registered as input sources. Make sure to have the TV(s) turned on when starting your instance as this functionality requires your TV(s) be turned on to determine whether an application is installed or not. On startup the applications will be opened to determine if they are available. Do not use your TV until the input source is being changed back to the first one (usually Live TV). Afterwards the list of working applications will be written to this device list of applications. Note that this flag will be set to off after validation the application list. So check will only run on first start or manual reset.",
|
|
214
|
+
"default": true
|
|
215
|
+
},
|
|
158
216
|
"category": {
|
|
159
217
|
"title": "Display icon",
|
|
160
218
|
"type": "integer",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CustomCapabilityStatus } from '@smartthings/core-sdk';
|
|
2
|
+
import axios from 'axios';
|
|
2
3
|
/**
|
|
3
4
|
* Class implements a base class for SmartThings accessories.
|
|
4
5
|
*/
|
|
@@ -44,7 +45,11 @@ export class SmartThingsAccessory {
|
|
|
44
45
|
if (error instanceof Error) {
|
|
45
46
|
errorMessage = error.message;
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
+
let statusCode = -1;
|
|
49
|
+
if (axios.isAxiosError(error)) {
|
|
50
|
+
statusCode = error.response?.status ?? -1;
|
|
51
|
+
}
|
|
52
|
+
this.logError('Error when executing %s of capability %s: [%s] %s', command, capability, statusCode, errorMessage);
|
|
48
53
|
throw new this.platform.api.hap.HapStatusError(-70402 /* this.platform.api.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
49
54
|
}
|
|
50
55
|
}
|
|
@@ -69,7 +74,11 @@ export class SmartThingsAccessory {
|
|
|
69
74
|
if (error instanceof Error) {
|
|
70
75
|
errorMessage = error.message;
|
|
71
76
|
}
|
|
72
|
-
|
|
77
|
+
let statusCode = -1;
|
|
78
|
+
if (axios.isAxiosError(error)) {
|
|
79
|
+
statusCode = error.response?.status ?? -1;
|
|
80
|
+
}
|
|
81
|
+
this.logError('Error when getting status of %s: [%s] %s', capability, statusCode, errorMessage);
|
|
73
82
|
return null;
|
|
74
83
|
}
|
|
75
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartThingsAccessory.js","sourceRoot":"","sources":["../src/smartThingsAccessory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"smartThingsAccessory.js","sourceRoot":"","sources":["../src/smartThingsAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
|
|
2
|
-
import { SmartThingsClient, Device, Component } from '@smartthings/core-sdk';
|
|
2
|
+
import { SmartThingsClient, Device, Component, RefreshTokenStore, AuthData, RefreshData, Authenticator } from '@smartthings/core-sdk';
|
|
3
3
|
/**
|
|
4
4
|
* Class implements the configured Device to mac and ip address mappings.
|
|
5
5
|
*/
|
|
@@ -16,6 +16,7 @@ declare class DeviceMapping {
|
|
|
16
16
|
name: string;
|
|
17
17
|
ids: [string];
|
|
18
18
|
}];
|
|
19
|
+
readonly validateApplications: boolean;
|
|
19
20
|
readonly infoKey: string;
|
|
20
21
|
readonly category: number;
|
|
21
22
|
constructor(deviceId: string, nameOverride: string, macAddress: string, ipAddress: string, inputSources: [{
|
|
@@ -24,23 +25,45 @@ declare class DeviceMapping {
|
|
|
24
25
|
}], applications: [{
|
|
25
26
|
name: string;
|
|
26
27
|
ids: [string];
|
|
27
|
-
}], infoKey: string, category: number);
|
|
28
|
+
}], validateApplications: boolean, infoKey: string, category: number);
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Class implements the plugin platform.
|
|
31
32
|
*/
|
|
32
|
-
export declare class SmartThingsPlatform implements DynamicPlatformPlugin {
|
|
33
|
+
export declare class SmartThingsPlatform implements DynamicPlatformPlugin, RefreshTokenStore {
|
|
33
34
|
readonly log: Logger;
|
|
34
35
|
readonly config: PlatformConfig;
|
|
35
36
|
readonly api: API;
|
|
36
37
|
readonly Service: typeof Service;
|
|
37
38
|
readonly Characteristic: typeof Characteristic;
|
|
39
|
+
private configPath;
|
|
40
|
+
private authData;
|
|
38
41
|
readonly accessories: PlatformAccessory[];
|
|
39
42
|
constructor(log: Logger, config: PlatformConfig, api: API);
|
|
43
|
+
/**
|
|
44
|
+
* @inheritdoc
|
|
45
|
+
*/
|
|
46
|
+
getRefreshData(): Promise<RefreshData>;
|
|
47
|
+
/**
|
|
48
|
+
* @inheritdoc
|
|
49
|
+
*/
|
|
50
|
+
putAuthData(data: AuthData): Promise<void>;
|
|
40
51
|
/**
|
|
41
52
|
* @inheritdoc
|
|
42
53
|
*/
|
|
43
54
|
configureAccessory(accessory: PlatformAccessory): void;
|
|
55
|
+
/**
|
|
56
|
+
* Reads the platform configuration from the file system.
|
|
57
|
+
*
|
|
58
|
+
* @returns the platform configuration
|
|
59
|
+
*/
|
|
60
|
+
getPlatformConfig(): any;
|
|
61
|
+
/**
|
|
62
|
+
* Writes the platform configuration passed in to the file system.
|
|
63
|
+
*
|
|
64
|
+
* @param platformConfig the new platform configuration
|
|
65
|
+
*/
|
|
66
|
+
savePlatformConfig(platformConfig: unknown): void;
|
|
44
67
|
/**
|
|
45
68
|
* Uses the SmartThings API to discover and register the available devices.
|
|
46
69
|
*
|
|
@@ -50,7 +73,7 @@ export declare class SmartThingsPlatform implements DynamicPlatformPlugin {
|
|
|
50
73
|
* @param tvDeviceTypes the array of configured TV device types
|
|
51
74
|
* @param soundbarDeviceTypes the array of configured SoundBar device types
|
|
52
75
|
*/
|
|
53
|
-
discoverDevices(
|
|
76
|
+
discoverDevices(authenticator: Authenticator, deviceBlocklist: [string], deviceMappings: [DeviceMapping], tvDeviceTypes: [string], soundbarDeviceTypes: [string]): Promise<void>;
|
|
54
77
|
/**
|
|
55
78
|
* Registers a SmartThings Device for Homebridge.
|
|
56
79
|
*
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
2
2
|
import { TvAccessory } from './tvAccessory.js';
|
|
3
|
-
import { SmartThingsClient, BearerTokenAuthenticator } from '@smartthings/core-sdk';
|
|
3
|
+
import { SmartThingsClient, RefreshTokenAuthenticator, BearerTokenAuthenticator, } from '@smartthings/core-sdk';
|
|
4
4
|
import { SwitchAccessory } from './switchAccessory.js';
|
|
5
5
|
import { SliderAccessory } from './sliderAccessory.js';
|
|
6
6
|
import { SoundbarAccessory } from './soundbarAccessory.js';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import fs from 'fs';
|
|
9
|
+
import axios from 'axios';
|
|
7
10
|
/**
|
|
8
11
|
* Class implements the configured Device to mac and ip address mappings.
|
|
9
12
|
*/
|
|
@@ -14,15 +17,17 @@ class DeviceMapping {
|
|
|
14
17
|
ipAddress;
|
|
15
18
|
inputSources;
|
|
16
19
|
applications;
|
|
20
|
+
validateApplications;
|
|
17
21
|
infoKey;
|
|
18
22
|
category;
|
|
19
|
-
constructor(deviceId, nameOverride, macAddress, ipAddress, inputSources, applications, infoKey, category) {
|
|
23
|
+
constructor(deviceId, nameOverride, macAddress, ipAddress, inputSources, applications, validateApplications, infoKey, category) {
|
|
20
24
|
this.deviceId = deviceId;
|
|
21
25
|
this.nameOverride = nameOverride;
|
|
22
26
|
this.macAddress = macAddress;
|
|
23
27
|
this.ipAddress = ipAddress;
|
|
24
28
|
this.inputSources = inputSources;
|
|
25
29
|
this.applications = applications;
|
|
30
|
+
this.validateApplications = validateApplications;
|
|
26
31
|
this.infoKey = infoKey;
|
|
27
32
|
this.category = category;
|
|
28
33
|
}
|
|
@@ -36,6 +41,8 @@ export class SmartThingsPlatform {
|
|
|
36
41
|
api;
|
|
37
42
|
Service;
|
|
38
43
|
Characteristic;
|
|
44
|
+
configPath = process.env.UIX_CONFIG_PATH || path.join('./', 'config.json');
|
|
45
|
+
authData;
|
|
39
46
|
// this is used to track restored cached accessories
|
|
40
47
|
accessories = [];
|
|
41
48
|
constructor(log, config, api) {
|
|
@@ -57,9 +64,39 @@ export class SmartThingsPlatform {
|
|
|
57
64
|
this.log.warn('Config property deviceBlacklist has been renamed to deviceBlocklist \
|
|
58
65
|
- adjust your configuration because deviceBlacklist will be removed in future versions');
|
|
59
66
|
}
|
|
60
|
-
|
|
67
|
+
let authenticator = undefined;
|
|
68
|
+
switch (this.config.tokenType) {
|
|
69
|
+
case 'oauth':
|
|
70
|
+
authenticator = new RefreshTokenAuthenticator(config.oauthRefreshToken, this);
|
|
71
|
+
break;
|
|
72
|
+
case 'pat':
|
|
73
|
+
default:
|
|
74
|
+
authenticator = new BearerTokenAuthenticator(config.token);
|
|
75
|
+
}
|
|
76
|
+
this.discoverDevices(authenticator, deviceBlocklist ?? [], config.deviceMappings ?? [], config.tvDeviceTypes ?? ['oic.d.tv', 'x.com.st.d.monitor'], config.soundbarDeviceTypes ?? ['oic.d.networkaudio']);
|
|
61
77
|
});
|
|
62
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* @inheritdoc
|
|
81
|
+
*/
|
|
82
|
+
async getRefreshData() {
|
|
83
|
+
const config = this.getPlatformConfig();
|
|
84
|
+
return {
|
|
85
|
+
refreshToken: this.authData?.refreshToken ?? config.oauthRefreshToken,
|
|
86
|
+
clientId: config.oauthClientId,
|
|
87
|
+
clientSecret: config.oauthClientSecret,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @inheritdoc
|
|
92
|
+
*/
|
|
93
|
+
async putAuthData(data) {
|
|
94
|
+
this.log.debug('Updating auth data: %s', JSON.stringify(data, null, 4));
|
|
95
|
+
this.authData = data;
|
|
96
|
+
const config = this.getPlatformConfig();
|
|
97
|
+
config.oauthRefreshToken = data.refreshToken;
|
|
98
|
+
this.savePlatformConfig(config);
|
|
99
|
+
}
|
|
63
100
|
/**
|
|
64
101
|
* @inheritdoc
|
|
65
102
|
*/
|
|
@@ -68,6 +105,37 @@ export class SmartThingsPlatform {
|
|
|
68
105
|
// add the restored accessory to the accessories cache so we can track if it has already been registered
|
|
69
106
|
this.accessories.push(accessory);
|
|
70
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Reads the platform configuration from the file system.
|
|
110
|
+
*
|
|
111
|
+
* @returns the platform configuration
|
|
112
|
+
*/
|
|
113
|
+
getPlatformConfig() {
|
|
114
|
+
try {
|
|
115
|
+
const readConfig = JSON.parse(fs.readFileSync(this.configPath, 'utf8'));
|
|
116
|
+
return readConfig.platforms.find((p) => p.platform === this.config.platform);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error('Error when reading configuration:', error);
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Writes the platform configuration passed in to the file system.
|
|
125
|
+
*
|
|
126
|
+
* @param platformConfig the new platform configuration
|
|
127
|
+
*/
|
|
128
|
+
savePlatformConfig(platformConfig) {
|
|
129
|
+
try {
|
|
130
|
+
const newConfig = JSON.parse(fs.readFileSync(this.configPath, 'utf8'));
|
|
131
|
+
const platform = newConfig.platforms.find((p) => p.platform === this.config.platform);
|
|
132
|
+
newConfig.platforms[newConfig.platforms.indexOf(platform)] = platformConfig;
|
|
133
|
+
fs.writeFileSync(this.configPath, JSON.stringify(newConfig, null, 4), 'utf8');
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
console.error('Error when writing configuration:', error);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
71
139
|
/**
|
|
72
140
|
* Uses the SmartThings API to discover and register the available devices.
|
|
73
141
|
*
|
|
@@ -77,8 +145,8 @@ export class SmartThingsPlatform {
|
|
|
77
145
|
* @param tvDeviceTypes the array of configured TV device types
|
|
78
146
|
* @param soundbarDeviceTypes the array of configured SoundBar device types
|
|
79
147
|
*/
|
|
80
|
-
async discoverDevices(
|
|
81
|
-
const client = new SmartThingsClient(
|
|
148
|
+
async discoverDevices(authenticator, deviceBlocklist, deviceMappings, tvDeviceTypes, soundbarDeviceTypes) {
|
|
149
|
+
const client = new SmartThingsClient(authenticator);
|
|
82
150
|
let externalAccessories = [];
|
|
83
151
|
try {
|
|
84
152
|
const devices = await client.devices.list();
|
|
@@ -97,7 +165,11 @@ export class SmartThingsPlatform {
|
|
|
97
165
|
if (error instanceof Error) {
|
|
98
166
|
errorMessage = error.message;
|
|
99
167
|
}
|
|
100
|
-
|
|
168
|
+
let statusCode = -1;
|
|
169
|
+
if (axios.isAxiosError(error)) {
|
|
170
|
+
statusCode = error.response?.status ?? -1;
|
|
171
|
+
}
|
|
172
|
+
this.log.error('Error when getting devices: [%s] %s', statusCode, errorMessage);
|
|
101
173
|
}
|
|
102
174
|
this.log.debug('Publishing %s external accessories', externalAccessories.length);
|
|
103
175
|
this.api.publishExternalAccessories(PLUGIN_NAME, externalAccessories);
|
|
@@ -154,7 +226,7 @@ export class SmartThingsPlatform {
|
|
|
154
226
|
const accessory = new this.api.platformAccessory(displayName, device.deviceId);
|
|
155
227
|
accessory.context.device = device;
|
|
156
228
|
accessory.category = deviceMapping?.category ?? 31 /* this.api.hap.Categories.TELEVISION */;
|
|
157
|
-
const tv = new TvAccessory(displayName, device, component, client, this.log, this, accessory, this.config.capabilityLogging ?? false, this.config.registerApplications ?? false, this.config.pollInterval ?? undefined, this.config.cyclicCallsLogging ?? false, deviceMapping?.macAddress, deviceMapping?.ipAddress, deviceMapping?.inputSources, deviceMapping?.applications, deviceMapping?.infoKey);
|
|
229
|
+
const tv = new TvAccessory(displayName, device, component, client, this.log, this, accessory, this.config.capabilityLogging ?? false, this.config.registerApplications ?? false, deviceMapping?.validateApplications ?? true, this.config.pollInterval ?? undefined, this.config.cyclicCallsLogging ?? false, deviceMapping?.macAddress, deviceMapping?.ipAddress, deviceMapping?.inputSources, deviceMapping?.applications, deviceMapping?.infoKey);
|
|
158
230
|
await tv.registerCapabilities();
|
|
159
231
|
if (this.config.registerPictureModes) {
|
|
160
232
|
const modes = await tv.getPictureModes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartThingsPlatform.js","sourceRoot":"","sources":["../src/smartThingsPlatform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smartThingsPlatform.js","sourceRoot":"","sources":["../src/smartThingsPlatform.ts"],"names":[],"mappings":"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"}
|
package/dist/tvAccessory.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { SmartThingsAccessory } from './smartThingsAccessory.js';
|
|
|
8
8
|
export declare class TvAccessory extends SmartThingsAccessory {
|
|
9
9
|
private readonly logCapabilities;
|
|
10
10
|
private readonly registerApplications;
|
|
11
|
+
private readonly validateApplications;
|
|
11
12
|
private readonly pollingInterval;
|
|
12
13
|
private readonly cyclicCallsLogging;
|
|
13
14
|
private readonly macAddress;
|
|
@@ -21,7 +22,7 @@ export declare class TvAccessory extends SmartThingsAccessory {
|
|
|
21
22
|
private capabilities;
|
|
22
23
|
private activeIdentifierChangeTime;
|
|
23
24
|
private activeIdentifierChangeValue;
|
|
24
|
-
constructor(name: string, device: Device, component: Component, client: SmartThingsClient, log: Logger, platform: SmartThingsPlatform, accessory: PlatformAccessory, logCapabilities: boolean, registerApplications: boolean, pollingInterval: number | undefined, cyclicCallsLogging: boolean, macAddress?: string | undefined, ipAddress?: string | undefined, inputSources?: {
|
|
25
|
+
constructor(name: string, device: Device, component: Component, client: SmartThingsClient, log: Logger, platform: SmartThingsPlatform, accessory: PlatformAccessory, logCapabilities: boolean, registerApplications: boolean, validateApplications: boolean, pollingInterval: number | undefined, cyclicCallsLogging: boolean, macAddress?: string | undefined, ipAddress?: string | undefined, inputSources?: {
|
|
25
26
|
name: string;
|
|
26
27
|
id: string;
|
|
27
28
|
}[] | undefined, applications?: {
|
|
@@ -149,13 +150,17 @@ export declare class TvAccessory extends SmartThingsAccessory {
|
|
|
149
150
|
*/
|
|
150
151
|
private registerAvailableMediaInputSources;
|
|
151
152
|
/**
|
|
152
|
-
* Registers all
|
|
153
|
+
* Registers all applications passed in.
|
|
154
|
+
*/
|
|
155
|
+
private registerLaunchApplications;
|
|
156
|
+
/**
|
|
157
|
+
* Returns all installed applications.
|
|
153
158
|
*
|
|
154
|
-
* Tests a list of known application ids by trying to open them. If opening succeeded the application
|
|
155
|
-
*
|
|
159
|
+
* Tests a list of known application ids by trying to open them. If opening succeeded the application will be added
|
|
160
|
+
* to returned list. If it fails the application will not be added. If multiple ids for an application are available
|
|
156
161
|
* the first successfully tested id will be used.
|
|
157
162
|
*/
|
|
158
|
-
private
|
|
163
|
+
private getAvailableLaunchApplications;
|
|
159
164
|
/**
|
|
160
165
|
* Registers a Homebridge input source.
|
|
161
166
|
*
|
package/dist/tvAccessory.js
CHANGED
|
@@ -2,12 +2,14 @@ import { wake } from 'wol';
|
|
|
2
2
|
import ping from 'ping';
|
|
3
3
|
import { SmartThingsAccessory } from './smartThingsAccessory.js';
|
|
4
4
|
import { Apps } from './tvApps.js';
|
|
5
|
+
import axios from 'axios';
|
|
5
6
|
/**
|
|
6
7
|
* Class implements a SmartThings TV accessory.
|
|
7
8
|
*/
|
|
8
9
|
export class TvAccessory extends SmartThingsAccessory {
|
|
9
10
|
logCapabilities;
|
|
10
11
|
registerApplications;
|
|
12
|
+
validateApplications;
|
|
11
13
|
pollingInterval;
|
|
12
14
|
cyclicCallsLogging;
|
|
13
15
|
macAddress;
|
|
@@ -21,10 +23,11 @@ export class TvAccessory extends SmartThingsAccessory {
|
|
|
21
23
|
capabilities = [];
|
|
22
24
|
activeIdentifierChangeTime = 0;
|
|
23
25
|
activeIdentifierChangeValue = 0;
|
|
24
|
-
constructor(name, device, component, client, log, platform, accessory, logCapabilities, registerApplications, pollingInterval, cyclicCallsLogging, macAddress = undefined, ipAddress = undefined, inputSources = undefined, applications = undefined, informationKey = undefined) {
|
|
26
|
+
constructor(name, device, component, client, log, platform, accessory, logCapabilities, registerApplications, validateApplications, pollingInterval, cyclicCallsLogging, macAddress = undefined, ipAddress = undefined, inputSources = undefined, applications = undefined, informationKey = undefined) {
|
|
25
27
|
super(device, component, client, platform, accessory, log);
|
|
26
28
|
this.logCapabilities = logCapabilities;
|
|
27
29
|
this.registerApplications = registerApplications;
|
|
30
|
+
this.validateApplications = validateApplications;
|
|
28
31
|
this.pollingInterval = pollingInterval;
|
|
29
32
|
this.cyclicCallsLogging = cyclicCallsLogging;
|
|
30
33
|
this.macAddress = macAddress;
|
|
@@ -56,12 +59,21 @@ export class TvAccessory extends SmartThingsAccessory {
|
|
|
56
59
|
if (error instanceof Error) {
|
|
57
60
|
errorMessage = error.message;
|
|
58
61
|
}
|
|
59
|
-
|
|
62
|
+
let statusCode = -1;
|
|
63
|
+
if (axios.isAxiosError(error)) {
|
|
64
|
+
statusCode = error.response?.status ?? -1;
|
|
65
|
+
}
|
|
66
|
+
this.logError('Registering capability \'%s\' failed: [%s] %s', reference.id, statusCode, errorMessage);
|
|
60
67
|
}
|
|
61
68
|
}
|
|
62
|
-
if (this.registerApplications && this.inputSourceServices.length > 0) {
|
|
69
|
+
if (this.registerApplications && this.validateApplications && this.inputSourceServices.length > 0) {
|
|
63
70
|
this.logInfo('Resetting active identifier to %s because application registration needed to open all applications', this.inputSourceServices[0].getCharacteristic(this.platform.Characteristic.ConfiguredName).value);
|
|
64
|
-
|
|
71
|
+
try {
|
|
72
|
+
await this.setActiveIdentifier(0);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
this.logWarn('Active identifier could not be reset - probably because device is in invalid state');
|
|
76
|
+
}
|
|
65
77
|
}
|
|
66
78
|
}
|
|
67
79
|
/**
|
|
@@ -174,7 +186,18 @@ export class TvAccessory extends SmartThingsAccessory {
|
|
|
174
186
|
case 'custom.launchapp':
|
|
175
187
|
if (this.registerApplications) {
|
|
176
188
|
this.logCapabilityRegistration(capability);
|
|
177
|
-
|
|
189
|
+
let appsToRegister = this.applications ?? Apps;
|
|
190
|
+
if (this.validateApplications) {
|
|
191
|
+
appsToRegister = await this.getAvailableLaunchApplications();
|
|
192
|
+
const config = this.platform.getPlatformConfig();
|
|
193
|
+
const deviceMapping = config.deviceMappings.find((d) => d.deviceId === this.device.deviceId);
|
|
194
|
+
this.logInfo('Updating list of applications in configuration with valid values: %s', JSON.stringify(appsToRegister, null, 4));
|
|
195
|
+
deviceMapping.applications = appsToRegister;
|
|
196
|
+
this.logInfo('De-activating validation of application list in configuration');
|
|
197
|
+
deviceMapping.validateApplications = false;
|
|
198
|
+
this.platform.savePlatformConfig(config);
|
|
199
|
+
}
|
|
200
|
+
await this.registerLaunchApplications(appsToRegister);
|
|
178
201
|
if (this.inputSourceServices.length > 0) {
|
|
179
202
|
this.service.getCharacteristic(this.platform.Characteristic.ActiveIdentifier)
|
|
180
203
|
.onSet(this.setActiveIdentifier.bind(this))
|
|
@@ -439,18 +462,33 @@ ping command fails mostly because of permission issues - falling back to SmartTh
|
|
|
439
462
|
}
|
|
440
463
|
}
|
|
441
464
|
/**
|
|
442
|
-
* Registers all
|
|
465
|
+
* Registers all applications passed in.
|
|
466
|
+
*/
|
|
467
|
+
async registerLaunchApplications(apps) {
|
|
468
|
+
for (const app of apps) {
|
|
469
|
+
for (const appId of app.ids) {
|
|
470
|
+
let name = app.name;
|
|
471
|
+
if (app.ids.length > 1) {
|
|
472
|
+
name += ' (' + appId + ')';
|
|
473
|
+
}
|
|
474
|
+
this.registerInputSource(appId, name, this.platform.Characteristic.InputSourceType.APPLICATION);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Returns all installed applications.
|
|
443
480
|
*
|
|
444
|
-
* Tests a list of known application ids by trying to open them. If opening succeeded the application
|
|
445
|
-
*
|
|
481
|
+
* Tests a list of known application ids by trying to open them. If opening succeeded the application will be added
|
|
482
|
+
* to returned list. If it fails the application will not be added. If multiple ids for an application are available
|
|
446
483
|
* the first successfully tested id will be used.
|
|
447
484
|
*/
|
|
448
|
-
async
|
|
485
|
+
async getAvailableLaunchApplications() {
|
|
449
486
|
if (!await this.getActive(false)) {
|
|
450
487
|
this.logWarn('Registering applications will probably not work because TV is not turned on');
|
|
451
488
|
}
|
|
489
|
+
const applications = [];
|
|
452
490
|
for (const app of this.applications ?? Apps) {
|
|
453
|
-
this.logDebug('Try to
|
|
491
|
+
this.logDebug('Try to launch application %s with ids: %s', app.name, app.ids.join(', '));
|
|
454
492
|
for (const appId of app.ids) {
|
|
455
493
|
try {
|
|
456
494
|
await this.client.devices.executeCommand(this.device.deviceId, {
|
|
@@ -458,7 +496,7 @@ ping command fails mostly because of permission issues - falling back to SmartTh
|
|
|
458
496
|
command: 'launchApp',
|
|
459
497
|
arguments: [appId],
|
|
460
498
|
});
|
|
461
|
-
|
|
499
|
+
applications.push({ ids: [appId], name: app.name });
|
|
462
500
|
break;
|
|
463
501
|
}
|
|
464
502
|
catch (exc) {
|
|
@@ -466,6 +504,7 @@ ping command fails mostly because of permission issues - falling back to SmartTh
|
|
|
466
504
|
}
|
|
467
505
|
}
|
|
468
506
|
}
|
|
507
|
+
return applications;
|
|
469
508
|
}
|
|
470
509
|
/**
|
|
471
510
|
* Registers a Homebridge input source.
|
package/dist/tvAccessory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tvAccessory.js","sourceRoot":"","sources":["../src/tvAccessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tvAccessory.js","sourceRoot":"","sources":["../src/tvAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
<div class="container">
|
|
2
|
+
<div id="pat-warning" class="alert alert-warning" role="alert" style="display:none">
|
|
3
|
+
You're using personal access tokens (PAT) to access the SmartThings API. As Samsung made some
|
|
4
|
+
<a href="https://community.smartthings.com/t/changes-to-personal-access-tokens-pat/292019" target="_blank">major
|
|
5
|
+
changes</a> to usage of PATs at then end of 2024 the usage of PATs is not recommended anymore. Please
|
|
6
|
+
consider switching to OAuth for authentication.
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div id="oauth-start" class="alert alert-info" role="info" style="display:none">
|
|
10
|
+
To simplify setup of OAuth please use the following button to start a wizard that guides you through the
|
|
11
|
+
setup. This wizard can also be used if token has unexpectedly expired.<br>
|
|
12
|
+
<button class="btn btn-primary" onclick="showWizard()">Open OAuth wizard</button>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div id="wizard" style="display:none">
|
|
16
|
+
<h2 class="mb-4">OAuth Setup Wizard</h2>
|
|
17
|
+
<div class="nav nav-pills mb-3" id="wizardNav">
|
|
18
|
+
<a class="nav-link active" data-target="#step1">SmartThings App</a>
|
|
19
|
+
<a class="nav-link" data-target="#step2">Redirection</a>
|
|
20
|
+
<a class="nav-link" data-target="#step3">Authorization code</a>
|
|
21
|
+
<a class="nav-link" data-target="#step4">Authorization token</a>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<div class="tab-content">
|
|
25
|
+
<div class="tab-pane fade show active" id="step1">
|
|
26
|
+
<h4>SmartThings App</h4>
|
|
27
|
+
<p>To activate OAuth integration you have to create a SmartThings application. To do so use the
|
|
28
|
+
<a href="https://github.com/SmartThingsCommunity/smartthings-cli">smartthings-cli</a>.
|
|
29
|
+
To install the CLI use the installation steps from the
|
|
30
|
+
<a href="https://github.com/SmartThingsCommunity/smartthings-cli">documentation</a>.
|
|
31
|
+
</p>
|
|
32
|
+
<p>If installation succeeded use the
|
|
33
|
+
<a
|
|
34
|
+
href="https://github.com/SmartThingsCommunity/smartthings-cli?tab=readme-ov-file#smartthings-appscreate">apps:create
|
|
35
|
+
command</a>
|
|
36
|
+
to create a new application. While creating the application make sure you use the matching redirect
|
|
37
|
+
URL and scopes defined below.
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
<form id="step1Form">
|
|
41
|
+
<div class="form-group row">
|
|
42
|
+
<label for="oauth-redirect-url" class="col-sm-3 col-form-label font-weight-bold">OAuth redirect
|
|
43
|
+
URL</label>
|
|
44
|
+
<div class="col-sm-9">
|
|
45
|
+
<input type="oauth-redirect-url" class="form-control" id="oauth-redirect-url"
|
|
46
|
+
value="https://httpbin.org/get" readonly onfocus="this.removeAttribute('readonly');"
|
|
47
|
+
required>
|
|
48
|
+
<small class="form-text text-warning">
|
|
49
|
+
⚠ You can customize the redirect URL if you want but it is recommended to keep the
|
|
50
|
+
default so you can stick to instructions in this wizard.
|
|
51
|
+
</small>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div class="form-group row">
|
|
56
|
+
<label for="oauth-scopes" class="col-sm-3 col-form-label font-weight-bold">OAuth scopes</label>
|
|
57
|
+
<div class="col-sm-9">
|
|
58
|
+
<input type="oauth-scopes" class="form-control" id="oauth-scopes"
|
|
59
|
+
value="x:devices:* w:devices:* r:devices:*" readonly
|
|
60
|
+
onfocus="this.removeAttribute('readonly');" required>
|
|
61
|
+
<small class="form-text text-warning">
|
|
62
|
+
⚠ You can customize the scopes if you want but it is recommended to keep the default
|
|
63
|
+
so you can stick to instructions in this wizard.
|
|
64
|
+
</small>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div class="form-group row">
|
|
69
|
+
<label for="oauth-client-id" class="col-sm-3 col-form-label font-weight-bold">OAuth client
|
|
70
|
+
id</label>
|
|
71
|
+
<div class="col-sm-9">
|
|
72
|
+
<input type="oauth-client-id" class="form-control" id="oauth-client-id"
|
|
73
|
+
placeholder="Paste the OAuth client id" required>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div class="form-group row">
|
|
78
|
+
<label for="oauth-client-secret" class="col-sm-3 col-form-label font-weight-bold">OAuth client
|
|
79
|
+
secret</label>
|
|
80
|
+
<div class="col-sm-9">
|
|
81
|
+
<input type="oauth-client-secret" class="form-control" id="oauth-client-secret"
|
|
82
|
+
placeholder="Paste the OAuth client secret" required>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</form>
|
|
86
|
+
|
|
87
|
+
<button class="btn btn-primary next" onclick="validateStep1()">Next</button>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="tab-pane fade" id="step2">
|
|
90
|
+
<h4>Redirection</h4>
|
|
91
|
+
<p>You will now be redirected to login at SmartThings home page where you have to select desired
|
|
92
|
+
location and confirm access for selected scopes.</p>
|
|
93
|
+
<p>Afterwards you will be redirected to httpbin. This page will show the OAuth response that is needed
|
|
94
|
+
for continuing. To do so paste the <b>args.code</b> value in next step of the wizard.</p>
|
|
95
|
+
|
|
96
|
+
<button class="btn btn-secondary prev" onclick="prevStep()">Back</button>
|
|
97
|
+
<button class="btn btn-primary next" onclick="validateStep2()">Next</button>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="tab-pane fade" id="step3">
|
|
100
|
+
<h4>Authorization code</h4>
|
|
101
|
+
<p>Do now paste <b>args.code</b> value shown at httpbin below.</p>
|
|
102
|
+
|
|
103
|
+
<form id="step3Form">
|
|
104
|
+
<div class="form-group row">
|
|
105
|
+
<label for="oauth-code" class="col-sm-3 col-form-label font-weight-bold">Authorization
|
|
106
|
+
code</label>
|
|
107
|
+
<div class="col-sm-9">
|
|
108
|
+
<input type="oauth-code" class="form-control" id="oauth-code"
|
|
109
|
+
placeholder="Paste the Authorization code" required>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</form>
|
|
113
|
+
|
|
114
|
+
<button class="btn btn-secondary prev" onclick="prevStep()">Back</button>
|
|
115
|
+
<button class="btn btn-primary next" onclick="validateStep3()">Next</button>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="tab-pane fade" id="step4">
|
|
118
|
+
<h4>Authorization token</h4>
|
|
119
|
+
|
|
120
|
+
<p>Your access and refresh token will now be requested and set automatically.</p>
|
|
121
|
+
<p>When tokens have been filled in OAuth setup has been successful and you will be redirected to main
|
|
122
|
+
config page.</p>
|
|
123
|
+
|
|
124
|
+
<form id="step4Form">
|
|
125
|
+
<div class="form-group row">
|
|
126
|
+
<label for="oauth-access-token" class="col-sm-3 col-form-label font-weight-bold">OAuth access
|
|
127
|
+
token</label>
|
|
128
|
+
<div class="col-sm-9">
|
|
129
|
+
<input type="oauth-access-token" class="form-control" id="oauth-access-token"
|
|
130
|
+
placeholder="OAuth access token" required readonly>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<div class="form-group row">
|
|
135
|
+
<label for="oauth-refresh-token" class="col-sm-3 col-form-label font-weight-bold">OAuth refresh
|
|
136
|
+
token</label>
|
|
137
|
+
<div class="col-sm-9">
|
|
138
|
+
<input type="oauth-refresh-token" class="form-control" id="oauth-refresh-token"
|
|
139
|
+
placeholder="OAuth refresh token" required readonly>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
</form>
|
|
143
|
+
|
|
144
|
+
<button class="btn btn-secondary prev" onclick="prevStep()">Back</button>
|
|
145
|
+
<button class="btn btn-success" onclick="validateStep4()">Submit</button>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<script>
|
|
152
|
+
function showWizard() {
|
|
153
|
+
homebridge.disableSaveButton();
|
|
154
|
+
homebridge.hideSchemaForm();
|
|
155
|
+
document.getElementById('wizard').style.display = "block";
|
|
156
|
+
document.getElementById('oauth-start').style.display = "none";
|
|
157
|
+
document.getElementById('pat-warning').style.display = "none";
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function hideWizard() {
|
|
161
|
+
homebridge.enableSaveButton();
|
|
162
|
+
homebridge.showSchemaForm();
|
|
163
|
+
document.getElementById('wizard').style.display = "none";
|
|
164
|
+
document.getElementById('oauth-start').style.display = "block";
|
|
165
|
+
document.getElementById('pat-warning').style.display = "none";
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
async function updateUi() {
|
|
169
|
+
const pluginConfig = await homebridge.getPluginConfig();
|
|
170
|
+
switch (pluginConfig[0].tokenType) {
|
|
171
|
+
case "oauth":
|
|
172
|
+
homebridge.showSchemaForm();
|
|
173
|
+
document.getElementById('wizard').style.display = "none";
|
|
174
|
+
document.getElementById('oauth-start').style.display = "block";
|
|
175
|
+
document.getElementById('pat-warning').style.display = "none";
|
|
176
|
+
break;
|
|
177
|
+
|
|
178
|
+
case "pat":
|
|
179
|
+
default:
|
|
180
|
+
homebridge.showSchemaForm();
|
|
181
|
+
document.getElementById('wizard').style.display = "none";
|
|
182
|
+
document.getElementById('oauth-start').style.display = "none";
|
|
183
|
+
document.getElementById('pat-warning').style.display =
|
|
184
|
+
pluginConfig[0].disablePatWarning === true ? "none" : "block";
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
document.getElementById('oauth-client-id').value = pluginConfig[0].oauthClientId;
|
|
189
|
+
document.getElementById('oauth-client-secret').value = pluginConfig[0].oauthClientSecret;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function validateStep(id) {
|
|
193
|
+
var form = document.getElementById(id);
|
|
194
|
+
if (form.checkValidity() === false) {
|
|
195
|
+
form.classList.add('was-validated');
|
|
196
|
+
return false;
|
|
197
|
+
} else {
|
|
198
|
+
nextStep();
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
async function validateStep1() {
|
|
204
|
+
if (validateStep('step1Form')) {
|
|
205
|
+
const pluginConfig = await homebridge.getPluginConfig();
|
|
206
|
+
pluginConfig[0].oauthClientId = document.getElementById('oauth-client-id').value;
|
|
207
|
+
pluginConfig[0].oauthClientSecret = document.getElementById('oauth-client-secret').value;
|
|
208
|
+
|
|
209
|
+
await homebridge.updatePluginConfig(pluginConfig);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
async function validateStep2() {
|
|
214
|
+
nextStep();
|
|
215
|
+
requestAuthCode();
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
async function validateStep3() {
|
|
219
|
+
if (validateStep('step3Form')) {
|
|
220
|
+
homebridge.showSpinner();
|
|
221
|
+
|
|
222
|
+
try {
|
|
223
|
+
await requestAuthToken();
|
|
224
|
+
} catch {
|
|
225
|
+
homebridge.toast.error("Could not request authorization token");
|
|
226
|
+
} finally {
|
|
227
|
+
homebridge.hideSpinner();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
async function validateStep4() {
|
|
233
|
+
if (validateStep('step4Form')) {
|
|
234
|
+
const pluginConfig = await homebridge.getPluginConfig();
|
|
235
|
+
pluginConfig[0].oauthRefreshToken = document.getElementById('oauth-refresh-token').value;
|
|
236
|
+
|
|
237
|
+
await homebridge.updatePluginConfig(pluginConfig);
|
|
238
|
+
await homebridge.savePluginConfig();
|
|
239
|
+
|
|
240
|
+
homebridge.toast.success("Restart Homebridge to apply the changes.", "OAuth Config Saved");
|
|
241
|
+
|
|
242
|
+
hideWizard();
|
|
243
|
+
updateUi();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function nextStep() {
|
|
248
|
+
let activeTab = document.querySelector('.nav-pills .active');
|
|
249
|
+
let nextTab = activeTab.nextElementSibling;
|
|
250
|
+
if (nextTab) changeTab(nextTab);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function prevStep() {
|
|
254
|
+
let activeTab = document.querySelector('.nav-pills .active');
|
|
255
|
+
let prevTab = activeTab.previousElementSibling;
|
|
256
|
+
if (prevTab) changeTab(prevTab);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function changeTab(targetTab) {
|
|
260
|
+
document.querySelector('.nav-pills .active').classList.remove('active');
|
|
261
|
+
document.querySelector('.tab-pane.show').classList.remove('show', 'active');
|
|
262
|
+
|
|
263
|
+
targetTab.classList.add('active');
|
|
264
|
+
document.querySelector(targetTab.getAttribute('data-target')).classList.add('show', 'active');
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
async function requestAuthCode() {
|
|
268
|
+
const authUrl = await homebridge.request('/authCode', {
|
|
269
|
+
clientId: document.getElementById('oauth-client-id').value,
|
|
270
|
+
clientSecret: document.getElementById('oauth-client-secret').value,
|
|
271
|
+
redirectUrl: document.getElementById('oauth-redirect-url').value,
|
|
272
|
+
scopes: document.getElementById('oauth-scopes').value
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
window.open(authUrl, "_blank");
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
async function requestAuthToken() {
|
|
279
|
+
const authToken = await homebridge.request('/authToken', {
|
|
280
|
+
code: document.getElementById('oauth-code').value,
|
|
281
|
+
redirectUrl: document.getElementById('oauth-redirect-url').value,
|
|
282
|
+
scopes: document.getElementById('oauth-scopes').value
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
document.getElementById('oauth-access-token').value = authToken.access_token;
|
|
286
|
+
document.getElementById('oauth-refresh-token').value = authToken.refresh_token;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
updateUi();
|
|
290
|
+
|
|
291
|
+
window.homebridge.addEventListener('configChanged', (event) => {
|
|
292
|
+
updateUi();
|
|
293
|
+
});
|
|
294
|
+
</script>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { HomebridgePluginUiServer, RequestError } from '@homebridge/plugin-ui-utils';
|
|
2
|
+
import { AuthorizationCode } from 'simple-oauth2';
|
|
3
|
+
|
|
4
|
+
class UiServer extends HomebridgePluginUiServer {
|
|
5
|
+
constructor () {
|
|
6
|
+
super();
|
|
7
|
+
|
|
8
|
+
this.onRequest('/authCode', this.authCode.bind(this));
|
|
9
|
+
this.onRequest('/authToken', this.authToken.bind(this));
|
|
10
|
+
|
|
11
|
+
this.client = undefined;
|
|
12
|
+
|
|
13
|
+
this.ready();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async authCode(config){
|
|
17
|
+
const params = {
|
|
18
|
+
client: {
|
|
19
|
+
id: config.clientId,
|
|
20
|
+
secret: config.clientSecret,
|
|
21
|
+
},
|
|
22
|
+
auth: {
|
|
23
|
+
tokenHost: 'https://api.smartthings.com',
|
|
24
|
+
tokenPath: '/oauth/token',
|
|
25
|
+
authorizePath: '/oauth/authorize',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
this.client = new AuthorizationCode(params);
|
|
30
|
+
return this.client.authorizeURL({
|
|
31
|
+
redirect_uri: config.redirectUrl,
|
|
32
|
+
scope: config.scopes,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async authToken(config){
|
|
37
|
+
try {
|
|
38
|
+
return await this.client.getToken({
|
|
39
|
+
code: config.code,
|
|
40
|
+
redirect_uri: config.redirectUrl,
|
|
41
|
+
scope: config.scopes,
|
|
42
|
+
});
|
|
43
|
+
} catch (err) {
|
|
44
|
+
throw new RequestError(err.message);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
(() => {
|
|
50
|
+
return new UiServer;
|
|
51
|
+
})();
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"displayName": "Homebridge SmartThings TV",
|
|
3
3
|
"name": "@o-lukas/homebridge-smartthings-tv",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.6.0-next.1",
|
|
6
6
|
"description": "This is a plugin for Homebridge. It offers some basic functions to control Samsung TVs using the SmartThings API.",
|
|
7
7
|
"author": "o-lukas",
|
|
8
8
|
"license": "MIT",
|
|
@@ -38,24 +38,26 @@
|
|
|
38
38
|
"semantic-release": "semantic-release"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
+
"@homebridge/plugin-ui-utils": "^2.0.1",
|
|
41
42
|
"@smartthings/core-sdk": "^8.3.2",
|
|
42
43
|
"ping": "^0.4.4",
|
|
44
|
+
"simple-oauth2": "^5.1.0",
|
|
43
45
|
"wol": "^1.0.7"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
|
-
"@types/node": "^22.
|
|
48
|
+
"@types/node": "^22.10.5",
|
|
47
49
|
"@types/ping": "^0.4.4",
|
|
48
50
|
"@types/wol": "^1.0.4",
|
|
49
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
50
|
-
"@typescript-eslint/parser": "^8.
|
|
51
|
-
"eslint": "^9.
|
|
52
|
-
"homebridge": "^1.8.
|
|
53
|
-
"nodemon": "^3.1.
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^8.19.1",
|
|
52
|
+
"@typescript-eslint/parser": "^8.19.1",
|
|
53
|
+
"eslint": "^9.18.0",
|
|
54
|
+
"homebridge": "^1.8.5",
|
|
55
|
+
"nodemon": "^3.1.9",
|
|
54
56
|
"rimraf": "^6.0.1",
|
|
55
|
-
"semantic-release": "^24.1
|
|
57
|
+
"semantic-release": "^24.2.1",
|
|
56
58
|
"ts-node": "^10.9.2",
|
|
57
|
-
"typescript": "^5.
|
|
58
|
-
"typescript-eslint": "^8.
|
|
59
|
+
"typescript": "^5.7.3",
|
|
60
|
+
"typescript-eslint": "^8.19.1"
|
|
59
61
|
},
|
|
60
62
|
"overrides": {
|
|
61
63
|
"@smartthings/core-sdk": {
|