@switchbot/homebridge-switchbot 3.8.3-beta.30 → 3.8.3-beta.32

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 (80) hide show
  1. package/.github/workflows/release.yml +1 -1
  2. package/CHANGELOG.md +2 -1
  3. package/config.schema.json +24 -0
  4. package/dist/device/blindtilt.d.ts.map +1 -1
  5. package/dist/device/blindtilt.js +26 -23
  6. package/dist/device/blindtilt.js.map +1 -1
  7. package/dist/device/bot.d.ts.map +1 -1
  8. package/dist/device/bot.js +30 -22
  9. package/dist/device/bot.js.map +1 -1
  10. package/dist/device/ceilinglight.d.ts.map +1 -1
  11. package/dist/device/ceilinglight.js +18 -17
  12. package/dist/device/ceilinglight.js.map +1 -1
  13. package/dist/device/colorbulb.d.ts.map +1 -1
  14. package/dist/device/colorbulb.js +35 -32
  15. package/dist/device/colorbulb.js.map +1 -1
  16. package/dist/device/contact.js +11 -11
  17. package/dist/device/contact.js.map +1 -1
  18. package/dist/device/curtain.d.ts.map +1 -1
  19. package/dist/device/curtain.js +21 -20
  20. package/dist/device/curtain.js.map +1 -1
  21. package/dist/device/device.js +8 -8
  22. package/dist/device/device.js.map +1 -1
  23. package/dist/device/fan.d.ts.map +1 -1
  24. package/dist/device/fan.js +18 -17
  25. package/dist/device/fan.js.map +1 -1
  26. package/dist/device/hub.js +11 -11
  27. package/dist/device/hub.js.map +1 -1
  28. package/dist/device/humidifier.d.ts.map +1 -1
  29. package/dist/device/humidifier.js +17 -16
  30. package/dist/device/humidifier.js.map +1 -1
  31. package/dist/device/iosensor.js +11 -11
  32. package/dist/device/iosensor.js.map +1 -1
  33. package/dist/device/lightstrip.d.ts.map +1 -1
  34. package/dist/device/lightstrip.js +26 -25
  35. package/dist/device/lightstrip.js.map +1 -1
  36. package/dist/device/lock.d.ts.map +1 -1
  37. package/dist/device/lock.js +16 -16
  38. package/dist/device/lock.js.map +1 -1
  39. package/dist/device/meter.js +11 -11
  40. package/dist/device/meter.js.map +1 -1
  41. package/dist/device/meterplus.js +11 -11
  42. package/dist/device/meterplus.js.map +1 -1
  43. package/dist/device/motion.js +11 -11
  44. package/dist/device/motion.js.map +1 -1
  45. package/dist/device/plug.d.ts.map +1 -1
  46. package/dist/device/plug.js +18 -17
  47. package/dist/device/plug.js.map +1 -1
  48. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  49. package/dist/device/robotvacuumcleaner.js +18 -17
  50. package/dist/device/robotvacuumcleaner.js.map +1 -1
  51. package/dist/device/waterdetector.js +11 -11
  52. package/dist/device/waterdetector.js.map +1 -1
  53. package/dist/platform.d.ts.map +1 -1
  54. package/dist/platform.js +80 -76
  55. package/dist/platform.js.map +1 -1
  56. package/dist/settings.d.ts +3 -0
  57. package/dist/settings.d.ts.map +1 -1
  58. package/dist/settings.js.map +1 -1
  59. package/package.json +3 -3
  60. package/src/device/blindtilt.ts +29 -26
  61. package/src/device/bot.ts +34 -26
  62. package/src/device/ceilinglight.ts +20 -19
  63. package/src/device/colorbulb.ts +40 -37
  64. package/src/device/contact.ts +11 -11
  65. package/src/device/curtain.ts +25 -23
  66. package/src/device/device.ts +8 -8
  67. package/src/device/fan.ts +20 -19
  68. package/src/device/hub.ts +11 -11
  69. package/src/device/humidifier.ts +19 -18
  70. package/src/device/iosensor.ts +11 -11
  71. package/src/device/lightstrip.ts +30 -29
  72. package/src/device/lock.ts +18 -18
  73. package/src/device/meter.ts +11 -11
  74. package/src/device/meterplus.ts +11 -11
  75. package/src/device/motion.ts +11 -11
  76. package/src/device/plug.ts +20 -19
  77. package/src/device/robotvacuumcleaner.ts +20 -19
  78. package/src/device/waterdetector.ts +11 -11
  79. package/src/platform.ts +82 -78
  80. package/src/settings.ts +3 -0
@@ -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;AAE5D;;GAEG;AACH,eAAO,MAAM,OAAO,4CAA4C,CAAA;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,yDAAyD,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,YAAY,yDAAyD,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAA0D,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAA0D,CAAA;AAGpF,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AACD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,SAAS,CAAC,EAAE,GAAG,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,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,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,WAAW,aAAc,SAAQ,MAAM;IAC3C,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;IACjB,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,UAAU,KAAK;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,UAAU,QAAQ;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,UAAU,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,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,UAAU,UAAU;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,OAAO;IACf,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,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,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,UAAU,OAAO;IACf,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,UAAU,MAAM;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,UAAU,SAAS;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,KAAK,IAAI,GAAG,MAAM,CAAA;AAElB,UAAU,IAAI;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,GAAG;IACX,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,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;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,UAAU,KAAK;IACb,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,UAAU,OAAO;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,UAAU,KAAK;IACb,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,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
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;AAE5D;;GAEG;AACH,eAAO,MAAM,OAAO,4CAA4C,CAAA;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,yDAAyD,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,YAAY,yDAAyD,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAA0D,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAA0D,CAAA;AAGpF,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AACD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,SAAS,CAAC,EAAE,GAAG,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,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,WAAW,aAAc,SAAQ,MAAM;IAC3C,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;IACjB,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,UAAU,KAAK;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,UAAU,QAAQ;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,UAAU,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,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,UAAU,UAAU;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,OAAO;IACf,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,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,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,UAAU,OAAO;IACf,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,UAAU,MAAM;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,UAAU,SAAS;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,KAAK,IAAI,GAAG,MAAM,CAAA;AAElB,UAAU,IAAI;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,GAAG;IACX,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,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;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,UAAU,KAAK;IACb,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,UAAU,OAAO;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,UAAU,KAAK;IACb,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,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
@@ -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;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AA6BnF,CAAC;AAoDD,CAAC;AAMD,CAAC;AASD,CAAC;AAKD,CAAC;AAaD,CAAC;AAaD,CAAC;AAOD,CAAC;AAMD,CAAC;AAKD,CAAC;AAKD,CAAC;AAKD,CAAC;AAKD,CAAC;AAOD,CAAC;AAOD,CAAC;AAmCD,CAAC;AAID,CAAC;AAWD,CAAC;AAID,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;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAgCnF,CAAC;AAoDD,CAAC;AAMD,CAAC;AASD,CAAC;AAKD,CAAC;AAaD,CAAC;AAaD,CAAC;AAOD,CAAC;AAMD,CAAC;AAKD,CAAC;AAKD,CAAC;AAKD,CAAC;AAKD,CAAC;AAOD,CAAC;AAOD,CAAC;AAmCD,CAAC;AAID,CAAC;AAWD,CAAC;AAID,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": "3.8.3-beta.30",
5
+ "version": "3.8.3-beta.32",
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": [
@@ -67,7 +67,7 @@
67
67
  "plugin-ui": "rsync ./src/homebridge-ui/public/index.html ./dist/homebridge-ui/public/",
68
68
  "build": "npm run clean && tsc && npm run plugin-ui",
69
69
  "prepublishOnly": "npm run lint && npm run build && npm run plugin-ui ",
70
- "postpublish": "npm run clean",
70
+ "postpublish": "npm run clean && npm ci",
71
71
  "clean": "shx rm -rf ./dist",
72
72
  "test": "npm run lint",
73
73
  "docs": "typedoc",
@@ -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": "2.5.0-beta.39",
84
+ "node-switchbot": "^3.0.2-beta.3",
85
85
  "rxjs": "^7.8.1"
86
86
  },
87
87
  "devDependencies": {
@@ -3,7 +3,7 @@
3
3
  * blindtilt.ts: @switchbot/homebridge-switchbot.
4
4
  */
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
- import type { blindTiltServiceData, blindTiltStatus, blindTiltWebhookContext, bodyChange, device } from 'node-switchbot'
6
+ import type { blindTiltServiceData, blindTiltStatus, blindTiltWebhookContext, bodyChange, device, SwitchbotDevice, WoBlindTilt } from 'node-switchbot'
7
7
 
8
8
  import type { SwitchBotPlatform } from '../platform.js'
9
9
  import type { devicesConfig } from '../settings.js'
@@ -241,7 +241,7 @@ export class BlindTilt extends deviceBase {
241
241
  this.debugLog('Retrieve initial values and update Homekit')
242
242
  this.refreshStatus()
243
243
  } catch (e: any) {
244
- this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e}`)
244
+ this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e.message ?? e}`)
245
245
  }
246
246
 
247
247
  // regisiter webhook event handler if enabled
@@ -249,7 +249,7 @@ export class BlindTilt extends deviceBase {
249
249
  this.debugLog('Registering Webhook Event Handler')
250
250
  this.registerWebhook()
251
251
  } catch (e: any) {
252
- this.errorLog(`failed to registerWebhook, Error: ${e}`)
252
+ this.errorLog(`failed to registerWebhook, Error: ${e.message ?? e}`)
253
253
  }
254
254
 
255
255
  // regisiter platform BLE event handler if enabled
@@ -257,7 +257,7 @@ export class BlindTilt extends deviceBase {
257
257
  this.debugLog('Registering Platform BLE Event Handler')
258
258
  this.registerPlatformBLE()
259
259
  } catch (e: any) {
260
- this.errorLog(`failed to registerPlatformBLE, Error: ${e}`)
260
+ this.errorLog(`failed to registerPlatformBLE, Error: ${e.message ?? e}`)
261
261
  }
262
262
 
263
263
  // Start an update interval
@@ -351,14 +351,16 @@ export class BlindTilt extends deviceBase {
351
351
  }
352
352
 
353
353
  // BatteryLevel
354
- this.Battery.BatteryLevel = this.serviceData.battery
355
- await this.debugLog(`BatteryLevel: ${this.Battery.BatteryLevel}`)
356
-
357
- // StatusLowBattery
358
- this.Battery.StatusLowBattery = this.Battery.BatteryLevel < 10
359
- ? this.hap.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
360
- : this.hap.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL
361
- await this.debugLog(`StatusLowBattery: ${this.Battery.StatusLowBattery}`)
354
+ if (this.serviceData?.battery) {
355
+ this.Battery.BatteryLevel = this.serviceData.battery
356
+ await this.debugLog(`BatteryLevel: ${this.Battery.BatteryLevel}`)
357
+
358
+ // StatusLowBattery
359
+ this.Battery.StatusLowBattery = this.Battery.BatteryLevel < 10
360
+ ? this.hap.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
361
+ : this.hap.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL
362
+ await this.debugLog(`StatusLowBattery: ${this.Battery.StatusLowBattery}`)
363
+ }
362
364
  };
363
365
 
364
366
  /**
@@ -454,22 +456,22 @@ export class BlindTilt extends deviceBase {
454
456
 
455
457
  async BLERefreshStatus(): Promise<void> {
456
458
  await this.debugLog('BLERefreshStatus')
457
- const switchbot = await this.switchbotBLE()
458
- if (switchbot === undefined) {
459
- await this.BLERefreshConnection(switchbot)
459
+ const switchBotBLE = await this.switchbotBLE()
460
+ if (switchBotBLE === undefined) {
461
+ await this.BLERefreshConnection(switchBotBLE)
460
462
  } else {
461
463
  // Start to monitor advertisement packets
462
464
  (async () => {
463
465
  // Start to monitor advertisement packets
464
- const serviceData = await this.monitorAdvertisementPackets(switchbot) as blindTiltServiceData
466
+ const serviceData = await this.monitorAdvertisementPackets(switchBotBLE) as blindTiltServiceData
465
467
  // Update HomeKit
466
468
  if (serviceData.model === SwitchBotBLEModel.BlindTilt && serviceData.modelName === SwitchBotBLEModelName.BlindTilt) {
467
469
  this.serviceData = serviceData
468
470
  await this.BLEparseStatus()
469
471
  await this.updateHomeKitCharacteristics()
470
472
  } else {
471
- await this.errorLog(`failed to get serviceData, serviceData: ${serviceData}`)
472
- await this.BLERefreshConnection(switchbot)
473
+ await this.errorLog(`failed to get serviceData, serviceData: ${JSON.stringify(serviceData)}`)
474
+ await this.BLERefreshConnection(switchBotBLE)
473
475
  }
474
476
  })()
475
477
  }
@@ -490,7 +492,7 @@ export class BlindTilt extends deviceBase {
490
492
  await this.BLEparseStatus()
491
493
  await this.updateHomeKitCharacteristics()
492
494
  } catch (e: any) {
493
- await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
495
+ await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
494
496
  }
495
497
  }
496
498
  } catch (error) {
@@ -532,7 +534,7 @@ export class BlindTilt extends deviceBase {
532
534
  await this.parseStatusWebhook()
533
535
  await this.updateHomeKitCharacteristics()
534
536
  } catch (e: any) {
535
- await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e}`)
537
+ await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
536
538
  }
537
539
  }
538
540
  } else {
@@ -564,21 +566,22 @@ export class BlindTilt extends deviceBase {
564
566
  await this.debugLog('BLEpushChanges')
565
567
  if (this.WindowCovering.TargetPosition !== this.WindowCovering.CurrentPosition) {
566
568
  await this.debugLog(`BLEpushChanges On: ${this.WindowCovering.TargetPosition} OnCached: ${this.WindowCovering.CurrentPosition}`)
567
- const switchbot = await this.platform.connectBLE(this.accessory, this.device)
569
+ const switchBotBLE = await this.platform.connectBLE(this.accessory, this.device)
568
570
  try {
569
571
  const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
570
572
  this.device.bleMac = formattedDeviceId
571
573
  await this.debugLog(`bleMac: ${this.device.bleMac}`)
572
574
  const { setPositionMode, Mode }: { setPositionMode: number, Mode: string } = await this.setPerformance()
573
575
  await this.debugLog(`Mode: ${Mode}, setPositionMode: ${setPositionMode}`)
574
- if (switchbot !== false) {
575
- switchbot
576
+ if (switchBotBLE !== false) {
577
+ switchBotBLE
576
578
  .discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
577
- .then(async (device_list: any) => {
579
+ .then(async (device_list: SwitchbotDevice[]) => {
580
+ const deviceList = device_list as unknown as WoBlindTilt[]
578
581
  return await this.retryBLE({
579
582
  max: await this.maxRetryBLE(),
580
583
  fn: async () => {
581
- return await device_list[0].runToPos(100 - Number(this.WindowCovering.TargetPosition), setPositionMode)
584
+ return await deviceList[0].runToPos(100 - Number(this.WindowCovering.TargetPosition), setPositionMode)
582
585
  },
583
586
  })
584
587
  })
@@ -592,7 +595,7 @@ export class BlindTilt extends deviceBase {
592
595
  await this.BLEPushConnection()
593
596
  })
594
597
  } else {
595
- await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`)
598
+ await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${JSON.stringify(switchBotBLE)}`)
596
599
  await this.BLEPushConnection()
597
600
  }
598
601
  } catch (error) {
package/src/device/bot.ts CHANGED
@@ -3,20 +3,21 @@
3
3
  * bot.ts: @switchbot/homebridge-switchbot.
4
4
  */
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
- import type { bodyChange, botServiceData, botStatus, botWebhookContext, device } from 'node-switchbot'
6
+ import type { bodyChange, botServiceData, botStatus, botWebhookContext, device, SwitchbotDevice, WoHand } from 'node-switchbot'
7
7
 
8
8
  import type { SwitchBotPlatform } from '../platform.js'
9
9
  import type { devicesConfig } from '../settings.js'
10
10
 
11
+ import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
12
+
13
+ import { formatDeviceIdAsMac } from '../utils.js'
14
+ import { deviceBase } from './device.js'
15
+
11
16
  /*
12
17
  * For Testing Locally:
13
18
  * import { SwitchBotBLEModel, SwitchBotBLEModelName } from '/Users/Shared/GitHub/OpenWonderLabs/node-switchbot/dist/index.js';
14
19
  */
15
20
  import { SwitchBotBLEModel, SwitchBotBLEModelName } from 'node-switchbot'
16
- import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
17
-
18
- import { formatDeviceIdAsMac } from '../utils.js'
19
- import { deviceBase } from './device.js'
20
21
 
21
22
  /**
22
23
  * Platform Accessory
@@ -391,7 +392,7 @@ export class Bot extends deviceBase {
391
392
  this.debugLog('Retrieve initial values and update Homekit')
392
393
  this.refreshStatus()
393
394
  } catch (e: any) {
394
- this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e}`)
395
+ this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e.message ?? e}`)
395
396
  }
396
397
 
397
398
  // regisiter webhook event handler if enabled
@@ -399,7 +400,7 @@ export class Bot extends deviceBase {
399
400
  this.debugLog('Registering Webhook Event Handler')
400
401
  this.registerWebhook()
401
402
  } catch (e: any) {
402
- this.errorLog(`failed to registerWebhook, Error: ${e}`)
403
+ this.errorLog(`failed to registerWebhook, Error: ${e.message ?? e}`)
403
404
  }
404
405
 
405
406
  // regisiter platform BLE event handler if enabled
@@ -407,7 +408,7 @@ export class Bot extends deviceBase {
407
408
  this.debugLog('Registering Platform BLE Event Handler')
408
409
  this.registerPlatformBLE()
409
410
  } catch (e: any) {
410
- this.errorLog(`failed to registerPlatformBLE, Error: ${e}`)
411
+ this.errorLog(`failed to registerPlatformBLE, Error: ${e.message ?? e}`)
411
412
  }
412
413
 
413
414
  // Start an update interval
@@ -548,22 +549,22 @@ export class Bot extends deviceBase {
548
549
 
549
550
  async BLERefreshStatus(): Promise<void> {
550
551
  await this.debugLog('BLERefreshStatus')
551
- const switchbot = await this.switchbotBLE()
552
- if (switchbot === undefined) {
553
- await this.BLERefreshConnection(switchbot)
552
+ const switchBotBLE = await this.switchbotBLE()
553
+ if (switchBotBLE === undefined) {
554
+ await this.BLERefreshConnection(switchBotBLE)
554
555
  } else {
555
556
  // Start to monitor advertisement packets
556
557
  (async () => {
557
558
  // Start to monitor advertisement packets
558
- const serviceData = await this.monitorAdvertisementPackets(switchbot) as botServiceData
559
+ const serviceData = await this.monitorAdvertisementPackets(switchBotBLE) as botServiceData
559
560
  // Update HomeKit
560
561
  if (serviceData.model === SwitchBotBLEModel.Bot && serviceData.modelName === SwitchBotBLEModelName.Bot) {
561
562
  this.serviceData = serviceData
562
563
  await this.BLEparseStatus()
563
564
  await this.updateHomeKitCharacteristics()
564
565
  } else {
565
- await this.errorLog(`failed to get serviceData, serviceData: ${serviceData}`)
566
- await this.BLERefreshConnection(switchbot)
566
+ await this.errorLog(`failed to get serviceData, serviceData: ${JSON.stringify(serviceData)}`)
567
+ await this.BLERefreshConnection(switchBotBLE)
567
568
  }
568
569
  })()
569
570
  }
@@ -584,7 +585,7 @@ export class Bot extends deviceBase {
584
585
  await this.BLEparseStatus()
585
586
  await this.updateHomeKitCharacteristics()
586
587
  } catch (e: any) {
587
- await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
588
+ await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
588
589
  }
589
590
  }
590
591
  } catch (error) {
@@ -626,7 +627,7 @@ export class Bot extends deviceBase {
626
627
  await this.parseStatusWebhook()
627
628
  await this.updateHomeKitCharacteristics()
628
629
  } catch (e: any) {
629
- await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e}`)
630
+ await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
630
631
  }
631
632
  }
632
633
  } else {
@@ -665,19 +666,20 @@ export class Bot extends deviceBase {
665
666
  await this.debugLog('BLEpushChanges')
666
667
  if (this.On !== this.accessory.context.On || this.allowPush) {
667
668
  await this.debugLog(`BLEpushChanges On: ${this.On} OnCached: ${this.accessory.context.On}`)
668
- const switchbot = await this.platform.connectBLE(this.accessory, this.device)
669
+ const switchBotBLE = this.platform.switchBotBLE
669
670
  try {
670
671
  const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
671
672
  this.device.bleMac = formattedDeviceId
672
673
  await this.debugLog(`bleMac: ${this.device.bleMac}`)
673
- // if (switchbot !== false) {
674
+ // if (switchBotBLE !== false) {
674
675
  await this.debugLog(`Bot Mode: ${this.botMode}`)
675
676
  if (this.botMode === 'press') {
676
- switchbot
677
+ switchBotBLE
677
678
  .discover({ model: 'H', quick: true, id: this.device.bleMac })
678
- .then(async (device_list: { press: (arg0: { id: string | undefined }) => any }[]) => {
679
+ .then(async (device_list: SwitchbotDevice[]) => {
680
+ const deviceList = device_list as unknown as WoHand[]
679
681
  await this.infoLog(`On: ${this.On}`)
680
- return await device_list[0].press({ id: this.device.bleMac })
682
+ return await deviceList[0].press()
681
683
  })
682
684
  .then(async () => {
683
685
  await this.successLog(`On: ${this.On} sent over SwitchBot BLE, sent successfully`)
@@ -694,17 +696,23 @@ export class Bot extends deviceBase {
694
696
  await this.BLEPushConnection()
695
697
  })
696
698
  } else if (this.botMode === 'switch') {
697
- switchbot
699
+ switchBotBLE
698
700
  .discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
699
- .then(async (device_list: any) => {
701
+ .then(async (device_list: SwitchbotDevice[]) => {
702
+ const deviceList = device_list as unknown as WoHand[]
700
703
  this.infoLog(`On: ${this.On}`)
704
+ this.warnLog(`device_list: ${JSON.stringify(device_list)}`)
701
705
  return await this.retryBLE({
702
706
  max: await this.maxRetryBLE(),
703
707
  fn: async () => {
704
- if (this.On) {
705
- return await device_list[0].turnOn({ id: this.device.bleMac })
708
+ if (deviceList.length > 0) {
709
+ if (this.On) {
710
+ return await deviceList[0].turnOn()
711
+ } else {
712
+ return await deviceList[0].turnOff()
713
+ }
706
714
  } else {
707
- return await device_list[0].turnOff({ id: this.device.bleMac })
715
+ throw new Error('No device found')
708
716
  }
709
717
  },
710
718
  })
@@ -3,7 +3,7 @@
3
3
  * ceilinglight.ts: @switchbot/homebridge-switchbot.
4
4
  */
5
5
  import type { CharacteristicValue, Controller, ControllerConstructor, ControllerServiceMap, PlatformAccessory, Service } from 'homebridge'
6
- import type { bodyChange, ceilingLightProServiceData, ceilingLightProStatus, ceilingLightProWebhookContext, ceilingLightServiceData, ceilingLightStatus, ceilingLightWebhookContext, device } from 'node-switchbot'
6
+ import type { bodyChange, ceilingLightProServiceData, ceilingLightProStatus, ceilingLightProWebhookContext, ceilingLightServiceData, ceilingLightStatus, ceilingLightWebhookContext, device, SwitchbotDevice, WoCeilingLight } from 'node-switchbot'
7
7
 
8
8
  import type { SwitchBotPlatform } from '../platform.js'
9
9
  import type { devicesConfig } from '../settings.js'
@@ -148,7 +148,7 @@ export class CeilingLight extends deviceBase {
148
148
  this.debugLog('Retrieve initial values and update Homekit')
149
149
  this.refreshStatus()
150
150
  } catch (e: any) {
151
- this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e}`)
151
+ this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e.message ?? e}`)
152
152
  }
153
153
 
154
154
  // regisiter webhook event handler if enabled
@@ -156,7 +156,7 @@ export class CeilingLight extends deviceBase {
156
156
  this.debugLog('Registering Webhook Event Handler')
157
157
  this.registerWebhook()
158
158
  } catch (e: any) {
159
- this.errorLog(`failed to registerWebhook, Error: ${e}`)
159
+ this.errorLog(`failed to registerWebhook, Error: ${e.message ?? e}`)
160
160
  }
161
161
 
162
162
  // regisiter platform BLE event handler if enabled
@@ -164,7 +164,7 @@ export class CeilingLight extends deviceBase {
164
164
  this.debugLog('Registering Platform BLE Event Handler')
165
165
  this.registerPlatformBLE()
166
166
  } catch (e: any) {
167
- this.errorLog(`failed to registerPlatformBLE, Error: ${e}`)
167
+ this.errorLog(`failed to registerPlatformBLE, Error: ${e.message ?? e}`)
168
168
  }
169
169
 
170
170
  // Start an update interval
@@ -283,21 +283,21 @@ export class CeilingLight extends deviceBase {
283
283
 
284
284
  async BLERefreshStatus(): Promise<void> {
285
285
  await this.debugLog('BLERefreshStatus')
286
- const switchbot = await this.switchbotBLE()
287
- if (switchbot === undefined) {
288
- await this.BLERefreshConnection(switchbot)
286
+ const switchBotBLE = await this.switchbotBLE()
287
+ if (switchBotBLE === undefined) {
288
+ await this.BLERefreshConnection(switchBotBLE)
289
289
  } else {
290
290
  (async () => {
291
291
  // Start to monitor advertisement packets
292
- const serviceData = await this.monitorAdvertisementPackets(switchbot) as unknown as ceilingLightServiceData
292
+ const serviceData = await this.monitorAdvertisementPackets(switchBotBLE) as unknown as ceilingLightServiceData
293
293
  // Update HomeKit
294
294
  if ((serviceData.model === SwitchBotBLEModel.CeilingLight || SwitchBotBLEModel.CeilingLightPro) && (serviceData.modelName === SwitchBotBLEModelName.CeilingLight || SwitchBotBLEModelName.CeilingLightPro)) {
295
295
  this.serviceData = serviceData
296
296
  await this.BLEparseStatus()
297
297
  await this.updateHomeKitCharacteristics()
298
298
  } else {
299
- await this.errorLog(`failed to get serviceData, serviceData: ${serviceData}`)
300
- await this.BLERefreshConnection(switchbot)
299
+ await this.errorLog(`failed to get serviceData, serviceData: ${JSON.stringify(serviceData)}`)
300
+ await this.BLERefreshConnection(switchBotBLE)
301
301
  }
302
302
  })()
303
303
  }
@@ -318,7 +318,7 @@ export class CeilingLight extends deviceBase {
318
318
  await this.BLEparseStatus()
319
319
  await this.updateHomeKitCharacteristics()
320
320
  } catch (e: any) {
321
- await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
321
+ await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
322
322
  }
323
323
  }
324
324
  } catch (error) {
@@ -360,7 +360,7 @@ export class CeilingLight extends deviceBase {
360
360
  await this.parseStatusWebhook()
361
361
  await this.updateHomeKitCharacteristics()
362
362
  } catch (e: any) {
363
- await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e}`)
363
+ await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
364
364
  }
365
365
  }
366
366
  } else {
@@ -417,23 +417,24 @@ export class CeilingLight extends deviceBase {
417
417
  await this.debugLog('BLEpushChanges')
418
418
  if (this.LightBulb.On !== this.accessory.context.On) {
419
419
  await this.debugLog(`BLEpushChanges On: ${this.LightBulb.On} OnCached: ${this.accessory.context.On}`)
420
- const switchbot = await this.platform.connectBLE(this.accessory, this.device)
420
+ const switchBotBLE = await this.platform.connectBLE(this.accessory, this.device)
421
421
  try {
422
422
  const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
423
423
  this.device.bleMac = formattedDeviceId
424
424
  await this.debugLog(`bleMac: ${this.device.bleMac}`)
425
- if (switchbot !== false) {
426
- switchbot
425
+ if (switchBotBLE !== false) {
426
+ switchBotBLE
427
427
  .discover({ model: this.device.bleModel, id: this.device.bleMac })
428
- .then(async (device_list: any) => {
428
+ .then(async (device_list: SwitchbotDevice[]) => {
429
+ const deviceList = device_list[0] as unknown as WoCeilingLight
429
430
  this.infoLog(`On: ${this.LightBulb.On}`)
430
431
  return await this.retryBLE({
431
432
  max: await this.maxRetryBLE(),
432
433
  fn: async () => {
433
434
  if (this.LightBulb.On) {
434
- return await device_list[0].turnOn({ id: this.device.bleMac })
435
+ return await deviceList[0].turnOn()
435
436
  } else {
436
- return await device_list[0].turnOff({ id: this.device.bleMac })
437
+ return await deviceList[0].turnOff()
437
438
  }
438
439
  },
439
440
  })
@@ -448,7 +449,7 @@ export class CeilingLight extends deviceBase {
448
449
  await this.BLEPushConnection()
449
450
  })
450
451
  } else {
451
- await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`)
452
+ await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${JSON.stringify(switchBotBLE)}`)
452
453
  await this.BLEPushConnection()
453
454
  }
454
455
  } catch (error) {