@switchbot/homebridge-switchbot 2.0.0-beta.4 → 2.0.0-beta.41

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 (119) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/README.md +3 -2
  3. package/config.schema.json +108 -20
  4. package/dist/device/bot.d.ts +34 -28
  5. package/dist/device/bot.d.ts.map +1 -1
  6. package/dist/device/bot.js +657 -648
  7. package/dist/device/bot.js.map +1 -1
  8. package/dist/device/ceilinglight.d.ts +137 -0
  9. package/dist/device/ceilinglight.d.ts.map +1 -0
  10. package/dist/device/ceilinglight.js +1127 -0
  11. package/dist/device/ceilinglight.js.map +1 -0
  12. package/dist/device/colorbulb.d.ts +36 -19
  13. package/dist/device/colorbulb.d.ts.map +1 -1
  14. package/dist/device/colorbulb.js +486 -309
  15. package/dist/device/colorbulb.js.map +1 -1
  16. package/dist/device/contact.d.ts +18 -8
  17. package/dist/device/contact.d.ts.map +1 -1
  18. package/dist/device/contact.js +306 -237
  19. package/dist/device/contact.js.map +1 -1
  20. package/dist/device/curtain.d.ts +23 -16
  21. package/dist/device/curtain.d.ts.map +1 -1
  22. package/dist/device/curtain.js +566 -502
  23. package/dist/device/curtain.js.map +1 -1
  24. package/dist/device/humidifier.d.ts +24 -18
  25. package/dist/device/humidifier.d.ts.map +1 -1
  26. package/dist/device/humidifier.js +453 -369
  27. package/dist/device/humidifier.js.map +1 -1
  28. package/dist/device/lock.d.ts +27 -8
  29. package/dist/device/lock.d.ts.map +1 -1
  30. package/dist/device/lock.js +305 -148
  31. package/dist/device/lock.js.map +1 -1
  32. package/dist/device/meter.d.ts +22 -16
  33. package/dist/device/meter.d.ts.map +1 -1
  34. package/dist/device/meter.js +367 -267
  35. package/dist/device/meter.js.map +1 -1
  36. package/dist/device/meterplus.d.ts +24 -12
  37. package/dist/device/meterplus.d.ts.map +1 -1
  38. package/dist/device/meterplus.js +381 -213
  39. package/dist/device/meterplus.js.map +1 -1
  40. package/dist/device/motion.d.ts +18 -8
  41. package/dist/device/motion.d.ts.map +1 -1
  42. package/dist/device/motion.js +279 -216
  43. package/dist/device/motion.js.map +1 -1
  44. package/dist/device/plug.d.ts +27 -17
  45. package/dist/device/plug.d.ts.map +1 -1
  46. package/dist/device/plug.js +295 -251
  47. package/dist/device/plug.js.map +1 -1
  48. package/dist/device/striplight.d.ts +43 -19
  49. package/dist/device/striplight.d.ts.map +1 -1
  50. package/dist/device/striplight.js +506 -262
  51. package/dist/device/striplight.js.map +1 -1
  52. package/dist/irdevice/airconditioner.d.ts +9 -12
  53. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  54. package/dist/irdevice/airconditioner.js +278 -230
  55. package/dist/irdevice/airconditioner.js.map +1 -1
  56. package/dist/irdevice/airpurifier.d.ts +5 -3
  57. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  58. package/dist/irdevice/airpurifier.js +154 -104
  59. package/dist/irdevice/airpurifier.js.map +1 -1
  60. package/dist/irdevice/camera.d.ts +11 -8
  61. package/dist/irdevice/camera.d.ts.map +1 -1
  62. package/dist/irdevice/camera.js +133 -86
  63. package/dist/irdevice/camera.js.map +1 -1
  64. package/dist/irdevice/fan.d.ts +10 -7
  65. package/dist/irdevice/fan.d.ts.map +1 -1
  66. package/dist/irdevice/fan.js +160 -109
  67. package/dist/irdevice/fan.js.map +1 -1
  68. package/dist/irdevice/light.d.ts +11 -8
  69. package/dist/irdevice/light.d.ts.map +1 -1
  70. package/dist/irdevice/light.js +137 -103
  71. package/dist/irdevice/light.js.map +1 -1
  72. package/dist/irdevice/other.d.ts +11 -8
  73. package/dist/irdevice/other.d.ts.map +1 -1
  74. package/dist/irdevice/other.js +145 -98
  75. package/dist/irdevice/other.js.map +1 -1
  76. package/dist/irdevice/tv.d.ts +12 -9
  77. package/dist/irdevice/tv.d.ts.map +1 -1
  78. package/dist/irdevice/tv.js +143 -93
  79. package/dist/irdevice/tv.js.map +1 -1
  80. package/dist/irdevice/vacuumcleaner.d.ts +9 -10
  81. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  82. package/dist/irdevice/vacuumcleaner.js +132 -89
  83. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  84. package/dist/irdevice/waterheater.d.ts +8 -9
  85. package/dist/irdevice/waterheater.d.ts.map +1 -1
  86. package/dist/irdevice/waterheater.js +132 -89
  87. package/dist/irdevice/waterheater.js.map +1 -1
  88. package/dist/platform.d.ts +15 -12
  89. package/dist/platform.d.ts.map +1 -1
  90. package/dist/platform.js +574 -454
  91. package/dist/platform.js.map +1 -1
  92. package/dist/settings.d.ts +21 -11
  93. package/dist/settings.d.ts.map +1 -1
  94. package/dist/settings.js.map +1 -1
  95. package/homebridge-ui/public/index.html +1 -0
  96. package/package.json +13 -11
  97. package/src/device/bot.ts +656 -659
  98. package/src/device/ceilinglight.ts +1208 -0
  99. package/src/device/colorbulb.ts +490 -344
  100. package/src/device/contact.ts +309 -241
  101. package/src/device/curtain.ts +571 -516
  102. package/src/device/humidifier.ts +456 -403
  103. package/src/device/lock.ts +314 -149
  104. package/src/device/meter.ts +378 -280
  105. package/src/device/meterplus.ts +391 -219
  106. package/src/device/motion.ts +285 -222
  107. package/src/device/plug.ts +299 -260
  108. package/src/device/striplight.ts +522 -289
  109. package/src/irdevice/airconditioner.ts +282 -241
  110. package/src/irdevice/airpurifier.ts +151 -103
  111. package/src/irdevice/camera.ts +131 -85
  112. package/src/irdevice/fan.ts +157 -106
  113. package/src/irdevice/light.ts +135 -103
  114. package/src/irdevice/other.ts +143 -97
  115. package/src/irdevice/tv.ts +142 -93
  116. package/src/irdevice/vacuumcleaner.ts +131 -89
  117. package/src/irdevice/waterheater.ts +130 -89
  118. package/src/platform.ts +567 -476
  119. package/src/settings.ts +22 -11
package/CHANGELOG.md CHANGED
@@ -2,11 +2,21 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
- ## [Beta - Version 2.0.0](https://github.com/OpenWonderLabs/homebridge-switchbot/releases/tag/v2.0.0) (2022-XX-XX)
5
+ ## [Version 2.0.0](https://github.com/OpenWonderLabs/homebridge-switchbot/releases/tag/v2.0.0) (2022-10-12)
6
6
 
7
7
  ## What's Changed
8
8
 
9
9
  - Moved from v1.0 to v1.1 of [OpenAPI](https://github.com/OpenWonderLabs/SwitchBotAPI)
10
+ - Publish device(s) as an external accessory.
11
+ - Added `connectionType` config, this replaces the `BLE` config.
12
+ - You can now select Both Connections, Only OpenAPI, Only BLE, or Disable.
13
+ - `Both` will use BLE as the default connection and will use OpenAPI as a backup connection.
14
+ - `OpenAPI` will only allow connections through the OpenAPI.
15
+ - `BLE` will only allow connections through Bluetooth (BLE), .
16
+ - `Disable` will disable all connections. This will also allow you to disable commands and refreshes for a specific device but leave it in HomeKit.
17
+ - Added Support for Ceiling Light & Ceiling Light Pro
18
+ - Fixes Smart Lock Issues fixed in v1.1 of OpenAPI. [#462](https://github.com/OpenWonderLabs/homebridge-switchbot/issues/462)
19
+ = Fixes excesive logging from node-switchbot. [#435](https://github.com/OpenWonderLabs/homebridge-switchbot/issues/435), [#444](https://github.com/OpenWonderLabs/homebridge-switchbot/issues/444), [#446](https://github.com/OpenWonderLabs/homebridge-switchbot/issues/446)
10
20
  - Housekeeping and updated dependencies.
11
21
 
12
22
  **Full Changelog**: https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v1.15.0...v2.0.0
@@ -84,7 +94,7 @@ All notable changes to this project will be documented in this file. This projec
84
94
 
85
95
  ## What's Changed
86
96
 
87
- - Fix for Curtain v3.3 and above, from v1.2.0 node-swtichbot update.
97
+ - Fix for Curtain v3.3 and above, from v1.2.0 node-switchbot update.
88
98
  - Housekeeping and updated dependencies.
89
99
 
90
100
  **Full Changelog**: https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v1.12.5...v1.12.6
package/README.md CHANGED
@@ -8,8 +8,7 @@
8
8
  [![npm downloads](https://badgen.net/npm/dt/@switchbot/homebridge-switchbot)](https://www.npmjs.com/package/@switchbot/homebridge-switchbot)
9
9
  [![discord-switchbot](https://badgen.net/discord/online-members/5wYTbwP4ha?icon=discord&label=discord)](https://discord.gg/5wYTbwP4ha)
10
10
 
11
- <p>The Homebridge <a href="https://www.switch-bot.com">SwitchBot</a> OpenAPI
12
- plugin allows you to access your SwitchBot Device(s) from HomeKit with
11
+ <p>The Homebridge <a href="https://www.switch-bot.com">SwitchBot</a> plugin allows you to access your SwitchBot Device(s) from HomeKit with
13
12
  <a href="https://homebridge.io">Homebridge</a>.
14
13
  </p>
15
14
 
@@ -97,6 +96,8 @@ plugin allows you to access your SwitchBot Device(s) from HomeKit with
97
96
  - Must supply `deviceId` & `deviceName` to Device Config
98
97
  - Check `Enable Bluetooth Low Energy (BLE) Connection` on Device Config
99
98
  - [SwitchBot Bulb](https://www.switch-bot.com/products/switchbot-color-bulb)
99
+ - [SwitchBot Ceiling Light](https://www.switchbot.jp/collections/all/products/switchbot-ceiling-light)
100
+ - [SwitchBot Ceiling Light Pro](https://www.switchbot.jp/collections/all/products/switchbot-ceiling-light)
100
101
  - [SwitchBot Light Strip](https://www.switch-bot.com/products/switchbot-light-strip)
101
102
  - Supports OpenAPI Connection Only
102
103
  - If using OpenAPI:
@@ -3,7 +3,7 @@
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
5
  "customUi": true,
6
- "headerDisplay": "<p align='center'><img width='100px' src='https://user-images.githubusercontent.com/9875439/102681754-ac2eb800-4189-11eb-8e17-7c47c804484b.png'></p>\n\nThe **SwitchBot** plugin allows you to control SwitchBot Devices. \n\nTo get started link your SwtichBot account.\nTo get started link your SwtichBot account.\n\n1. Download SwitchBot App on App Store or Google Play Store.\n\n2. Register a SwitchBot account and log in into your account.\n\n3. Generate an Open Token within the App.\n\n4. Input your `Open Token` into the paramter below.",
6
+ "headerDisplay": "<p align='center'><img width='100px' src='https://user-images.githubusercontent.com/9875439/102681754-ac2eb800-4189-11eb-8e17-7c47c804484b.png'></p>\n\nThe **SwitchBot** plugin allows you to control SwitchBot Devices. \n\nTo get started link your SwitchBot account.\n\n1. Download SwitchBot App on App Store or Google Play Store.\n\n2. Register a SwitchBot account and log in into your account.\n\n3. Generate an Open Token within the App.\n\n4. Input your `Open Token` into the paramter below.",
7
7
  "footerDisplay": "Please raise any issues on our [project page](https://github.com/OpenWonderLabs/homebridge-switchbot/issues).\n\nIf you would like to have other SwitchBot Devices added to this plugin fill out [Feature Request Form](https://github.com/OpenWonderLabs/homebridge-switchbot/issues/new?assignees=&labels=&template=feature_request.md).\n\n[SwitchBot Website](https://www.switch-bot.com)",
8
8
  "schema": {
9
9
  "type": "object",
@@ -63,18 +63,11 @@
63
63
  "hide_device": {
64
64
  "title": "Hide Device",
65
65
  "type": "boolean",
66
- "description": "If true then devices that are reported as offline will be shown as off in HomeKit.",
66
+ "description": "If true, device will be removed or hidden from HomeKit.",
67
67
  "condition": {
68
68
  "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId);"
69
69
  }
70
70
  },
71
- "offline": {
72
- "title": "Offline as Off",
73
- "type": "boolean",
74
- "condition": {
75
- "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device);"
76
- }
77
- },
78
71
  "configDeviceType": {
79
72
  "title": "Device Type",
80
73
  "type": "string",
@@ -144,11 +137,30 @@
144
137
  "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device);"
145
138
  }
146
139
  },
147
- "ble": {
148
- "title": "Enable Bluetooth Low Energy (BLE) Connection",
149
- "type": "boolean",
140
+ "connectionType": {
141
+ "title": "Connection Type",
142
+ "type": "string",
143
+ "oneOf": [
144
+ {
145
+ "title": "BLE/OpenAPI",
146
+ "enum": ["BLE/OpenAPI"]
147
+ },
148
+ {
149
+ "title": "OpenAPI",
150
+ "enum": ["OpenAPI"]
151
+ },
152
+ {
153
+ "title": "BLE",
154
+ "enum": ["BLE"]
155
+ },
156
+ {
157
+ "title": "Disable",
158
+ "enum": ["Disabled"]
159
+ }
160
+ ],
161
+ "description": "Bluetooth (BLE) API is only available for the following Device Types: Humidifier, Meter, MeterPlus, Curtain, Bot, Motion Sensor, Contact Sensor, Plug Mini (US), Plug Mini (JP), & Color Bulb",
150
162
  "condition": {
151
- "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Humidifier' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Bot' || model.options.devices[arrayIndices].configDeviceType === 'Motion Sensor' || model.options.devices[arrayIndices].configDeviceType === 'Contact Sensor' || model.options.devices[arrayIndices].configDeviceType === 'Plug Mini (US)' || model.options.devices[arrayIndices].configDeviceType === 'Plug Mini (JP)') || model.options.devices[arrayIndices].configDeviceType === 'Color Bulb'));"
163
+ "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device);"
152
164
  }
153
165
  },
154
166
  "customBLEaddress": {
@@ -156,7 +168,7 @@
156
168
  "type": "string",
157
169
  "placeholder": "81F3UT59513F",
158
170
  "condition": {
159
- "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].ble);"
171
+ "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].connectionType === 'BLE' || model.options.devices[arrayIndices].connectionType === 'BLE/OpenAPI'));"
160
172
  }
161
173
  },
162
174
  "scanDuration": {
@@ -164,7 +176,7 @@
164
176
  "type": "number",
165
177
  "placeholder": 1,
166
178
  "condition": {
167
- "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].ble);"
179
+ "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].connectionType === 'BLE' || model.options.devices[arrayIndices].connectionType === 'BLE/OpenAPI'));"
168
180
  }
169
181
  },
170
182
  "bot": {
@@ -505,6 +517,35 @@
505
517
  }
506
518
  }
507
519
  },
520
+ "mqttURL": {
521
+ "title": "MQTT URL",
522
+ "type": "string",
523
+ "placeholder": "192.168.7.1",
524
+ "condition": {
525
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
526
+ }
527
+ },
528
+ "mqttOptions": {
529
+ "title": "MQTT Options",
530
+ "type": "string",
531
+ "condition": {
532
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && model.options.devices[arrayIndices].mqttURL && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
533
+ }
534
+ },
535
+ "mqttPubOptions": {
536
+ "title": "MQTT Pub Options",
537
+ "type": "string",
538
+ "condition": {
539
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && model.options.devices[arrayIndices].mqttURL && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
540
+ }
541
+ },
542
+ "history": {
543
+ "title": "EVE History",
544
+ "type": "boolean",
545
+ "condition": {
546
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
547
+ }
548
+ },
508
549
  "firmware": {
509
550
  "title": "Firmware Override",
510
551
  "type": "string",
@@ -523,6 +564,13 @@
523
564
  "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].configDeviceType);"
524
565
  }
525
566
  },
567
+ "external": {
568
+ "title": "External Accessory",
569
+ "type": "boolean",
570
+ "condition": {
571
+ "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].configDeviceType);"
572
+ }
573
+ },
526
574
  "logging": {
527
575
  "title": "Device Logging Override Setting",
528
576
  "type": "string",
@@ -545,7 +593,7 @@
545
593
  }
546
594
  }
547
595
  },
548
- "required": ["deviceId", "configDeviceType", "configDeviceName", "logging"]
596
+ "required": ["deviceId", "configDeviceType", "configDeviceName", "connectionType", "logging"]
549
597
  },
550
598
  "uniqueItems": true
551
599
  },
@@ -571,6 +619,7 @@
571
619
  "hide_device": {
572
620
  "title": "Hide Device",
573
621
  "type": "boolean",
622
+ "description": "If true, device will be removed or hidden from HomeKit.",
574
623
  "condition": {
575
624
  "functionBody": "return (model.options && model.options.irdevices && model.options.irdevices[arrayIndices].deviceId);"
576
625
  }
@@ -692,6 +741,24 @@
692
741
  "functionBody": "return (model.options && model.options.irdevices && model.options.irdevices[arrayIndices].deviceId && !model.options.irdevices[arrayIndices].hide_device);"
693
742
  }
694
743
  },
744
+ "connectionType": {
745
+ "title": "Connection Type",
746
+ "type": "string",
747
+ "oneOf": [
748
+ {
749
+ "title": "OpenAPI",
750
+ "enum": ["OpenAPI"]
751
+ },
752
+ {
753
+ "title": "Disable",
754
+ "enum": ["Disabled"]
755
+ }
756
+ ],
757
+ "description": "Enables OpenAPI, if disabled will leave device in HomeKit and commands will not be sent to OpenAPI.",
758
+ "condition": {
759
+ "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_device);"
760
+ }
761
+ },
695
762
  "irair": {
696
763
  "type": "object",
697
764
  "properties": {
@@ -800,6 +867,21 @@
800
867
  }
801
868
  }
802
869
  },
870
+ "firmware": {
871
+ "title": "Firmware Override",
872
+ "type": "string",
873
+ "placeholder": "1.2.8",
874
+ "condition": {
875
+ "functionBody": "return (model.options && model.options.irdevices && model.options.irdevices[arrayIndices].deviceId && !model.options.irdevices[arrayIndices].hide_device && model.options.irdevices[arrayIndices].configRemoteType);"
876
+ }
877
+ },
878
+ "external": {
879
+ "title": "External Accessory",
880
+ "type": "boolean",
881
+ "condition": {
882
+ "functionBody": "return (model.options && model.options.irdevices && model.options.irdevices[arrayIndices].deviceId && !model.options.irdevices[arrayIndices].hide_device && model.options.irdevices[arrayIndices].configRemoteType);"
883
+ }
884
+ },
803
885
  "logging": {
804
886
  "title": "Device Logging Override Setting",
805
887
  "type": "string",
@@ -822,7 +904,7 @@
822
904
  }
823
905
  }
824
906
  },
825
- "required": ["deviceId", "configRemoteType", "logging"]
907
+ "required": ["deviceId", "configRemoteType", "connectionType", "logging"]
826
908
  },
827
909
  "uniqueItems": true
828
910
  },
@@ -868,7 +950,7 @@
868
950
  "title": "SwitchBot Account Info",
869
951
  "expandable": true,
870
952
  "expanded": false,
871
- "items": ["credentials.token","credentials.secret"]
953
+ "items": ["credentials.token", "credentials.secret"]
872
954
  },
873
955
  {
874
956
  "type": "fieldset",
@@ -889,8 +971,7 @@
889
971
  "options.devices[].deviceId",
890
972
  "options.devices[].hide_device",
891
973
  "options.devices[].configDeviceType",
892
- "options.devices[].offline",
893
- "options.devices[].ble",
974
+ "options.devices[].connectionType",
894
975
  "options.devices[].scanDuration",
895
976
  "options.devices[].bot.mode",
896
977
  "options.devices[].bot.deviceType",
@@ -921,8 +1002,13 @@
921
1002
  "options.devices[].colorbulb.set_minStep",
922
1003
  "options.devices[].colorbulb.adaptiveLightingShift",
923
1004
  "options.devices[].lock.hide_contactsensor",
1005
+ "options.devices[].mqttURL",
1006
+ "options.devices[].mqttOptions",
1007
+ "options.devices[].mqttPubOptions",
1008
+ "options.devices[].history",
924
1009
  "options.devices[].firmware",
925
1010
  "options.devices[].refreshRate",
1011
+ "options.devices[].external",
926
1012
  "options.devices[].logging"
927
1013
  ]
928
1014
  }
@@ -958,6 +1044,8 @@
958
1044
  "options.irdevices[].other.deviceType",
959
1045
  "options.irdevices[].other.commandOn",
960
1046
  "options.irdevices[].other.commandOff",
1047
+ "options.irdevices[].firmware",
1048
+ "options.irdevices[].external",
961
1049
  "options.irdevices[].logging"
962
1050
  ]
963
1051
  }
@@ -27,14 +27,12 @@ export declare class Bot {
27
27
  windowCoveringService?: Service;
28
28
  statefulProgrammableSwitchService?: Service;
29
29
  On: CharacteristicValue;
30
- OnCached: CharacteristicValue;
31
30
  BatteryLevel: CharacteristicValue;
32
31
  StatusLowBattery: CharacteristicValue;
33
32
  power: deviceStatus['power'];
34
33
  deviceStatus: any;
35
34
  connected?: boolean;
36
35
  switchbot: switchbot;
37
- SwitchToOpenAPI?: boolean;
38
36
  serviceData: serviceData;
39
37
  address: ad['address'];
40
38
  mode: serviceData['mode'];
@@ -48,6 +46,8 @@ export declare class Bot {
48
46
  doublePress: number;
49
47
  botUpdateInProgress: boolean;
50
48
  doBotUpdate: Subject<void>;
49
+ private readonly BLE;
50
+ private readonly OpenAPI;
51
51
  constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: device & devicesConfig);
52
52
  /**
53
53
  * Parse the device status from the SwitchBot api
@@ -60,7 +60,6 @@ export declare class Bot {
60
60
  */
61
61
  refreshStatus(): Promise<void>;
62
62
  BLERefreshStatus(): Promise<void>;
63
- getCustomBLEAddress(switchbot: any): Promise<void>;
64
63
  openAPIRefreshStatus(): Promise<void>;
65
64
  /**
66
65
  * Pushes the requested changes to the SwitchBot API
@@ -71,36 +70,15 @@ export declare class Bot {
71
70
  */
72
71
  pushChanges(): Promise<void>;
73
72
  BLEpushChanges(): Promise<void>;
74
- turnOnOff(device_list: any): Promise<any>;
75
73
  openAPIpushChanges(): Promise<void>;
76
74
  /**
77
- * Updates the status for each of the HomeKit Characteristics
75
+ * Handle requests to set the "On" characteristic
78
76
  */
79
- updateHomeKitCharacteristics(): Promise<void>;
80
- apiError(e: any): Promise<void>;
81
- statusCode({ res }: {
82
- res: IncomingMessage;
83
- }): Promise<void>;
84
- offlineOff(): Promise<void>;
77
+ OnSet(value: CharacteristicValue): Promise<void>;
85
78
  /**
86
- * Handle requests to set the "On" characteristic
79
+ * Updates the status for each of the HomeKit Characteristics
87
80
  */
88
- handleOnSet(value: CharacteristicValue): Promise<void>;
89
- retry({ max, fn }: {
90
- max: number;
91
- fn: {
92
- (): any;
93
- (): Promise<any>;
94
- };
95
- }): Promise<null>;
96
- maxRetry(): Promise<number>;
97
- config(device: device & devicesConfig): Promise<void>;
98
- refreshRate(device: device & devicesConfig): Promise<void>;
99
- scan(device: device & devicesConfig): Promise<void>;
100
- logs(device: device & devicesConfig): Promise<void>;
101
- FirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue;
102
- PressOrSwitch(device: device & devicesConfig): Promise<void>;
103
- allowPushChanges(device: device & devicesConfig): Promise<void>;
81
+ updateHomeKitCharacteristics(): Promise<void>;
104
82
  removeOutletService(accessory: PlatformAccessory): Promise<void>;
105
83
  removeGarageDoorService(accessory: PlatformAccessory): Promise<void>;
106
84
  removeDoorService(accessory: PlatformAccessory): Promise<void>;
@@ -111,12 +89,40 @@ export declare class Bot {
111
89
  removeWindowCoveringService(accessory: PlatformAccessory): Promise<void>;
112
90
  removeStatefulProgrammableSwitchService(accessory: PlatformAccessory): Promise<void>;
113
91
  removeSwitchService(accessory: PlatformAccessory): Promise<void>;
92
+ private DoublePress;
93
+ getCustomBLEAddress(switchbot: any): Promise<void>;
94
+ BLEPushConnection(): Promise<void>;
95
+ BLERefreshConnection(switchbot: any): Promise<void>;
96
+ turnOnOff(device_list: any): Promise<any>;
97
+ retry({ max, fn }: {
98
+ max: number;
99
+ fn: {
100
+ (): any;
101
+ (): Promise<any>;
102
+ };
103
+ }): Promise<null>;
104
+ maxRetry(): Promise<number>;
105
+ PressOrSwitch(device: device & devicesConfig): Promise<void>;
106
+ allowPushChanges(device: device & devicesConfig): Promise<void>;
107
+ scan(device: device & devicesConfig): Promise<void>;
108
+ statusCode({ res }: {
109
+ res: IncomingMessage;
110
+ }): Promise<void>;
111
+ offlineOff(): Promise<void>;
112
+ apiError(e: any): Promise<void>;
113
+ FirmwareRevision(accessory: PlatformAccessory<Context>, device: device & devicesConfig): CharacteristicValue;
114
+ private context;
115
+ refreshRate(device: device & devicesConfig): Promise<void>;
116
+ config(device: device & devicesConfig): Promise<void>;
117
+ logs(device: device & devicesConfig): Promise<void>;
114
118
  /**
115
119
  * Logging for Device
116
120
  */
117
121
  infoLog(...log: any[]): void;
118
122
  warnLog(...log: any[]): void;
123
+ debugWarnLog(...log: any[]): void;
119
124
  errorLog(...log: any[]): void;
125
+ debugErrorLog(...log: any[]): void;
120
126
  debugLog(...log: any[]): void;
121
127
  enablingDeviceLogging(): boolean;
122
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/device/bot.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAY,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAA0B,MAAM,aAAa,CAAC;AAEtH;;;;GAIG;AACH,qBAAa,GAAG;IAgDF,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAqB,OAAO,CAAC,SAAS;IAA4B,MAAM,EAAE,MAAM,GAAG,aAAa;IA9CrI,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAG5C,EAAE,EAAG,mBAAmB,CAAC;IACzB,QAAQ,EAAG,mBAAmB,CAAC;IAC/B,YAAY,EAAG,mBAAmB,CAAC;IACnC,gBAAgB,EAAG,mBAAmB,CAAC;IAGvC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7B,YAAY,EAAG,GAAG,CAAC;IAGnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAG,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAG,WAAW,CAAC;IAC1B,OAAO,EAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACxB,IAAI,EAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAGjC,OAAO,EAAG,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;IACvB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,WAAW,EAAG,MAAM,CAAC;IAGrB,mBAAmB,EAAG,OAAO,CAAC;IAC9B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEC,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,iBAAiB,EAAS,MAAM,EAAE,MAAM,GAAG,aAAa;IAwTrI;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B/B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BzC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiFjC,mBAAmB,CAAC,SAAS,EAAE,GAAG;IAkBlC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA6D3C;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAuF/B,SAAS,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAazC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiFzC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IA2L7C,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC/B,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC5D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CtD,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE;YAAE,IAAI,GAAG,CAAC;YAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;SAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrF,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAU3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,mBAAmB;IAetG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7D,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,uCAAuC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpF,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,qBAAqB,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/device/bot.ts"],"names":[],"mappings":"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"}