@switchbot/homebridge-switchbot 4.0.0-beta.4 → 4.0.0

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.
@@ -27,6 +27,9 @@ export interface options {
27
27
  [deviceType: string]: devicesConfig;
28
28
  };
29
29
  irdevices?: irDevicesConfig[];
30
+ irdeviceConfig?: {
31
+ [remoteType: string]: irDevicesConfig;
32
+ };
30
33
  allowInvalidCharacters?: boolean;
31
34
  mqttURL?: string;
32
35
  mqttOptions?: IClientOptions;
@@ -43,7 +46,7 @@ export interface options {
43
46
  pushRate?: number;
44
47
  logging?: string;
45
48
  }
46
- export type devicesConfig = botConfig | meterConfig | indoorOutdoorSensorConfig | humidifierConfig | curtainConfig | blindTiltConfig | contactConfig | motionConfig | waterDetectorConfig | colorBulbConfig | stripLightConfig | ceilingLightConfig | lockConfig | hubConfig;
49
+ export type devicesConfig = botConfig | meterConfig | indoorOutdoorSensorConfig | humidifierConfig | curtainConfig | blindTiltConfig | contactConfig | motionConfig | waterDetectorConfig | plugConfig | colorBulbConfig | stripLightConfig | ceilingLightConfig | lockConfig | hubConfig;
47
50
  export interface BaseDeviceConfig extends device {
48
51
  bleMac?: string;
49
52
  model: string;
@@ -90,7 +93,7 @@ export interface meterConfig extends BaseDeviceConfig {
90
93
  hide_humidity?: boolean;
91
94
  }
92
95
  export interface indoorOutdoorSensorConfig extends BaseDeviceConfig {
93
- configDeviceType: 'IOSensor';
96
+ configDeviceType: 'WoIOSensor';
94
97
  hide_temperature?: boolean;
95
98
  convertUnitTo?: string;
96
99
  hide_humidity?: boolean;
@@ -102,7 +105,7 @@ export interface humidifierConfig extends BaseDeviceConfig {
102
105
  set_minStep?: number;
103
106
  }
104
107
  export interface curtainConfig extends BaseDeviceConfig {
105
- configDeviceType: 'Curtain' | 'Curtain3';
108
+ configDeviceType: 'Curtain' | 'Curtain3' | 'WoRollerShade' | 'Roller Shade';
106
109
  disable_group?: boolean;
107
110
  hide_lightsensor?: boolean;
108
111
  set_minLux?: number;
@@ -146,6 +149,9 @@ export interface waterDetectorConfig extends BaseDeviceConfig {
146
149
  hide_leak?: boolean;
147
150
  dry?: boolean;
148
151
  }
152
+ export interface plugConfig extends BaseDeviceConfig {
153
+ configDeviceType: 'Plug' | 'Plug Mini (US)' | 'Plug Mini (JP)';
154
+ }
149
155
  export interface colorBulbConfig extends BaseDeviceConfig {
150
156
  configDeviceType: 'Color Bulb';
151
157
  set_minStep?: number;
@@ -162,12 +168,12 @@ export interface ceilingLightConfig extends BaseDeviceConfig {
162
168
  adaptiveLightingShift?: number;
163
169
  }
164
170
  export interface lockConfig extends BaseDeviceConfig {
165
- configDeviceType: 'Lock' | 'Lock Pro';
171
+ configDeviceType: 'Smart Lock' | 'Smart Lock Pro';
166
172
  hide_contactsensor?: boolean;
167
173
  activate_latchbutton?: boolean;
168
174
  }
169
175
  export interface hubConfig extends BaseDeviceConfig {
170
- configDeviceType: 'Hub2';
176
+ configDeviceType: 'Hub 2';
171
177
  hide_temperature?: boolean;
172
178
  convertUnitTo?: string;
173
179
  hide_humidity?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC/H;;GAEG;AACH,eAAO,MAAM,aAAa,cAAc,CAAA;AAExC;;GAEG;AACH,eAAO,MAAM,WAAW,oCAAoC,CAAA;AAG5D,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAA;CACvD;AACD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAA;IACtD,SAAS,CAAC,EAAE,eAAe,EAAE,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,mBAAmB,GAAG,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAA;AAE5Q,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,YAAY,EAAE,qBAAqB,CAAA;IACnC,oBAAoB,EAAE,6BAA6B,CAAA;IACnD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD,gBAAgB,EAAE,KAAK,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,gBAAgB,EAAE,OAAO,GAAG,WAAW,CAAA;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,gBAAgB,EAAE,UAAU,CAAA;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,gBAAgB,EAAE,YAAY,CAAA;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,gBAAgB,EAAE,SAAS,GAAG,UAAU,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,gBAAgB,EAAE,YAAY,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,gBAAgB,EAAE,eAAe,CAAA;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,gBAAgB,EAAE,YAAY,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,gBAAgB,EAAE,aAAa,CAAA;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,gBAAgB,EAAE,eAAe,GAAG,mBAAmB,CAAA;IACvD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAA;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAA;AAEvF,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,gBAAgB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,gBAAgB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,qBAAqB,CAAA;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,gBAAgB,CAAC,EAAE,QAAQ,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/dist/settings.js CHANGED
@@ -25,4 +25,5 @@ export const PLUGIN_NAME = '@switchbot/homebridge-switchbot';
25
25
  ;
26
26
  ;
27
27
  ;
28
+ ;
28
29
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,iCAAiC,CAAA;AAiC3D,CAAC;AA2CD,CAAC;AAOD,CAAC;AAOD,CAAC;AAOD,CAAC;AAcD,CAAC;AAeD,CAAC;AAQD,CAAC;AAOD,CAAC;AAMD,CAAC;AAMD,CAAC;AAMD,CAAC;AAMD,CAAC;AAMD,CAAC;AAUD,CAAC;AA6BD,CAAC;AAKD,CAAC;AAYD,CAAC;AAKD,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,iCAAiC,CAAA;AAkC3D,CAAC;AA2CD,CAAC;AAOD,CAAC;AAOD,CAAC;AAOD,CAAC;AAcD,CAAC;AAeD,CAAC;AAQD,CAAC;AAOD,CAAC;AAMD,CAAC;AAID,CAAC;AAMD,CAAC;AAMD,CAAC;AAMD,CAAC;AAMD,CAAC;AAUD,CAAC;AA6BD,CAAC;AAKD,CAAC;AAYD,CAAC;AAKD,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@switchbot/homebridge-switchbot",
3
3
  "displayName": "SwitchBot",
4
4
  "type": "module",
5
- "version": "4.0.0-beta.4",
5
+ "version": "4.0.0",
6
6
  "description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
7
7
  "author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
8
8
  "contributors": [
@@ -81,7 +81,7 @@
81
81
  "async-mqtt": "^2.6.3",
82
82
  "fakegato-history": "^0.6.5",
83
83
  "homebridge-lib": "^7.0.9",
84
- "node-switchbot": "^3.0.2-beta.5",
84
+ "node-switchbot": "^3.1.1",
85
85
  "rxjs": "^7.8.1"
86
86
  },
87
87
  "devDependencies": {
@@ -97,12 +97,12 @@
97
97
  "eslint": "^9.12.0",
98
98
  "eslint-plugin-format": "^0.1.2",
99
99
  "homebridge": "^1.8.4",
100
- "homebridge-config-ui-x": "4.60.1",
100
+ "homebridge-config-ui-x": "4.61.0",
101
101
  "nodemon": "^3.1.7",
102
102
  "npm-check-updates": "^17.1.3",
103
103
  "shx": "^0.3.4",
104
104
  "ts-node": "^10.9.2",
105
- "typedoc": "^0.26.8",
105
+ "typedoc": "^0.26.9",
106
106
  "typescript": "^5.6.3",
107
107
  "vitest": "^2.1.2"
108
108
  },
@@ -8,7 +8,7 @@ import type { MqttClient } from 'mqtt'
8
8
  import type { ad, bodyChange, device, deviceStatus, deviceStatusRequest, pushResponse } from 'node-switchbot'
9
9
 
10
10
  import type { SwitchBotPlatform } from '../platform.js'
11
- import type { blindTiltConfig, botConfig, ceilingLightConfig, colorBulbConfig, contactConfig, curtainConfig, devicesConfig, hubConfig, humidifierConfig, indoorOutdoorSensorConfig, lockConfig, meterConfig, motionConfig, stripLightConfig, SwitchBotPlatformConfig, waterDetectorConfig } from '../settings.js'
11
+ import type { blindTiltConfig, botConfig, ceilingLightConfig, colorBulbConfig, contactConfig, curtainConfig, devicesConfig, hubConfig, humidifierConfig, indoorOutdoorSensorConfig, lockConfig, meterConfig, motionConfig, plugConfig, stripLightConfig, SwitchBotPlatformConfig, waterDetectorConfig } from '../settings.js'
12
12
 
13
13
  import { hostname } from 'node:os'
14
14
 
@@ -188,7 +188,7 @@ export abstract class deviceBase {
188
188
  case 'MeterPlus':
189
189
  deviceSpecificConfig = device as meterConfig
190
190
  break
191
- case 'IOSensor':
191
+ case 'WoIOSensor':
192
192
  deviceSpecificConfig = device as indoorOutdoorSensorConfig
193
193
  break
194
194
  case 'Humidifier':
@@ -210,6 +210,11 @@ export abstract class deviceBase {
210
210
  case 'Water Detector':
211
211
  deviceSpecificConfig = device as waterDetectorConfig
212
212
  break
213
+ case 'Plug':
214
+ case 'Plug Mini (US)':
215
+ case 'Plug Mini (JP)':
216
+ deviceSpecificConfig = device as plugConfig
217
+ break
213
218
  case 'Color Bulb':
214
219
  deviceSpecificConfig = device as colorBulbConfig
215
220
  break
@@ -220,11 +225,11 @@ export abstract class deviceBase {
220
225
  case 'Ceiling Light Pro':
221
226
  deviceSpecificConfig = device as ceilingLightConfig
222
227
  break
223
- case 'Lock':
224
- case 'Lock Pro':
228
+ case 'Smart Lock':
229
+ case 'Smart Lock Pro':
225
230
  deviceSpecificConfig = device as lockConfig
226
231
  break
227
- case 'Hub2':
232
+ case 'Hub 2':
228
233
  deviceSpecificConfig = device as hubConfig
229
234
  break
230
235
  default:
@@ -512,6 +517,18 @@ export abstract class deviceBase {
512
517
  bleModelName: SwitchBotBLEModelName.Curtain3,
513
518
  bleModelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain3,
514
519
  },
520
+ 'WoRollerShade': {
521
+ model: SwitchBotModel.Curtain3,
522
+ bleModel: SwitchBotBLEModel.Curtain3,
523
+ bleModelName: SwitchBotBLEModelName.Curtain3,
524
+ bleModelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain3,
525
+ },
526
+ 'Roller Shade': {
527
+ model: SwitchBotModel.Curtain3,
528
+ bleModel: SwitchBotBLEModel.Curtain3,
529
+ bleModelName: SwitchBotBLEModelName.Curtain3,
530
+ bleModelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain3,
531
+ },
515
532
  'Blind Tilt': {
516
533
  model: SwitchBotModel.BlindTilt,
517
534
  bleModel: SwitchBotBLEModel.BlindTilt,
@@ -560,6 +577,12 @@ export abstract class deviceBase {
560
577
  bleModelName: SwitchBotBLEModelName.Unknown,
561
578
  bleModelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown,
562
579
  },
580
+ 'K10+ Pro': {
581
+ model: SwitchBotModel.K10Pro,
582
+ bleModel: SwitchBotBLEModel.Unknown,
583
+ bleModelName: SwitchBotBLEModelName.Unknown,
584
+ bleModelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown,
585
+ },
563
586
  'WoSweeper': {
564
587
  model: SwitchBotModel.WoSweeper,
565
588
  bleModel: SwitchBotBLEModel.Unknown,
package/src/platform.ts CHANGED
@@ -511,7 +511,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
511
511
  }
512
512
 
513
513
  private async handleDevices(deviceLists: any[]) {
514
- if (!this.config.options?.devices) {
514
+ if (!this.config.options?.devices && !this.config.options?.deviceConfig) {
515
515
  await this.debugLog(`SwitchBot Device Config Not Set: ${JSON.stringify(this.config.options?.devices)}`)
516
516
  if (deviceLists.length === 0) {
517
517
  await this.debugLog('SwitchBot API Has No Devices With Cloud Services Enabled')
@@ -525,7 +525,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
525
525
  }
526
526
  }
527
527
  }
528
- } else {
528
+ } else if (this.config.options?.devices || this.config.options?.deviceConfig) {
529
529
  await this.debugLog(`SwitchBot Device Config Set: ${JSON.stringify(this.config.options?.devices)}`)
530
530
 
531
531
  // Step 1: Check and assign configDeviceType to deviceType if deviceType is not present
@@ -546,7 +546,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
546
546
  // Wait for all promises to resolve
547
547
  const devicesWithTypeConfig = (await Promise.all(devicesWithTypeConfigPromises)).filter(device => device !== null) // Filter out skipped devices
548
548
 
549
- const devices = this.mergeByDeviceId(this.config.options.devices, devicesWithTypeConfig)
549
+ const devices = this.mergeByDeviceId(this.config.options.devices ?? [], devicesWithTypeConfig ?? [])
550
550
 
551
551
  await this.debugLog(`SwitchBot Devices: ${JSON.stringify(devices)}`)
552
552
 
@@ -564,19 +564,44 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
564
564
  }
565
565
 
566
566
  private async handleIRDevices(irDeviceLists: any[]) {
567
- if (!this.config.options?.irdevices) {
567
+ if (!this.config.options?.irdevices && !this.config.options?.irdeviceConfig) {
568
568
  await this.debugLog(`IR Device Config Not Set: ${JSON.stringify(this.config.options?.irdevices)}`)
569
569
  for (const device of irDeviceLists) {
570
570
  if (device.remoteType) {
571
571
  await this.createIRDevice(device)
572
572
  }
573
573
  }
574
- } else {
574
+ } else if (this.config.options?.irdevices || this.config.options?.irdeviceConfig) {
575
575
  await this.debugLog(`IR Device Config Set: ${JSON.stringify(this.config.options?.irdevices)}`)
576
- const devices = this.mergeByDeviceId(irDeviceLists, this.config.options.irdevices)
576
+
577
+ // Step 1: Check and assign configRemoteType to remoteType if remoteType is not present
578
+ const devicesWithTypeConfigPromises = irDeviceLists.map(async (device) => {
579
+ if (!device.remoteType && device.configRemoteType) {
580
+ device.remoteType = device.configRemoteType
581
+ await this.warnLog(`API is displaying no remoteType: ${device.remoteType}, So using configRemoteType: ${device.configRemoteType}`)
582
+ } else if (!device.remoteType && !device.configDeviceName) {
583
+ await this.errorLog('No remoteType or configRemoteType for device. No device will be created.')
584
+ return null // Skip this device
585
+ }
586
+
587
+ // Retrieve remoteTypeConfig for each device and merge it
588
+ const remoteTypeConfig = this.config.options?.irdeviceConfig?.[device.remoteType] || {}
589
+ return Object.assign({}, device, remoteTypeConfig)
590
+ })
591
+ // Wait for all promises to resolve
592
+ const devicesWithRemoteTypeConfig = (await Promise.all(devicesWithTypeConfigPromises)).filter(device => device !== null) // Filter out skipped devices
593
+
594
+ const devices = this.mergeByDeviceId(this.config.options.irdevices ?? [], devicesWithRemoteTypeConfig ?? [])
595
+
577
596
  await this.debugLog(`IR Devices: ${JSON.stringify(devices)}`)
578
597
  for (const device of devices) {
579
- await this.createIRDevice(device)
598
+ const irdeviceIdConfig = this.config.options?.irdevices?.[device.deviceId] || {}
599
+ const irdeviceWithConfig = Object.assign({}, device, irdeviceIdConfig)
600
+
601
+ if (device.configDeviceName) {
602
+ device.deviceName = device.configDeviceName
603
+ }
604
+ await this.createIRDevice(irdeviceWithConfig)
580
605
  }
581
606
  }
582
607
  }
@@ -621,6 +646,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
621
646
  'Smart Lock Pro': this.createLock.bind(this),
622
647
  'Color Bulb': this.createColorBulb.bind(this),
623
648
  'K10+': this.createRobotVacuumCleaner.bind(this),
649
+ 'K10+ Pro': this.createRobotVacuumCleaner.bind(this),
624
650
  'WoSweeper': this.createRobotVacuumCleaner.bind(this),
625
651
  'WoSweeperMini': this.createRobotVacuumCleaner.bind(this),
626
652
  'Robot Vacuum Cleaner S1': this.createRobotVacuumCleaner.bind(this),
package/src/settings.ts CHANGED
@@ -35,6 +35,7 @@ export interface options {
35
35
  devices?: devicesConfig[]
36
36
  deviceConfig?: { [deviceType: string]: devicesConfig }
37
37
  irdevices?: irDevicesConfig[]
38
+ irdeviceConfig?: { [remoteType: string]: irDevicesConfig }
38
39
  allowInvalidCharacters?: boolean
39
40
  mqttURL?: string
40
41
  mqttOptions?: IClientOptions
@@ -52,7 +53,7 @@ export interface options {
52
53
  logging?: string
53
54
  };
54
55
 
55
- export type devicesConfig = botConfig | meterConfig | indoorOutdoorSensorConfig | humidifierConfig | curtainConfig | blindTiltConfig | contactConfig | motionConfig | waterDetectorConfig | colorBulbConfig | stripLightConfig | ceilingLightConfig | lockConfig | hubConfig
56
+ export type devicesConfig = botConfig | meterConfig | indoorOutdoorSensorConfig | humidifierConfig | curtainConfig | blindTiltConfig | contactConfig | motionConfig | waterDetectorConfig | plugConfig | colorBulbConfig | stripLightConfig | ceilingLightConfig | lockConfig | hubConfig
56
57
 
57
58
  export interface BaseDeviceConfig extends device {
58
59
  bleMac?: string
@@ -103,7 +104,7 @@ export interface meterConfig extends BaseDeviceConfig {
103
104
  };
104
105
 
105
106
  export interface indoorOutdoorSensorConfig extends BaseDeviceConfig {
106
- configDeviceType: 'IOSensor'
107
+ configDeviceType: 'WoIOSensor'
107
108
  hide_temperature?: boolean
108
109
  convertUnitTo?: string
109
110
  hide_humidity?: boolean
@@ -117,7 +118,7 @@ export interface humidifierConfig extends BaseDeviceConfig {
117
118
  };
118
119
 
119
120
  export interface curtainConfig extends BaseDeviceConfig {
120
- configDeviceType: 'Curtain' | 'Curtain3'
121
+ configDeviceType: 'Curtain' | 'Curtain3' | 'WoRollerShade' | 'Roller Shade'
121
122
  disable_group?: boolean
122
123
  hide_lightsensor?: boolean
123
124
  set_minLux?: number
@@ -166,6 +167,10 @@ export interface waterDetectorConfig extends BaseDeviceConfig {
166
167
  dry?: boolean
167
168
  };
168
169
 
170
+ export interface plugConfig extends BaseDeviceConfig {
171
+ configDeviceType: 'Plug' | 'Plug Mini (US)' | 'Plug Mini (JP)'
172
+ };
173
+
169
174
  export interface colorBulbConfig extends BaseDeviceConfig {
170
175
  configDeviceType: 'Color Bulb'
171
176
  set_minStep?: number
@@ -185,13 +190,13 @@ export interface ceilingLightConfig extends BaseDeviceConfig {
185
190
  };
186
191
 
187
192
  export interface lockConfig extends BaseDeviceConfig {
188
- configDeviceType: 'Lock' | 'Lock Pro'
193
+ configDeviceType: 'Smart Lock' | 'Smart Lock Pro'
189
194
  hide_contactsensor?: boolean
190
195
  activate_latchbutton?: boolean
191
196
  };
192
197
 
193
198
  export interface hubConfig extends BaseDeviceConfig {
194
- configDeviceType: 'Hub2'
199
+ configDeviceType: 'Hub 2'
195
200
  hide_temperature?: boolean
196
201
  convertUnitTo?: string
197
202
  hide_humidity?: boolean
@@ -1,81 +0,0 @@
1
- #!/bin/env node
2
-
3
- /**
4
- * This scripts queries the npm registry to pull out the latest version for a given tag.
5
- */
6
-
7
- const fs = require("fs");
8
- const semver = require("semver");
9
- const child_process = require("child_process");
10
- const assert = require("assert");
11
-
12
- const BRANCH_VERSION_PATTERN = /^([A-Za-z]*)-(\d+.\d+.\d+)$/
13
-
14
- // Load the contents of the package.json file
15
- const packageJSON = JSON.parse(fs.readFileSync("package.json", "utf8"));
16
-
17
- let refArgument = process.argv[2];
18
- let tagArgument = process.argv[3] || "latest";
19
-
20
- if (refArgument == null) {
21
- console.error("ref argument is missing");
22
- console.error("Usage: npm-version-script.cjs <ref> [tag]");
23
- process.exit(1);
24
- }
25
-
26
- /**
27
- * Queries the NPM registry for the latest version for the provided tag.
28
- * @param tag The tag to query for.
29
- * @returns {string} Returns the version.
30
- */
31
- function getTagVersionFromNpm(tag) {
32
- try {
33
- return child_process.execSync(`npm info ${packageJSON.name} version --tag="${tag}"`).toString("utf8").trim();
34
- } catch (e) {
35
- throw e;
36
- }
37
- }
38
-
39
- function desiredTargetVersion(ref) {
40
- // ref is a GitHub action ref string
41
- if (ref.startsWith("refs/pull/")) {
42
- throw Error("The version script was executed inside a PR!");
43
- }
44
-
45
- assert(ref.startsWith("refs/heads/"))
46
- let branchName = ref.slice("refs/heads/".length);
47
-
48
- let results = branchName.match(BRANCH_VERSION_PATTERN);
49
- if (results != null) {
50
- if (results[1] !== tagArgument) {
51
- console.warn(`The base branch name (${results[1]}) differs from the tag name ${tagArgument}`);
52
- }
53
-
54
- return results[2];
55
- }
56
-
57
- // legacy mode were we use the `betaVersion` property in the package.json
58
- if (branchName === "beta" && packageJSON.betaVersion) {
59
- return packageJSON.betaVersion
60
- }
61
-
62
- throw new Error("Malformed branch name for ref: " + ref + ". Can't derive the base version. Use a branch name like: beta-x.x.x!");
63
- }
64
-
65
- // derive the base version from the branch ref
66
- const baseVersion = desiredTargetVersion(refArgument);
67
-
68
- // query the npm registry for the latest version of the provided tag name
69
- const latestReleasedVersion = getTagVersionFromNpm(tagArgument); // e.g. 0.7.0-beta.12
70
- const latestReleaseBase = semver.inc(latestReleasedVersion, "patch"); // will produce 0.7.0 (removing the preid, needed for the equality check below)
71
-
72
- let publishTag;
73
- if (semver.eq(baseVersion, latestReleaseBase)) { // check if we are releasing another version for the latest beta
74
- publishTag = latestReleasedVersion; // set the current latest beta to be incremented
75
- } else {
76
- publishTag = baseVersion; // start of with a new beta version
77
- }
78
-
79
- // save the package.json
80
- packageJSON.version = publishTag;
81
- fs.writeFileSync("package.json", JSON.stringify(packageJSON, null, 2));