homebridge-melcloud-control 4.0.0-beta.265 → 4.0.0-beta.267

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/melcloud.js +19 -4
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.0.0-beta.265",
4
+ "version": "4.0.0-beta.267",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
package/src/melcloud.js CHANGED
@@ -290,13 +290,28 @@ class MelCloud extends EventEmitter {
290
290
  await page.goto('https://app.melcloud.com/Mitsubishi.Wifi.Client/Login', { waitUntil: 'networkidle2' });
291
291
 
292
292
  // 2. Kliknij login (jeżeli strona główna ma przycisk)
293
- const loginBtn = await page.$x("//button[contains(text(), 'Log In') or contains(text(), 'Zaloguj')]");
294
- if (loginBtn.length) await loginBtn[0].click();
293
+ // Zastąp fragment z page.$x
294
+ const buttons = await page.$$('button.btn--blue');
295
+ let loginBtn = null;
296
+
297
+ for (const btn of buttons) {
298
+ const text = await page.evaluate(el => el.textContent, btn);
299
+ if (text.trim() === 'Zaloguj' || text.trim() === 'Log In') {
300
+ loginBtn = btn;
301
+ break;
302
+ }
303
+ }
304
+
305
+ if (!loginBtn) throw new Error('Login button not found');
306
+ await Promise.all([
307
+ loginBtn.click(),
308
+ page.waitForNavigation({ waitUntil: 'networkidle2' })
309
+ ]);
295
310
 
296
311
  // 3. Wypełnij login i hasło
297
312
  await page.waitForSelector('input[name="username"]', { timeout: 5000 });
298
- await page.type('input[name="username"]', user, { delay: 50 });
299
- await page.type('input[name="password"]', passwd, { delay: 50 });
313
+ await page.type('input[name="username"]', this.user, { delay: 50 });
314
+ await page.type('input[name="password"]', this.passwd, { delay: 50 });
300
315
 
301
316
  const submitBtn = await page.$('input[type="submit"]');
302
317
  await submitBtn?.click();