homebridge-lg-airco
Advanced tools
Comparing version 0.0.97 to 0.0.99
{ | ||
"name": "homebridge-lg-airco", | ||
"version": "0.0.97", | ||
"version": "0.0.99", | ||
"description": "Homebridge plugin to control a Smart Thinq enabled LG airco unit. Makes use of WideQ => https://github.com/sampsyo/wideq", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -29,3 +29,7 @@ const Wideq = require("./lg/wideq").Wideq; | ||
this.utils = new Utils(); | ||
this.debouncedRotationHandler = this.utils.debounce(this.setActualRotationSpeed, 5000); | ||
this.intervalWhenOn = null; | ||
this.intervalWhenOff = null; | ||
this.state = { | ||
@@ -47,3 +51,7 @@ isOn: false, | ||
if (status.Operation) { | ||
this.state.isOn = this.wideq.paramConversion.isOn(status.Operation.value); | ||
const newValue = this.wideq.paramConversion.isOn(status.Operation.value); | ||
if (newValue !== this.state.isOn) { | ||
this.setCorrectInterval(); | ||
} | ||
this.state.isOn = newValue; | ||
} | ||
@@ -55,3 +63,6 @@ if (status.OpMode) { | ||
if (status.WindStrength) { | ||
this.state.speed = this.wideq.paramConversion.getSpeedAsNumber(status.WindStrength.value); | ||
const newValue = this.wideq.paramConversion.getSpeedAsNumber(status.WindStrength.value); | ||
if (newValue) { | ||
this.state.speed = newValue; | ||
} | ||
} | ||
@@ -65,3 +76,3 @@ if (status.TempCur) { | ||
console.log(this.state); | ||
//console.log(this.state); | ||
@@ -83,5 +94,14 @@ this.getActive((unknown, value) => { | ||
setInterval(() => { | ||
this.updateState(); | ||
}, 60 * 1000); | ||
this.setCorrectInterval = () => { | ||
if (this.state.isOn) { | ||
clearInterval(this.intervalWhenOff); | ||
this.intervalWhenOff = null; | ||
setInterval(this.updateState, 60 * 1000); | ||
} else { | ||
clearInterval(this.intervalWhenOn); | ||
this.intervalWhenOn = null; | ||
setInterval(this.updateState, 10 * 60 * 1000); | ||
} | ||
}; | ||
this.updateState(); | ||
@@ -98,9 +118,9 @@ } | ||
console.log('Setting active: ' + shouldBeActive); | ||
if(shouldBeActive !== (me.isOn ? 1 : 0)) { | ||
if (shouldBeActive !== (me.state.isOn ? 1 : 0)) { | ||
const isOn = shouldBeActive === Characteristic.Active.ACTIVE; | ||
me.wideq.turnOnOrOff(me.deviceId, isOn).then((done) => { | ||
me.isOn = isOn; | ||
}); | ||
me.wideq.turnOnOrOff(me.deviceId, isOn) | ||
.then((done) => { | ||
me.state.isOn = isOn; | ||
me.setCorrectInterval(); | ||
}); | ||
} | ||
@@ -143,4 +163,2 @@ | ||
console.log('Setting coolor state: ' + targetState); | ||
let turnOn = false; | ||
@@ -152,3 +170,4 @@ if (targetState !== Characteristic.TargetHeaterCoolerState.AUTO) { | ||
me.wideq.turnOnOrOff(me.deviceId, turnOn).then((done) => { | ||
me.isOn = turnOn; | ||
me.state.isOn = turnOn; | ||
me.state.isOn = turnOn; | ||
}); | ||
@@ -169,4 +188,2 @@ | ||
console.log('Setting threshold temperature: ' + targetCoolingTemp); | ||
me.wideq.setTemp(me.deviceId, targetCoolingTemp) | ||
@@ -189,10 +206,8 @@ .then((done) => { | ||
const me = this; | ||
me.debouncedRotationHandler(targetRotationSpeed, callback); | ||
}, | ||
setActualRotationSpeed: function (targetRotationSpeed, callback) { | ||
const me = this; | ||
console.log('Setting rotation speed: ' + targetRotationSpeed); | ||
me.state.speed = targetRotationSpeed; | ||
me.state.isOn = true; | ||
//TODO: When dragging the slider, this is called repeatedly, causing too many state updates! | ||
//TODO: This needs to be debounced! | ||
/* | ||
me.wideq.setSpeed(me.deviceId, targetRotationSpeed) | ||
@@ -207,3 +222,2 @@ .then((done) => { | ||
}); | ||
*/ | ||
@@ -278,3 +292,3 @@ callback(null); | ||
rotationSpeedCharac.on('get', me.getRotationSpeed.bind(me)); | ||
rotationSpeedCharac.on('set', me.utils.debounce(me.setRotationSpeed.bind(me), 1000)); | ||
rotationSpeedCharac.on('set', me.setRotationSpeed.bind(me)); | ||
@@ -281,0 +295,0 @@ return [informationService, me.service]; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
105632
413