@homebridge-plugins/homebridge-tado 8.6.0-beta.4 → 8.6.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/CHANGELOG.md CHANGED
@@ -1,17 +1,19 @@
1
1
  # Changelog
2
2
 
3
- ## v8.6.0 - 2025-10-31
4
- - BREAKING CHANGE: If you use tadoApiUrl or skipAuth, they must now be defined under each corresponding home in your configuration (#176)
5
- - Refactor configuration: Moved tadoApiUrl and skipAuth into individual home configs to support multiple API URLs (#176)
6
- - Persist Tado zone states after zone state updates
7
- - Improved zone update logic: when setting a state, all zones are now updated immediately if the next scheduled update is more than 10 seconds away
8
- - Advanced queue handling for update and persistence tasks
9
- - Prevent updates during active setStates
10
- - Tado API counter now tracks and persists for each authenticated user
11
- - Fix: Polling and tasks for multiple homes (#178)
12
- - Fix: Corrected zone update handling that could previously cause unintended heating changes (#178)
13
- - Added additional debug log messages for zone updates
14
- - Note: This update will reset your tado api counter for the current day to zero.
3
+ ## v8.6.1 2025-11-01
4
+ - Fix: Improve error logging for failed API requests (#179)
5
+
6
+ ## v8.6.0 2025-11-01
7
+ - BREAKING CHANGE: `tadoApiUrl` and `skipAuth` must now be defined under each home configuration for proper multi-home support (#176)
8
+ - New parameter `preferSiriTemperature` for improved Siri handling — allows temperature changes via Siri without forcing Auto mode (#178). See [#178 (comment)](https://github.com/homebridge-plugins/homebridge-tado/issues/178#issuecomment-3476646430) for a detailed explanation
9
+ - Restored stable update behavior from v8.3.1 and earlier while keeping Siri compatibility (#178)
10
+ - Reworked thermostat update logic: batches state and temperature updates within 400 ms for more reliable state updates (#178)
11
+ - Improved zone update and persistence handling for faster, more consistent status updates
12
+ - Optimized task queue to prevent overlapping operations and API calls
13
+ - Fixed multi-home polling and individual API handling (#176)
14
+ - Added enhanced debug logs for zone updates and API interactions
15
+ - Note: This update resets the Tado API counter for the current day
16
+ - Apologies for the unexpected behavior introduced in v8.4.x–8.5.x — this release restores consistent and reliable behavior, with an optional fix for Siri users. Full statement: [#178 (comment)](https://github.com/homebridge-plugins/homebridge-tado/issues/178#issuecomment-3476646430)
15
17
 
16
18
  ## v8.5.0 - 2025-10-27
17
19
  - Change minimum polling interval to 30s due to improvements made in v8.2.0
@@ -42,8 +44,8 @@
42
44
  - Fix config UI not working on HOOBS 5 (#177)
43
45
 
44
46
  ## v8.1.0 - 2025-10-19
45
- - Add option to use a custom tado api url (#176)
46
- - Add option to skip authentication for tado api (#176)
47
+ - Add option to use a custom tado API url (#176)
48
+ - Add option to skip authentication for tado API (#176)
47
49
  - Update dependencies
48
50
 
49
51
  ## v8.0.2 - 2025-07-22
@@ -88,7 +90,7 @@
88
90
  - Updated changelog
89
91
 
90
92
  ## v7.4.0 - 2025-03-14
91
- - Implemented the new authentication workflow for the tado° REST API based on their [official instructions](https://support.tado.com/en/articles/8565472-how-do-i-authenticate-to-access-the-rest-api)
93
+ - Implemented the new authentication workflow for the tado° REST API based on their [official instructions](https://support.tado.com/en/articles/8565472-how-do-i-authenticate-to-access-the-rest-API)
92
94
  - Added full support for Homebridge v2.0 (it is also shown as compatible when using Homebridge v1.X)
93
95
  - Updated all dependencies to their latest version
94
96
  - Added new authentication workflow to config-ui
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homebridge-plugins/homebridge-tado",
3
- "version": "8.6.0-beta.4",
3
+ "version": "8.6.1",
4
4
  "description": "Homebridge plugin for controlling tado° devices.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -51,4 +51,4 @@
51
51
  "globals": "^16.5.0",
52
52
  "prettier": "^3.6.2"
53
53
  }
54
- }
54
+ }
@@ -563,9 +563,8 @@ export default (api, accessories, config, tado, telegram) => {
563
563
  );
564
564
  break;
565
565
  }
566
- } catch (err) {
567
- console.log("error at setStates", err);
568
- errorHandler(err);
566
+ } catch (error) {
567
+ Logger.error(`Failed to set states: ${error.message || error}`);
569
568
  } finally {
570
569
  delete helpers[config.homeId].activeSettingStateRuns[runId];
571
570
  //update zones to ensure correct state in Apple Home
@@ -796,8 +795,8 @@ export default (api, accessories, config, tado, telegram) => {
796
795
 
797
796
  //Child Lock
798
797
  if (config.childLock.length) await updateDevices();
799
- } catch (err) {
800
- errorHandler(err);
798
+ } catch (error) {
799
+ Logger.error(`Failed to get states: ${error.message || error}`);
801
800
  } finally {
802
801
  void refreshHistoryServices();
803
802
  }
@@ -1555,48 +1554,6 @@ export default (api, accessories, config, tado, telegram) => {
1555
1554
  });
1556
1555
  }
1557
1556
 
1558
- function errorHandler(err) {
1559
- let error;
1560
-
1561
- if (err.options)
1562
- Logger.debug(
1563
- 'API request ' + err.options.method + ' ' + err.options.url.pathname + ' <error> ' + err.message,
1564
- config.homeName
1565
- );
1566
-
1567
- if (err.response) {
1568
- // The request was made and the server responded with a status code
1569
- // that falls out of the range of 2xx
1570
- if (err.response.data) {
1571
- error = {
1572
- status: err.response.status,
1573
- message: err.response.statusText,
1574
- data: err.response.data,
1575
- };
1576
- } else {
1577
- error = {
1578
- status: err.response.status,
1579
- message: err.response.statusText,
1580
- };
1581
- }
1582
- } else if (err.request) {
1583
- error = {
1584
- code: err.code,
1585
- message: 'Cannot reach Tado. No response received.',
1586
- };
1587
- } else if (err.output && err.output.payload && Object.keys(err.output.payload).length) {
1588
- //simple-oauth2 boom error
1589
- error = err.output.payload;
1590
- } else {
1591
- // Something happened in setting up the request that triggered an Error
1592
- error = err;
1593
- }
1594
-
1595
- Logger.error("Error:", error, config.homeName);
1596
-
1597
- return;
1598
- }
1599
-
1600
1557
  return {
1601
1558
  initTasks: initTasks,
1602
1559
  getStates: getStates,
@@ -300,12 +300,6 @@ export default class Tado {
300
300
  return response.body;
301
301
  } catch (error) {
302
302
  Logger.error(`API Request [${method} ${path}] - FAILED: ${error.message}`, this.name);
303
- if (error.response) {
304
- Logger.error(`HTTP Status: ${error.response.statusCode} - Response: ${JSON.stringify(error.response.body)}`, this.name);
305
- }
306
- if (error.request) {
307
- Logger.error(`Request failed - Config: ${JSON.stringify(config)}`, this.name);
308
- }
309
303
  throw error;
310
304
  }
311
305
  }