@switchbot/homebridge-switchbot 2.8.2-beta.2 → 2.9.0-beta.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/config.schema.json +37 -1
  3. package/dist/device/blindtilt.d.ts.map +1 -1
  4. package/dist/device/blindtilt.js +13 -0
  5. package/dist/device/blindtilt.js.map +1 -1
  6. package/dist/device/bot.d.ts +2 -0
  7. package/dist/device/bot.d.ts.map +1 -1
  8. package/dist/device/bot.js +52 -39
  9. package/dist/device/bot.js.map +1 -1
  10. package/dist/device/curtain.d.ts +2 -2
  11. package/dist/device/curtain.d.ts.map +1 -1
  12. package/dist/device/curtain.js +17 -4
  13. package/dist/device/curtain.js.map +1 -1
  14. package/dist/device/iosensor.d.ts.map +1 -1
  15. package/dist/device/iosensor.js +13 -0
  16. package/dist/device/iosensor.js.map +1 -1
  17. package/dist/device/lock.d.ts.map +1 -1
  18. package/dist/device/lock.js +2 -1
  19. package/dist/device/lock.js.map +1 -1
  20. package/dist/device/meter.d.ts.map +1 -1
  21. package/dist/device/meter.js +13 -0
  22. package/dist/device/meter.js.map +1 -1
  23. package/dist/device/meterplus.d.ts.map +1 -1
  24. package/dist/device/meterplus.js +13 -0
  25. package/dist/device/meterplus.js.map +1 -1
  26. package/dist/device/motion.js +6 -5
  27. package/dist/device/motion.js.map +1 -1
  28. package/dist/irdevice/other.d.ts +24 -2
  29. package/dist/irdevice/other.d.ts.map +1 -1
  30. package/dist/irdevice/other.js +572 -38
  31. package/dist/irdevice/other.js.map +1 -1
  32. package/package.json +6 -6
  33. package/src/device/blindtilt.ts +13 -0
  34. package/src/device/bot.ts +53 -39
  35. package/src/device/curtain.ts +19 -6
  36. package/src/device/iosensor.ts +13 -0
  37. package/src/device/lock.ts +2 -1
  38. package/src/device/meter.ts +13 -0
  39. package/src/device/meterplus.ts +13 -0
  40. package/src/device/motion.ts +7 -7
  41. package/src/irdevice/other.ts +605 -39
@@ -1 +1 @@
1
- {"version":3,"file":"other.js","sourceRoot":"","sources":["../../src/irdevice/other.ts"],"names":[],"mappings":";;;AACA,mCAAiC;AAEjC,0CAAiE;AAEjE;;;;GAIG;AACH,MAAa,MAAM;IAcjB,YACmB,QAA2B,EACpC,SAA4B,EAC7B,MAAkC;QAFxB,aAAQ,GAAR,QAAQ,CAAmB;QACpC,cAAS,GAAT,SAAS,CAAmB;QAC7B,WAAM,GAAN,MAAM,CAA4B;QAEzC,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpB,4BAA4B;QAC5B,SAAS;aACN,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACvD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;aACzE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;aACxE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,QAAS,CAAC;aAC9E,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aAC7G,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC;aAChE,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAE5D,qFAAqF;QACrF,sDAAsD;QACtD,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,WAAW,yBAAyB,CAAC,CAAC;YAE5F,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,oCAAoC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;aACvI;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;SAC3C;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,WAAW,oBAAoB,CAAC,CAAC;YACvF,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpI,GAAG,SAAS,CAAC,WAAW,MAAM,CAAC;YAE/B,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,WAAW,MAAM,CAAC,CAAC;YACrG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE;gBACpF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,WAAW,MAAM,CAAC,CAAC;aAChH;YACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACzG;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,WAAW,yCAAyC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;SACvI;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA0B;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,QAAQ,KAAK,EAAE,CAAC,CAAC;QAEvF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;SAC5B;aAAM;YACL,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;SAC7B;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,0BAA0B,IAAI,CAAC,MAAM,GAAG;YAChG,mBAAmB,IAAI,CAAC,aAAa,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAChH,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrF,MAAM,WAAW,GAAW,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;oBAChC,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,qBAAqB,CAAC,CAAC;SAC9F;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,2BAA2B,IAAI,CAAC,MAAM,GAAG;YACjG,oBAAoB,IAAI,CAAC,cAAc,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CACpH,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxF,MAAM,WAAW,GAAW,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;oBAChC,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,uBAAuB,CAAC,CAAC;SAChG;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAe;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,cAAc,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,4CAA4C,UAAU,GAAG,CAAC,CAAC;YAChI,IAAI;gBACF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,gBAAO,EAAC,GAAG,kBAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,WAAW,EAAE;oBACjG,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;iBACzC,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5G,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBACxG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClH,MAAM,YAAY,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,kBAAkB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC5H,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,uBAAuB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtI,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,6BAA6B,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClI,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,KAAK,GAAG,CAAC,EAAE;oBACtH,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG;0BAC1E,eAAe,UAAU,+BAA+B,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;oBACvF,IAAI,CAAC,4BAA4B,EAAE,CAAC;iBACrC;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBAC5B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC1C;aACF;YAAC,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,4BAA4B,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;oBAChH,+BAA+B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAC3D,CAAC;aACH;SACF;aAAM;YACL,IAAI,CAAC,OAAO,CACV,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBAC1D,qBAAqB,IAAI,CAAC,MAAM,CAAC,cAAc,wCAAwC,CACxF,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,SAAS;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAClG;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACvH;QACD,mBAAmB;QACnB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,sBAAsB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACtH;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;iBACnE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9F,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG;kBACrE,0CAA0C,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACxE;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;SAC3C;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAkC;QAC5D,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;SAC7C;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACzB,WAAW,GAAG,WAAW,CAAC;SAC3B;aAAM;YACL,WAAW,GAAG,SAAS,CAAC;SACzB;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,OAAe,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACjD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SAChC;aAAM;YACL,OAAO,GAAG,QAAQ,CAAC;SACpB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,OAAe,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAClD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,SAAS,CAAC;SACrB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,QAAQ,UAAU,EAAE;YAClB,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,0DAA0D,UAAU,EAAE,CAAC,CAAC;gBAC9I,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,kCAAkC,UAAU,EAAE,CAAC,CAAC;gBACtH,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,0CAA0C,UAAU,EAAE,CAAC,CAAC;gBAC9H,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,mCAAmC,UAAU,EAAE,CAAC,CAAC;gBACvH,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,uCAAuC,UAAU,IAAI;oBAC7G,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAClC,CAAC;gBACF,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,2EAA2E;oBACnI,8CAA8C,UAAU,EAAE,CAC3D,CAAC;gBACF,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,2CAA2C,UAAU,EAAE,CAAC,CAAC;gBAC/H,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,oCAAoC,UAAU,EAAE,CAAC,CAAC;gBACxH,MAAM;YACR;gBACE,IAAI,CAAC,OAAO,CACV,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,uBAAuB;oBAC/E,GAAG,UAAU,2DAA2D,CACzE,CAAC;SACL;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,CAAM;QACnB,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9E,0FAA0F;IAC5F,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAkC;QACjD,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACnF,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;gBAC7E,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,uBAAuB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;aACrH;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,oCAAoC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;SAC5I;IACH,CAAC;IAED,mBAAmB,CAAC,SAA4B,EAAE,MAAkC;QAClF,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,wCAAwC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAC1I,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9G,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,2BAA2B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1H,IAAI,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACtC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC5D;aAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAQ,CAAC;SAChD;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,yBAAyB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5H,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAkC;QAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;SACvB;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;SACpC;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACvC,MAAM,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;SAClD;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;SACtC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;SACtC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YAClC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;SACxC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YAClC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;SACxC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;YACtC,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;SAChD;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACvC,MAAM,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;SAClD;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjH;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAkC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,8BAA8B,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAC3H;aAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,iCAAiC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAC9H;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;YAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,mCAAmC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAChI;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,4BAA4B,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SACzH;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAG,GAAU;QACnB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,GAAU;QACnB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAED,YAAY,CAAC,GAAG,GAAU;QACxB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACnD;SACF;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,GAAU;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACzC;IACH,CAAC;IAED,aAAa,CAAC,GAAG,GAAU;QACzB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACpD;SACF;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,GAAU;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACnD;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC;IACnF,CAAC;CACF;AA7ZD,wBA6ZC"}
1
+ {"version":3,"file":"other.js","sourceRoot":"","sources":["../../src/irdevice/other.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge SwitchBot",
3
3
  "name": "@switchbot/homebridge-switchbot",
4
- "version": "2.8.2-beta.2",
4
+ "version": "2.9.0-beta.0",
5
5
  "description": "The [Homebridge](https://homebridge.io) SwitchBot plugin allows you to access your [SwitchBot](https://www.switch-bot.com) device(s) from HomeKit.",
6
6
  "author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
7
7
  "license": "ISC",
@@ -70,15 +70,15 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/crypto-js": "^4.1.1",
73
- "@types/node": "^20.5.6",
74
- "@typescript-eslint/eslint-plugin": "^6.4.1",
75
- "@typescript-eslint/parser": "^6.4.1",
76
- "eslint": "^8.47.0",
73
+ "@types/node": "^20.5.7",
74
+ "@typescript-eslint/eslint-plugin": "^6.5.0",
75
+ "@typescript-eslint/parser": "^6.5.0",
76
+ "eslint": "^8.48.0",
77
77
  "eslint-config-prettier": "9.0.0",
78
78
  "eslint-plugin-prettier": "5.0.0",
79
79
  "homebridge": "^1.6.1",
80
80
  "nodemon": "^3.0.1",
81
- "npm-check-updates": "^16.13.1",
81
+ "npm-check-updates": "^16.13.2",
82
82
  "prettier": "3.0.2",
83
83
  "rimraf": "^5.0.1",
84
84
  "ts-node": "^10.9.1",
@@ -430,6 +430,19 @@ export class BlindTilt {
430
430
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
431
431
  }
432
432
 
433
+ // BatteryLevel
434
+ this.BatteryLevel = Number(this.OpenAPI_BatteryLevel);
435
+ if (this.BatteryLevel < 10) {
436
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW;
437
+ } else {
438
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
439
+ }
440
+ if (Number.isNaN(this.BatteryLevel)) {
441
+ this.BatteryLevel = 100;
442
+ }
443
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
444
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
445
+
433
446
  // FirmwareRevision
434
447
  this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
435
448
  }
package/src/device/bot.ts CHANGED
@@ -50,6 +50,7 @@ export class Bot {
50
50
  allowPush?: boolean;
51
51
  doublePress!: number;
52
52
  scanDuration!: number;
53
+ botDeviceType!: string;
53
54
  pushRatePress!: number;
54
55
  deviceLogging!: string;
55
56
  multiPressCount!: number;
@@ -70,6 +71,7 @@ export class Bot {
70
71
  ) {
71
72
  // default placeholders
72
73
  this.logs(device);
74
+ this.deviceType(device);
73
75
  this.scan(device);
74
76
  this.refreshRate(device);
75
77
  this.PressOrSwitch(device);
@@ -97,9 +99,8 @@ export class Bot {
97
99
  .getCharacteristic(this.platform.Characteristic.FirmwareRevision)
98
100
  .updateValue(this.setFirmwareRevision(accessory, device));
99
101
 
100
- // get the service if it exists, otherwise create a new service
101
- // you can create multiple services for each accessory
102
- if (device.bot?.deviceType === 'switch') {
102
+ // deviceType
103
+ if (this.botDeviceType === 'switch') {
103
104
  this.removeFanService(accessory);
104
105
  this.removeLockService(accessory);
105
106
  this.removeDoorService(accessory);
@@ -120,7 +121,7 @@ export class Bot {
120
121
  this.switchService.addCharacteristic(this.platform.Characteristic.ConfiguredName, accessory.displayName);
121
122
  }
122
123
  this.switchService.getCharacteristic(this.platform.Characteristic.On).onSet(this.OnSet.bind(this));
123
- } else if (device.bot?.deviceType === 'garagedoor') {
124
+ } else if (this.botDeviceType === 'garagedoor') {
124
125
  this.removeFanService(accessory);
125
126
  this.removeLockService(accessory);
126
127
  this.removeDoorService(accessory);
@@ -143,7 +144,7 @@ export class Bot {
143
144
  }
144
145
  this.garageDoorService.getCharacteristic(this.platform.Characteristic.TargetDoorState).onSet(this.OnSet.bind(this));
145
146
  this.garageDoorService.setCharacteristic(this.platform.Characteristic.ObstructionDetected, false);
146
- } else if (device.bot?.deviceType === 'door') {
147
+ } else if (this.botDeviceType === 'door') {
147
148
  this.removeFanService(accessory);
148
149
  this.removeLockService(accessory);
149
150
  this.removeOutletService(accessory);
@@ -173,7 +174,7 @@ export class Bot {
173
174
  })
174
175
  .onSet(this.OnSet.bind(this));
175
176
  this.doorService.setCharacteristic(this.platform.Characteristic.PositionState, this.platform.Characteristic.PositionState.STOPPED);
176
- } else if (device.bot?.deviceType === 'window') {
177
+ } else if (this.botDeviceType === 'window') {
177
178
  this.removeFanService(accessory);
178
179
  this.removeLockService(accessory);
179
180
  this.removeDoorService(accessory);
@@ -203,7 +204,7 @@ export class Bot {
203
204
  })
204
205
  .onSet(this.OnSet.bind(this));
205
206
  this.windowService.setCharacteristic(this.platform.Characteristic.PositionState, this.platform.Characteristic.PositionState.STOPPED);
206
- } else if (device.bot?.deviceType === 'windowcovering') {
207
+ } else if (this.botDeviceType === 'windowcovering') {
207
208
  this.removeFanService(accessory);
208
209
  this.removeLockService(accessory);
209
210
  this.removeDoorService(accessory);
@@ -234,7 +235,7 @@ export class Bot {
234
235
  })
235
236
  .onSet(this.OnSet.bind(this));
236
237
  this.windowCoveringService.setCharacteristic(this.platform.Characteristic.PositionState, this.platform.Characteristic.PositionState.STOPPED);
237
- } else if (device.bot?.deviceType === 'lock') {
238
+ } else if (this.botDeviceType === 'lock') {
238
239
  this.removeFanService(accessory);
239
240
  this.removeDoorService(accessory);
240
241
  this.removeOutletService(accessory);
@@ -255,7 +256,7 @@ export class Bot {
255
256
  this.lockService.addCharacteristic(this.platform.Characteristic.ConfiguredName, accessory.displayName);
256
257
  }
257
258
  this.lockService.getCharacteristic(this.platform.Characteristic.LockTargetState).onSet(this.OnSet.bind(this));
258
- } else if (device.bot?.deviceType === 'faucet') {
259
+ } else if (this.botDeviceType === 'faucet') {
259
260
  this.removeFanService(accessory);
260
261
  this.removeLockService(accessory);
261
262
  this.removeDoorService(accessory);
@@ -276,7 +277,7 @@ export class Bot {
276
277
  this.faucetService.addCharacteristic(this.platform.Characteristic.ConfiguredName, accessory.displayName);
277
278
  }
278
279
  this.faucetService.getCharacteristic(this.platform.Characteristic.Active).onSet(this.OnSet.bind(this));
279
- } else if (device.bot?.deviceType === 'fan') {
280
+ } else if (this.botDeviceType === 'fan') {
280
281
  this.removeLockService(accessory);
281
282
  this.removeDoorService(accessory);
282
283
  this.removeFaucetService(accessory);
@@ -297,7 +298,7 @@ export class Bot {
297
298
  this.fanService.addCharacteristic(this.platform.Characteristic.ConfiguredName, accessory.displayName);
298
299
  }
299
300
  this.fanService.getCharacteristic(this.platform.Characteristic.On).onSet(this.OnSet.bind(this));
300
- } else if (device.bot?.deviceType === 'stateful') {
301
+ } else if (this.botDeviceType === 'stateful') {
301
302
  this.removeFanService(accessory);
302
303
  this.removeLockService(accessory);
303
304
  this.removeDoorService(accessory);
@@ -438,7 +439,8 @@ export class Bot {
438
439
  if (Number.isNaN(this.BatteryLevel)) {
439
440
  this.BatteryLevel = 100;
440
441
  }
441
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
442
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
443
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
442
444
  }
443
445
 
444
446
  async openAPIparseStatus(): Promise<void> {
@@ -464,7 +466,8 @@ export class Bot {
464
466
  if (Number.isNaN(this.BatteryLevel)) {
465
467
  this.BatteryLevel = 100;
466
468
  }
467
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
469
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
470
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
468
471
 
469
472
  // FirmwareRevision
470
473
  this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
@@ -638,7 +641,7 @@ export class Bot {
638
641
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Done.`);
639
642
  this.accessory.context.On = this.On;
640
643
  setTimeout(() => {
641
- if (this.device.bot?.deviceType === 'switch') {
644
+ if (this.botDeviceType === 'switch') {
642
645
  this.switchService?.getCharacteristic(this.platform.Characteristic.On).updateValue(this.On);
643
646
  } else {
644
647
  this.outletService?.getCharacteristic(this.platform.Characteristic.On).updateValue(this.On);
@@ -770,7 +773,7 @@ export class Bot {
770
773
  * Handle requests to set the "On" characteristic
771
774
  */
772
775
  async OnSet(value: CharacteristicValue): Promise<void> {
773
- if (this.device.bot?.deviceType === 'garagedoor') {
776
+ if (this.botDeviceType === 'garagedoor') {
774
777
  this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set TargetDoorState: ${value}`);
775
778
  if (value === this.platform.Characteristic.TargetDoorState.CLOSED) {
776
779
  this.On = false;
@@ -778,9 +781,9 @@ export class Bot {
778
781
  this.On = true;
779
782
  }
780
783
  } else if (
781
- this.device.bot?.deviceType === 'door' ||
782
- this.device.bot?.deviceType === 'window' ||
783
- this.device.bot?.deviceType === 'windowcovering'
784
+ this.botDeviceType === 'door' ||
785
+ this.botDeviceType === 'window' ||
786
+ this.botDeviceType === 'windowcovering'
784
787
  ) {
785
788
  this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set TargetPosition: ${value}`);
786
789
  if (value === 0) {
@@ -788,21 +791,21 @@ export class Bot {
788
791
  } else {
789
792
  this.On = true;
790
793
  }
791
- } else if (this.device.bot?.deviceType === 'lock') {
794
+ } else if (this.botDeviceType === 'lock') {
792
795
  this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set LockTargetState: ${value}`);
793
796
  if (value === this.platform.Characteristic.LockTargetState.SECURED) {
794
797
  this.On = false;
795
798
  } else {
796
799
  this.On = true;
797
800
  }
798
- } else if (this.device.bot?.deviceType === 'faucet') {
801
+ } else if (this.botDeviceType === 'faucet') {
799
802
  this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set Active: ${value}`);
800
803
  if (value === this.platform.Characteristic.Active.INACTIVE) {
801
804
  this.On = false;
802
805
  } else {
803
806
  this.On = true;
804
807
  }
805
- } else if (this.device.bot?.deviceType === 'stateful') {
808
+ } else if (this.botDeviceType === 'stateful') {
806
809
  this.infoLog(`${this.device.deviceType}: ${this.accessory.displayName} Set ProgrammableSwitchOutputState: ${value}`);
807
810
  if (value === 0) {
808
811
  this.On = false;
@@ -827,7 +830,7 @@ export class Bot {
827
830
  */
828
831
  async updateHomeKitCharacteristics(): Promise<void> {
829
832
  // State
830
- if (this.device.bot?.deviceType === 'garagedoor') {
833
+ if (this.botDeviceType === 'garagedoor') {
831
834
  if (this.On === undefined) {
832
835
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
833
836
  } else {
@@ -858,7 +861,7 @@ export class Bot {
858
861
  }
859
862
  }
860
863
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Garage Door On: ${this.On}`);
861
- } else if (this.device.bot?.deviceType === 'door') {
864
+ } else if (this.botDeviceType === 'door') {
862
865
  if (this.On === undefined) {
863
866
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
864
867
  } else {
@@ -875,7 +878,7 @@ export class Bot {
875
878
  }
876
879
  }
877
880
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Door On: ${this.On}`);
878
- } else if (this.device.bot?.deviceType === 'window') {
881
+ } else if (this.botDeviceType === 'window') {
879
882
  if (this.On === undefined) {
880
883
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
881
884
  } else {
@@ -892,7 +895,7 @@ export class Bot {
892
895
  }
893
896
  }
894
897
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Window On: ${this.On}`);
895
- } else if (this.device.bot?.deviceType === 'windowcovering') {
898
+ } else if (this.botDeviceType === 'windowcovering') {
896
899
  if (this.On === undefined) {
897
900
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
898
901
  } else {
@@ -915,7 +918,7 @@ export class Bot {
915
918
  }
916
919
  }
917
920
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Window Covering On: ${this.On}`);
918
- } else if (this.device.bot?.deviceType === 'lock') {
921
+ } else if (this.botDeviceType === 'lock') {
919
922
  if (this.On === undefined) {
920
923
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
921
924
  } else {
@@ -944,7 +947,7 @@ export class Bot {
944
947
  }
945
948
  }
946
949
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Lock On: ${this.On}`);
947
- } else if (this.device.bot?.deviceType === 'faucet') {
950
+ } else if (this.botDeviceType === 'faucet') {
948
951
  if (this.On === undefined) {
949
952
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
950
953
  } else {
@@ -957,7 +960,7 @@ export class Bot {
957
960
  }
958
961
  }
959
962
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Faucet On: ${this.On}`);
960
- } else if (this.device.bot?.deviceType === 'fan') {
963
+ } else if (this.botDeviceType === 'fan') {
961
964
  if (this.On === undefined) {
962
965
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
963
966
  } else {
@@ -970,7 +973,7 @@ export class Bot {
970
973
  }
971
974
  }
972
975
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Fan On: ${this.On}`);
973
- } else if (this.device.bot?.deviceType === 'stateful') {
976
+ } else if (this.botDeviceType === 'stateful') {
974
977
  if (this.On === undefined) {
975
978
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
976
979
  } else {
@@ -997,7 +1000,7 @@ export class Bot {
997
1000
  }
998
1001
  }
999
1002
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} StatefulProgrammableSwitch On: ${this.On}`);
1000
- } else if (this.device.bot?.deviceType === 'switch') {
1003
+ } else if (this.botDeviceType === 'switch') {
1001
1004
  if (this.On === undefined) {
1002
1005
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} On: ${this.On}`);
1003
1006
  } else {
@@ -1295,33 +1298,33 @@ export class Bot {
1295
1298
  }
1296
1299
 
1297
1300
  async apiError(e: any): Promise<void> {
1298
- if (this.device.bot?.deviceType === 'garagedoor') {
1301
+ if (this.botDeviceType === 'garagedoor') {
1299
1302
  this.garageDoorService?.updateCharacteristic(this.platform.Characteristic.TargetDoorState, e);
1300
1303
  this.garageDoorService?.updateCharacteristic(this.platform.Characteristic.CurrentDoorState, e);
1301
1304
  this.garageDoorService?.updateCharacteristic(this.platform.Characteristic.ObstructionDetected, e);
1302
- } else if (this.device.bot?.deviceType === 'door') {
1305
+ } else if (this.botDeviceType === 'door') {
1303
1306
  this.doorService?.updateCharacteristic(this.platform.Characteristic.TargetPosition, e);
1304
1307
  this.doorService?.updateCharacteristic(this.platform.Characteristic.CurrentPosition, e);
1305
1308
  this.doorService?.updateCharacteristic(this.platform.Characteristic.PositionState, e);
1306
- } else if (this.device.bot?.deviceType === 'window') {
1309
+ } else if (this.botDeviceType === 'window') {
1307
1310
  this.windowService?.updateCharacteristic(this.platform.Characteristic.TargetPosition, e);
1308
1311
  this.windowService?.updateCharacteristic(this.platform.Characteristic.CurrentPosition, e);
1309
1312
  this.windowService?.updateCharacteristic(this.platform.Characteristic.PositionState, e);
1310
- } else if (this.device.bot?.deviceType === 'windowcovering') {
1313
+ } else if (this.botDeviceType === 'windowcovering') {
1311
1314
  this.windowCoveringService?.updateCharacteristic(this.platform.Characteristic.TargetPosition, e);
1312
1315
  this.windowCoveringService?.updateCharacteristic(this.platform.Characteristic.CurrentPosition, e);
1313
1316
  this.windowCoveringService?.updateCharacteristic(this.platform.Characteristic.PositionState, e);
1314
- } else if (this.device.bot?.deviceType === 'lock') {
1317
+ } else if (this.botDeviceType === 'lock') {
1315
1318
  this.doorService?.updateCharacteristic(this.platform.Characteristic.LockTargetState, e);
1316
1319
  this.doorService?.updateCharacteristic(this.platform.Characteristic.LockCurrentState, e);
1317
- } else if (this.device.bot?.deviceType === 'faucet') {
1320
+ } else if (this.botDeviceType === 'faucet') {
1318
1321
  this.faucetService?.updateCharacteristic(this.platform.Characteristic.Active, e);
1319
- } else if (this.device.bot?.deviceType === 'fan') {
1322
+ } else if (this.botDeviceType === 'fan') {
1320
1323
  this.fanService?.updateCharacteristic(this.platform.Characteristic.On, e);
1321
- } else if (this.device.bot?.deviceType === 'stateful') {
1324
+ } else if (this.botDeviceType === 'stateful') {
1322
1325
  this.statefulProgrammableSwitchService?.updateCharacteristic(this.platform.Characteristic.ProgrammableSwitchEvent, e);
1323
1326
  this.statefulProgrammableSwitchService?.updateCharacteristic(this.platform.Characteristic.ProgrammableSwitchOutputState, e);
1324
- } else if (this.device.bot?.deviceType === 'switch') {
1327
+ } else if (this.botDeviceType === 'switch') {
1325
1328
  this.switchService?.updateCharacteristic(this.platform.Characteristic.On, e);
1326
1329
  } else {
1327
1330
  this.outletService?.updateCharacteristic(this.platform.Characteristic.On, e);
@@ -1349,6 +1352,17 @@ export class Bot {
1349
1352
  return this.FirmwareRevision;
1350
1353
  }
1351
1354
 
1355
+ async deviceType(device: device & devicesConfig): Promise<void> {
1356
+ if (device.bot?.deviceType) {
1357
+ this.botDeviceType = this.accessory.context.deviceType = device.bot.deviceType;
1358
+ this.debugWarnLog(`${this.device.deviceType}: ${this.accessory.displayName} Using Device Type: ${this.botDeviceType}`);
1359
+ } else {
1360
+ this.botDeviceType = 'outlet';
1361
+ this.errorLog(`${this.device.deviceType}: ${this.accessory.displayName} No Device Type Set, deviceType: ${this.device.bot?.deviceType}`);
1362
+ this.warnLog(`${this.device.deviceType}: ${this.accessory.displayName} Using default deviceType: ${this.botDeviceType}`);
1363
+ }
1364
+ }
1365
+
1352
1366
  async context() {
1353
1367
  if (this.On === undefined) {
1354
1368
  this.On = false;
@@ -27,7 +27,7 @@ export class Curtain {
27
27
 
28
28
  // OpenAPI Status
29
29
  OpenAPI_InMotion: deviceStatus['moving'];
30
- OpenAPI_BatterLevel: deviceStatus['battery'];
30
+ OpenAPI_BatteryLevel: deviceStatus['battery'];
31
31
  OpenAPI_FirmwareRevision: deviceStatus['version'];
32
32
  OpenAPI_CurrentPosition: deviceStatus['slidePosition'];
33
33
  OpenAPI_CurrentAmbientLightLevel: deviceStatus['brightness'];
@@ -37,8 +37,8 @@ export class Curtain {
37
37
  setPositionMode?: string | number;
38
38
 
39
39
  // BLE Status
40
- BLE_Battery: serviceData['battery'];
41
40
  BLE_InMotion: serviceData['inMotion'];
41
+ BLE_BatteryLevel: serviceData['battery'];
42
42
  BLE_Calibration: serviceData['calibration'];
43
43
  BLE_CurrentPosition: serviceData['position'];
44
44
  BLE_CurrentAmbientLightLevel: serviceData['lightLevel'];
@@ -392,7 +392,7 @@ export class Curtain {
392
392
  );
393
393
  }
394
394
  // Battery
395
- this.BatteryLevel = Number(this.BLE_Battery);
395
+ this.BatteryLevel = Number(this.BLE_BatteryLevel);
396
396
  if (this.BatteryLevel < 10) {
397
397
  this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW;
398
398
  } else {
@@ -442,10 +442,10 @@ export class Curtain {
442
442
  ` TargetPosition: ${this.TargetPosition}, PositionState: ${this.PositionState},`,
443
443
  );
444
444
 
445
+ // Brightness
445
446
  if (!this.device.curtain?.hide_lightsensor) {
446
447
  this.set_minLux = this.minLux();
447
448
  this.set_maxLux = this.maxLux();
448
- // Brightness
449
449
  switch (this.OpenAPI_CurrentAmbientLightLevel) {
450
450
  case 'dim':
451
451
  this.CurrentAmbientLightLevel = this.set_minLux;
@@ -457,6 +457,19 @@ export class Curtain {
457
457
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} CurrentAmbientLightLevel: ${this.CurrentAmbientLightLevel}`);
458
458
  }
459
459
 
460
+ // BatteryLevel
461
+ this.BatteryLevel = Number(this.OpenAPI_BatteryLevel);
462
+ if (this.BatteryLevel < 10) {
463
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW;
464
+ } else {
465
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
466
+ }
467
+ if (Number.isNaN(this.BatteryLevel)) {
468
+ this.BatteryLevel = 100;
469
+ }
470
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
471
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
472
+
460
473
  // FirmwareRevision
461
474
  this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
462
475
  }
@@ -502,7 +515,7 @@ export class Curtain {
502
515
  ` BLE Address Found: ${ad.address}`,
503
516
  );
504
517
  this.BLE_Calibration = ad.serviceData.calibration;
505
- this.BLE_Battery = ad.serviceData.battery;
518
+ this.BLE_BatteryLevel = ad.serviceData.battery;
506
519
  this.BLE_InMotion = ad.serviceData.inMotion;
507
520
  this.BLE_CurrentPosition = ad.serviceData.position;
508
521
  this.BLE_CurrentAmbientLightLevel = ad.serviceData.lightLevel;
@@ -561,7 +574,7 @@ export class Curtain {
561
574
  this.OpenAPI_CurrentPosition = deviceStatus.body.slidePosition;
562
575
  this.OpenAPI_InMotion = deviceStatus.body.moving;
563
576
  this.OpenAPI_CurrentAmbientLightLevel = deviceStatus.body.brightness;
564
- this.OpenAPI_BatterLevel = deviceStatus.body.battery;
577
+ this.OpenAPI_BatteryLevel = deviceStatus.body.battery;
565
578
  this.OpenAPI_FirmwareRevision = deviceStatus.body.version;
566
579
  this.openAPIparseStatus();
567
580
  this.updateHomeKitCharacteristics();
@@ -240,6 +240,19 @@ export class IOSensor {
240
240
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Temperature: ${this.CurrentTemperature}°c`);
241
241
  }
242
242
 
243
+ // BatteryLevel
244
+ this.BatteryLevel = Number(this.OpenAPI_BatteryLevel);
245
+ if (this.BatteryLevel < 10) {
246
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW;
247
+ } else {
248
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
249
+ }
250
+ if (Number.isNaN(this.BatteryLevel)) {
251
+ this.BatteryLevel = 100;
252
+ }
253
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
254
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
255
+
243
256
  // FirmwareRevision
244
257
  this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
245
258
  }
@@ -236,7 +236,8 @@ export class Lock {
236
236
  if (Number.isNaN(this.BatteryLevel)) {
237
237
  this.BatteryLevel = 100;
238
238
  }
239
- this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel}`);
239
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
240
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
240
241
 
241
242
  // FirmwareRevision
242
243
  this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
@@ -241,6 +241,19 @@ export class Meter {
241
241
  this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} Temperature: ${this.CurrentTemperature}°c`);
242
242
  }
243
243
 
244
+ // Battery
245
+ this.BatteryLevel = Number(this.OpenAPI_BatteryLevel);
246
+ if (this.BatteryLevel < 10) {
247
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW;
248
+ } else {
249
+ this.StatusLowBattery = this.platform.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL;
250
+ }
251
+ if (Number.isNaN(this.BatteryLevel)) {
252
+ this.BatteryLevel = 100;
253
+ }
254
+ this.debugLog(`${this.device.deviceType}: ${this.accessory.displayName} BatteryLevel: ${this.BatteryLevel},`
255
+ + ` StatusLowBattery: ${this.StatusLowBattery}`);
256
+
244
257
  // FirmwareRevision
245
258
  this.FirmwareRevision = JSON.stringify(this.OpenAPI_FirmwareRevision);
246
259
  }