Added missing logic

This commit is contained in:
watsonb8 2020-01-03 19:57:47 -05:00
parent a8fddae8c5
commit e9693435ce

View File

@ -86,8 +86,8 @@ export class DeviceButton implements IAccessory {
* Handler for switch set event
* @param callback The callback function to call when complete
*/
private onSwitchSet = async (activeState: boolean, callback: (error?: Error | null | undefined) => void) => {
if (!this._buttonInfo.IsStateful && activeState === this._buttonState) {
private onSwitchSet = async (newState: boolean, callback: (error?: Error | null | undefined) => void) => {
if (!this._buttonInfo.IsStateful && newState === this._buttonState) {
return callback();
}
@ -101,12 +101,12 @@ export class DeviceButton implements IAccessory {
//Execute command
if (this._deviceCommand) {
await this._dataProvider.sendCommand(this._deviceCommand);
//change state if stateful
if (this._buttonInfo.IsStateful && this._buttonState != activeState) {
this._buttonState = activeState
} else {
if (this._buttonInfo.IsStateful && this._buttonState != newState) {
this._buttonState = newState
await this._dataProvider.sendCommand(this._deviceCommand);
} else if (!this._buttonInfo.IsStateful) {
await this._dataProvider.sendCommand(this._deviceCommand);
this._switchService.getCharacteristic(Characteristic.On).updateValue(false);
return callback(new Error("Normal Response"));
}