homebridge-easy-mqtt 1.0.0-beta.0 → 1.0.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 (41) hide show
  1. package/CHANGELOG.md +19 -2
  2. package/README.md +54 -25
  3. package/config.schema.json +180 -53
  4. package/dist/accessory/base.d.ts +7 -5
  5. package/dist/accessory/base.js +19 -11
  6. package/dist/accessory/base.js.map +1 -1
  7. package/dist/accessory/lightbulb.d.ts +30 -0
  8. package/dist/accessory/lightbulb.js +106 -0
  9. package/dist/accessory/lightbulb.js.map +1 -0
  10. package/dist/accessory/lock.d.ts +13 -16
  11. package/dist/accessory/lock.js +58 -85
  12. package/dist/accessory/lock.js.map +1 -1
  13. package/dist/accessory/onoff.d.ts +15 -0
  14. package/dist/accessory/onoff.js +57 -0
  15. package/dist/accessory/onoff.js.map +1 -0
  16. package/dist/accessory/outlet.d.ts +16 -0
  17. package/dist/accessory/outlet.js +59 -0
  18. package/dist/accessory/outlet.js.map +1 -0
  19. package/dist/accessory/statusActive.d.ts +14 -0
  20. package/dist/accessory/statusActive.js +41 -0
  21. package/dist/accessory/statusActive.js.map +1 -0
  22. package/dist/accessory/switch.d.ts +6 -17
  23. package/dist/accessory/switch.js +6 -86
  24. package/dist/accessory/switch.js.map +1 -1
  25. package/dist/homebridge/platform.d.ts +1 -1
  26. package/dist/homebridge/platform.js +17 -9
  27. package/dist/homebridge/platform.js.map +1 -1
  28. package/dist/homebridge-ui/public/index.html +1 -1
  29. package/dist/homebridge-ui/public/ui.js +1 -1
  30. package/dist/i18n/en.d.ts +45 -15
  31. package/dist/i18n/en.js +46 -16
  32. package/dist/i18n/en.js.map +1 -1
  33. package/dist/i18n/i18n.d.ts +45 -15
  34. package/dist/i18n/template.d.ts +45 -15
  35. package/dist/i18n/zz.d.ts +45 -15
  36. package/dist/model/mqtt.d.ts +0 -2
  37. package/dist/model/mqtt.js +3 -13
  38. package/dist/model/mqtt.js.map +1 -1
  39. package/dist/model/types.d.ts +34 -13
  40. package/dist/model/types.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ import { makeHandler, MQTTAccessory } from './base.js';
2
+ import { strings } from '../i18n/i18n.js';
3
+ import { toPrimitive } from '../model/types.js';
4
+ export class StatusActiveAccessory extends MQTTAccessory {
5
+ statusActiveConfig;
6
+ accessoryService;
7
+ statusActive = true;
8
+ constructor(Service, Characteristic, accessory, statusActiveConfig, log, className) {
9
+ super(Service, Characteristic, accessory, statusActiveConfig, log, className);
10
+ this.statusActiveConfig = statusActiveConfig;
11
+ this.accessoryService = this.getAccessoryService();
12
+ this.accessoryService.getCharacteristic(Characteristic.StatusActive)
13
+ .onGet(this.getStatusActive.bind(this));
14
+ }
15
+ get topicHandlers() {
16
+ return [
17
+ ...(this.statusActiveConfig.topicGetStatusActive ? [makeHandler(this.statusActiveConfig.topicGetStatusActive, this.onStatusActiveUpdate.bind(this))] : []),
18
+ ];
19
+ }
20
+ async onStatusActiveUpdate(topic, value) {
21
+ if (!this.assert('valueStatusActive')) {
22
+ return;
23
+ }
24
+ const statusActive = value === toPrimitive(this.statusActiveConfig.valueStatusActive);
25
+ if (statusActive === this.statusActive) {
26
+ return;
27
+ }
28
+ this.statusActive = statusActive;
29
+ this.accessoryService.updateCharacteristic(this.Characteristic.StatusActive, this.statusActive);
30
+ if (this.statusActive) {
31
+ this.logIfDesired(strings.accessory.statusActive, this.config.info.name);
32
+ }
33
+ else {
34
+ this.log.warning(strings.accessory.statusInactive, this.config.info.name);
35
+ }
36
+ }
37
+ async getStatusActive() {
38
+ return this.statusActive;
39
+ }
40
+ }
41
+ //# sourceMappingURL=statusActive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusActive.js","sourceRoot":"","sources":["../../src/accessory/statusActive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAkE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhH,MAAM,OAAgB,qBAAsB,SAAQ,aAAa;IAS5C;IARA,gBAAgB,CAAU;IAErC,YAAY,GAAwB,IAAI,CAAC;IAEjD,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EACX,kBAAsC,EACvD,GAAQ,EACR,SAAiB;QAEjB,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAJ7D,uBAAkB,GAAlB,kBAAkB,CAAoB;QAMvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC;aACjE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IAID,IAAc,aAAa;QACzB,OAAO;YACL,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC;SAC1J,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,KAAgB;QAEhE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QACtF,IAAI,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEhG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
@@ -1,19 +1,8 @@
1
- import { PlatformAccessory } from 'homebridge';
2
- import { MQTTAccessory, TopicHandler } from './base.js';
3
- import { SwitchConfig } from '../model/types.js';
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { OnOffAccessory } from './onoff.js';
3
+ import { CharacteristicType, ServiceType, SwitchConfig } from '../model/types.js';
4
4
  import { Log } from '../tools/log.js';
5
- export declare class SwitchAccessory extends MQTTAccessory {
6
- private readonly config;
7
- private readonly accessoryService;
8
- private active;
9
- private on;
10
- constructor(Service: typeof import('homebridge').Service, Characteristic: typeof import('homebridge').Characteristic, accessory: PlatformAccessory, config: SwitchConfig, log: Log);
11
- protected get topicHandlers(): TopicHandler[];
12
- private onActiveUpdate;
13
- private onStateUpdate;
14
- private getActive;
15
- private getOn;
16
- private setOn;
17
- private stringForState;
18
- private logIfDesired;
5
+ export declare class SwitchAccessory extends OnOffAccessory {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, switchConfig: SwitchConfig, log: Log);
7
+ protected getAccessoryService(): Service;
19
8
  }
@@ -1,90 +1,10 @@
1
- import { makeHandler, MQTTAccessory } from './base.js';
2
- import { strings } from '../i18n/i18n.js';
3
- import { toPrimitive } from '../model/types.js';
4
- export class SwitchAccessory extends MQTTAccessory {
5
- config;
6
- accessoryService;
7
- active;
8
- on;
9
- constructor(Service, Characteristic, accessory, config, log) {
10
- super(Service, Characteristic, accessory, config, log, SwitchAccessory.name);
11
- this.config = config;
12
- this.accessoryService = accessory.getService(Service.Switch) || accessory.addService(Service.Switch);
13
- this.active = true;
14
- this.on = false;
15
- this.accessoryService.getCharacteristic(this.Characteristic.StatusActive)
16
- .onGet(this.getActive.bind(this));
17
- this.accessoryService.getCharacteristic(this.Characteristic.On)
18
- .onGet(this.getOn.bind(this))
19
- .onSet(this.setOn.bind(this));
1
+ import { OnOffAccessory } from './onoff.js';
2
+ export class SwitchAccessory extends OnOffAccessory {
3
+ constructor(Service, Characteristic, accessory, switchConfig, log) {
4
+ super(Service, Characteristic, accessory, switchConfig, log, SwitchAccessory.name);
20
5
  }
21
- get topicHandlers() {
22
- if (!this.assert('topicGetOn')) {
23
- return [];
24
- }
25
- return [
26
- makeHandler(this.config.topicGetOn, this.onStateUpdate.bind(this)),
27
- ...(this.config.topicGetActive ? [makeHandler(this.config.topicGetActive, this.onActiveUpdate.bind(this))] : []),
28
- ];
29
- }
30
- async onActiveUpdate(topic, value) {
31
- if (!this.assert('valueActive')) {
32
- return;
33
- }
34
- const active = value === toPrimitive(this.config.valueActive);
35
- if (active === this.active) {
36
- return;
37
- }
38
- this.active = active;
39
- this.accessoryService.updateCharacteristic(this.Characteristic.StatusActive, this.active);
40
- if (this.active) {
41
- this.logIfDesired(strings.accessory.statusActive, this.config.info.name);
42
- }
43
- else {
44
- this.log.warning(strings.accessory.statusInactive, this.config.info.name);
45
- }
46
- }
47
- async onStateUpdate(topic, value) {
48
- if (!this.assert('valueOn')) {
49
- return;
50
- }
51
- const on = value === toPrimitive(this.config.valueOn);
52
- if (on === this.on) {
53
- return;
54
- }
55
- this.on = on;
56
- this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
57
- this.logIfDesired(this.stringForState(this.on), this.config.info.name);
58
- }
59
- async getActive() {
60
- return this.active;
61
- }
62
- async getOn() {
63
- return this.on;
64
- }
65
- async setOn(value) {
66
- if (!this.assert('topicSetOn', 'valueOn', 'valueOff')) {
67
- return;
68
- }
69
- const on = value ? this.config.valueOn : this.config.valueOff;
70
- this.on = value;
71
- this.logIfDesired(this.stringForState(this.on, true), this.config.info.name);
72
- this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
73
- this.publish(this.config.topicSetOn, on);
74
- }
75
- stringForState(on, future = false) {
76
- if (on) {
77
- return future ? strings.switch.stateFutureOn : strings.switch.stateOn;
78
- }
79
- else {
80
- return future ? strings.switch.stateFutureOff : strings.switch.stateOff;
81
- }
82
- }
83
- logIfDesired(message, ...parameters) {
84
- if (this.config.disableLogging) {
85
- return;
86
- }
87
- this.log.always(message, ...parameters);
6
+ getAccessoryService() {
7
+ return this.accessory.getService(this.Service.Switch) || this.accessory.addService(this.Service.Switch);
88
8
  }
89
9
  }
90
10
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/accessory/switch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/accessory/switch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAEjD,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,YAA0B,EAC1B,GAAQ;QAER,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1G,CAAC;CACF"}
@@ -9,5 +9,5 @@ export declare class HomebridgeEasyMQTT implements DynamicPlatformPlugin {
9
9
  configureAccessory(accessory: PlatformAccessory): void;
10
10
  private teardown;
11
11
  private setup;
12
- private removeAccessory;
12
+ private removeCachedAccessory;
13
13
  }
@@ -1,16 +1,18 @@
1
1
  import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
2
- import { LockAccessory } from '../accessory/lock.js';
2
+ import { LockMechanismAccessory } from '../accessory/lock.js';
3
3
  import { SwitchAccessory } from '../accessory/switch.js';
4
4
  import { setLanguage, strings } from '../i18n/i18n.js';
5
5
  import { Log } from '../tools/log.js';
6
6
  import getVersion from '../tools/version.js';
7
7
  import { assert } from '../tools/validation.js';
8
+ import { OutletAccessory } from '../accessory/outlet.js';
9
+ import { LightbulbAccessory } from '../accessory/lightbulb.js';
8
10
  export class HomebridgeEasyMQTT {
9
11
  config;
10
12
  api;
11
13
  log;
12
14
  cachedAccessories = new Map();
13
- mqttAccessories = new Set();
15
+ mqttAccessories = [];
14
16
  constructor(logger, config, api) {
15
17
  this.config = config;
16
18
  this.api = api;
@@ -51,15 +53,22 @@ export class HomebridgeEasyMQTT {
51
53
  accessory.context.identifier = uuid;
52
54
  this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
53
55
  this.cachedAccessories.set(uuid, accessory);
56
+ this.log.always(strings.startup.newAccessory, accessoryConfig.info.name);
54
57
  }
55
58
  const Service = this.api.hap.Service;
56
59
  const Characteristic = this.api.hap.Characteristic;
57
60
  let mqttAccessory;
58
61
  switch (accessoryConfig.info.type) {
59
- case this.api.hap.Service.LockMechanism.name:
60
- mqttAccessory = new LockAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
62
+ case Service.Lightbulb.name:
63
+ mqttAccessory = new LightbulbAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
61
64
  break;
62
- case this.api.hap.Service.Switch.name:
65
+ case Service.LockMechanism.name:
66
+ mqttAccessory = new LockMechanismAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
67
+ break;
68
+ case Service.Outlet.name:
69
+ mqttAccessory = new OutletAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
70
+ break;
71
+ case Service.Switch.name:
63
72
  mqttAccessory = new SwitchAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
64
73
  break;
65
74
  default:
@@ -67,18 +76,17 @@ export class HomebridgeEasyMQTT {
67
76
  continue;
68
77
  }
69
78
  keepIdentifiers.add(uuid);
70
- this.mqttAccessories.add(mqttAccessory);
71
- this.log.always(strings.startup.newAccessory, accessoryConfig.info.name);
79
+ this.mqttAccessories.push(mqttAccessory);
72
80
  }
73
81
  this.cachedAccessories.forEach(accessory => {
74
82
  if (!keepIdentifiers.has(accessory.context.identifier)) {
75
- this.removeAccessory(accessory);
83
+ this.removeCachedAccessory(accessory);
76
84
  }
77
85
  });
78
86
  const randIndex = Math.floor(Math.random() * strings.startup.welcome.length);
79
87
  this.log.always(strings.startup.complete, strings.startup.welcome[randIndex]);
80
88
  }
81
- removeAccessory(accessory) {
89
+ removeCachedAccessory(accessory) {
82
90
  this.log.always(strings.startup.removeAccessory, accessory.displayName);
83
91
  this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
84
92
  this.cachedAccessories.delete(accessory.context.identifier);
@@ -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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"}
@@ -15,6 +15,6 @@
15
15
  </br><button type="button" class="btn btn-primary" id="introContinue" i18n="continue", i18n_replace="arrow"></button>
16
16
  </div>
17
17
 
18
- <footer class="text-center" style="color: #888;" i18n="optional"></footer>
18
+ <footer id="footer" class="text-center" style="display: none; color: #ba0000;" i18n="optional"></footer>
19
19
 
20
20
  <script src="ui.js"></script>
@@ -1 +1 @@
1
- "use strict";(()=>{var d={arrow:"&rarr;",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",d[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,(l,i,a)=>e.config[i]&&typeof e.config[i]=="object"&&a in e.config[i]?e.config[i][a]:l),r.innerHTML!==t&&(r.innerHTML=t)})},s=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",()=>s(e)),t.dataset.accessoryNameListener="true")}},c=async e=>{homebridge.showSpinner(),document.getElementById("pageIntro").style.display="none",document.getElementById("support").style.display="block",new MutationObserver(()=>{m(e),s(e)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.showSchemaForm(),homebridge.hideSpinner()},u=e=>{document.getElementById("introContinue").addEventListener("click",async()=>{c(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 c(n):(o.push({name:n.brand}),await homebridge.updatePluginConfig(o),u(n))}catch(e){homebridge.toast.error(e.message),homebridge.hideSpinner()}})();})();
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()}})();})();
package/dist/i18n/en.d.ts CHANGED
@@ -13,7 +13,7 @@ declare const en: {
13
13
  disableLogging: string;
14
14
  options: string;
15
15
  topics: string;
16
- valueActive: string;
16
+ valueStatusActive: string;
17
17
  verbose: string;
18
18
  };
19
19
  title: {
@@ -27,26 +27,50 @@ declare const en: {
27
27
  model: string;
28
28
  mqtt: string;
29
29
  options: string;
30
+ password: string;
30
31
  serialNumber: string;
31
- topicGetActive: string;
32
- topicGetCurrent: string;
32
+ topicGetStatusActive: string;
33
+ topicGetLockCurrentState: string;
34
+ topicGetOutletInUse: string;
33
35
  topicGetOn: string;
34
- topicGetTarget: string;
36
+ topicGetLockTargetState: string;
37
+ topicGetBrightness: string;
38
+ topicSetBrightness: string;
39
+ topicGetHue: string;
40
+ topicSetHue: string;
41
+ topicGetColorTemperature: string;
42
+ topicSetColorTemperature: string;
43
+ topicGetSaturation: string;
44
+ topicSetSaturation: string;
45
+ topicSetOutletInUse: string;
35
46
  topicSetOn: string;
36
- topicSetTarget: string;
47
+ topicSetTargetState: string;
37
48
  topics: string;
38
49
  type: string;
39
- valueActive: string;
40
- valueJammed: string;
50
+ username: string;
51
+ valueStatusActive: string;
52
+ valueLockStateJammed: string;
53
+ valueOutletInUse: string;
54
+ valueOutletNotInUse: string;
41
55
  valueOff: string;
42
56
  valueOn: string;
43
- valueSecured: string;
44
- valueUnsecured: string;
57
+ valueLockStateSecured: string;
58
+ valueLockStateUnsecured: string;
45
59
  values: string;
46
60
  verbose: string;
47
61
  version: string;
48
62
  };
49
63
  };
64
+ lightbulb: {
65
+ brightness: string;
66
+ futureBrightness: string;
67
+ hue: string;
68
+ futureHue: string;
69
+ colorTemperature: string;
70
+ futureColorTemperature: string;
71
+ saturation: string;
72
+ futureSaturation: string;
73
+ };
50
74
  lock: {
51
75
  badTarget: string;
52
76
  stateCurrentSecured: string;
@@ -70,6 +94,18 @@ declare const en: {
70
94
  reconnectInMinutes: string;
71
95
  reconnectInSeconds: string;
72
96
  };
97
+ onOff: {
98
+ stateFutureOff: string;
99
+ stateFutureOn: string;
100
+ stateOn: string;
101
+ stateOff: string;
102
+ };
103
+ outlet: {
104
+ futureInUse: string;
105
+ futureNotInUse: string;
106
+ inUse: string;
107
+ notInUse: string;
108
+ };
73
109
  startup: {
74
110
  complete: string;
75
111
  newAccessory: string;
@@ -78,11 +114,5 @@ declare const en: {
78
114
  unsupportedType: string;
79
115
  welcome: string[];
80
116
  };
81
- switch: {
82
- stateFutureOff: string;
83
- stateFutureOn: string;
84
- stateOn: string;
85
- stateOff: string;
86
- };
87
117
  };
88
118
  export default en;
package/dist/i18n/en.js CHANGED
@@ -11,9 +11,9 @@ const en = {
11
11
  thankYou: 'Thank you for installing homebridge-easy-mqtt',
12
12
  description: {
13
13
  disableLogging: 'If true, only critical events will be logged for this accessory.',
14
- options: 'Additional MQTT parameters such as username and password. Must be valid JSON.',
14
+ options: 'Additional MQTT parameters such as clientId or protocolVersion. Must be valid JSON.',
15
15
  topics: 'Supports JSONPath using dot notation, i.e. "my/topic$.path.to.value"',
16
- valueActive: 'Required if "Get Availability" topic is defined above.',
16
+ valueStatusActive: 'Required if "Get Availability" topic is defined above.',
17
17
  verbose: 'If true, additional MQTT info will be logged for debugging purposes.',
18
18
  },
19
19
  title: {
@@ -27,26 +27,50 @@ const en = {
27
27
  model: 'Model',
28
28
  mqtt: 'MQTT Settings',
29
29
  options: 'Options',
30
+ password: 'Password (Optional)',
30
31
  serialNumber: 'Serial Number',
31
- topicGetActive: 'Get Availability (Optional)',
32
- topicGetCurrent: 'Get Current State',
32
+ topicGetStatusActive: 'Get Availability (Optional)',
33
+ topicGetLockCurrentState: 'Get Current State',
34
+ topicGetOutletInUse: 'Get In Use State (Optional)',
33
35
  topicGetOn: 'Get On/Off State',
34
- topicGetTarget: 'Get Target State',
36
+ topicGetLockTargetState: 'Get Target State',
37
+ topicGetBrightness: 'Get Brightness (Optional)',
38
+ topicSetBrightness: 'Set Brightness (Optional)',
39
+ topicGetHue: 'Get Hue (Optional)',
40
+ topicSetHue: 'Set Hue (Optional)',
41
+ topicGetColorTemperature: 'Get Color Temperature (Optional)',
42
+ topicSetColorTemperature: 'Set Color Temperature (Optional)',
43
+ topicGetSaturation: 'Get Saturation (Optional)',
44
+ topicSetSaturation: 'Set Saturation (Optional)',
45
+ topicSetOutletInUse: 'Set In Use State (Optional)',
35
46
  topicSetOn: 'Set On/Off State',
36
- topicSetTarget: 'Set Target State',
47
+ topicSetTargetState: 'Set Target State',
37
48
  topics: 'Topics',
38
49
  type: 'Type',
39
- valueActive: 'Available/Reachable',
40
- valueJammed: 'Jammed (Optional)',
50
+ username: 'Username (Optional)',
51
+ valueStatusActive: 'Available/Reachable',
52
+ valueLockStateJammed: 'Jammed (Optional)',
53
+ valueOutletInUse: 'In Use',
54
+ valueOutletNotInUse: 'Not In Use',
41
55
  valueOff: 'Off',
42
56
  valueOn: 'On',
43
- valueSecured: 'Secured/Locked',
44
- valueUnsecured: 'Unsecured/Unlocked',
57
+ valueLockStateSecured: 'Secured/Locked',
58
+ valueLockStateUnsecured: 'Unsecured/Unlocked',
45
59
  values: 'Values',
46
60
  verbose: 'Additional Logging',
47
61
  version: 'Version',
48
62
  },
49
63
  },
64
+ lightbulb: {
65
+ brightness: '%s brightness is %s%',
66
+ futureBrightness: 'Setting %s brightness to %s%…',
67
+ hue: '%s hue is %s',
68
+ futureHue: 'Setting %s hue to %s…',
69
+ colorTemperature: '%s color temperature is %s',
70
+ futureColorTemperature: 'Setting %s color temperature to %s…',
71
+ saturation: '%s saturation is %s',
72
+ futureSaturation: 'Setting %s saturation to %s…',
73
+ },
50
74
  lock: {
51
75
  badTarget: '%s unable to get target from state %s',
52
76
  stateCurrentSecured: '%s is locked',
@@ -70,6 +94,18 @@ const en = {
70
94
  reconnectInMinutes: '%s will attempt to reconnect in %s minutes…',
71
95
  reconnectInSeconds: '%s will attempt to reconnect in %s seconds…',
72
96
  },
97
+ onOff: {
98
+ stateFutureOff: '%s is turning off…',
99
+ stateFutureOn: '%s is turning on…',
100
+ stateOn: '%s is on',
101
+ stateOff: '%s is off',
102
+ },
103
+ outlet: {
104
+ futureInUse: 'Setting %s to in use…',
105
+ futureNotInUse: 'Setting %s to not in use…',
106
+ inUse: '%s is in use',
107
+ notInUse: '%s is not in use',
108
+ },
73
109
  startup: {
74
110
  complete: '✓ Setup complete.',
75
111
  newAccessory: 'Adding %s',
@@ -83,12 +119,6 @@ const en = {
83
119
  'Want to see this plugin in your own language? Please visit https://github.com/mpatfield/homebridge-easy-mqtt/issues/4',
84
120
  ],
85
121
  },
86
- switch: {
87
- stateFutureOff: '%s is turning off…',
88
- stateFutureOn: '%s is turning on…',
89
- stateOn: '%s is on',
90
- stateOff: '%s is off',
91
- },
92
122
  };
93
123
  export default en;
94
124
  //# sourceMappingURL=en.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG;IAET,SAAS,EAAE;QACT,eAAe,EAAE,2CAA2C;QAC5D,YAAY,EAAE,qBAAqB;QACnC,cAAc,EAAE,mBAAmB;KACpC;IAED,MAAM,EAAE;QACN,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,0DAA0D;QACpE,OAAO,EAAE,+CAA+C;QACxD,QAAQ,EAAE,+CAA+C;QAEzD,WAAW,EAAE;YACX,cAAc,EAAE,kEAAkE;YAClF,OAAO,EAAE,+EAA+E;YACxF,MAAM,EAAE,sEAAsE;YAC9E,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,sEAAsE;SAChF;QAED,KAAK,EAAE;YACL,WAAW,EAAE,aAAa;YAC1B,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,iBAAiB;YACjC,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc;YAC5B,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,eAAe;YAC7B,cAAc,EAAE,6BAA6B;YAC7C,eAAe,EAAE,mBAAmB;YACpC,UAAU,EAAE,kBAAkB;YAC9B,cAAc,EAAE,kBAAkB;YAClC,UAAU,EAAE,kBAAkB;YAC9B,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,gBAAgB;YAC9B,cAAc,EAAE,oBAAoB;YACpC,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,SAAS;SACnB;KACF;IAED,IAAI,EAAE;QACJ,SAAS,EAAE,uCAAuC;QAClD,mBAAmB,EAAE,cAAc;QACnC,qBAAqB,EAAE,gBAAgB;QACvC,kBAAkB,EAAE,gBAAgB;QACpC,oBAAoB,EAAE,kBAAkB;QACxC,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,qBAAqB;KACpC;IAED,IAAI,EAAE;QACJ,UAAU,EAAE,0CAA0C;QACtD,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,yCAAyC;QACpD,gBAAgB,EAAE,sBAAsB;QACxC,cAAc,EAAE,oBAAoB;QACpC,WAAW,EAAE,8BAA8B;QAC3C,YAAY,EAAE,yBAAyB;QACvC,OAAO,EAAE,oCAAoC;QAC7C,eAAe,EAAE,mCAAmC;QACpD,WAAW,EAAE,4BAA4B;QACzC,kBAAkB,EAAE,6CAA6C;QACjE,kBAAkB,EAAE,6CAA6C;KAClE;IAED,OAAO,EAAE;QACP,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,WAAW;QACzB,eAAe,EAAE,aAAa;QAC9B,kBAAkB,EAAE,cAAc;QAClC,eAAe,EAAE,+BAA+B;QAChD,OAAO,EAAE;YACP,gHAAgH;YAChH,8EAA8E;YAC9E,yFAAyF;YACzF,uHAAuH;SACxH;KACF;IAED,MAAM,EAAE;QACN,cAAc,EAAE,oBAAoB;QACpC,aAAa,EAAE,mBAAmB;QAClC,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,WAAW;KACtB;CACF,CAAC;AAEF,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ declare const translations: {
22
22
  disableLogging: string;
23
23
  options: string;
24
24
  topics: string;
25
- valueActive: string;
25
+ valueStatusActive: string;
26
26
  verbose: string;
27
27
  };
28
28
  title: {
@@ -36,26 +36,50 @@ declare const translations: {
36
36
  model: string;
37
37
  mqtt: string;
38
38
  options: string;
39
+ password: string;
39
40
  serialNumber: string;
40
- topicGetActive: string;
41
- topicGetCurrent: string;
41
+ topicGetStatusActive: string;
42
+ topicGetLockCurrentState: string;
43
+ topicGetOutletInUse: string;
42
44
  topicGetOn: string;
43
- topicGetTarget: string;
45
+ topicGetLockTargetState: string;
46
+ topicGetBrightness: string;
47
+ topicSetBrightness: string;
48
+ topicGetHue: string;
49
+ topicSetHue: string;
50
+ topicGetColorTemperature: string;
51
+ topicSetColorTemperature: string;
52
+ topicGetSaturation: string;
53
+ topicSetSaturation: string;
54
+ topicSetOutletInUse: string;
44
55
  topicSetOn: string;
45
- topicSetTarget: string;
56
+ topicSetTargetState: string;
46
57
  topics: string;
47
58
  type: string;
48
- valueActive: string;
49
- valueJammed: string;
59
+ username: string;
60
+ valueStatusActive: string;
61
+ valueLockStateJammed: string;
62
+ valueOutletInUse: string;
63
+ valueOutletNotInUse: string;
50
64
  valueOff: string;
51
65
  valueOn: string;
52
- valueSecured: string;
53
- valueUnsecured: string;
66
+ valueLockStateSecured: string;
67
+ valueLockStateUnsecured: string;
54
68
  values: string;
55
69
  verbose: string;
56
70
  version: string;
57
71
  };
58
72
  };
73
+ lightbulb: {
74
+ brightness: string;
75
+ futureBrightness: string;
76
+ hue: string;
77
+ futureHue: string;
78
+ colorTemperature: string;
79
+ futureColorTemperature: string;
80
+ saturation: string;
81
+ futureSaturation: string;
82
+ };
59
83
  lock: {
60
84
  badTarget: string;
61
85
  stateCurrentSecured: string;
@@ -79,6 +103,18 @@ declare const translations: {
79
103
  reconnectInMinutes: string;
80
104
  reconnectInSeconds: string;
81
105
  };
106
+ onOff: {
107
+ stateFutureOff: string;
108
+ stateFutureOn: string;
109
+ stateOn: string;
110
+ stateOff: string;
111
+ };
112
+ outlet: {
113
+ futureInUse: string;
114
+ futureNotInUse: string;
115
+ inUse: string;
116
+ notInUse: string;
117
+ };
82
118
  startup: {
83
119
  complete: string;
84
120
  newAccessory: string;
@@ -87,11 +123,5 @@ declare const translations: {
87
123
  unsupportedType: string;
88
124
  welcome: string[];
89
125
  };
90
- switch: {
91
- stateFutureOff: string;
92
- stateFutureOn: string;
93
- stateOn: string;
94
- stateOff: string;
95
- };
96
126
  };
97
127
  export { translations as strings };