@homebridge-plugins/homebridge-smarthq 0.4.0-beta.0 → 0.4.0-beta.2

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 (93) hide show
  1. package/README.md +11 -1
  2. package/config.schema.json +17 -0
  3. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.d.ts +14 -0
  4. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.d.ts.map +1 -0
  5. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js +35 -0
  6. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js.map +1 -0
  7. package/dist/devices/OpalIceMaker/Managers/OpalMetadataSvcManager.d.ts +9 -0
  8. package/dist/devices/OpalIceMaker/Managers/OpalMetadataSvcManager.d.ts.map +1 -0
  9. package/dist/devices/OpalIceMaker/Managers/OpalMetadataSvcManager.js +35 -0
  10. package/dist/devices/OpalIceMaker/Managers/OpalMetadataSvcManager.js.map +1 -0
  11. package/dist/devices/OpalIceMaker/Managers/OpalMonitorManager.d.ts +20 -0
  12. package/dist/devices/OpalIceMaker/Managers/OpalMonitorManager.d.ts.map +1 -0
  13. package/dist/devices/OpalIceMaker/Managers/OpalMonitorManager.js +65 -0
  14. package/dist/devices/OpalIceMaker/Managers/OpalMonitorManager.js.map +1 -0
  15. package/dist/devices/OpalIceMaker/Managers/OpalNightlightSvcManager.d.ts +10 -0
  16. package/dist/devices/OpalIceMaker/Managers/OpalNightlightSvcManager.d.ts.map +1 -0
  17. package/dist/devices/OpalIceMaker/Managers/OpalNightlightSvcManager.js +69 -0
  18. package/dist/devices/OpalIceMaker/Managers/OpalNightlightSvcManager.js.map +1 -0
  19. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.d.ts +11 -0
  20. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.d.ts.map +1 -0
  21. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js +22 -0
  22. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js.map +1 -0
  23. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts +20 -0
  24. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts.map +1 -0
  25. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js +121 -0
  26. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js.map +1 -0
  27. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalAddWaterStatusSvcManager.d.ts +17 -0
  28. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalAddWaterStatusSvcManager.d.ts.map +1 -0
  29. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalAddWaterStatusSvcManager.js +35 -0
  30. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalAddWaterStatusSvcManager.js.map +1 -0
  31. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalIceBucketStatusSvcManager.d.ts +17 -0
  32. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalIceBucketStatusSvcManager.d.ts.map +1 -0
  33. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalIceBucketStatusSvcManager.js +35 -0
  34. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalIceBucketStatusSvcManager.js.map +1 -0
  35. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.d.ts +27 -0
  36. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.d.ts.map +1 -0
  37. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js +40 -0
  38. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js.map +1 -0
  39. package/dist/devices/OpalIceMaker/Managers/StatusManagers/index.d.ts +13 -0
  40. package/dist/devices/OpalIceMaker/Managers/StatusManagers/index.d.ts.map +1 -0
  41. package/dist/devices/OpalIceMaker/Managers/StatusManagers/index.js +33 -0
  42. package/dist/devices/OpalIceMaker/Managers/StatusManagers/index.js.map +1 -0
  43. package/dist/devices/OpalIceMaker/Managers/index.d.ts +7 -0
  44. package/dist/devices/OpalIceMaker/Managers/index.d.ts.map +1 -0
  45. package/dist/devices/OpalIceMaker/Managers/index.js +7 -0
  46. package/dist/devices/OpalIceMaker/Managers/index.js.map +1 -0
  47. package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts +13 -0
  48. package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts.map +1 -0
  49. package/dist/devices/OpalIceMaker/OpalDeviceBase.js +42 -0
  50. package/dist/devices/OpalIceMaker/OpalDeviceBase.js.map +1 -0
  51. package/dist/devices/OpalIceMaker/index.d.ts +17 -0
  52. package/dist/devices/OpalIceMaker/index.d.ts.map +1 -0
  53. package/dist/devices/OpalIceMaker/index.js +33 -0
  54. package/dist/devices/OpalIceMaker/index.js.map +1 -0
  55. package/dist/homebridge-ui/public/index.html +23 -25
  56. package/dist/index.d.ts +2 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/platform.js +1 -1
  61. package/dist/platform.js.map +1 -1
  62. package/dist/settings.d.ts +6 -1
  63. package/dist/settings.d.ts.map +1 -1
  64. package/dist/settings.js +7 -7
  65. package/dist/settings.js.map +1 -1
  66. package/docs/assets/dmt/dmt-component-data.js +1 -1
  67. package/docs/assets/dmt/dmt-search.cmp +0 -0
  68. package/docs/classes/SmartHQPlatform.html +66 -0
  69. package/docs/functions/default.html +1 -1
  70. package/docs/index.html +10 -2
  71. package/docs/interfaces/SmartHQPlatformConfig.html +16 -0
  72. package/docs/interfaces/SmartHqContext.html +4 -0
  73. package/docs/interfaces/credentials.html +4 -0
  74. package/docs/interfaces/devicesConfig.html +8 -0
  75. package/docs/interfaces/options.html +13 -0
  76. package/docs/modules.html +1 -1
  77. package/docs/variables/API_URL.html +2 -0
  78. package/docs/variables/ERD_CODES.html +2 -0
  79. package/docs/variables/ERD_TYPES.html +2 -0
  80. package/docs/variables/KEEPALIVE_TIMEOUT.html +2 -0
  81. package/docs/variables/LOGIN_URL.html +3 -0
  82. package/docs/variables/OAUTH2_CLIENT_ID.html +2 -0
  83. package/docs/variables/OAUTH2_CLIENT_SECRET.html +2 -0
  84. package/docs/variables/OAUTH2_REDIRECT_URI.html +2 -0
  85. package/docs/variables/PLATFORM_NAME.html +3 -0
  86. package/docs/variables/PLUGIN_NAME.html +3 -0
  87. package/docs/variables/SECURE_URL.html +3 -0
  88. package/package.json +4 -3
  89. package/vitest.config.ts +9 -0
  90. package/dist/devices/icemaker.d.ts +0 -17
  91. package/dist/devices/icemaker.d.ts.map +0 -1
  92. package/dist/devices/icemaker.js +0 -159
  93. package/dist/devices/icemaker.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>KEEPALIVE_TIMEOUT | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable KEEPALIVE_TIMEOUT<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">KEEPALIVE_TIMEOUT</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L86">settings.ts:86</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>LOGIN_URL | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable LOGIN_URL<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">LOGIN_URL</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"https://accounts.brillion.geappliances.com/"</span><span class="tsd-signature-symbol"> = 'https://accounts.brillion.geappliances.com/'</span></div><div class="tsd-comment tsd-typography"><p>This is the Login URL for the SmartHQ API</p>
3
+ </div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L24">settings.ts:24</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,2 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>OAUTH2_CLIENT_ID | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable OAUTH2_CLIENT_ID<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">OAUTH2_CLIENT_ID</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"564c31616c4f7474434b307435412b4d2f6e7672"</span><span class="tsd-signature-symbol"> = '564c31616c4f7474434b307435412b4d2f6e7672'</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L82">settings.ts:82</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,2 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>OAUTH2_CLIENT_SECRET | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable OAUTH2_CLIENT_SECRET<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">OAUTH2_CLIENT_SECRET</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"6476512b5246446d452f697154444941387052645938466e5671746e5847593d"</span><span class="tsd-signature-symbol"> = '6476512b5246446d452f697154444941387052645938466e5671746e5847593d'</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L83">settings.ts:83</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,2 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>OAUTH2_REDIRECT_URI | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable OAUTH2_REDIRECT_URI<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">OAUTH2_REDIRECT_URI</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"brillion.4e617a766474657344444e562b5935566e51324a://oauth/redirect"</span><span class="tsd-signature-symbol"> = 'brillion.4e617a766474657344444e562b5935566e51324a://oauth/redirect'</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L84">settings.ts:84</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>PLATFORM_NAME | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable PLATFORM_NAME<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">PLATFORM_NAME</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"SmartHQ"</span><span class="tsd-signature-symbol"> = 'SmartHQ'</span></div><div class="tsd-comment tsd-typography"><p>This is the name of the platform that users will use to register the plugin in the Homebridge config.json</p>
3
+ </div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L14">settings.ts:14</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>PLUGIN_NAME | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable PLUGIN_NAME<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">PLUGIN_NAME</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"@homebridge-plugins/homebridge-smarthq"</span><span class="tsd-signature-symbol"> = '@homebridge-plugins/homebridge-smarthq'</span></div><div class="tsd-comment tsd-typography"><p>This must match the name of your plugin as defined the package.json</p>
3
+ </div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L19">settings.ts:19</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>SECURE_URL | @homebridge-plugins/homebridge-smarthq</title><meta name="description" content="Documentation for @homebridge-plugins/homebridge-smarthq"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
2
+ <main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">@homebridge-plugins/homebridge-smarthq</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"></ul><div class="dmt-title-header-flex"><h1>Variable SECURE_URL<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">SECURE_URL</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"https://secure.brillion.geappliances.com"</span><span class="tsd-signature-symbol"> = 'https://secure.brillion.geappliances.com'</span></div><div class="tsd-comment tsd-typography"><p>This is the Secure URL for the SmartHQ API</p>
3
+ </div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/homebridge-plugins/homebridge-smarthq/blob/a07dfd94b9e1b7675411a15b79f80f936eb305af/src/settings.ts#L29">settings.ts:29</a></li></ul></aside></div><div class="col-sidebar" tabindex="-1"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu" tabindex="-1"><nav class="tsd-navigation"><a href="../modules.html">@homebridge-plugins/homebridge-smarthq</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div></main></body></html>
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-smarthq",
3
3
  "displayName": "SmartHQ",
4
4
  "type": "module",
5
- "version": "0.4.0-beta.0",
5
+ "version": "0.4.0-beta.2",
6
6
  "description": "The SmartHQ plugin allows you to interact with SmartHQ Devices in HomeKit and with Siri.",
7
7
  "author": {
8
8
  "name": "donavanbecker",
@@ -37,7 +37,7 @@
37
37
  ],
38
38
  "main": "dist/index.js",
39
39
  "engines": {
40
- "homebridge": "^1.8.5 || ^2.0.0 || ^2.0.0-beta.26",
40
+ "homebridge": "^1.9.0 || ^2.0.0 || ^2.0.0-beta.26",
41
41
  "node": "^20 || ^22"
42
42
  },
43
43
  "scripts": {
@@ -46,7 +46,7 @@
46
46
  "lint:fix": "eslint src/**/*.ts --fix",
47
47
  "watch": "npm run build && npm run plugin-ui && npm link && nodemon",
48
48
  "plugin-ui": "rsync ./src/homebridge-ui/public/index.html ./dist/homebridge-ui/public/",
49
- "build": "npm run clean && tsc && npm run plugin-ui",
49
+ "build": "npm run clean && tsc && tsc-alias && npm run plugin-ui",
50
50
  "prepublishOnly": "npm run lint && npm run build && npm run plugin-ui && npm run docs && npm run docs:lint && npm run docs:theme",
51
51
  "postpublish": "npm run clean && npm ci",
52
52
  "clean": "shx rm -rf ./dist",
@@ -99,6 +99,7 @@
99
99
  "shx": "^0.3.4",
100
100
  "ts-node": "^10.9.2",
101
101
  "ts-node-dev": "^2.0.0",
102
+ "tsc-alias": "^1.8.11",
102
103
  "typedoc": "^0.27.9",
103
104
  "typescript": "^5.8.2",
104
105
  "vitest": "^3.0.7"
@@ -0,0 +1,9 @@
1
+ import path from 'path'
2
+ export default {
3
+ resolve: {
4
+ alias: {
5
+ '@opal': path.resolve(__dirname, 'src/devices/OpalIceMaker'),
6
+ '@root': path.resolve(__dirname, 'src')
7
+ }
8
+ }
9
+ }
@@ -1,17 +0,0 @@
1
- import type { PlatformAccessory } from 'homebridge';
2
- import type { SmartHQPlatform } from '../platform.js';
3
- import type { devicesConfig, SmartHqContext } from '../settings.js';
4
- import { deviceBase } from './device.js';
5
- export declare class SmartHQIceMaker extends deviceBase {
6
- readonly platform: SmartHQPlatform;
7
- readonly device: SmartHqContext['device'] & devicesConfig;
8
- private opalProductionLimit;
9
- private oimPowerSvcName;
10
- private oimProgressSvcName;
11
- private oimNightlightSvcName;
12
- constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
13
- private getProductionValue;
14
- readErd(erd: string): Promise<string>;
15
- writeErd(erd: string, value: string | boolean): Promise<undefined>;
16
- }
17
- //# sourceMappingURL=icemaker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icemaker.d.ts","sourceRoot":"","sources":["../../src/devices/icemaker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AASnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,eAAgB,SAAQ,UAAU;IAM3C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAP3D,OAAO,CAAC,mBAAmB,CAAmB;IAC9C,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,oBAAoB,CAAoB;gBAErC,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;YA6H7C,kBAAkB;IAgB1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
@@ -1,159 +0,0 @@
1
- import { Buffer } from 'node:buffer';
2
- import axios from 'axios';
3
- import { interval, skipWhile } from 'rxjs';
4
- import { ERD_TYPES } from '../settings.js';
5
- import { deviceBase } from './device.js';
6
- export class SmartHQIceMaker extends deviceBase {
7
- platform;
8
- device;
9
- opalProductionLimit = Infinity;
10
- oimPowerSvcName = 'Opal Power';
11
- oimProgressSvcName = 'Opal Progress';
12
- oimNightlightSvcName = 'Opal Nightlight';
13
- constructor(platform, accessory, device) {
14
- super(platform, accessory, device);
15
- this.platform = platform;
16
- this.device = device;
17
- if (this.platform.config.options?.OPL) {
18
- this.opalProductionLimit = this.platform.config.options.OPL;
19
- }
20
- this.debugLog(`Opal IceMaker Features: ${JSON.stringify(accessory.context.device.features)}`);
21
- const opalIceMakerPowerService = this.accessory.getService(this.oimPowerSvcName) ?? this.accessory.addService(this.platform.Service.Switch, this.oimPowerSvcName, 'opal-power');
22
- opalIceMakerPowerService
23
- .getCharacteristic(this.platform.Characteristic.On)
24
- .onGet(() => this.readErd(ERD_TYPES.OIM_POWER).then(r => Number.parseInt(r) !== 0))
25
- .onSet(value => this.writeErd(ERD_TYPES.OIM_POWER, value));
26
- const lightbulb = this.accessory.getService(this.oimNightlightSvcName)
27
- || this.accessory.addService(this.platform.Service.Lightbulb, this.oimNightlightSvcName);
28
- lightbulb.getCharacteristic(this.platform.Characteristic.On)
29
- .onGet(async () => {
30
- const currentLevel = await this.readErd(ERD_TYPES.OIM_LIGHT_LEVEL);
31
- return currentLevel !== '00'; // If the level is not OFF (00), return true (ON)
32
- })
33
- .onSet(async (value) => {
34
- let newState;
35
- const currentLevel = await this.readErd(ERD_TYPES.OIM_LIGHT_LEVEL);
36
- if (value) {
37
- // If turning the light ON, cycle through states
38
- if (currentLevel === '00') {
39
- newState = '02'; // LOW
40
- }
41
- else if (currentLevel === '02') {
42
- newState = '01'; // HIGH
43
- }
44
- }
45
- else {
46
- newState = '00'; // OFF
47
- }
48
- await this.writeErd(ERD_TYPES.OIM_LIGHT_LEVEL, newState);
49
- this.debugLog(`Light state changed to: ${newState}`);
50
- });
51
- lightbulb.getCharacteristic(this.platform.Characteristic.Brightness)
52
- .setProps({
53
- minValue: 0, // Minimum value for brightness (OFF)
54
- maxValue: 100, // Maximum value for brightness (HIGH)
55
- minStep: 50, // Step value (only allow OFF, LOW, and HIGH)
56
- })
57
- .onGet(async () => {
58
- const currentLevel = await this.readErd(ERD_TYPES.OIM_LIGHT_LEVEL);
59
- // Map the light level to brightness values
60
- if (currentLevel === '02') { // HIGH
61
- return 50; // Dim Brightness
62
- }
63
- else if (currentLevel === '01') { // LOW
64
- return 100; // Full Brightness
65
- }
66
- else {
67
- return 0; // OFF
68
- }
69
- })
70
- .onSet(async (value) => {
71
- let newState;
72
- if (value === 50) {
73
- newState = '02'; // LOW (for dim brightness)
74
- }
75
- else if (value === 100) {
76
- newState = '01'; // HIGH (for full brightness)
77
- }
78
- else {
79
- newState = '00'; // OFF
80
- }
81
- await this.writeErd(ERD_TYPES.OIM_LIGHT_LEVEL, newState);
82
- this.debugLog(`Light brightness changed to: ${newState}`);
83
- });
84
- // Opal Progress service
85
- const opalProgressSvc = this.accessory.getService(this.oimProgressSvcName)
86
- || this.accessory.addService(this.platform.Service.Fanv2, this.oimProgressSvcName);
87
- opalProgressSvc.getCharacteristic(this.platform.Characteristic.Active)
88
- .setProps({
89
- // Omit PAIRED_WRITE to prevent user from setting Active to False, is read only.
90
- perms: ["ev" /* Perms.EVENTS */, "pr" /* Perms.PAIRED_READ */],
91
- });
92
- opalProgressSvc.getCharacteristic(this.platform.Characteristic.RotationSpeed)
93
- .setProps({
94
- format: "int" /* Formats.INT */,
95
- unit: "percentage" /* Units.PERCENTAGE */,
96
- minStep: 1,
97
- minValue: 0,
98
- maxValue: 100,
99
- perms: ["ev" /* Perms.EVENTS */, "pr" /* Perms.PAIRED_READ */],
100
- })
101
- .removeOnGet()
102
- .removeOnSet();
103
- // Get default accessory information service
104
- const opalIceMakerMetadataService = this.accessory.getService('');
105
- // Metadata for Device Form, Opal Production Limit
106
- opalIceMakerMetadataService
107
- ?.getCharacteristic(this.platform.Characteristic.ProductData)
108
- .onGet(() => 'l=Production_Limit&i=OPL&t=number&d=0&p=1-100,_0_to_unset');
109
- // Start an update interval
110
- interval(this.deviceRefreshRate * 1000)
111
- .pipe(skipWhile(() => !this.accessory.services.find(svc => svc.displayName === this.oimProgressSvcName)))
112
- .subscribe(async () => {
113
- const currentProductionValue = await this.getProductionValue();
114
- const oimPowerSvc = this.accessory.services.find(accSvc => accSvc.displayName === this.oimPowerSvcName);
115
- const oimProgressSvc = this.accessory.services.find(accSvc => accSvc.displayName === this.oimProgressSvcName);
116
- // Math.min: If opalProductionLimit is Infinity (default/unset value), set to 100. Otherwise use the opalProductionLimit that is less than 100
117
- const progressBarProductionValue = Math.floor((100 / Math.min(this.opalProductionLimit, 100)) * currentProductionValue);
118
- oimProgressSvc?.updateCharacteristic(this.platform.Characteristic.RotationSpeed, Math.min(progressBarProductionValue, 100));
119
- oimProgressSvc?.updateCharacteristic(this.platform.Characteristic.Active, currentProductionValue > 0 ? 1 : 0);
120
- // If opalProductLimit is Infinity (default/unset value), the machine will turn off by itself
121
- if (currentProductionValue > this.opalProductionLimit) {
122
- oimPowerSvc?.setCharacteristic(this.platform.Characteristic.On, false);
123
- }
124
- });
125
- }
126
- async getProductionValue() {
127
- try {
128
- const erdVal = await this.readErd(ERD_TYPES.OIM_PRODUCTION);
129
- const hexToIntVal = Buffer.from(erdVal, 'hex').readUInt8(0);
130
- const productionValue = Math.min(hexToIntVal, 100);
131
- const completionistMsg = hexToIntVal > 100 ? `, Completion: ${hexToIntVal}` : '';
132
- this.debugSuccessLog(`Progress Svc: Value: ${productionValue}, Limit: ${this.opalProductionLimit}${completionistMsg}`);
133
- return productionValue;
134
- }
135
- catch (error) {
136
- const typedErr = error;
137
- this.errorLog(`Failed to read production value: ${typedErr.message}`);
138
- // Default to 0 if there's an error
139
- return 0;
140
- }
141
- }
142
- async readErd(erd) {
143
- const d = await axios
144
- .get(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`);
145
- return String(d.data.value);
146
- }
147
- async writeErd(erd, value) {
148
- await axios
149
- .post(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`, {
150
- kind: 'appliance#erdListEntry',
151
- userId: this.accessory.context.userId,
152
- applianceId: this.accessory.context.device.applianceId,
153
- erd,
154
- value: typeof value === 'boolean' ? (value ? '01' : '00') : value,
155
- });
156
- return undefined;
157
- }
158
- }
159
- //# sourceMappingURL=icemaker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icemaker.js","sourceRoot":"","sources":["../../src/devices/icemaker.ts"],"names":[],"mappings":"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"}