@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 +17 -15
- package/package.json +2 -2
- package/src/helper/handler.js +4 -47
- package/src/tado/tado-api.js +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## v8.6.
|
|
4
|
-
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
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
|
|
46
|
-
- Add option to skip authentication for tado
|
|
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-
|
|
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.
|
|
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
|
+
}
|
package/src/helper/handler.js
CHANGED
|
@@ -563,9 +563,8 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
563
563
|
);
|
|
564
564
|
break;
|
|
565
565
|
}
|
|
566
|
-
} catch (
|
|
567
|
-
|
|
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 (
|
|
800
|
-
|
|
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,
|
package/src/tado/tado-api.js
CHANGED
|
@@ -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
|
}
|