homebridge-kasa-python 2.7.0-beta.2 → 2.7.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,6 @@
1
1
  import type { CharacteristicValue } from 'homebridge';
2
- import HomekitDevice from './index.js';
3
2
  import KasaPythonPlatform from '../platform.js';
4
- import type { KasaDevice, SysInfo } from './kasaDevices.js';
3
+ import type { DeviceConfig, KasaDevice, SysInfo } from './kasaDevices.js';
5
4
  export default class DeviceManager {
6
5
  private platform;
7
6
  private log;
@@ -18,8 +17,8 @@ export default class DeviceManager {
18
17
  private writeConfigFile;
19
18
  discoverDevices(): Promise<Record<string, KasaDevice>>;
20
19
  private processDevice;
21
- getSysInfo(device: HomekitDevice): Promise<SysInfo | undefined>;
22
- controlDevice(device: HomekitDevice, feature: string, value: CharacteristicValue, child_num?: number): Promise<void>;
20
+ getSysInfo(deviceConfig: DeviceConfig): Promise<SysInfo | undefined>;
21
+ controlDevice(deviceConfig: DeviceConfig, feature: string, value: CharacteristicValue, child_num?: number): Promise<void>;
23
22
  private performDeviceAction;
24
23
  private logError;
25
24
  }
@@ -167,9 +167,9 @@ export default class DeviceManager {
167
167
  existingDevice.alias = device.sys_info.alias;
168
168
  }
169
169
  }
170
- async getSysInfo(device) {
170
+ async getSysInfo(deviceConfig) {
171
171
  try {
172
- const response = await axios.post(`${this.apiUrl}/getSysInfo`, { device_config: device.deviceConfig });
172
+ const response = await axios.post(`${this.apiUrl}/getSysInfo`, { device_config: deviceConfig });
173
173
  const sysInfo = response.data.sys_info;
174
174
  this.updateDeviceAlias(sysInfo);
175
175
  return sysInfo;
@@ -178,7 +178,7 @@ export default class DeviceManager {
178
178
  this.logError('An error occurred during getSysInfo', error);
179
179
  }
180
180
  }
181
- async controlDevice(device, feature, value, child_num) {
181
+ async controlDevice(deviceConfig, feature, value, child_num) {
182
182
  try {
183
183
  let action;
184
184
  switch (feature) {
@@ -196,16 +196,16 @@ export default class DeviceManager {
196
196
  default:
197
197
  throw new Error(`Unsupported feature: ${feature}`);
198
198
  }
199
- await this.performDeviceAction(device, feature, action, value, child_num);
199
+ await this.performDeviceAction(deviceConfig, feature, action, value, child_num);
200
200
  }
201
201
  catch (error) {
202
- this.logError(`An error occurred performing action ${feature} with value ${value} for device ${device.name}`, error, child_num);
202
+ this.logError('An error occurred performing action', error);
203
203
  }
204
204
  }
205
- async performDeviceAction(device, feature, action, value, childNumber) {
205
+ async performDeviceAction(deviceConfig, feature, action, value, childNumber) {
206
206
  const url = `${this.apiUrl}/controlDevice`;
207
207
  const data = {
208
- device_config: device.deviceConfig,
208
+ device_config: deviceConfig,
209
209
  feature,
210
210
  action,
211
211
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"deviceManager.js","sourceRoot":"","sources":["../../src/devices/deviceManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,OAAO,OAAO,aAAa;IAQZ;IAPZ,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,oBAAoB,CAAW;IAC/B,aAAa,CAAW;IAEhC,YAAoB,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;QAC9C,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,oBAAoB,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;QAClF,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC;IAEO,oBAAoB,CAAC,aAAwC;QACnE,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,IAAI,sBAAsB,IAAI,MAAM,EAAE,CAAC;oBACrC,OAAO,MAAM,CAAC,oBAAoB,CAAC;gBACrC,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,MAA4B;QACpD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,OAAgB;QAC5C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,aAAa,GAA8B;gBAC/C,sBAAsB,EAAE,aAAa;gBACrC,qBAAqB,EAAE,YAAY;gBACnC,qBAAqB,EAAE,YAAY;aACpC,CAAC;YAEF,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACnE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,KAAK,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC7C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,UAAkB,EAAE,UAA0B;QAC1E,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG;gBACb,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI;oBACpC,IAAI,EAAE;wBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB;iBACF,CAAC;aACH,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,wDAAwD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI;gBACrG,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAC3D,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,WAAW,EAAE;gBAC3D,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,EAAE,MAAM,CAAC,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACtD,MAAM,OAAO,GAKR,QAAQ,CAAC,IAAI,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAEpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAEhD,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAA8B,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC;YAC/H,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACrE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAEhE,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC/D,cAAc,CAAC,aAAa,GAAG,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBAC3E,cAAc,CAAC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAA6B,EAAE,EAAE;oBACnG,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC/B,OAAO,IAAI,CAAC;oBACd,CAAC;yBAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAChF,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IACE,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACvC,CAAC,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,QAAQ;oBAClD,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,sBAAsB,IAAI,MAAM,CAAC,CAAC,EAC9H,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACzF,CAAC;YAED,MAAM,gBAAgB,GAAkC,EAAE,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAEhD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAChC,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gBACxC,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;gBAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC;gBAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC;gBAE/C,MAAM,MAAM,GAAe;oBACzB,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,aAAa;oBACxB,YAAY,EAAE,WAAW;oBACzB,aAAa,EAAE,YAAY;iBAC5B,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC3C,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBACjF,OAAO,cAAc,CAAC,aAAa,CAAC;YACtC,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAEnD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAE1C,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAAkB,EAAE,cAA8B;QACtE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE/B,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/G,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3C,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAqB;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YACvG,MAAM,OAAO,GAAY,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAqB,EAAE,OAAe,EAAE,KAA0B,EAAE,SAAkB;QACxG,IAAI,CAAC;YACH,IAAI,MAAc,CAAC;YACnB,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,YAAY,CAAC;gBAClB,KAAK,YAAY;oBACf,MAAM,GAAG,OAAO,OAAO,EAAE,CAAC;oBAC1B,MAAM;gBACR,KAAK,KAAK,CAAC;gBACX,KAAK,YAAY;oBACf,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;oBACxC,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,uCAAuC,OAAO,eAAe,KAAK,eAAe,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAClI,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,MAAqB,EAAE,OAAe,EAAE,MAAc,EAAE,KAA0B,EAAE,WAAoB;QAExG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,gBAAgB,CAAC;QAC3C,MAAM,IAAI,GAAG;YACX,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,OAAO;YACP,MAAM;YACN,KAAK;YACL,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;SAC7D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,OAAe,EAAE,KAAc,EAAE,SAAkB;QAClE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC;QACzG,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"deviceManager.js","sourceRoot":"","sources":["../../src/devices/deviceManager.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,20 @@ import type KasaPythonPlatform from '../platform.js';
3
3
  import type { LightBulb } from './kasaDevices.js';
4
4
  export default class HomeKitDeviceLightBulb extends HomekitDevice {
5
5
  protected kasaDevice: LightBulb;
6
+ private isUpdating;
7
+ private previousKasaDevice;
8
+ private getSysInfo;
6
9
  private hasBrightness;
7
10
  private hasColorTemp;
8
11
  private hasHSV;
9
12
  constructor(platform: KasaPythonPlatform, kasaDevice: LightBulb);
10
13
  private addLightBulbService;
11
14
  identify(): void;
15
+ private addCharacteristic;
16
+ private handleOnGet;
17
+ private getCharacteristicValue;
18
+ private getDefaultValue;
19
+ private handleOnSet;
20
+ protected updateState(): Promise<void>;
21
+ private startPolling;
12
22
  }
@@ -1,6 +1,10 @@
1
1
  import HomekitDevice from './index.js';
2
+ import { deferAndCombine, getOrAddCharacteristic } from '../utils.js';
2
3
  export default class HomeKitDeviceLightBulb extends HomekitDevice {
3
4
  kasaDevice;
5
+ isUpdating = false;
6
+ previousKasaDevice;
7
+ getSysInfo;
4
8
  hasBrightness;
5
9
  hasColorTemp;
6
10
  hasHSV;
@@ -12,26 +16,194 @@ export default class HomeKitDeviceLightBulb extends HomekitDevice {
12
16
  this.hasColorTemp = !!this.kasaDevice.feature_info.color_temp;
13
17
  this.hasHSV = !!this.kasaDevice.feature_info.hsv;
14
18
  this.addLightBulbService();
19
+ this.getSysInfo = deferAndCombine(async (requestCount) => {
20
+ this.log.debug(`Executing deferred getSysInfo count: ${requestCount}`);
21
+ if (this.deviceManager) {
22
+ this.log.debug('Fetching new SysInfo from device manager');
23
+ this.previousKasaDevice = this.kasaDevice;
24
+ this.kasaDevice.sys_info = await this.deviceManager.getSysInfo(this.deviceConfig);
25
+ this.log.debug('Updated SysInfo from device manager');
26
+ }
27
+ else {
28
+ this.log.warn('Device manager is not available');
29
+ }
30
+ }, platform.config.waitTimeUpdate);
31
+ this.startPolling();
15
32
  }
16
33
  addLightBulbService() {
17
34
  const { Lightbulb } = this.platform.Service;
18
35
  const lightbulbService = this.homebridgeAccessory.getService(Lightbulb) ?? this.addService(Lightbulb, this.name);
19
36
  this.log.debug(`Adding characteristics for lightbulb service: ${this.name}`);
37
+ this.addCharacteristic(lightbulbService, this.platform.Characteristic.On);
20
38
  if (this.hasBrightness) {
21
39
  this.addCharacteristic(lightbulbService, this.platform.Characteristic.Brightness);
22
40
  }
23
- else if (this.hasColorTemp) {
41
+ if (this.hasColorTemp) {
24
42
  this.addCharacteristic(lightbulbService, this.platform.Characteristic.ColorTemperature);
25
43
  }
26
- else if (this.hasHSV) {
44
+ if (this.hasHSV) {
27
45
  this.addCharacteristic(lightbulbService, this.platform.Characteristic.Hue);
28
46
  this.addCharacteristic(lightbulbService, this.platform.Characteristic.Saturation);
29
47
  }
30
- this.addCharacteristic(lightbulbService, this.platform.Characteristic.On);
31
48
  return lightbulbService;
32
49
  }
33
50
  identify() {
34
51
  this.log.info('identify');
35
52
  }
53
+ addCharacteristic(service, characteristicType) {
54
+ this.log.debug(`Adding characteristic ${this.platform.getCharacteristicName(characteristicType)} for device: ${this.name}`);
55
+ const characteristic = getOrAddCharacteristic(service, characteristicType);
56
+ characteristic.onGet(this.handleOnGet.bind(this, characteristicType));
57
+ characteristic.onSet(this.handleOnSet.bind(this, service, characteristicType));
58
+ return service;
59
+ }
60
+ async handleOnGet(characteristicType) {
61
+ const characteristicName = this.platform.getCharacteristicName(characteristicType);
62
+ if (!characteristicName) {
63
+ throw new Error('Characteristic name is undefined');
64
+ }
65
+ this.log.debug(`Getting current value for characteristic ${characteristicName} for device: ${this.name}`);
66
+ try {
67
+ const characteristicValue = this.getCharacteristicValue(characteristicType);
68
+ this.log.debug(`Current Value of ${characteristicName} is: ${characteristicValue} for ${this.name}`);
69
+ return characteristicValue ?? this.getDefaultValue(characteristicType);
70
+ }
71
+ catch (error) {
72
+ this.log.error(`Error getting current value for characteristic ${characteristicName} for device: ${this.name}:`, error);
73
+ }
74
+ return this.getDefaultValue(characteristicType);
75
+ }
76
+ getCharacteristicValue(characteristicType) {
77
+ const characteristicMap = {
78
+ Brightness: 'brightness',
79
+ On: 'state',
80
+ ColorTemperature: 'color_temp',
81
+ Hue: 'hue',
82
+ Saturation: 'saturation',
83
+ };
84
+ const characteristicKey = characteristicMap[characteristicType.name];
85
+ if (!characteristicKey) {
86
+ this.log.warn(`Characteristic ${characteristicType.name} is not supported`);
87
+ return undefined;
88
+ }
89
+ const value = this.kasaDevice.sys_info[characteristicKey];
90
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null) {
91
+ return value;
92
+ }
93
+ return undefined;
94
+ }
95
+ getDefaultValue(characteristicType) {
96
+ if (characteristicType === this.platform.Characteristic.Brightness) {
97
+ return 0;
98
+ }
99
+ return false;
100
+ }
101
+ async handleOnSet(service, characteristicType, value) {
102
+ const characteristicName = this.platform.getCharacteristicName(characteristicType);
103
+ if (!characteristicName) {
104
+ throw new Error('Characteristic name is undefined');
105
+ }
106
+ this.log.info(`Setting ${characteristicName} to: ${value} for ${this.name}`);
107
+ if (this.deviceManager) {
108
+ try {
109
+ this.isUpdating = true;
110
+ const characteristicMap = {
111
+ Brightness: 'brightness',
112
+ On: 'state',
113
+ ColorTemperature: 'color_temp',
114
+ Hue: 'hue',
115
+ Saturation: 'saturation',
116
+ };
117
+ const characteristicKey = characteristicMap[characteristicName];
118
+ if (!characteristicKey) {
119
+ throw new Error(`Characteristic key not found for ${characteristicName}`);
120
+ }
121
+ await this.deviceManager.controlDevice(this.deviceConfig, characteristicKey, value);
122
+ this.kasaDevice.sys_info[characteristicKey] = value;
123
+ this.previousKasaDevice = this.kasaDevice;
124
+ this.updateValue(service, service.getCharacteristic(characteristicType), value);
125
+ this.log.debug(`Successfully set ${characteristicName} to ${value} for ${this.name}`);
126
+ return;
127
+ }
128
+ catch (error) {
129
+ this.logRejection(error);
130
+ }
131
+ finally {
132
+ this.isUpdating = false;
133
+ }
134
+ }
135
+ else {
136
+ throw new Error('Device manager is undefined.');
137
+ }
138
+ }
139
+ async updateState() {
140
+ if (this.isUpdating) {
141
+ this.log.debug('Update already in progress, skipping updateState');
142
+ return;
143
+ }
144
+ this.isUpdating = true;
145
+ try {
146
+ this.log.debug('Updating device state');
147
+ await this.getSysInfo();
148
+ const service = this.homebridgeAccessory.getService(this.platform.Service.Lightbulb);
149
+ if (service && this.previousKasaDevice) {
150
+ if (this.previousKasaDevice.sys_info.state !== this.kasaDevice.sys_info.state) {
151
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.On), this.kasaDevice.sys_info.state ?? false);
152
+ this.log.debug(`Updated state for device: ${this.name} to ${this.kasaDevice.sys_info.state}`);
153
+ }
154
+ else {
155
+ this.log.debug(`State unchanged for device: ${this.name}`);
156
+ }
157
+ if (this.hasBrightness) {
158
+ if (this.previousKasaDevice.sys_info.brightness !== this.kasaDevice.sys_info.brightness) {
159
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.Brightness), this.kasaDevice.sys_info.brightness ?? 0);
160
+ this.log.debug(`Updated brightness for device: ${this.name} to ${this.kasaDevice.sys_info.brightness}`);
161
+ }
162
+ else {
163
+ this.log.debug(`Brightness unchanged for device: ${this.name}`);
164
+ }
165
+ }
166
+ if (this.hasColorTemp) {
167
+ if (this.previousKasaDevice.sys_info.color_temp !== this.kasaDevice.sys_info.color_temp) {
168
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.ColorTemperature), this.kasaDevice.sys_info.color_temp ?? 0);
169
+ this.log.debug(`Updated color temperature for device: ${this.name} to ${this.kasaDevice.sys_info.color_temp}`);
170
+ }
171
+ else {
172
+ this.log.debug(`Color temperature unchanged for device: ${this.name}`);
173
+ }
174
+ }
175
+ if (this.hasHSV) {
176
+ if (this.previousKasaDevice.sys_info.hsv?.hue !== this.kasaDevice.sys_info.hsv?.hue) {
177
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.Hue), typeof this.kasaDevice.sys_info.hsv?.hue === 'number' ? this.kasaDevice.sys_info.hsv?.hue : 0);
178
+ this.log.debug(`Updated hue for device: ${this.name} to ${this.kasaDevice.sys_info.hsv?.hue}`);
179
+ }
180
+ else {
181
+ this.log.debug(`Hue unchanged for device: ${this.name}`);
182
+ }
183
+ if (this.previousKasaDevice.sys_info.hsv?.saturation !== this.kasaDevice.sys_info.hsv?.saturation) {
184
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.Saturation), typeof this.kasaDevice.sys_info.hsv?.saturation === 'number' ? this.kasaDevice.sys_info.hsv?.saturation : 0);
185
+ this.log.debug(`Updated saturation for device: ${this.name} to ${this.kasaDevice.sys_info.hsv?.saturation}`);
186
+ }
187
+ else {
188
+ this.log.debug(`Saturation unchanged for device: ${this.name}`);
189
+ }
190
+ }
191
+ }
192
+ else {
193
+ this.log.warn(`Service not found for device: ${this.name} or previous Kasa device is undefined`);
194
+ }
195
+ this.log.debug('Device state updated successfully');
196
+ }
197
+ catch (error) {
198
+ this.log.error('Error updating device state:', error);
199
+ }
200
+ finally {
201
+ this.isUpdating = false;
202
+ }
203
+ }
204
+ startPolling() {
205
+ this.log.debug('Starting polling for device state updates');
206
+ setInterval(this.updateState.bind(this), this.platform.config.discoveryOptions.pollingInterval);
207
+ }
36
208
  }
37
209
  //# sourceMappingURL=homekitLightBulb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homekitLightBulb.js","sourceRoot":"","sources":["../../src/devices/homekitLightBulb.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,YAAY,CAAC;AAIvC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;IAOnD;IANJ,aAAa,CAAU;IACvB,YAAY,CAAU;IACtB,MAAM,CAAU;IAExB,YACE,QAA4B,EAClB,UAAqB;QAE/B,KAAK,CACH,QAAQ,EACR,UAAU,gCAEV,WAAW,CACZ,CAAC;QAPQ,eAAU,GAAV,UAAU,CAAW;QAQ/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mDAAmD,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC;QACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACzB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE5C,MAAM,gBAAgB,GACpB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC1F,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3E,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAE1E,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"homekitLightBulb.js","sourceRoot":"","sources":["../../src/devices/homekitLightBulb.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,16 @@ import type KasaPythonPlatform from '../platform.js';
3
3
  import type { Plug } from './kasaDevices.js';
4
4
  export default class HomeKitDevicePlug extends HomekitDevice {
5
5
  protected kasaDevice: Plug;
6
+ private isUpdating;
7
+ private previousKasaDevice;
8
+ private getSysInfo;
6
9
  constructor(platform: KasaPythonPlatform, kasaDevice: Plug);
7
10
  private addOutletService;
8
11
  identify(): void;
12
+ private addCharacteristic;
13
+ private handleOnGet;
14
+ private getCharacteristicValue;
15
+ private handleOnSet;
16
+ protected updateState(): Promise<void>;
17
+ private startPolling;
9
18
  }
@@ -1,11 +1,29 @@
1
1
  import HomekitDevice from './index.js';
2
+ import { deferAndCombine, getOrAddCharacteristic } from '../utils.js';
2
3
  export default class HomeKitDevicePlug extends HomekitDevice {
3
4
  kasaDevice;
5
+ isUpdating = false;
6
+ previousKasaDevice;
7
+ getSysInfo;
4
8
  constructor(platform, kasaDevice) {
5
9
  super(platform, kasaDevice, 7 /* Categories.OUTLET */, 'OUTLET');
6
10
  this.kasaDevice = kasaDevice;
7
11
  this.log.debug(`Initializing HomeKitDevicePlug for device: ${kasaDevice.sys_info.alias}`);
8
12
  this.addOutletService();
13
+ this.getSysInfo = deferAndCombine(async (requestCount) => {
14
+ this.log.debug(`Executing deferred getSysInfo count: ${requestCount}`);
15
+ if (this.deviceManager) {
16
+ this.log.debug('Fetching new SysInfo from device manager');
17
+ this.previousKasaDevice = this.kasaDevice;
18
+ this.kasaDevice.sys_info = await this.deviceManager.getSysInfo(this.deviceConfig);
19
+ ;
20
+ this.log.debug('Updated SysInfo from device manager');
21
+ }
22
+ else {
23
+ this.log.warn('Device manager is not available');
24
+ }
25
+ }, platform.config.waitTimeUpdate);
26
+ this.startPolling();
9
27
  }
10
28
  addOutletService() {
11
29
  const { Outlet } = this.platform.Service;
@@ -18,5 +36,117 @@ export default class HomeKitDevicePlug extends HomekitDevice {
18
36
  identify() {
19
37
  this.log.info('identify');
20
38
  }
39
+ addCharacteristic(service, characteristicType) {
40
+ this.log.debug(`Adding characteristic ${this.platform.getCharacteristicName(characteristicType)} for device: ${this.name}`);
41
+ const characteristic = getOrAddCharacteristic(service, characteristicType);
42
+ characteristic.onGet(this.handleOnGet.bind(this, characteristicType));
43
+ if (characteristicType === this.platform.Characteristic.On) {
44
+ characteristic.onSet(this.handleOnSet.bind(this, service, characteristicType));
45
+ }
46
+ return service;
47
+ }
48
+ async handleOnGet(characteristicType) {
49
+ const characteristicName = this.platform.getCharacteristicName(characteristicType);
50
+ if (!characteristicName) {
51
+ throw new Error('Characteristic name is undefined');
52
+ }
53
+ this.log.debug(`Getting current value for characteristic ${characteristicName} for device: ${this.name}`);
54
+ try {
55
+ const characteristicValue = this.getCharacteristicValue(characteristicType);
56
+ this.log.debug(`Current Value of ${characteristicName} is: ${characteristicValue} for ${this.name}`);
57
+ return characteristicValue ?? false;
58
+ }
59
+ catch (error) {
60
+ this.log.error(`Error getting current value for characteristic ${characteristicName} for device: ${this.name}:`, error);
61
+ }
62
+ return false;
63
+ }
64
+ getCharacteristicValue(characteristicType) {
65
+ const characteristicMap = {
66
+ On: 'state',
67
+ OutletInUse: 'state',
68
+ };
69
+ const characteristicKey = characteristicMap[characteristicType.name];
70
+ if (!characteristicKey) {
71
+ this.log.warn(`Characteristic ${characteristicType.name} is not supported`);
72
+ return undefined;
73
+ }
74
+ const value = this.kasaDevice.sys_info[characteristicKey];
75
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null) {
76
+ return value;
77
+ }
78
+ return undefined;
79
+ }
80
+ async handleOnSet(service, characteristicType, value) {
81
+ const characteristicName = this.platform.getCharacteristicName(characteristicType);
82
+ if (!characteristicName) {
83
+ throw new Error('Characteristic name is undefined');
84
+ }
85
+ this.log.info(`Setting ${characteristicName} to: ${value} for ${this.name}`);
86
+ if (this.deviceManager) {
87
+ try {
88
+ this.isUpdating = true;
89
+ const characteristicMap = {
90
+ On: 'state',
91
+ };
92
+ const characteristicKey = characteristicMap[characteristicName];
93
+ if (!characteristicKey) {
94
+ throw new Error(`Characteristic key not found for ${characteristicName}`);
95
+ }
96
+ await this.deviceManager.controlDevice(this.deviceConfig, characteristicKey, value);
97
+ this.kasaDevice.sys_info[characteristicKey] = value;
98
+ this.previousKasaDevice = this.kasaDevice;
99
+ this.updateValue(service, service.getCharacteristic(characteristicType), value);
100
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.OutletInUse), value);
101
+ this.log.debug(`Successfully set ${characteristicName} to ${value} for ${this.name}`);
102
+ return;
103
+ }
104
+ catch (error) {
105
+ this.logRejection(error);
106
+ }
107
+ finally {
108
+ this.isUpdating = false;
109
+ }
110
+ }
111
+ else {
112
+ throw new Error('Device manager is undefined.');
113
+ }
114
+ }
115
+ async updateState() {
116
+ if (this.isUpdating) {
117
+ this.log.debug('Update already in progress, skipping updateState');
118
+ return;
119
+ }
120
+ this.isUpdating = true;
121
+ try {
122
+ this.log.debug('Updating device state');
123
+ await this.getSysInfo();
124
+ const service = this.homebridgeAccessory.getService(this.platform.Service.Outlet);
125
+ if (service && this.previousKasaDevice) {
126
+ if (this.previousKasaDevice.sys_info.state !== this.kasaDevice.sys_info.state) {
127
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.On), this.kasaDevice.sys_info.state ?? false);
128
+ this.updateValue(service, service.getCharacteristic(this.platform.Characteristic.OutletInUse), this.kasaDevice.sys_info.state ?? false);
129
+ this.log.debug(`Updated state for device: ${this.name} to ${this.kasaDevice.sys_info.state}`);
130
+ }
131
+ else {
132
+ this.log.debug(`State unchanged for device: ${this.name}`);
133
+ }
134
+ }
135
+ else {
136
+ this.log.warn(`Service not found for device: ${this.name} or previous Kasa device is undefined`);
137
+ }
138
+ this.log.debug('Device state updated successfully');
139
+ }
140
+ catch (error) {
141
+ this.log.error('Error updating device state:', error);
142
+ }
143
+ finally {
144
+ this.isUpdating = false;
145
+ }
146
+ }
147
+ startPolling() {
148
+ this.log.debug('Starting polling for device state updates');
149
+ setInterval(this.updateState.bind(this), this.platform.config.discoveryOptions.pollingInterval);
150
+ }
21
151
  }
22
152
  //# sourceMappingURL=homekitPlug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homekitPlug.js","sourceRoot":"","sources":["../../src/devices/homekitPlug.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,YAAY,CAAC;AAIvC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAG9C;IAFZ,YACE,QAA4B,EAClB,UAAgB;QAE1B,KAAK,CACH,QAAQ,EACR,UAAU,6BAEV,QAAQ,CACT,CAAC;QAPQ,eAAU,GAAV,UAAU,CAAM;QAQ1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAEzC,MAAM,aAAa,GACjB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEhF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"homekitPlug.js","sourceRoot":"","sources":["../../src/devices/homekitPlug.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,16 @@ import type KasaPythonPlatform from '../platform.js';
3
3
  import type { PowerStrip } from './kasaDevices.js';
4
4
  export default class HomeKitDevicePowerStrip extends HomekitDevice {
5
5
  protected kasaDevice: PowerStrip;
6
+ private isUpdating;
7
+ private previousKasaDevice;
8
+ private getSysInfo;
6
9
  constructor(platform: KasaPythonPlatform, kasaDevice: PowerStrip);
7
10
  private addOutletService;
8
11
  identify(): void;
12
+ private addCharacteristic;
13
+ private handleOnGet;
14
+ private getCharacteristicValue;
15
+ private handleOnSet;
16
+ protected updateState(): Promise<void>;
17
+ private startPolling;
9
18
  }