diff --git a/dist/lib/accessories/AirConditionerAccessory.d.ts b/dist/lib/accessories/AirConditionerAccessory.d.ts index a03699f..6f41720 100644 --- a/dist/lib/accessories/AirConditionerAccessory.d.ts +++ b/dist/lib/accessories/AirConditionerAccessory.d.ts @@ -14,6 +14,7 @@ export declare class AirConditionerAccessory extends BaseAccessory { private modeCode; private acStates; constructor(platform: TuyaIRPlatform, accessory: PlatformAccessory); + getTemperatureRange(): void; /** * Load latest device status. */ diff --git a/dist/lib/accessories/AirConditionerAccessory.d.ts.map b/dist/lib/accessories/AirConditionerAccessory.d.ts.map index dfba1a6..620517a 100644 --- a/dist/lib/accessories/AirConditionerAccessory.d.ts.map +++ b/dist/lib/accessories/AirConditionerAccessory.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"AirConditionerAccessory.d.ts","sourceRoot":"","sources":["../../../src/lib/accessories/AirConditionerAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IAalD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAe;IAE/B,OAAO,CAAC,QAAQ,CAKd;gBAGmB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,iBAAiB;IAmDjD;;MAEE;IACF,aAAa;IAmBb,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAahC,KAAK,IAAI,mBAAmB;IAI5B,sBAAsB,CAAC,KAAK,EAAE,mBAAmB;IAgBjD,sBAAsB,IAAI,mBAAmB;IAI7C,4CAA4C,IAAI,mBAAmB;IAInE,4CAA4C,CAAC,KAAK,EAAE,mBAAmB;IAavE,8BAA8B,IAAI,mBAAmB;IAIrD,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;IAczD,qBAAqB,IAAI,mBAAmB;IAI5C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAA;IAW7F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAA;CAMrD"} \ No newline at end of file +{"version":3,"file":"AirConditionerAccessory.d.ts","sourceRoot":"","sources":["../../../src/lib/accessories/AirConditionerAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IAalD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAgB;IAEhC,OAAO,CAAC,QAAQ,CAKd;gBAGmB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,iBAAiB;IAgDjD,mBAAmB;IAuBnB;;MAEE;IACF,aAAa;IAmBb,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAahC,KAAK,IAAI,mBAAmB;IAI5B,sBAAsB,CAAC,KAAK,EAAE,mBAAmB;IAgBjD,sBAAsB,IAAI,mBAAmB;IAI7C,4CAA4C,IAAI,mBAAmB;IAInE,4CAA4C,CAAC,KAAK,EAAE,mBAAmB;IAavE,8BAA8B,IAAI,mBAAmB;IAIrD,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;IAczD,qBAAqB,IAAI,mBAAmB;IAI5C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAA;IAW7F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAA;CAMrD"} \ No newline at end of file diff --git a/dist/lib/accessories/AirConditionerAccessory.js b/dist/lib/accessories/AirConditionerAccessory.js index 1d9b3ca..cb98457 100644 --- a/dist/lib/accessories/AirConditionerAccessory.js +++ b/dist/lib/accessories/AirConditionerAccessory.js @@ -38,15 +38,11 @@ class AirConditionerAccessory extends BaseAccessory_1.BaseAccessory { this.service.getCharacteristic(this.platform.Characteristic.CurrentTemperature) .onGet(this.getCurrentTemperature.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature) - .setProps({ - minStep: 1 - }) .onGet(this.getCoolingThresholdTemperatureCharacteristic.bind(this)) .onSet(this.setCoolingThresholdTemperatureCharacteristic.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature) .onGet(this.getCoolingThresholdTemperatureCharacteristic.bind(this)) - .onSet(this.setCoolingThresholdTemperatureCharacteristic.bind(this)) - .setProps({ minStep: 1 }); + .onSet(this.setCoolingThresholdTemperatureCharacteristic.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed) .setProps({ unit: undefined, @@ -57,6 +53,31 @@ class AirConditionerAccessory extends BaseAccessory_1.BaseAccessory { .onGet(this.getRotationSpeedCharacteristic.bind(this)) .onSet(this.setRotationSpeedCharacteristic.bind(this)); this.refreshStatus(); + this.getTemperatureRange(); + } + getTemperatureRange() { + APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, `${this.configuration.apiHost}/v1.0/iot-03/devices/${this.accessory.context.device.id}/specification`, "GET", {}, (body) => { + if (!body.success) { + this.log.error(`Failed to get AC temperature range. Using defaults. ${body.msg}`); + } + else { + const temperatureConfig = JSON.parse(body.result.functions.filter(v => v.code === "T")[0].values); + this.service.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature) + .setProps({ + minValue: temperatureConfig.min, + maxValue: temperatureConfig.max, + minStep: temperatureConfig.step + }); + this.service.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature) + .setProps({ + minValue: temperatureConfig.min, + maxValue: temperatureConfig.max, + minStep: temperatureConfig.step + }); + this.log.debug("Minimum Temperature: " + temperatureConfig.min); + this.log.debug("Maximum Temperature: " + temperatureConfig.max); + } + }); } /** * Load latest device status. @@ -158,7 +179,7 @@ class AirConditionerAccessory extends BaseAccessory_1.BaseAccessory { "value": value }; this.log.debug(JSON.stringify(commandObj)); - APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v1.0/infrareds/${deviceId}/air-conditioners/${remoteId}/command`, "POST", commandObj, (body) => { + APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v2.0/infrareds/${deviceId}/air-conditioners/${remoteId}/command`, "POST", commandObj, (body) => { cb(body); }); } diff --git a/dist/lib/accessories/AirConditionerAccessory.js.map b/dist/lib/accessories/AirConditionerAccessory.js.map index 5ca88c9..865b71e 100644 --- a/dist/lib/accessories/AirConditionerAccessory.js.map +++ b/dist/lib/accessories/AirConditionerAccessory.js.map @@ -1 +1 @@ -{"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../../src/lib/accessories/AirConditionerAccessory.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../../src/lib/accessories/AirConditionerAccessory.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/lib/accessories/FanAccessory.js b/dist/lib/accessories/FanAccessory.js index 1c7a209..9e7f9a9 100644 --- a/dist/lib/accessories/FanAccessory.js +++ b/dist/lib/accessories/FanAccessory.js @@ -23,7 +23,7 @@ class FanAccessory extends BaseAccessory_1.BaseAccessory { this.powerCommand = 1; this.speedCommand = 9367; this.swingCommand = 9372; - this.sendCommandAPIURL = accessory.context.device.diy ? `${this.configuration.apiHost}/v1.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/learning-codes` : `${this.configuration.apiHost}/v1.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; + this.sendCommandAPIURL = accessory.context.device.diy ? `${this.configuration.apiHost}/v2.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/learning-codes` : `${this.configuration.apiHost}/v2.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; this.sendCommandKey = accessory.context.device.diy ? 'code' : 'raw_key'; (_b = (_a = this.accessory) === null || _a === void 0 ? void 0 : _a.getService(this.platform.Service.AccessoryInformation)) === null || _b === void 0 ? void 0 : _b.setCharacteristic(this.platform.Characteristic.Manufacturer, accessory.context.device.product_name).setCharacteristic(this.platform.Characteristic.Model, 'Infrared Controlled Fan').setCharacteristic(this.platform.Characteristic.SerialNumber, accessory.context.device.id); this.service = this.accessory.getService(this.platform.Service.Fanv2) || this.accessory.addService(this.platform.Service.Fanv2); @@ -101,7 +101,7 @@ class FanAccessory extends BaseAccessory_1.BaseAccessory { this.log.debug("Getting commands for Fan..."); if (isDiy) { this.log.debug("Getting commands for DIY Fan..."); - APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v1.0/infrareds/${irDeviceId}/remotes/${remoteId}/learning-codes`, "GET", {}, (codesBody) => { + APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v2.0/infrareds/${irDeviceId}/remotes/${remoteId}/learning-codes`, "GET", {}, (codesBody) => { if (codesBody.success) { this.log.debug("Received codes. Returning all available codes"); callback(this.getIRCodesFromAPIResponse(codesBody)); @@ -114,10 +114,10 @@ class FanAccessory extends BaseAccessory_1.BaseAccessory { } else { this.log.debug("First getting brand id and remote id for given device..."); - APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, `${this.configuration.apiHost}/v1.0/infrareds/${irDeviceId}/remotes/${remoteId}/keys`, 'GET', {}, (body) => { + APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, `${this.configuration.apiHost}/v2.0/infrareds/${irDeviceId}/remotes/${remoteId}/keys`, 'GET', {}, (body) => { if (body.success) { this.log.debug(`Found category id: ${body.result.category_id}, brand id: ${body.result.brand_id}, remote id: ${body.result.remote_index}`); - APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v1.0/infrareds/${irDeviceId}/categories/${body.result.category_id}/brands/${body.result.brand_id}/remotes/${body.result.remote_index}/rules`, "GET", {}, (codesBody) => { + APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v2.0/infrareds/${irDeviceId}/categories/${body.result.category_id}/brands/${body.result.brand_id}/remotes/${body.result.remote_index}/rules`, "GET", {}, (codesBody) => { if (codesBody.success) { this.log.debug("Received codes. Returning all available codes"); callback(this.getIRCodesFromAPIResponse(codesBody)); diff --git a/dist/lib/accessories/GenericAccessory.js b/dist/lib/accessories/GenericAccessory.js index ca82c32..a39ec70 100644 --- a/dist/lib/accessories/GenericAccessory.js +++ b/dist/lib/accessories/GenericAccessory.js @@ -18,7 +18,7 @@ class GenericAccessory extends BaseAccessory_1.BaseAccessory { On: this.platform.Characteristic.Active.INACTIVE }; this.powerCommand = 1; - this.sendCommandAPIURL = `${this.configuration.apiHost}/v1.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; + this.sendCommandAPIURL = `${this.configuration.apiHost}/v2.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; // set accessory information (_a = this.accessory.getService(this.platform.Service.AccessoryInformation)) === null || _a === void 0 ? void 0 : _a.setCharacteristic(this.platform.Characteristic.Manufacturer, accessory.context.device.product_name).setCharacteristic(this.platform.Characteristic.Model, 'Infrared Controlled Switch').setCharacteristic(this.platform.Characteristic.SerialNumber, accessory.context.device.id); this.service = this.accessory.getService(this.platform.Service.Switch) || this.accessory.addService(this.platform.Service.Switch); diff --git a/dist/lib/api/DeviceConfigurationHelper.js b/dist/lib/api/DeviceConfigurationHelper.js index 1e6a9ca..332c6d5 100644 --- a/dist/lib/api/DeviceConfigurationHelper.js +++ b/dist/lib/api/DeviceConfigurationHelper.js @@ -34,7 +34,7 @@ class DeviceConfigurationHelper extends BaseHelper_1.BaseHelper { const devs = []; for (let i = 0; i < this.config.configuredRemotes.length; i++) { const dev = this.config.configuredRemotes[i]; - this.fetchRemoteDetails(dev.id, (device) => { + this.fetchRemoteDetails(this.config.irDeviceId, dev.id, (device) => { device.config = this.config; device.diy = dev.diy; devs.push(device); @@ -45,12 +45,12 @@ class DeviceConfigurationHelper extends BaseHelper_1.BaseHelper { } } autoFetch(deviceId, cb) { - APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.config, `${this.apiHost}/v1.0/infrareds/${deviceId}/remotes`, "GET", {}, (body) => { + APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.config, `${this.apiHost}/v2.0/infrareds/${deviceId}/remotes`, "GET", {}, (body) => { const devs = []; if (body.success && body.result) { this.log.info(`API returned ${body.result.length} remotes...`); for (let i = 0; i < body.result.length; i++) { - this.fetchRemoteDetails(body.result[i].remote_id, (device) => { + this.fetchRemoteDetails(deviceId, body.result[i].remote_id, (device) => { device.config = this.config; devs.push(device); if (devs.length == body.result.length) { @@ -65,7 +65,7 @@ class DeviceConfigurationHelper extends BaseHelper_1.BaseHelper { } }); } - fetchRemoteDetails(id, callback) { + fetchRemoteDetails(irId, id, callback) { this.log.warn(this.apiHost + `/v1.0/devices/${id}`); APIInvocationHelper_1.APIInvocationHelper.invokeTuyaIrApi(this.log, this.config, this.apiHost + `/v1.0/devices/${id}`, "GET", {}, (body) => { if (body.success) { diff --git a/dist/lib/api/DeviceConfigurationHelper.js.map b/dist/lib/api/DeviceConfigurationHelper.js.map index b2e39a9..b4dd796 100644 --- a/dist/lib/api/DeviceConfigurationHelper.js.map +++ b/dist/lib/api/DeviceConfigurationHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"DeviceConfigurationHelper.js","sourceRoot":"","sources":["../../../src/lib/api/DeviceConfigurationHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DeviceConfigurationHelper.js","sourceRoot":"","sources":["../../../src/lib/api/DeviceConfigurationHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 83369cd..43d894d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "homebridge-tuya-ir", - "version": "1.0.6", + "version": "1.0.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "homebridge-tuya-ir", - "version": "1.0.6", + "version": "1.0.7", "license": "Apache-2.0", "dependencies": { "crypto-js": "^4.0.0", diff --git a/package.json b/package.json index 63ae8e6..504a87d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": false, "displayName": "Homebridge Tuya IR Platform", "name": "homebridge-tuya-ir", - "version": "1.0.6", + "version": "1.0.7", "description": "Allows homebridge to control Tuya IR Blaster based devices", "license": "Apache-2.0", "repository": { diff --git a/src/lib/accessories/AirConditionerAccessory.ts b/src/lib/accessories/AirConditionerAccessory.ts index 15b9752..8c794ad 100644 --- a/src/lib/accessories/AirConditionerAccessory.ts +++ b/src/lib/accessories/AirConditionerAccessory.ts @@ -11,7 +11,7 @@ import { APIInvocationHelper } from '../api/APIInvocationHelper'; export class AirConditionerAccessory extends BaseAccessory { private service: Service; private modeList = ['Cool', 'Heat', 'Auto']; - private modeCode: number[] =[]; + private modeCode: number[] = []; private acStates = { On: false, @@ -49,16 +49,12 @@ export class AirConditionerAccessory extends BaseAccessory { .onGet(this.getCurrentTemperature.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature) - .setProps({ - minStep: 1 - }) .onGet(this.getCoolingThresholdTemperatureCharacteristic.bind(this)) .onSet(this.setCoolingThresholdTemperatureCharacteristic.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature) .onGet(this.getCoolingThresholdTemperatureCharacteristic.bind(this)) .onSet(this.setCoolingThresholdTemperatureCharacteristic.bind(this)) - .setProps({ minStep: 1 }) this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed) .setProps({ @@ -70,9 +66,33 @@ export class AirConditionerAccessory extends BaseAccessory { .onGet(this.getRotationSpeedCharacteristic.bind(this)) .onSet(this.setRotationSpeedCharacteristic.bind(this)); this.refreshStatus(); + this.getTemperatureRange(); } + getTemperatureRange() { + APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, `${this.configuration.apiHost}/v1.0/iot-03/devices/${this.accessory.context.device.id}/specification`, "GET", {}, (body) => { + if (!body.success) { + this.log.error(`Failed to get AC temperature range. Using defaults. ${body.msg}`); + } else { + const temperatureConfig = JSON.parse(body.result.functions.filter(v => v.code === "T")[0].values); + this.service.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature) + .setProps({ + minValue: temperatureConfig.min, + maxValue: temperatureConfig.max, + minStep: temperatureConfig.step + }) + this.service.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature) + .setProps({ + minValue: temperatureConfig.min, + maxValue: temperatureConfig.max, + minStep: temperatureConfig.step + }) + this.log.debug("Minimum Temperature: " + temperatureConfig.min); + this.log.debug("Maximum Temperature: " + temperatureConfig.max); + } + }); + } /** * Load latest device status. */ @@ -177,7 +197,7 @@ export class AirConditionerAccessory extends BaseAccessory { "value": value } this.log.debug(JSON.stringify(commandObj)); - APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v1.0/infrareds/${deviceId}/air-conditioners/${remoteId}/command`, "POST", commandObj, (body) => { + APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v2.0/infrareds/${deviceId}/air-conditioners/${remoteId}/command`, "POST", commandObj, (body) => { cb(body); }) } diff --git a/src/lib/accessories/FanAccessory.ts b/src/lib/accessories/FanAccessory.ts index 15b688e..d9aa882 100644 --- a/src/lib/accessories/FanAccessory.ts +++ b/src/lib/accessories/FanAccessory.ts @@ -29,7 +29,7 @@ export class FanAccessory extends BaseAccessory { private readonly accessory: PlatformAccessory, ) { super(platform, accessory); - this.sendCommandAPIURL = accessory.context.device.diy ? `${this.configuration.apiHost}/v1.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/learning-codes` : `${this.configuration.apiHost}/v1.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; + this.sendCommandAPIURL = accessory.context.device.diy ? `${this.configuration.apiHost}/v2.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/learning-codes` : `${this.configuration.apiHost}/v2.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; this.sendCommandKey = accessory.context.device.diy ? 'code' : 'raw_key'; this.accessory?.getService(this.platform.Service.AccessoryInformation) @@ -119,7 +119,7 @@ export class FanAccessory extends BaseAccessory { this.log.debug("Getting commands for Fan..."); if (isDiy) { this.log.debug("Getting commands for DIY Fan..."); - APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v1.0/infrareds/${irDeviceId}/remotes/${remoteId}/learning-codes`, "GET", {}, (codesBody) => { + APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v2.0/infrareds/${irDeviceId}/remotes/${remoteId}/learning-codes`, "GET", {}, (codesBody) => { if (codesBody.success) { this.log.debug("Received codes. Returning all available codes"); callback(this.getIRCodesFromAPIResponse(codesBody)); @@ -130,10 +130,10 @@ export class FanAccessory extends BaseAccessory { }); } else { this.log.debug("First getting brand id and remote id for given device..."); - APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, `${this.configuration.apiHost}/v1.0/infrareds/${irDeviceId}/remotes/${remoteId}/keys`, 'GET', {}, (body) => { + APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, `${this.configuration.apiHost}/v2.0/infrareds/${irDeviceId}/remotes/${remoteId}/keys`, 'GET', {}, (body) => { if (body.success) { this.log.debug(`Found category id: ${body.result.category_id}, brand id: ${body.result.brand_id}, remote id: ${body.result.remote_index}`); - APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v1.0/infrareds/${irDeviceId}/categories/${body.result.category_id}/brands/${body.result.brand_id}/remotes/${body.result.remote_index}/rules`, "GET", {}, (codesBody) => { + APIInvocationHelper.invokeTuyaIrApi(this.log, this.configuration, this.configuration.apiHost + `/v2.0/infrareds/${irDeviceId}/categories/${body.result.category_id}/brands/${body.result.brand_id}/remotes/${body.result.remote_index}/rules`, "GET", {}, (codesBody) => { if (codesBody.success) { this.log.debug("Received codes. Returning all available codes"); callback(this.getIRCodesFromAPIResponse(codesBody)); diff --git a/src/lib/accessories/GenericAccessory.ts b/src/lib/accessories/GenericAccessory.ts index a4306f9..9799086 100644 --- a/src/lib/accessories/GenericAccessory.ts +++ b/src/lib/accessories/GenericAccessory.ts @@ -22,7 +22,7 @@ export class GenericAccessory extends BaseAccessory { private readonly accessory: PlatformAccessory, ) { super(platform, accessory); - this.sendCommandAPIURL = `${this.configuration.apiHost}/v1.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; + this.sendCommandAPIURL = `${this.configuration.apiHost}/v2.0/infrareds/${this.parentId}/remotes/${accessory.context.device.id}/raw/command`; // set accessory information this.accessory.getService(this.platform.Service.AccessoryInformation) diff --git a/src/lib/api/DeviceConfigurationHelper.ts b/src/lib/api/DeviceConfigurationHelper.ts index e3b340d..ed20c6f 100644 --- a/src/lib/api/DeviceConfigurationHelper.ts +++ b/src/lib/api/DeviceConfigurationHelper.ts @@ -38,7 +38,7 @@ export class DeviceConfigurationHelper extends BaseHelper { const devs: unknown[] = []; for (let i = 0; i < this.config.configuredRemotes.length; i++) { const dev = this.config.configuredRemotes[i]; - this.fetchRemoteDetails(dev.id, (device) => { + this.fetchRemoteDetails(this.config.irDeviceId, dev.id, (device) => { device.config = this.config; device.diy = dev.diy; devs.push(device); @@ -50,12 +50,12 @@ export class DeviceConfigurationHelper extends BaseHelper { } private autoFetch(deviceId, cb) { - APIInvocationHelper.invokeTuyaIrApi(this.log, this.config, `${this.apiHost}/v1.0/infrareds/${deviceId}/remotes`, "GET", {}, (body) => { + APIInvocationHelper.invokeTuyaIrApi(this.log, this.config, `${this.apiHost}/v2.0/infrareds/${deviceId}/remotes`, "GET", {}, (body) => { const devs: unknown[] = []; if (body.success && body.result) { this.log.info(`API returned ${body.result.length} remotes...`); for (let i = 0; i < body.result.length; i++) { - this.fetchRemoteDetails(body.result[i].remote_id, (device) => { + this.fetchRemoteDetails(deviceId, body.result[i].remote_id, (device) => { device.config = this.config; devs.push(device); if (devs.length == body.result.length) { @@ -70,7 +70,7 @@ export class DeviceConfigurationHelper extends BaseHelper { }) } - private fetchRemoteDetails(id, callback) { + private fetchRemoteDetails(irId, id, callback) { this.log.warn(this.apiHost + `/v1.0/devices/${id}`); APIInvocationHelper.invokeTuyaIrApi(this.log, this.config, this.apiHost + `/v1.0/devices/${id}`, "GET", {}, (body) => { if (body.success) {