homebridge-easy-mqtt 1.0.0-beta.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,31 +2,6 @@
2
2
 
3
3
  All notable changes to homebridge-dummy will be documented in this file.
4
4
 
5
- ## 1.0.0-beta.3 (2025-07-01)
5
+ ## 1.0.0 (2025-07-14)
6
6
 
7
- _RELEASE CANDIDATE_
8
-
9
- ### Changed
10
- - Current lock state is always set by MQTT
11
- - Enum names in config are translateable
12
-
13
- ## 1.0.0-beta.2 (2025-06-26)
14
-
15
- ### Fixed
16
- - State issues in LockMechanism
17
-
18
- ## 1.0.0-beta.1 (2025-06-26)
19
-
20
- ### ⚠️ BREAKING
21
- - Several topics were renamed for consistency so some accessories may have to be reconfigured
22
-
23
- ### Added
24
- - Username/password can now be set in the UI or supplied via config
25
- - Outlet accessory type
26
-
27
- ### Fixed
28
- - Unnecessary idle timer in mqtt library
29
-
30
- ## 1.0.0-beta.0 (2025-06-25)
31
-
32
- - Initial beta release
7
+ - First public release
package/README.md CHANGED
@@ -35,6 +35,7 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
35
35
  "accessories": [
36
36
  {
37
37
  "info": {
38
+ "id": "string",
38
39
  "name": "string",
39
40
  "type": "string",
40
41
  "manufacturer": "string",
@@ -72,6 +73,7 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
72
73
  All fields are required unless noted as "(Optional)"
73
74
 
74
75
  Info:
76
+ - `id` - A unique ID to identify this accessory. Changing this value will result in a new accessory.
75
77
  - `name` - The display name for the accessory in HomeKit
76
78
  - `type` - The type of accessory, currently Lightbulb, LockMechanism, Outlet, and Switch are supported
77
79
  - `manufacturer` - (Optional) The accessory manufacturer which will display in HomeKit device details
@@ -10,11 +10,14 @@
10
10
  "info": {
11
11
  "type": "object",
12
12
  "properties": {
13
+ "id": {
14
+ "type": "string"
15
+ },
13
16
  "name": {
14
- "type": "string",
15
- "title": "${config.title.name}" ,
16
- "required": true
17
- },
17
+ "type": "string",
18
+ "title": "${config.title.name}" ,
19
+ "required": true
20
+ },
18
21
  "type": {
19
22
  "type": "string",
20
23
  "title": "${config.title.type}",
@@ -183,11 +186,6 @@
183
186
  }
184
187
  },
185
188
  "default": []
186
- },
187
- "verbose": {
188
- "type": "boolean",
189
- "title": "${config.title.verbose}",
190
- "description": "${config.description.verbose}"
191
189
  }
192
190
  }
193
191
  },
@@ -195,7 +193,7 @@
195
193
  {
196
194
  "type": "array",
197
195
  "key": "accessories",
198
- "title": "${config.title.accessories}",
196
+ "notitle": true,
199
197
  "items": [
200
198
  {
201
199
  "type": "fieldset",
@@ -443,7 +441,6 @@
443
441
  ]
444
442
  }
445
443
  ]
446
- },
447
- "verbose"
444
+ }
448
445
  ]
449
446
  }
@@ -46,7 +46,8 @@ export class HomebridgeEasyMQTT {
46
46
  !assert(this.log, PLATFORM_NAME, accessoryConfig.info, 'name', 'type')) {
47
47
  continue;
48
48
  }
49
- const uuid = this.api.hap.uuid.generate(`${PLUGIN_NAME}:${accessoryConfig.info.type}:${accessoryConfig.info.name}`);
49
+ const id = accessoryConfig.info.id ?? `${PLUGIN_NAME}:${accessoryConfig.info.type}:${accessoryConfig.info.name}`;
50
+ const uuid = this.api.hap.uuid.generate(id);
50
51
  let accessory = this.cachedAccessories.get(uuid);
51
52
  if (!accessory) {
52
53
  accessory = new this.api.platformAccessory(accessoryConfig.info.name, uuid);
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
+ <style>
2
+ .dark-mode {
3
+ background-color: #242424;
4
+ color: lightgrey;
5
+ }
6
+ </style>
7
+
1
8
  <!-- <p class="text-center">
2
9
  <img
3
10
  src="https://github.com/mpatfield/homebridge-easy-mqtt/blob/latest/img/banner.png?raw=true"
@@ -15,6 +22,6 @@
15
22
  </br><button type="button" class="btn btn-primary" id="introContinue" i18n="continue", i18n_replace="arrow"></button>
16
23
  </div>
17
24
 
18
- <footer id="footer" class="text-center" style="display: none; color: #ba0000;" i18n="optional"></footer>
25
+ <footer id="footer" class="text-center" style="display: none; font-style: italic; font-size: 0.9em;" i18n="optional"></footer>
19
26
 
20
- <script src="ui.js?test=2"></script>
27
+ <script src="ui.js?v=1.0.0"></script>
@@ -1 +1 @@
1
- "use strict";(()=>{var a={arrow:"&rarr;",easy_mqtt:"Easy MQTT",github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-easy-mqtt/">GitHub</a>'},g=e=>{document.querySelectorAll("[i18n]").forEach(n=>{let o=n.getAttribute("i18n"),r=e.config[o],t=n.getAttribute("i18n_replace");t&&(r=r.replace("%s",a[t])),n.innerHTML=r})},m=e=>{let n=["span","label","legend","option","p"];Array.from(window.parent.document.querySelectorAll(n.join(","))).sort((r,t)=>n.indexOf(r.tagName.toLowerCase())-n.indexOf(t.tagName.toLowerCase())).forEach(r=>{let t=r.innerHTML;t=t.replaceAll(/\$\{config\.(title|description|enumNames)\.([^}]+)\}/g,(d,i,s)=>e.config[i]&&typeof e.config[i]=="object"&&s in e.config[i]?e.config[i][s]:d),r.innerHTML!==t&&(r.innerHTML=t)})},c=e=>{let n=Array.from(window.parent.document.querySelectorAll("fieldset legend")).filter(o=>!o.textContent?.includes(e.config.title.accessories));for(let o of n){let t=o.closest("fieldset")?.querySelector('input[type="text"][name="name"]');t&&o.textContent!==(t.value||e.config.title.accessory)&&(o.textContent=t.value!==""?t.value:e.config.title.accessory),t&&!t.dataset.accessoryNameListener&&(t.addEventListener("input",()=>c(e)),t.dataset.accessoryNameListener="true")}},l=async e=>{homebridge.showSpinner(),document.getElementById("pageIntro").style.display="none",document.getElementById("support").style.display="block",document.getElementById("footer").style.display="block",new MutationObserver(()=>{m(e),c(e)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.showSchemaForm(),homebridge.hideSpinner()},u=e=>{document.getElementById("introContinue").addEventListener("click",async()=>{l(e)}),document.getElementById("pageIntro").style.display="block",homebridge.hideSpinner()};(async()=>{homebridge.showSpinner();try{let e=await homebridge.i18nCurrentLang(),n=await homebridge.request("i18n",e);g(n);let o=await homebridge.getPluginConfig();o.length?await l(n):(o.push({name:a.easy_mqtt}),await homebridge.updatePluginConfig(o),u(n))}catch(e){homebridge.toast.error(e.message),homebridge.hideSpinner()}})();})();
1
+ "use strict";(()=>{var s={arrow:"&rarr;",easy_mqtt:"Easy MQTT",github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-easy-mqtt/">GitHub</a>'},g=e=>{document.querySelectorAll("[i18n]").forEach(t=>{let o=t.getAttribute("i18n"),r=e.config[o],n=t.getAttribute("i18n_replace");n&&(r=r.replace("%s",s[n])),t.innerHTML=r})},x=e=>{let t=["span","label","legend","option","p"];Array.from(window.parent.document.querySelectorAll(t.join(","))).sort((r,n)=>t.indexOf(r.tagName.toLowerCase())-t.indexOf(n.tagName.toLowerCase())).forEach(r=>{let n=r.innerHTML;n=n.replaceAll(/\$\{config\.(title|description|enumNames)\.([^}]+)\}/g,(d,i,a)=>e.config[i]&&typeof e.config[i]=="object"&&a in e.config[i]?e.config[i][a]:d),r.innerHTML!==n&&(r.innerHTML=n)})},c=e=>{let t=Array.from(window.parent.document.querySelectorAll("fieldset legend"));for(let o of t){let n=o.closest("fieldset")?.querySelector('input[type="text"][name="name"]');n&&o.textContent!==(n.value||e.config.title.accessory)&&(o.textContent=n.value!==""?n.value:e.config.title.accessory),n&&!n.dataset.accessoryNameListener&&(n.addEventListener("input",()=>c(e)),n.dataset.accessoryNameListener="true")}};function m(){if(typeof crypto<"u"){if(crypto.randomUUID)return crypto.randomUUID();if(crypto.getRandomValues)return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=crypto.getRandomValues(new Uint8Array(1))[0]&15;return(e==="x"?t:t&3|8).toString(16)})}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var f=e=>{let t=!1;e.accessories?.forEach(o=>{if(o.info.id===void 0){let r=m();o.info.id=r,t=!0}}),t&&homebridge.updatePluginConfig([e])},l=async e=>{homebridge.showSpinner(),document.getElementById("pageIntro").style.display="none",document.getElementById("support").style.display="block",document.getElementById("footer").style.display="block",new MutationObserver(()=>{x(e),c(e)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.showSchemaForm(),homebridge.addEventListener("configChanged",o=>{let r=o.data;r.length&&f(r[0])}),homebridge.hideSpinner()},u=e=>{document.getElementById("introContinue").addEventListener("click",async()=>{l(e)}),document.getElementById("pageIntro").style.display="block",homebridge.hideSpinner()};(async()=>{homebridge.showSpinner();try{let e=await homebridge.i18nCurrentLang(),t=await homebridge.request("i18n",e);g(t);let o=await homebridge.getPluginConfig();o.length?await l(t):(o.push({name:s.easy_mqtt}),await homebridge.updatePluginConfig(o),u(t))}catch(e){homebridge.toast.error(e.message),homebridge.hideSpinner()}})();})();
package/dist/i18n/en.d.ts CHANGED
@@ -23,7 +23,6 @@ declare const en: {
23
23
  switch: string;
24
24
  };
25
25
  title: {
26
- accessories: string;
27
26
  accessory: string;
28
27
  broker: string;
29
28
  disableLogging: string;
package/dist/i18n/en.js CHANGED
@@ -23,7 +23,6 @@ const en = {
23
23
  switch: 'Switch',
24
24
  },
25
25
  title: {
26
- accessories: 'Accessories',
27
26
  accessory: 'Accessory',
28
27
  broker: 'Broker',
29
28
  disableLogging: 'Disable Logging',
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,6 @@ declare const translations: {
32
32
  switch: string;
33
33
  };
34
34
  title: {
35
- accessories: string;
36
35
  accessory: string;
37
36
  broker: string;
38
37
  disableLogging: string;
@@ -23,7 +23,6 @@ declare const REPLACE_THIS_WITH_ISO_CODE: {
23
23
  switch: string;
24
24
  };
25
25
  title: {
26
- accessories: string;
27
26
  accessory: string;
28
27
  broker: string;
29
28
  disableLogging: string;
package/dist/i18n/zz.d.ts CHANGED
@@ -23,7 +23,6 @@ declare const zz: {
23
23
  switch: string;
24
24
  };
25
25
  title: {
26
- accessories: string;
27
26
  accessory: string;
28
27
  broker: string;
29
28
  disableLogging: string;
@@ -1,7 +1,12 @@
1
+ import { PlatformConfig as HBPlatformConfig } from 'homebridge';
1
2
  export type ServiceType = typeof import('homebridge').Service;
2
3
  export type CharacteristicType = typeof import('homebridge').Characteristic;
4
+ export type PlatformConfig = HBPlatformConfig & {
5
+ accessories?: AccessoryConfig[];
6
+ };
3
7
  export type Assertable = {};
4
8
  export type InfoConfig = Assertable & {
9
+ id: string;
5
10
  name: string;
6
11
  type: string;
7
12
  manufacturer?: string;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName": "Homebridge Easy MQTT",
5
5
  "description": "Homebridge plugin for easy control of MQTT devices",
6
6
  "type": "module",
7
- "version": "1.0.0-beta.3",
7
+ "version": "1.0.0",
8
8
  "homepage": "https://github.com/mpatfield/homebridge-easy-mqtt#readme",
9
9
  "repository": {
10
10
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  "main": "dist/homebridge/index.js",
21
21
  "scripts": {
22
22
  "build": "rimraf ./dist && tsc && npm run build:html && npm run build:ui",
23
- "build:html": "mkdir ./dist/homebridge-ui/public && cp -r ./src/homebridge-ui/public/* ./dist/homebridge-ui/public/",
23
+ "build:html": "node --loader ts-node/esm ./scripts/build-html.ts",
24
24
  "build:ui": "esbuild src/homebridge-ui/ui.ts --bundle --outfile=dist/homebridge-ui/public/ui.js --minify",
25
25
  "lint": "eslint . --max-warnings=0",
26
26
  "prepublishOnly": "npm run lint && npm run build"
package/eslint.config.ts DELETED
@@ -1,35 +0,0 @@
1
- import eslint from '@eslint/js';
2
- import tseslint from 'typescript-eslint';
3
-
4
- export default tseslint.config(
5
- {
6
- ignores: ['dist/**'],
7
- },
8
- {
9
- rules: {
10
- 'quotes': ['error', 'single'],
11
- 'indent': ['error', 2, { 'SwitchCase': 0 }],
12
- 'linebreak-style': ['error', 'unix'],
13
- 'semi': ['error', 'always'],
14
- 'comma-dangle': ['error', 'always-multiline'],
15
- 'dot-notation': 'error',
16
- 'eqeqeq': ['error', 'smart'],
17
- 'curly': ['error', 'all'],
18
- 'brace-style': ['error'],
19
- 'prefer-arrow-callback': 'warn',
20
- 'max-len': ['warn', 160],
21
- 'object-curly-spacing': ['error', 'always'],
22
- 'no-use-before-define': 'off',
23
- '@typescript-eslint/no-use-before-define': ['error', { 'classes': false, 'enums': false }],
24
- '@typescript-eslint/no-unused-vars': ['error', { 'caughtErrors': 'none' }],
25
- },
26
- },
27
- {
28
- languageOptions: {
29
- ecmaVersion: 2022,
30
- sourceType: 'module',
31
- },
32
- },
33
- eslint.configs.recommended,
34
- ...tseslint.configs.recommended,
35
- );