homebridge-deco 1.0.3 → 1.0.5

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/dist/decoAPI.d.ts CHANGED
@@ -35,34 +35,26 @@ export declare class DecoAPI {
35
35
  private readonly log;
36
36
  private readonly username;
37
37
  private readonly password;
38
- private token;
39
- private readonly baseUrl;
40
- private termid;
38
+ private routerUrl;
39
+ private stok;
40
+ private sysauth;
41
41
  private lastAuthTime;
42
42
  private readonly authValidityMs;
43
43
  constructor(config: DecoConfig);
44
44
  /**
45
- * Authenticate with TP-Link cloud service
45
+ * Authenticate with local Deco router using HTTPS API
46
46
  */
47
47
  authenticate(): Promise<boolean>;
48
48
  /**
49
- * Get list of Deco devices in the network
50
- */
51
- getDeviceList(): Promise<DecoDevice[]>;
52
- /**
53
- * Get network status including internet connectivity and guest network
49
+ * Get network status from local Deco router
54
50
  */
55
51
  getNetworkStatus(): Promise<NetworkStatus>;
56
52
  /**
57
- * Get list of connected clients
58
- */
59
- getClientList(): Promise<ConnectedClient[]>;
60
- /**
61
- * Get guest network status
53
+ * Get guest network status (placeholder for local API)
62
54
  */
63
55
  getGuestNetworkStatus(): Promise<boolean>;
64
56
  /**
65
- * Toggle guest network on/off
57
+ * Set guest network on/off (placeholder for local API)
66
58
  */
67
59
  setGuestNetwork(enabled: boolean): Promise<boolean>;
68
60
  /**
@@ -70,11 +62,7 @@ export declare class DecoAPI {
70
62
  */
71
63
  isDeviceConnected(mac: string): Promise<boolean>;
72
64
  /**
73
- * Reboot a specific Deco device
74
- */
75
- rebootDevice(deviceId: string): Promise<boolean>;
76
- /**
77
- * Make HTTP request to TP-Link API
65
+ * Make HTTPS request to local Deco router
78
66
  */
79
67
  private makeRequest;
80
68
  /**
package/dist/decoAPI.js CHANGED
@@ -1,47 +1,42 @@
1
- import { randomUUID } from 'crypto';
1
+ import https from 'https';
2
2
  export class DecoAPI {
3
3
  log;
4
4
  username;
5
5
  password;
6
- token = null;
7
- baseUrl = 'https://use1-wap.tplinkdeco.com';
8
- termid;
6
+ routerUrl = 'https://192.168.68.1';
7
+ stok = '';
8
+ sysauth = '';
9
9
  lastAuthTime = 0;
10
10
  authValidityMs = 3600000; // 1 hour
11
11
  constructor(config) {
12
12
  this.log = config.log;
13
13
  this.username = config.username;
14
14
  this.password = config.password;
15
- this.termid = randomUUID();
16
15
  }
17
16
  /**
18
- * Authenticate with TP-Link cloud service
17
+ * Authenticate with local Deco router using HTTPS API
19
18
  */
20
19
  async authenticate() {
21
20
  try {
22
21
  // Check if we have a valid token already
23
- if (this.token && (Date.now() - this.lastAuthTime) < this.authValidityMs) {
22
+ if (this.stok && (Date.now() - this.lastAuthTime) < this.authValidityMs) {
24
23
  return true;
25
24
  }
26
- this.log.debug('Authenticating with TP-Link cloud...');
27
- const params = {
28
- method: 'login',
29
- params: {
30
- appType: 'Deco',
31
- cloudUserName: this.username,
32
- cloudPassword: this.password,
33
- terminalUUID: this.termid,
34
- },
25
+ this.log.debug('Authenticating with local Deco router at:', this.routerUrl);
26
+ // Deco router only needs password for login
27
+ const loginData = {
28
+ params: { password: this.password },
29
+ operation: 'login',
35
30
  };
36
- const response = await this.makeRequest('/', params, false);
31
+ const response = await this.makeRequest('login', JSON.stringify(loginData));
37
32
  if (response.error_code !== 0) {
38
33
  this.log.error('Authentication failed:', response.msg || 'Unknown error');
39
34
  return false;
40
35
  }
41
- if (response.result && typeof response.result === 'object' && 'token' in response.result) {
42
- this.token = response.result.token;
36
+ if (response.result && typeof response.result === 'object' && 'stok' in response.result) {
37
+ this.stok = response.result.stok;
43
38
  this.lastAuthTime = Date.now();
44
- this.log.info('Successfully authenticated with TP-Link cloud');
39
+ this.log.info('Successfully authenticated with local Deco router');
45
40
  return true;
46
41
  }
47
42
  this.log.error('Invalid authentication response');
@@ -53,121 +48,54 @@ export class DecoAPI {
53
48
  }
54
49
  }
55
50
  /**
56
- * Get list of Deco devices in the network
57
- */
58
- async getDeviceList() {
59
- try {
60
- if (!await this.ensureAuthenticated()) {
61
- return [];
62
- }
63
- const params = {
64
- method: 'getDeviceList',
65
- params: {},
66
- };
67
- const response = await this.makeRequest('/', params);
68
- if (response.error_code !== 0) {
69
- this.log.error('Failed to get device list:', response.msg);
70
- return [];
71
- }
72
- if (response.result && typeof response.result === 'object' && 'deviceList' in response.result) {
73
- const devices = response.result.deviceList || [];
74
- this.log.debug(`Found ${devices.length} Deco devices`);
75
- return devices;
76
- }
77
- return [];
78
- }
79
- catch (error) {
80
- this.log.error('Error getting device list:', error);
81
- return [];
82
- }
83
- }
84
- /**
85
- * Get network status including internet connectivity and guest network
51
+ * Get network status from local Deco router
86
52
  */
87
53
  async getNetworkStatus() {
88
54
  try {
89
55
  if (!await this.ensureAuthenticated()) {
90
- return {
91
- internetOnline: false,
92
- guestNetworkEnabled: false,
93
- devices: [],
94
- clients: [],
95
- };
96
- }
97
- const [devices, clients, guestNetwork] = await Promise.all([
98
- this.getDeviceList(),
99
- this.getClientList(),
100
- this.getGuestNetworkStatus(),
101
- ]);
102
- // Check if any device is online to determine internet status
103
- const internetOnline = devices.some(d => d.status === 1);
56
+ this.log.error('Not authenticated, cannot get network status');
57
+ return { internetOnline: false, guestNetworkEnabled: false, devices: [], clients: [] };
58
+ }
59
+ const wanData = await this.makeRequest('admin/network?form=wan_ipv4', JSON.stringify({ operation: 'read' }));
60
+ const clientData = await this.makeRequest('admin/client?form=client_list', JSON.stringify({ operation: 'read' }));
61
+ const internetOnline = wanData?.wan?.inet_status === 'online';
62
+ const clientList = clientData?.client_list || [];
63
+ const clients = clientList.map((client) => ({
64
+ mac: typeof client.mac === 'string' ? client.mac : '',
65
+ name: client.name ? Buffer.from(client.name, 'base64').toString('utf-8') : '',
66
+ ip: typeof client.ip === 'string' ? client.ip : '',
67
+ online: client.online === true,
68
+ downSpeed: typeof client.down_speed === 'number' ? client.down_speed : 0,
69
+ upSpeed: typeof client.up_speed === 'number' ? client.up_speed : 0,
70
+ connectedNode: client.access_host ? String(client.access_host) : '',
71
+ }));
104
72
  return {
105
73
  internetOnline,
106
- guestNetworkEnabled: guestNetwork,
107
- devices,
108
- clients,
109
- };
110
- }
111
- catch (error) {
112
- this.log.error('Error getting network status:', error);
113
- return {
114
- internetOnline: false,
115
74
  guestNetworkEnabled: false,
116
75
  devices: [],
117
- clients: [],
118
- };
119
- }
120
- }
121
- /**
122
- * Get list of connected clients
123
- */
124
- async getClientList() {
125
- try {
126
- if (!await this.ensureAuthenticated()) {
127
- return [];
128
- }
129
- const params = {
130
- method: 'getClientList',
131
- params: {},
76
+ clients,
132
77
  };
133
- const response = await this.makeRequest('/', params);
134
- if (response.error_code !== 0) {
135
- this.log.debug('Failed to get client list:', response.msg);
136
- return [];
137
- }
138
- if (response.result && typeof response.result === 'object' && 'clientList' in response.result) {
139
- const clients = response.result.clientList || [];
140
- this.log.debug(`Found ${clients.length} connected clients`);
141
- return clients;
142
- }
143
- return [];
144
78
  }
145
79
  catch (error) {
146
- this.log.error('Error getting client list:', error);
147
- return [];
80
+ this.log.error('Error getting network status:', error);
81
+ return { internetOnline: false, guestNetworkEnabled: false, devices: [], clients: [] };
148
82
  }
149
83
  }
150
84
  /**
151
- * Get guest network status
85
+ * Get guest network status (placeholder for local API)
152
86
  */
153
87
  async getGuestNetworkStatus() {
154
88
  try {
155
89
  if (!await this.ensureAuthenticated()) {
156
90
  return false;
157
91
  }
158
- const params = {
159
- method: 'getGuestNetwork',
160
- params: {},
161
- };
162
- const response = await this.makeRequest('/', params);
163
- if (response.error_code !== 0) {
164
- this.log.debug('Failed to get guest network status:', response.msg);
165
- return false;
166
- }
167
- if (response.result && typeof response.result === 'object' && 'enabled' in response.result) {
168
- return response.result.enabled === true;
169
- }
170
- return false;
92
+ const wlanData = await this.makeRequest('admin/wireless?form=wlan', JSON.stringify({ operation: 'read' }));
93
+ // Check if guest network is enabled on 2.4G or 5G bands
94
+ const band2_4 = wlanData?.band2_4 || {};
95
+ const band5_1 = wlanData?.band5_1 || {};
96
+ const guest2g = band2_4.guest?.enable === true;
97
+ const guest5g = band5_1.guest?.enable === true;
98
+ return guest2g || guest5g;
171
99
  }
172
100
  catch (error) {
173
101
  this.log.debug('Error getting guest network status:', error);
@@ -175,7 +103,7 @@ export class DecoAPI {
175
103
  }
176
104
  }
177
105
  /**
178
- * Toggle guest network on/off
106
+ * Set guest network on/off (placeholder for local API)
179
107
  */
180
108
  async setGuestNetwork(enabled) {
181
109
  try {
@@ -183,16 +111,13 @@ export class DecoAPI {
183
111
  return false;
184
112
  }
185
113
  const params = {
186
- method: 'setGuestNetwork',
114
+ operation: 'write',
187
115
  params: {
188
- enabled,
116
+ band2_4: { guest: { enable: enabled } },
117
+ band5_1: { guest: { enable: enabled } },
189
118
  },
190
119
  };
191
- const response = await this.makeRequest('/', params);
192
- if (response.error_code !== 0) {
193
- this.log.error('Failed to set guest network:', response.msg);
194
- return false;
195
- }
120
+ await this.makeRequest('admin/wireless?form=wlan', JSON.stringify(params));
196
121
  this.log.info(`Guest network ${enabled ? 'enabled' : 'disabled'}`);
197
122
  return true;
198
123
  }
@@ -206,9 +131,9 @@ export class DecoAPI {
206
131
  */
207
132
  async isDeviceConnected(mac) {
208
133
  try {
209
- const clients = await this.getClientList();
134
+ const status = await this.getNetworkStatus();
210
135
  const normalizedMac = mac.toLowerCase().replace(/[:-]/g, '');
211
- return clients.some(client => {
136
+ return status.clients.some(client => {
212
137
  const clientMac = client.mac.toLowerCase().replace(/[:-]/g, '');
213
138
  return clientMac === normalizedMac && client.online;
214
139
  });
@@ -219,90 +144,70 @@ export class DecoAPI {
219
144
  }
220
145
  }
221
146
  /**
222
- * Reboot a specific Deco device
147
+ * Make HTTPS request to local Deco router
223
148
  */
224
- async rebootDevice(deviceId) {
225
- try {
226
- if (!await this.ensureAuthenticated()) {
227
- return false;
228
- }
229
- const params = {
230
- method: 'reboot',
231
- params: {
232
- deviceId,
149
+ async makeRequest(path, body) {
150
+ const url = `${this.routerUrl}/cgi-bin/luci/;stok=${this.stok}/${path}`;
151
+ this.log.debug(`API request - URL: ${url}`);
152
+ return new Promise((resolve, reject) => {
153
+ const urlObj = new URL(url);
154
+ const options = {
155
+ hostname: urlObj.hostname,
156
+ port: urlObj.port || 443,
157
+ path: urlObj.pathname + urlObj.search,
158
+ method: 'POST',
159
+ headers: {
160
+ 'Content-Type': 'application/json',
161
+ 'Content-Length': Buffer.byteLength(body),
233
162
  },
163
+ rejectUnauthorized: false,
234
164
  };
235
- const response = await this.makeRequest('/', params);
236
- if (response.error_code !== 0) {
237
- this.log.error('Failed to reboot device:', response.msg);
238
- return false;
239
- }
240
- this.log.info(`Rebooted device ${deviceId}`);
241
- return true;
242
- }
243
- catch (error) {
244
- this.log.error('Error rebooting device:', error);
245
- return false;
246
- }
247
- }
248
- /**
249
- * Make HTTP request to TP-Link API
250
- */
251
- async makeRequest(endpoint, params, requireAuth = true) {
252
- const url = `${this.baseUrl}${endpoint}`;
253
- const headers = {
254
- 'Content-Type': 'application/json',
255
- 'User-Agent': 'Deco/3.0 (iPhone; iOS 15.0; Scale/3.00)',
256
- };
257
- if (requireAuth && this.token) {
258
- headers.Authorization = `Bearer ${this.token}`;
259
- }
260
- const body = JSON.stringify(params);
261
- this.log.debug(`API request - URL: ${url}, Method: ${params.method || 'unknown'}`);
262
- try {
263
- this.log.debug(`Making API request to: ${url}`);
264
- const response = await fetch(url, {
265
- method: 'POST',
266
- headers,
267
- body,
268
- redirect: 'manual',
269
- });
270
- // Handle redirects
271
- if (response.status >= 300 && response.status < 400) {
272
- const location = response.headers.get('location');
273
- this.log.error(`API returned redirect (${response.status}) to: ${location}`);
274
- throw new Error(`API redirect to ${location} - endpoint may be wrong`);
275
- }
276
- if (!response.ok) {
277
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
278
- }
279
- const text = await response.text();
280
- // Try to parse as JSON, but handle HTML error pages gracefully
281
- try {
282
- const data = JSON.parse(text);
283
- return data;
284
- }
285
- catch (parseError) {
286
- if (text.trim().startsWith('<!DOCTYPE') || text.trim().startsWith('<html')) {
287
- this.log.error('API returned HTML instead of JSON. Response preview:', text.substring(0, 300));
288
- this.log.error('This usually means: endpoint is wrong, credentials are wrong, or the API has changed.');
165
+ const req = https.request(options, (res) => {
166
+ let data = '';
167
+ // Handle redirects
168
+ if (typeof res.statusCode === 'number' && res.statusCode >= 300 && res.statusCode < 400) {
169
+ const location = res.headers.location;
170
+ this.log.error(`API returned redirect (${res.statusCode}) to: ${location}`);
171
+ reject(new Error(`API redirect to ${location} - authentication may have failed`));
172
+ return;
289
173
  }
290
- else {
291
- this.log.error('Failed to parse API response as JSON:', text);
174
+ if (typeof res.statusCode !== 'number' || res.statusCode !== 200) {
175
+ reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
176
+ return;
292
177
  }
293
- throw new Error('Invalid JSON response from TP-Link API');
294
- }
295
- }
296
- catch (error) {
297
- this.log.error('API request failed:', error);
298
- throw error;
299
- }
178
+ res.on('data', (chunk) => {
179
+ data += chunk;
180
+ });
181
+ res.on('end', () => {
182
+ try {
183
+ const jsonData = JSON.parse(data);
184
+ resolve(jsonData);
185
+ }
186
+ catch (parseError) {
187
+ if (data.trim().startsWith('<!DOCTYPE') || data.trim().startsWith('<html')) {
188
+ this.log.error('API returned HTML instead of JSON. Response preview:', data.substring(0, 300));
189
+ this.log.error('Router may not be accessible or API endpoint is wrong.');
190
+ }
191
+ else {
192
+ this.log.error('Failed to parse API response as JSON:', data);
193
+ }
194
+ reject(new Error('Invalid JSON response from Deco router'));
195
+ }
196
+ });
197
+ });
198
+ req.on('error', (error) => {
199
+ this.log.error('API request failed:', error);
200
+ reject(error);
201
+ });
202
+ req.write(body);
203
+ req.end();
204
+ });
300
205
  }
301
206
  /**
302
207
  * Ensure we have a valid authentication token
303
208
  */
304
209
  async ensureAuthenticated() {
305
- if (!this.token || (Date.now() - this.lastAuthTime) >= this.authValidityMs) {
210
+ if (!this.stok || (Date.now() - this.lastAuthTime) >= this.authValidityMs) {
306
211
  return await this.authenticate();
307
212
  }
308
213
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"decoAPI.js","sourceRoot":"","sources":["../src/decoAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decoAPI.js","sourceRoot":"","sources":["../src/decoAPI.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-deco",
3
3
  "displayName": "TP-Link Deco",
4
4
  "type": "module",
5
- "version": "1.0.3",
5
+ "version": "1.0.5",
6
6
  "description": "Homebridge plugin for TP-Link Deco mesh network system with support for network monitoring, device tracking, and network controls.",
7
7
  "author": "Fabian Oley",
8
8
  "license": "Apache-2.0",