@switchbot/homebridge-switchbot 1.4.1-beta.0 → 1.4.1-beta.4

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.
Files changed (103) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/config.schema.json +83 -11
  3. package/dist/devices/bots.d.ts +12 -2
  4. package/dist/devices/bots.d.ts.map +1 -1
  5. package/dist/devices/bots.js +155 -89
  6. package/dist/devices/bots.js.map +1 -1
  7. package/dist/devices/colorbulb.d.ts +12 -2
  8. package/dist/devices/colorbulb.d.ts.map +1 -1
  9. package/dist/devices/colorbulb.js +153 -84
  10. package/dist/devices/colorbulb.js.map +1 -1
  11. package/dist/devices/contact.d.ts +12 -2
  12. package/dist/devices/contact.d.ts.map +1 -1
  13. package/dist/devices/contact.js +116 -52
  14. package/dist/devices/contact.js.map +1 -1
  15. package/dist/devices/curtains.d.ts +13 -4
  16. package/dist/devices/curtains.d.ts.map +1 -1
  17. package/dist/devices/curtains.js +191 -124
  18. package/dist/devices/curtains.js.map +1 -1
  19. package/dist/devices/humidifiers.d.ts +12 -2
  20. package/dist/devices/humidifiers.d.ts.map +1 -1
  21. package/dist/devices/humidifiers.js +171 -108
  22. package/dist/devices/humidifiers.js.map +1 -1
  23. package/dist/devices/meters.d.ts +12 -2
  24. package/dist/devices/meters.d.ts.map +1 -1
  25. package/dist/devices/meters.js +113 -49
  26. package/dist/devices/meters.js.map +1 -1
  27. package/dist/devices/motion.d.ts +12 -2
  28. package/dist/devices/motion.d.ts.map +1 -1
  29. package/dist/devices/motion.js +101 -37
  30. package/dist/devices/motion.js.map +1 -1
  31. package/dist/devices/plugs.d.ts +12 -2
  32. package/dist/devices/plugs.d.ts.map +1 -1
  33. package/dist/devices/plugs.js +95 -31
  34. package/dist/devices/plugs.js.map +1 -1
  35. package/dist/irdevices/airconditioners.d.ts +10 -2
  36. package/dist/irdevices/airconditioners.d.ts.map +1 -1
  37. package/dist/irdevices/airconditioners.js +77 -37
  38. package/dist/irdevices/airconditioners.js.map +1 -1
  39. package/dist/irdevices/airpurifiers.d.ts +10 -2
  40. package/dist/irdevices/airpurifiers.d.ts.map +1 -1
  41. package/dist/irdevices/airpurifiers.js +65 -25
  42. package/dist/irdevices/airpurifiers.js.map +1 -1
  43. package/dist/irdevices/cameras.d.ts +10 -2
  44. package/dist/irdevices/cameras.d.ts.map +1 -1
  45. package/dist/irdevices/cameras.js +61 -21
  46. package/dist/irdevices/cameras.js.map +1 -1
  47. package/dist/irdevices/fans.d.ts +10 -2
  48. package/dist/irdevices/fans.d.ts.map +1 -1
  49. package/dist/irdevices/fans.js +71 -30
  50. package/dist/irdevices/fans.js.map +1 -1
  51. package/dist/irdevices/lights.d.ts +10 -2
  52. package/dist/irdevices/lights.d.ts.map +1 -1
  53. package/dist/irdevices/lights.js +62 -22
  54. package/dist/irdevices/lights.js.map +1 -1
  55. package/dist/irdevices/others.d.ts +10 -2
  56. package/dist/irdevices/others.d.ts.map +1 -1
  57. package/dist/irdevices/others.js +68 -28
  58. package/dist/irdevices/others.js.map +1 -1
  59. package/dist/irdevices/tvs.d.ts +10 -2
  60. package/dist/irdevices/tvs.d.ts.map +1 -1
  61. package/dist/irdevices/tvs.js +78 -38
  62. package/dist/irdevices/tvs.js.map +1 -1
  63. package/dist/irdevices/vacuumcleaners.d.ts +10 -2
  64. package/dist/irdevices/vacuumcleaners.d.ts.map +1 -1
  65. package/dist/irdevices/vacuumcleaners.js +61 -21
  66. package/dist/irdevices/vacuumcleaners.js.map +1 -1
  67. package/dist/irdevices/waterheaters.d.ts +10 -2
  68. package/dist/irdevices/waterheaters.d.ts.map +1 -1
  69. package/dist/irdevices/waterheaters.js +61 -21
  70. package/dist/irdevices/waterheaters.js.map +1 -1
  71. package/dist/platform.d.ts +10 -10
  72. package/dist/platform.d.ts.map +1 -1
  73. package/dist/platform.js +290 -307
  74. package/dist/platform.js.map +1 -1
  75. package/dist/settings.d.ts +4 -1
  76. package/dist/settings.d.ts.map +1 -1
  77. package/dist/settings.js.map +1 -1
  78. package/nodemon.json +1 -1
  79. package/package.json +10 -6
  80. package/src/devices/bots.ts +161 -89
  81. package/src/devices/colorbulb.ts +161 -86
  82. package/src/devices/contact.ts +122 -52
  83. package/src/devices/curtains.ts +199 -128
  84. package/src/devices/humidifiers.ts +177 -109
  85. package/src/devices/meters.ts +119 -49
  86. package/src/devices/motion.ts +106 -36
  87. package/src/devices/plugs.ts +99 -31
  88. package/src/irdevices/airconditioners.ts +81 -36
  89. package/src/irdevices/airpurifiers.ts +69 -24
  90. package/src/irdevices/cameras.ts +65 -20
  91. package/src/irdevices/fans.ts +75 -30
  92. package/src/irdevices/lights.ts +66 -21
  93. package/src/irdevices/others.ts +72 -27
  94. package/src/irdevices/tvs.ts +82 -37
  95. package/src/irdevices/vacuumcleaners.ts +65 -20
  96. package/src/irdevices/waterheaters.ts +65 -20
  97. package/src/platform.ts +285 -302
  98. package/src/settings.ts +4 -1
  99. package/dist/devices/indoorcam.d.ts +0 -64
  100. package/dist/devices/indoorcam.d.ts.map +0 -1
  101. package/dist/devices/indoorcam.js +0 -249
  102. package/dist/devices/indoorcam.js.map +0 -1
  103. package/src/devices/indoorcam.ts +0 -309
@@ -25,8 +25,8 @@ export declare class ColorBulb {
25
25
  deviceStatus: deviceStatusResponse;
26
26
  switchbot: switchbot;
27
27
  set_minStep?: number;
28
- private readonly deviceDebug;
29
- private readonly debugDebug;
28
+ deviceLogging: string;
29
+ deviceRefreshRate: number;
30
30
  AdaptiveLightingController: ControllerConstructor | Controller<ControllerServiceMap>;
31
31
  minKelvin: number;
32
32
  maxKelvin: number;
@@ -34,6 +34,8 @@ export declare class ColorBulb {
34
34
  doColorBulbUpdate: Subject<void>;
35
35
  cacheKelvin: number;
36
36
  constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
37
+ refreshRate(): void;
38
+ logs(): void;
37
39
  private minStep;
38
40
  parseStatus(): void;
39
41
  refreshStatus(): Promise<void>;
@@ -75,5 +77,13 @@ export declare class ColorBulb {
75
77
  * Handle requests to set the value of the "Saturation" characteristic
76
78
  */
77
79
  SaturationSet(value: CharacteristicValue): void;
80
+ /**
81
+ * Logging for Device
82
+ */
83
+ infoLog(...log: any[]): void;
84
+ warnLog(...log: any[]): void;
85
+ errorLog(...log: any[]): void;
86
+ debugLog(...log: any[]): void;
87
+ enablingDeviceLogging(): boolean;
78
88
  }
79
89
  //# sourceMappingURL=colorbulb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colorbulb.d.ts","sourceRoot":"","sources":["../../src/devices/colorbulb.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,UAAU,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AACjJ,OAAO,EAAa,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,oBAAoB,EAAiC,MAAM,aAAa,CAAC;AAE/H;;;;GAIG;AACH,qBAAa,SAAS;IAsClB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,SAAS;IACV,MAAM,EAAE,MAAM,GAAG,aAAa;IAtCvC,OAAO,EAAG,OAAO,CAAC;IAGlB,EAAE,EAAG,mBAAmB,CAAC;IACzB,QAAQ,EAAG,mBAAmB,CAAC;IAC/B,GAAG,EAAG,mBAAmB,CAAC;IAC1B,SAAS,EAAG,mBAAmB,CAAC;IAChC,UAAU,EAAG,mBAAmB,CAAC;IACjC,gBAAgB,EAAG,mBAAmB,CAAC;IACvC,UAAU,EAAG,mBAAmB,CAAC;IACjC,gBAAgB,EAAG,mBAAmB,CAAC;IACvC,gBAAgB,EAAG,mBAAmB,CAAC;IACvC,sBAAsB,EAAG,mBAAmB,CAAC;IAG7C,YAAY,EAAG,oBAAoB,CAAC;IAGpC,SAAS,EAAG,SAAS,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+E;IAC3G,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8E;IAGzG,0BAA0B,EAAE,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,yBAAyB,EAAG,OAAO,CAAC;IACpC,iBAAiB,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,WAAW,EAAG,MAAM,CAAC;gBAGF,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,GAAG,aAAa;IAiJvC,OAAO,CAAC,OAAO;IASf,WAAW;IA8CL,aAAa;IAoBnB;;;;;;;;;KASC;IACK,WAAW;YAsDH,wBAAwB;YA0CxB,2BAA2B;YAsC3B,qBAAqB;IAmCnC,4BAA4B;IAiCrB,QAAQ;IAIf,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAOhC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,mBAAmB;IAOxC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,mBAAmB;IAsB9C;;KAEC;IACD,MAAM,CAAC,KAAK,EAAE,mBAAmB;IASjC;;KAEC;IACD,aAAa,CAAC,KAAK,EAAE,mBAAmB;CAQzC"}
1
+ {"version":3,"file":"colorbulb.d.ts","sourceRoot":"","sources":["../../src/devices/colorbulb.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,UAAU,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AACjJ,OAAO,EAAa,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,oBAAoB,EAAiC,MAAM,aAAa,CAAC;AAE/H;;;;GAIG;AACH,qBAAa,SAAS;IAsClB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,SAAS;IACV,MAAM,EAAE,MAAM,GAAG,aAAa;IAtCvC,OAAO,EAAG,OAAO,CAAC;IAGlB,EAAE,EAAG,mBAAmB,CAAC;IACzB,QAAQ,EAAG,mBAAmB,CAAC;IAC/B,GAAG,EAAG,mBAAmB,CAAC;IAC1B,SAAS,EAAG,mBAAmB,CAAC;IAChC,UAAU,EAAG,mBAAmB,CAAC;IACjC,gBAAgB,EAAG,mBAAmB,CAAC;IACvC,UAAU,EAAG,mBAAmB,CAAC;IACjC,gBAAgB,EAAG,mBAAmB,CAAC;IACvC,gBAAgB,EAAG,mBAAmB,CAAC;IACvC,sBAAsB,EAAG,mBAAmB,CAAC;IAG7C,YAAY,EAAG,oBAAoB,CAAC;IAGpC,SAAS,EAAG,SAAS,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAG,MAAM,CAAC;IACvB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,0BAA0B,EAAE,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,yBAAyB,EAAG,OAAO,CAAC;IACpC,iBAAiB,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,WAAW,EAAG,MAAM,CAAC;gBAGF,QAAQ,EAAE,iBAAiB,EACpC,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,GAAG,aAAa;IAmJvC,WAAW;IAcX,IAAI;IAmBJ,OAAO,CAAC,OAAO;IASf,WAAW;IA8CL,aAAa;IAoBnB;;;;;;;;;KASC;IACK,WAAW;YAsDH,wBAAwB;YA0CxB,2BAA2B;YAsC3B,qBAAqB;IAmCnC,4BAA4B;IAiCrB,QAAQ;IAIf,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAOhC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,mBAAmB;IAOxC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,mBAAmB;IAuB9C;;KAEC;IACD,MAAM,CAAC,KAAK,EAAE,mBAAmB;IASjC;;KAEC;IACD,aAAa,CAAC,KAAK,EAAE,mBAAmB;IASxC;;KAEC;IACD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAMrB,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAMrB,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAMtB,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE;IAUtB,qBAAqB,IAAI,OAAO;CAGjC"}
@@ -14,11 +14,9 @@ class ColorBulb {
14
14
  this.platform = platform;
15
15
  this.accessory = accessory;
16
16
  this.device = device;
17
- this.deviceDebug = this.platform.config.options?.debug === 'device' || this.platform.debugMode;
18
- this.debugDebug = this.platform.config.options?.debug === 'debug' || this.platform.debugMode;
19
- // ColorBulb Config
20
- this.platform.device(`Color Bulb: ${this.accessory.displayName} Config: (ble: ${device.ble}, set_minStep: ${device.colorbulb?.set_minStep}`);
21
17
  // default placeholders
18
+ this.refreshRate();
19
+ this.logs();
22
20
  if (this.On === undefined) {
23
21
  this.On = false;
24
22
  }
@@ -31,6 +29,8 @@ class ColorBulb {
31
29
  this.ColorTemperature = 140;
32
30
  this.minKelvin = 2000;
33
31
  this.maxKelvin = 9000;
32
+ // ColorBulb Config
33
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Config: (ble: ${device.ble}, set_minStep: ${device.colorbulb?.set_minStep}`);
34
34
  // this is subject we use to track when we need to POST changes to the SwitchBot API
35
35
  this.doColorBulbUpdate = new rxjs_1.Subject();
36
36
  this.colorBulbUpdateInProgress = false;
@@ -109,7 +109,7 @@ class ColorBulb {
109
109
  // Update Homekit
110
110
  this.updateHomeKitCharacteristics();
111
111
  // Start an update interval
112
- (0, rxjs_1.interval)(this.platform.config.options.refreshRate * 1000)
112
+ (0, rxjs_1.interval)(this.deviceRefreshRate * 1000)
113
113
  .pipe((0, operators_1.skipWhile)(() => this.colorBulbUpdateInProgress))
114
114
  .subscribe(() => {
115
115
  this.refreshStatus();
@@ -125,13 +125,13 @@ class ColorBulb {
125
125
  await this.pushChanges();
126
126
  }
127
127
  catch (e) {
128
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges`);
129
- if (this.deviceDebug) {
130
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges,`
128
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges`);
129
+ if (this.deviceLogging === 'debug') {
130
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges,`
131
131
  + ` Error Message: ${JSON.stringify(e.message)}`);
132
132
  }
133
- if (this.debugDebug) {
134
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges,`
133
+ if (this.platform.debugMode) {
134
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges,`
135
135
  + ` Error: ${JSON.stringify(e)}`);
136
136
  }
137
137
  this.apiError();
@@ -139,6 +139,40 @@ class ColorBulb {
139
139
  this.colorBulbUpdateInProgress = false;
140
140
  });
141
141
  }
142
+ refreshRate() {
143
+ if (this.device.refreshRate) {
144
+ this.deviceRefreshRate = this.accessory.context.refreshRate = this.device.refreshRate;
145
+ if (this.platform.debugMode) {
146
+ this.warnLog(`Using Device Config refreshRate: ${this.deviceRefreshRate}`);
147
+ }
148
+ }
149
+ else if (this.platform.config.options.refreshRate) {
150
+ this.deviceRefreshRate = this.accessory.context.refreshRate = this.platform.config.options.refreshRate;
151
+ if (this.platform.debugMode) {
152
+ this.warnLog(`Using Platform Config refreshRate: ${this.deviceRefreshRate}`);
153
+ }
154
+ }
155
+ }
156
+ logs() {
157
+ if (this.device.logging) {
158
+ this.deviceLogging = this.accessory.context.logging = this.device.logging;
159
+ if (this.platform.debugMode) {
160
+ this.warnLog(`Using Device Config Logging: ${this.deviceLogging}`);
161
+ }
162
+ }
163
+ else if (this.platform.config.options?.logging) {
164
+ this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
165
+ if (this.platform.debugMode) {
166
+ this.warnLog(`Using Platform Config Logging: ${this.deviceLogging}`);
167
+ }
168
+ }
169
+ else {
170
+ this.deviceLogging = this.accessory.context.logging = 'standard';
171
+ if (this.platform.debugMode) {
172
+ this.warnLog('Using Device Standard Logging');
173
+ }
174
+ }
175
+ }
142
176
  minStep() {
143
177
  if (this.device.colorbulb?.set_minStep) {
144
178
  this.set_minStep = this.device.colorbulb?.set_minStep;
@@ -156,50 +190,50 @@ class ColorBulb {
156
190
  default:
157
191
  this.On = false;
158
192
  }
159
- this.platform.device(`Color Bulb: ${this.accessory.displayName} On: ${this.On}`);
193
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} On: ${this.On}`);
160
194
  // Brightness
161
195
  this.Brightness = Number(this.deviceStatus.body.brightness);
162
- this.platform.device(`Color Bulb: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
196
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
163
197
  // Color, Hue & Brightness
164
198
  if (this.deviceStatus.body.color) {
165
- this.platform.device(`Color Bulb: ${this.accessory.displayName} color: ${JSON.stringify(this.deviceStatus.body.color)}`);
199
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} color: ${JSON.stringify(this.deviceStatus.body.color)}`);
166
200
  const [red, green, blue] = this.deviceStatus.body.color.split(':');
167
- this.platform.device(`Color Bulb: ${this.accessory.displayName} red: ${JSON.stringify(red)}`);
168
- this.platform.device(`Color Bulb: ${this.accessory.displayName} green: ${JSON.stringify(green)}`);
169
- this.platform.device(`Color Bulb: ${this.accessory.displayName} blue: ${JSON.stringify(blue)}`);
201
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} red: ${JSON.stringify(red)}`);
202
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} green: ${JSON.stringify(green)}`);
203
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} blue: ${JSON.stringify(blue)}`);
170
204
  const [hue, saturation] = (0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue));
171
- this.platform.device(`Color Bulb: ${this.accessory.displayName} hs: ${JSON.stringify((0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue)))}`);
205
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} hs: ${JSON.stringify((0, settings_1.rgb2hs)(Number(red), Number(green), Number(blue)))}`);
172
206
  // Hue
173
207
  this.Hue = hue;
174
- this.platform.device(`Color Bulb: ${this.accessory.displayName} Hue: ${this.Hue}`);
208
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Hue: ${this.Hue}`);
175
209
  // Saturation
176
210
  this.Saturation = saturation;
177
- this.platform.device(`Color Bulb: ${this.accessory.displayName} Saturation: ${this.Saturation}`);
211
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Saturation: ${this.Saturation}`);
178
212
  }
179
213
  // ColorTemperature
180
214
  if (!Number.isNaN(this.deviceStatus.body.colorTemperature)) {
181
- this.platform.device(`Color Bulb: ${this.accessory.displayName} OpenAPI ColorTemperature: ${this.deviceStatus.body.colorTemperature}`);
215
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} OpenAPI ColorTemperature: ${this.deviceStatus.body.colorTemperature}`);
182
216
  const mired = Math.round(1000000 / this.deviceStatus.body.colorTemperature);
183
217
  this.ColorTemperature = Number(mired);
184
218
  this.ColorTemperature = Math.max(Math.min(this.ColorTemperature, 500), 140);
185
- this.platform.device(`Color Bulb: ${this.accessory.displayName} ColorTemperature: ${this.ColorTemperature}`);
219
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} ColorTemperature: ${this.ColorTemperature}`);
186
220
  }
187
221
  }
188
222
  async refreshStatus() {
189
223
  try {
190
224
  this.deviceStatus = (await this.platform.axios.get(`${settings_1.DeviceURL}/${this.device.deviceId}/status`)).data;
191
- this.platform.device(`Color Bulb: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
225
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} refreshStatus: ${JSON.stringify(this.deviceStatus)}`);
192
226
  this.parseStatus();
193
227
  this.updateHomeKitCharacteristics();
194
228
  }
195
229
  catch (e) {
196
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
197
- if (this.deviceDebug) {
198
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
230
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection`);
231
+ if (this.deviceLogging === 'debug') {
232
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
199
233
  + ` Error Message: ${JSON.stringify(e.message)}`);
200
234
  }
201
- if (this.debugDebug) {
202
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
235
+ if (this.platform.debugMode) {
236
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed refreshStatus with OpenAPI Connection,`
203
237
  + ` Error: ${JSON.stringify(e)}`);
204
238
  }
205
239
  this.apiError();
@@ -229,11 +263,11 @@ class ColorBulb {
229
263
  else {
230
264
  payload.command = 'turnOff';
231
265
  }
232
- this.platform.log.info(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
266
+ this.infoLog(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
233
267
  + ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
234
268
  // Make the API request
235
269
  const push = (await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload));
236
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
270
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
237
271
  this.statusCode(push);
238
272
  this.OnCached = this.On;
239
273
  this.accessory.context.On = this.OnCached;
@@ -252,13 +286,13 @@ class ColorBulb {
252
286
  }
253
287
  }
254
288
  catch (e) {
255
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
256
- if (this.deviceDebug) {
257
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
289
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
290
+ if (this.deviceLogging === 'debug') {
291
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
258
292
  + ` Error Message: ${JSON.stringify(e.message)}`);
259
293
  }
260
- if (this.debugDebug) {
261
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
294
+ if (this.platform.debugMode) {
295
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
262
296
  + ` Error: ${JSON.stringify(e)}`);
263
297
  }
264
298
  this.apiError();
@@ -267,37 +301,37 @@ class ColorBulb {
267
301
  async pushHueSaturationChanges() {
268
302
  try {
269
303
  if ((this.Hue !== this.HueCached) || (this.Saturation !== this.SaturationCached)) {
270
- this.platform.device(`Color Bulb: ${this.accessory.displayName} Hue: ${JSON.stringify(this.Hue)}`);
271
- this.platform.device(`Color Bulb: ${this.accessory.displayName} Saturation: ${JSON.stringify(this.Saturation)}`);
304
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Hue: ${JSON.stringify(this.Hue)}`);
305
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Saturation: ${JSON.stringify(this.Saturation)}`);
272
306
  const [red, green, blue] = (0, settings_1.hs2rgb)(Number(this.Hue), Number(this.Saturation));
273
- this.platform.device(`Color Bulb: ${this.accessory.displayName} rgb: ${JSON.stringify([red, green, blue])}`);
307
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} rgb: ${JSON.stringify([red, green, blue])}`);
274
308
  const payload = {
275
309
  commandType: 'command',
276
310
  command: 'setColor',
277
311
  parameter: `${red}:${green}:${blue}`,
278
312
  };
279
- this.platform.log.info(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
313
+ this.infoLog(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
280
314
  + ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
281
315
  // Make the API request
282
316
  const push = (await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload));
283
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
317
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
284
318
  this.statusCode(push);
285
319
  this.HueCached = this.Hue;
286
320
  this.SaturationCached = this.Saturation;
287
321
  }
288
322
  else {
289
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} No Changes.`
323
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} No Changes.`
290
324
  + `Hue: ${this.Hue}, HueCached: ${this.HueCached}, Saturation: ${this.Saturation}, SaturationCached: ${this.SaturationCached}`);
291
325
  }
292
326
  }
293
327
  catch (e) {
294
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
295
- if (this.deviceDebug) {
296
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
328
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
329
+ if (this.deviceLogging === 'debug') {
330
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
297
331
  + ` Error Message: ${JSON.stringify(e.message)}`);
298
332
  }
299
- if (this.debugDebug) {
300
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
333
+ if (this.platform.debugMode) {
334
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
301
335
  + ` Error: ${JSON.stringify(e)}`);
302
336
  }
303
337
  this.apiError();
@@ -313,27 +347,27 @@ class ColorBulb {
313
347
  command: 'setColorTemperature',
314
348
  parameter: `${kelvin}`,
315
349
  };
316
- this.platform.log.info(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
350
+ this.infoLog(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
317
351
  + ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
318
352
  // Make the API request
319
353
  const push = (await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload));
320
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
354
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
321
355
  this.statusCode(push);
322
356
  this.ColorTemperatureCached = this.ColorTemperature;
323
357
  }
324
358
  else {
325
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} No Changes.`
359
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} No Changes.`
326
360
  + `ColorTemperature: ${this.ColorTemperature}, ColorTemperatureCached: ${this.ColorTemperatureCached}`);
327
361
  }
328
362
  }
329
363
  catch (e) {
330
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
331
- if (this.deviceDebug) {
332
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
364
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
365
+ if (this.deviceLogging === 'debug') {
366
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
333
367
  + ` Error Message: ${JSON.stringify(e.message)}`);
334
368
  }
335
- if (this.debugDebug) {
336
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
369
+ if (this.platform.debugMode) {
370
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
337
371
  + ` Error: ${JSON.stringify(e)}`);
338
372
  }
339
373
  this.apiError();
@@ -347,27 +381,27 @@ class ColorBulb {
347
381
  command: 'setBrightness',
348
382
  parameter: `${this.Brightness}`,
349
383
  };
350
- this.platform.log.info(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
384
+ this.infoLog(`Color Bulb: ${this.accessory.displayName} Sending request to SwitchBot API. command: ${payload.command},`
351
385
  + ` parameter: ${payload.parameter}, commandType: ${payload.commandType}`);
352
386
  // Make the API request
353
387
  const push = (await this.platform.axios.post(`${settings_1.DeviceURL}/${this.device.deviceId}/commands`, payload));
354
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
388
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} pushChanges: ${JSON.stringify(push.data)}`);
355
389
  this.statusCode(push);
356
390
  this.BrightnessCached = this.Brightness;
357
391
  }
358
392
  else {
359
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} No Changes.`
393
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} No Changes.`
360
394
  + `Brightness: ${this.Brightness}, BrightnessCached: ${this.BrightnessCached}`);
361
395
  }
362
396
  }
363
397
  catch (e) {
364
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
365
- if (this.deviceDebug) {
366
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
398
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
399
+ if (this.deviceLogging === 'debug') {
400
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
367
401
  + ` Error Message: ${JSON.stringify(e.message)}`);
368
402
  }
369
- if (this.debugDebug) {
370
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
403
+ if (this.platform.debugMode) {
404
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
371
405
  + ` Error: ${JSON.stringify(e)}`);
372
406
  }
373
407
  this.apiError();
@@ -375,39 +409,39 @@ class ColorBulb {
375
409
  }
376
410
  updateHomeKitCharacteristics() {
377
411
  if (this.On === undefined) {
378
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} On: ${this.On}`);
412
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} On: ${this.On}`);
379
413
  }
380
414
  else {
381
415
  this.service.updateCharacteristic(this.platform.Characteristic.On, this.On);
382
- this.platform.device(`Color Bulb: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
416
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
383
417
  }
384
418
  if (this.Brightness === undefined) {
385
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
419
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Brightness: ${this.Brightness}`);
386
420
  }
387
421
  else {
388
422
  this.service.updateCharacteristic(this.platform.Characteristic.Brightness, this.Brightness);
389
- this.platform.device(`Color Bulb: ${this.accessory.displayName} updateCharacteristic Brightness: ${this.Brightness}`);
423
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} updateCharacteristic Brightness: ${this.Brightness}`);
390
424
  }
391
425
  if (this.ColorTemperature === undefined) {
392
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} ColorTemperature: ${this.ColorTemperature}`);
426
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} ColorTemperature: ${this.ColorTemperature}`);
393
427
  }
394
428
  else {
395
429
  this.service.updateCharacteristic(this.platform.Characteristic.ColorTemperature, this.ColorTemperature);
396
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} updateCharacteristic ColorTemperature: ${this.ColorTemperature}`);
430
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} updateCharacteristic ColorTemperature: ${this.ColorTemperature}`);
397
431
  }
398
432
  if (this.Hue === undefined) {
399
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Hue: ${this.Hue}`);
433
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Hue: ${this.Hue}`);
400
434
  }
401
435
  else {
402
436
  this.service.updateCharacteristic(this.platform.Characteristic.Hue, this.Hue);
403
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} updateCharacteristic Hue: ${this.Hue}`);
437
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} updateCharacteristic Hue: ${this.Hue}`);
404
438
  }
405
439
  if (this.Saturation === undefined) {
406
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Saturation: ${this.Saturation}`);
440
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Saturation: ${this.Saturation}`);
407
441
  }
408
442
  else {
409
443
  this.service.updateCharacteristic(this.platform.Characteristic.Saturation, this.Saturation);
410
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} updateCharacteristic Saturation: ${this.Saturation}`);
444
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} updateCharacteristic Saturation: ${this.Saturation}`);
411
445
  }
412
446
  }
413
447
  apiError() {
@@ -416,31 +450,35 @@ class ColorBulb {
416
450
  statusCode(push) {
417
451
  switch (push.data.statusCode) {
418
452
  case 151:
419
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} Command not supported by this device type.`);
453
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} Command not supported by this device type.`);
420
454
  break;
421
455
  case 152:
422
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} Device not found.`);
456
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} Device not found.`);
423
457
  break;
424
458
  case 160:
425
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} Command is not supported.`);
459
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} Command is not supported.`);
426
460
  break;
427
461
  case 161:
428
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} Device is offline.`);
462
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} Device is offline.`);
429
463
  this.offlineOff();
430
464
  break;
431
465
  case 171:
432
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} is offline. Hub: ${this.device.hubDeviceId}`);
466
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} is offline. Hub: ${this.device.hubDeviceId}`);
433
467
  this.offlineOff();
434
468
  break;
435
469
  case 190:
436
- this.platform.log.error(`Color Bulb: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,`
470
+ this.errorLog(`Color Bulb: ${this.accessory.displayName} Device internal error due to device states not synchronized with server,`
437
471
  + ` Or command: ${JSON.stringify(push.data)} format is invalid`);
438
472
  break;
439
473
  case 100:
440
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Command successfully sent.`);
474
+ if (this.platform.debugMode) {
475
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Command successfully sent.`);
476
+ }
441
477
  break;
442
478
  default:
443
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Unknown statusCode.`);
479
+ if (this.platform.debugMode) {
480
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Unknown statusCode.`);
481
+ }
444
482
  }
445
483
  }
446
484
  offlineOff() {
@@ -453,7 +491,7 @@ class ColorBulb {
453
491
  * Handle requests to set the value of the "On" characteristic
454
492
  */
455
493
  OnSet(value) {
456
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} On: ${value}`);
494
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} On: ${value}`);
457
495
  this.On = value;
458
496
  this.doColorBulbUpdate.next();
459
497
  }
@@ -461,7 +499,7 @@ class ColorBulb {
461
499
  * Handle requests to set the value of the "Brightness" characteristic
462
500
  */
463
501
  BrightnessSet(value) {
464
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Brightness: ${value}`);
502
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Brightness: ${value}`);
465
503
  this.Brightness = value;
466
504
  this.doColorBulbUpdate.next();
467
505
  }
@@ -469,7 +507,7 @@ class ColorBulb {
469
507
  * Handle requests to set the value of the "ColorTemperature" characteristic
470
508
  */
471
509
  ColorTemperatureSet(value) {
472
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} ColorTemperature: ${value}`);
510
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} ColorTemperature: ${value}`);
473
511
  // Convert mired to kelvin to nearest 100 (SwitchBot seems to need this)
474
512
  const kelvin = Math.round(1000000 / Number(value) / 100) * 100;
475
513
  // Check and increase/decrease kelvin to range of device
@@ -488,7 +526,7 @@ class ColorBulb {
488
526
  * Handle requests to set the value of the "Hue" characteristic
489
527
  */
490
528
  HueSet(value) {
491
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Hue: ${value}`);
529
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Hue: ${value}`);
492
530
  this.service.updateCharacteristic(this.platform.Characteristic.ColorTemperature, 140);
493
531
  this.Hue = value;
494
532
  this.doColorBulbUpdate.next();
@@ -497,11 +535,42 @@ class ColorBulb {
497
535
  * Handle requests to set the value of the "Saturation" characteristic
498
536
  */
499
537
  SaturationSet(value) {
500
- this.platform.debug(`Color Bulb: ${this.accessory.displayName} Saturation: ${value}`);
538
+ this.debugLog(`Color Bulb: ${this.accessory.displayName} Saturation: ${value}`);
501
539
  this.service.updateCharacteristic(this.platform.Characteristic.ColorTemperature, 140);
502
540
  this.Saturation = value;
503
541
  this.doColorBulbUpdate.next();
504
542
  }
543
+ /**
544
+ * Logging for Device
545
+ */
546
+ infoLog(...log) {
547
+ if (this.enablingDeviceLogging()) {
548
+ this.platform.log.info(String(...log));
549
+ }
550
+ }
551
+ warnLog(...log) {
552
+ if (this.enablingDeviceLogging()) {
553
+ this.platform.log.warn(String(...log));
554
+ }
555
+ }
556
+ errorLog(...log) {
557
+ if (this.enablingDeviceLogging()) {
558
+ this.platform.log.error(String(...log));
559
+ }
560
+ }
561
+ debugLog(...log) {
562
+ if (this.enablingDeviceLogging()) {
563
+ if (this.deviceLogging === 'debug') {
564
+ this.platform.log.info('[DEBUG]', String(...log));
565
+ }
566
+ else {
567
+ this.platform.log.debug(String(...log));
568
+ }
569
+ }
570
+ }
571
+ enablingDeviceLogging() {
572
+ return this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
573
+ }
505
574
  }
506
575
  exports.ColorBulb = ColorBulb;
507
576
  //# sourceMappingURL=colorbulb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colorbulb.js","sourceRoot":"","sources":["../../src/devices/colorbulb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colorbulb.js","sourceRoot":"","sources":["../../src/devices/colorbulb.ts"],"names":[],"mappings":"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"}