diff --git a/config/accessories.yaml b/config/accessories.yaml index df20d39..5f3e2ed 100644 --- a/config/accessories.yaml +++ b/config/accessories.yaml @@ -354,6 +354,8 @@ accessoriesConfiguration: coolOffsetParamId: 48739 temperatureParamId: 40008 heatPompParamId: 43437 + calculatedCoolingTemperatureParamId: 44270 + calculatedHeatingTemperatureParamId: 43009 type: heatingcooling outdoorTemperatureParamId: 40004 coolingStartTemperatureParamId: 47374 diff --git a/package.json b/package.json index c5d2bc8..251943b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "homebridge-nibe", "displayName": "Homebridge Nibe", - "version": "1.2.1", + "version": "1.2.2", "description": "Homebridge plugin for Nibe services", "author": "Hubert Pruszynski ", "license": "MIT", diff --git a/src/nibe/provider/Provider.ts b/src/nibe/provider/Provider.ts index b47a3b7..d38028d 100644 --- a/src/nibe/provider/Provider.ts +++ b/src/nibe/provider/Provider.ts @@ -168,7 +168,7 @@ class ThermostatProps extends HeatMediumFlowMapper { const temp = parameters.get(isCooling ? providerParameters.calculatedCoolingTemperatureParamId : providerParameters.calculatedHeatingTemperatureParamId); if (temp && temp.value !== undefined && offset && offset.value !== undefined) { - const x = Math.round(offset.value + temp.value); + const x = Math.round(temp.value - offset.value); this.thermostatPropsOption = !this.thermostatPropsOption; // workaround for refresh props return this.thermostatPropsOption ? { @@ -191,10 +191,14 @@ class ThermostatOffset extends HeatMediumFlowMapper { const outdoorTemp = parameters.get(providerParameters.outdoorTemperatureParamId); const coolingStartTemp = parameters.get(providerParameters.coolingStartTemperatureParamId); const isCooling = value === 2 || (outdoorTemp && coolingStartTemp && outdoorTemp.rawValue > coolingStartTemp.rawValue); + const temp = parameters.get(isCooling ? providerParameters.calculatedCoolingTemperatureParamId : providerParameters.calculatedHeatingTemperatureParamId); const offsetParamId = isCooling ? providerParameters.coolOffsetParamId : providerParameters.heatOffsetParamId; const manageParameters = {}; - manageParameters[offsetParamId] = providerParameters.newValue; + + if (temp && temp.value !== undefined) { + manageParameters[offsetParamId] = providerParameters.newValue - Math.round(temp.value); + } return manageParameters; }