homebridge-panasonic-heat-pump
Advanced tools
Comparing version 1.2.0 to 1.2.1
{ | ||
"pluginAlias": "PanasonicHeatPumpHomebridgePlugin", | ||
"pluginType": "platform", | ||
"headerDisplay": "Supports only Panasonic AQUAREA Heat Pump, that has a cloud adapter installed .\n\nCheck out the [Setup Guide](https://github.com/bimusiek/homebridge-panasonic-heat-pump#setup-the-app)", | ||
"footerDisplay": "**Caution!** It is recommended to setup another login for the *Comfort Cloud* and share your home to that login. [Read how](https://github.com/bimusiek/homebridge-panasonic-heat-pump#sharing-panasonic-heatpump-with-another-account)", | ||
"singular": true, | ||
@@ -5,0 +7,0 @@ "schema": { |
@@ -42,3 +42,4 @@ import { PlatformAccessory } from 'homebridge'; | ||
private refreshTimeout; | ||
private setupTankService; | ||
} | ||
//# sourceMappingURL=platformAccessory.d.ts.map |
@@ -57,37 +57,2 @@ "use strict"; | ||
}); | ||
// Water | ||
this.tankService = this.accessory.getService('Water') | ||
|| this.accessory.addService(this.platform.Service.Thermostat, 'Water', 'water'); | ||
this.tankService.setCharacteristic(this.platform.Characteristic.Name, 'Water'); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetTemperature).onSet(async (temp) => { | ||
panasonicApi.setTankTargetHeat(this.accessory.context.device.uniqueId, temp); | ||
await this.getReadings(true); | ||
}).onGet(async () => { | ||
return (await this.getReadings()).tankTemperatureSet; | ||
}); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState).onSet(async (state) => { | ||
if (state === this.platform.Characteristic.TargetHeatingCoolingState.OFF || | ||
state === this.platform.Characteristic.TargetHeatingCoolingState.COOL) { | ||
// turn off water heating | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) | ||
.updateValue(this.platform.Characteristic.TargetHeatingCoolingState.OFF); | ||
this.panasonicApi.setTankStatus(this.accessory.context.device.uniqueId, false); | ||
await this.getReadings(true, true); | ||
return; | ||
} | ||
// turn on water heating | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) | ||
.updateValue(this.platform.Characteristic.TargetHeatingCoolingState.HEAT); | ||
this.panasonicApi.setTankStatus(this.accessory.context.device.uniqueId, true); | ||
await this.getReadings(true, true); | ||
}).onGet(async () => { | ||
return (await this.getReadings()).tankTargetHeatingCoolingState; | ||
}); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.CurrentTemperature).setProps({ | ||
minValue: 0, | ||
maxValue: 100, | ||
minStep: 1, | ||
}).onGet(async () => { | ||
return (await this.getReadings()).tankTemperatureNow; | ||
}); | ||
// Outdoor temperature | ||
@@ -270,10 +235,23 @@ this.outdoorTemperatureService = this.accessory.getService('Outdoor') || | ||
this.outdoorTemperatureService.getCharacteristic(this.platform.Characteristic.StatusActive).updateValue(true); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetTemperature).setProps({ | ||
minValue: tankTemperatureMin, | ||
maxValue: tankTemperatureMax, | ||
minStep: 1, | ||
}).updateValue(tankTemperatureSet); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.CurrentTemperature).updateValue(tankTemperatureNow); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState).updateValue(tankHeatingCoolingState); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState).updateValue(tankTargetHeatingCoolingState); | ||
if (tankTemperatureNow !== null) { | ||
this.setupTankService(); | ||
if (this.tankService) { | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetTemperature).setProps({ | ||
minValue: tankTemperatureMin, | ||
maxValue: tankTemperatureMax, | ||
minStep: 1, | ||
}).updateValue(tankTemperatureSet); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.CurrentTemperature).updateValue(tankTemperatureNow); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState).updateValue(tankHeatingCoolingState); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) | ||
.updateValue(tankTargetHeatingCoolingState); | ||
} | ||
} | ||
else { | ||
const existingTankService = this.accessory.getService('Water'); | ||
if (existingTankService) { | ||
this.accessory.removeService(existingTankService); | ||
this.tankService = undefined; | ||
} | ||
} | ||
this.ecoModeService.getCharacteristic(this.platform.Characteristic.On).updateValue(ecoModeIsActive); | ||
@@ -290,4 +268,47 @@ this.comfortModeService.getCharacteristic(this.platform.Characteristic.On).updateValue(comfortModeIsActive); | ||
} | ||
setupTankService() { | ||
if (this.tankService !== undefined) { | ||
return; | ||
} | ||
// Water | ||
this.tankService = this.accessory.getService('Water') | ||
|| this.accessory.addService(this.platform.Service.Thermostat, 'Water', 'water'); | ||
this.tankService.setCharacteristic(this.platform.Characteristic.Name, 'Water'); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetTemperature).onSet(async (temp) => { | ||
this.panasonicApi.setTankTargetHeat(this.accessory.context.device.uniqueId, temp); | ||
await this.getReadings(true); | ||
}).onGet(async () => { | ||
return (await this.getReadings()).tankTemperatureSet; | ||
}); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState).onSet(async (state) => { | ||
if (!this.tankService) { | ||
return; | ||
} | ||
if (state === this.platform.Characteristic.TargetHeatingCoolingState.OFF || | ||
state === this.platform.Characteristic.TargetHeatingCoolingState.COOL) { | ||
// turn off water heating | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) | ||
.updateValue(this.platform.Characteristic.TargetHeatingCoolingState.OFF); | ||
this.panasonicApi.setTankStatus(this.accessory.context.device.uniqueId, false); | ||
await this.getReadings(true, true); | ||
return; | ||
} | ||
// turn on water heating | ||
this.tankService.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) | ||
.updateValue(this.platform.Characteristic.TargetHeatingCoolingState.HEAT); | ||
this.panasonicApi.setTankStatus(this.accessory.context.device.uniqueId, true); | ||
await this.getReadings(true, true); | ||
}).onGet(async () => { | ||
return (await this.getReadings()).tankTargetHeatingCoolingState; | ||
}); | ||
this.tankService.getCharacteristic(this.platform.Characteristic.CurrentTemperature).setProps({ | ||
minValue: 0, | ||
maxValue: 100, | ||
minStep: 1, | ||
}).onGet(async () => { | ||
return (await this.getReadings()).tankTemperatureNow; | ||
}); | ||
} | ||
} | ||
exports.PanasonicHeatPumpPlatformAccessory = PanasonicHeatPumpPlatformAccessory; | ||
//# sourceMappingURL=platformAccessory.js.map |
{ | ||
"displayName": "Homebridge Panasonic Heat Pump", | ||
"name": "homebridge-panasonic-heat-pump", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"description": "Allows basic control of Panasonic Heat Pump (AQUAREA)", | ||
@@ -6,0 +6,0 @@ "license": "MIT", |
@@ -7,5 +7,10 @@ [![NPM](https://img.shields.io/npm/v/homebridge-panasonic-heat-pump)](https://npmjs.org/package/homebridge-panasonic-heat-pump) | ||
![HomeKit Screenshot](.github/statics/homekit-1.png) | ||
## Things to know | ||
* Supports only a single Heat Pump per Comfort Cloud account | ||
* Supports *AQUAREA* Heat Pumps only. | ||
* Supports **AQUAREA** Heat Pumps only. | ||
* Plugin implements all modes of floor heating: cooling, heating, auto (If you don't have cooling enabled in service menu, not sure if this will work) | ||
* In case of water heating, Apple does not allow to hide *cooling* & *auto* mode. When selecting cooling, the plugin sets it to *off* and when selecting *auto*, it switches to *heating*. | ||
* In case your water heater does not report current tank temperature, the plugin will show target temperature. | ||
@@ -27,8 +32,9 @@ ## Getting started | ||
### Sample configuration | ||
```{ | ||
"platform": "PanasonicHeatPumpHomebridgePlugin", | ||
"email": "<YOUR_EMAIL_HERE>", | ||
"password": "<YOUR_PASSWORD_HERE>" | ||
} | ||
``` | ||
{ | ||
"platform": "PanasonicHeatPumpHomebridgePlugin", | ||
"email": "<YOUR_EMAIL_HERE>", | ||
"password": "<YOUR_PASSWORD_HERE>" | ||
} | ||
``` | ||
@@ -39,3 +45,3 @@ ### Sharing Panasonic heatpump with another account | ||
2. Verify email using the link sent to the email id specified | ||
3. Sign into the Panasonic Comfort Cloud app on your smart device using the newly created Panasonic ID | ||
3. Sign into the *Panasonic Comfort Cloud* app on your smart device using the newly created *Panasonic ID* | ||
4. Agree to the terms and conditions displayed in app | ||
@@ -48,3 +54,3 @@ 5. Agree to the privacy notice displayed in app | ||
10. Enter the device password you used when originally setting up the device | ||
11. In step 3: Enter a name for the heatpump, a message="HomeBridge account" and note="HomeBridge account") | ||
11. In step 3: Enter a name for the heatpump, a message="HomeBridge account" and note="HomeBridge account" | ||
12. Click Send Request | ||
@@ -51,0 +57,0 @@ 13. Log out of the app |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
193341
3604
67