@homebridge-plugins/homebridge-tado 8.1.0 → 8.1.2
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 +9 -2
- package/homebridge-ui/public/js/main.js +1 -1
- package/package.json +1 -1
- package/src/helper/handler.js +16 -16
- package/src/tado/tado-api.js +2 -1
- package/src/tado/tado-config.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v8.1.2 - 2025-10-20
|
|
4
|
+
- Fix: Skip auth also for config endpoints if enabled (#176)
|
|
5
|
+
|
|
6
|
+
## v8.1.1 - 2025-10-20
|
|
7
|
+
- Fix config UI not working on HOOBS 5 (#177)
|
|
8
|
+
|
|
3
9
|
## v8.1.0 - 2025-10-19
|
|
4
|
-
- Add option to use a custom tado api url
|
|
5
|
-
- Add option to skip authentication for tado api
|
|
10
|
+
- Add option to use a custom tado api url (#176)
|
|
11
|
+
- Add option to skip authentication for tado api (#176)
|
|
12
|
+
- Update dependencies
|
|
6
13
|
|
|
7
14
|
## v8.0.2 - 2025-07-22
|
|
8
15
|
- Update dependencies
|
|
@@ -1407,7 +1407,7 @@ async function fetchDevices(credentials, refresh, resync) {
|
|
|
1407
1407
|
try {
|
|
1408
1408
|
|
|
1409
1409
|
//check version before load ui
|
|
1410
|
-
if (window.compareVersions(window.homebridge.serverEnv.env.packageVersion, '4.34.0') < 0) {
|
|
1410
|
+
if (window.homebridge.serverEnv.env && window.compareVersions(window.homebridge.serverEnv.env.packageVersion, '4.34.0') < 0) {
|
|
1411
1411
|
await showOldSchema(true);
|
|
1412
1412
|
return;
|
|
1413
1413
|
}
|
package/package.json
CHANGED
package/src/helper/handler.js
CHANGED
|
@@ -57,7 +57,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
57
57
|
|
|
58
58
|
// Use AC-specific overlay for AIR_CONDITIONING zones
|
|
59
59
|
if (accessory.context.config.type === 'AIR_CONDITIONING') {
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
await tado.setACZoneOverlay(
|
|
62
62
|
config.homeId,
|
|
63
63
|
accessory.context.config.zoneId,
|
|
@@ -123,7 +123,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
123
123
|
// Use AC-specific overlay for AIR_CONDITIONING zones
|
|
124
124
|
if (accessory.context.config.type === 'AIR_CONDITIONING') {
|
|
125
125
|
let acMode = value === 1 ? 'HEAT' : value === 2 ? 'COOL' : 'COOL';
|
|
126
|
-
|
|
126
|
+
|
|
127
127
|
await tado.setACZoneOverlay(
|
|
128
128
|
config.homeId,
|
|
129
129
|
accessory.context.config.zoneId,
|
|
@@ -187,15 +187,15 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
187
187
|
|
|
188
188
|
// Use AC-specific overlay for AIR_CONDITIONING zones
|
|
189
189
|
if (accessory.context.config.type === 'AIR_CONDITIONING') {
|
|
190
|
-
|
|
190
|
+
|
|
191
191
|
// Map HomeKit target state to Tado AC mode
|
|
192
192
|
let acMode = 'COOL'; // Default to COOL
|
|
193
|
-
|
|
193
|
+
|
|
194
194
|
// Get current target state from HeaterCooler service for proper mode detection
|
|
195
195
|
let heaterCoolerService = accessory.getService(api.hap.Service.HeaterCooler);
|
|
196
196
|
if (heaterCoolerService) {
|
|
197
197
|
let targetState = heaterCoolerService.getCharacteristic(api.hap.Characteristic.TargetHeaterCoolerState).value;
|
|
198
|
-
|
|
198
|
+
|
|
199
199
|
// Map HomeKit target states to Tado AC modes
|
|
200
200
|
// 1 = Heat, 2 = Cool, 3 = Auto
|
|
201
201
|
switch (targetState) {
|
|
@@ -210,7 +210,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
210
210
|
acMode = 'AUTO';
|
|
211
211
|
break;
|
|
212
212
|
}
|
|
213
|
-
|
|
213
|
+
|
|
214
214
|
// For temperature changes, use the appropriate threshold characteristic
|
|
215
215
|
if (![0, 1, 3].includes(value)) {
|
|
216
216
|
// This is a temperature change, use the appropriate temperature based on mode
|
|
@@ -230,7 +230,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
230
230
|
// This is a state change - use the mapped AC mode
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
-
|
|
233
|
+
|
|
234
234
|
await tado.setACZoneOverlay(
|
|
235
235
|
config.homeId,
|
|
236
236
|
accessory.context.config.zoneId,
|
|
@@ -273,7 +273,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
273
273
|
|
|
274
274
|
// Use AC-specific overlay for AIR_CONDITIONING zones
|
|
275
275
|
if (accessory.context.config.type === 'AIR_CONDITIONING') {
|
|
276
|
-
|
|
276
|
+
|
|
277
277
|
await tado.setACZoneOverlay(
|
|
278
278
|
config.homeId,
|
|
279
279
|
accessory.context.config.zoneId,
|
|
@@ -725,7 +725,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
725
725
|
} finally {
|
|
726
726
|
setTimeout(() => {
|
|
727
727
|
getStates();
|
|
728
|
-
}, config.polling * 1000);
|
|
728
|
+
}, Math.max(config.polling, 300) * 1000);
|
|
729
729
|
}
|
|
730
730
|
}
|
|
731
731
|
|
|
@@ -867,9 +867,9 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
867
867
|
const thermoAccessory = accessories.filter(
|
|
868
868
|
(acc) =>
|
|
869
869
|
acc &&
|
|
870
|
-
(acc.context.config.subtype === 'zone-thermostat' ||
|
|
871
|
-
|
|
872
|
-
|
|
870
|
+
(acc.context.config.subtype === 'zone-thermostat' ||
|
|
871
|
+
acc.context.config.subtype === 'zone-heatercooler' ||
|
|
872
|
+
acc.context.config.subtype === 'zone-heatercooler-ac')
|
|
873
873
|
);
|
|
874
874
|
|
|
875
875
|
if (thermoAccessory.length) {
|
|
@@ -974,7 +974,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
974
974
|
|
|
975
975
|
if (zoneState.setting.power === 'ON') {
|
|
976
976
|
active = 1;
|
|
977
|
-
|
|
977
|
+
|
|
978
978
|
// Get target temperature from setting
|
|
979
979
|
targetTemp =
|
|
980
980
|
zoneState.setting.temperature !== null && zoneState.setting.temperature
|
|
@@ -987,7 +987,7 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
987
987
|
if (zone.type === 'AIR_CONDITIONING') {
|
|
988
988
|
const acMode = zoneState.setting.mode || 'COOL';
|
|
989
989
|
tempEqual = currentTemp && targetTemp ? Math.abs(currentTemp - targetTemp) < 0.5 : false;
|
|
990
|
-
|
|
990
|
+
|
|
991
991
|
// Map AC modes to HomeKit states
|
|
992
992
|
switch (acMode.toUpperCase()) {
|
|
993
993
|
case 'HEAT':
|
|
@@ -1015,8 +1015,8 @@ export default (api, accessories, config, tado, telegram) => {
|
|
|
1015
1015
|
|
|
1016
1016
|
//Thermostat/HeaterCooler
|
|
1017
1017
|
const heaterAccessory = accessories.filter(
|
|
1018
|
-
(acc) => acc && (acc.context.config.subtype === 'zone-heatercooler-boiler' ||
|
|
1019
|
-
|
|
1018
|
+
(acc) => acc && (acc.context.config.subtype === 'zone-heatercooler-boiler' ||
|
|
1019
|
+
acc.context.config.subtype === 'zone-heatercooler-ac')
|
|
1020
1020
|
);
|
|
1021
1021
|
const switchAccessory = accessories.filter((acc) => acc && acc.context.config.subtype === 'zone-switch');
|
|
1022
1022
|
const faucetAccessory = accessories.filter((acc) => acc && acc.context.config.subtype === 'zone-faucet');
|
package/src/tado/tado-api.js
CHANGED
|
@@ -224,6 +224,7 @@ export default class Tado {
|
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
async fullAuthentication() {
|
|
227
|
+
if (this.skipAuth) return "";
|
|
227
228
|
let instructions = "";
|
|
228
229
|
let resolve;
|
|
229
230
|
const oPromise = new Promise((res, _) => {
|
|
@@ -245,7 +246,7 @@ export default class Tado {
|
|
|
245
246
|
}
|
|
246
247
|
|
|
247
248
|
async waitForAuthentication() {
|
|
248
|
-
await this.getToken();
|
|
249
|
+
if (!this.skipAuth) await this.getToken();
|
|
249
250
|
return "Authentication successful!";
|
|
250
251
|
}
|
|
251
252
|
|
package/src/tado/tado-config.js
CHANGED
|
@@ -519,7 +519,7 @@ export default {
|
|
|
519
519
|
home.extras && home.extras.childLockSwitches
|
|
520
520
|
? home.extras.childLockSwitches.filter((childLockSwitch) => childLockSwitch && childLockSwitch.active)
|
|
521
521
|
: [],
|
|
522
|
-
polling: Number.isInteger(home.polling) ? (home.polling <
|
|
522
|
+
polling: Number.isInteger(home.polling) ? (home.polling < 300 ? 300 : home.polling) : 300,
|
|
523
523
|
};
|
|
524
524
|
|
|
525
525
|
if (home.zones && home.zones.length) {
|