homebridge-tuya-gate 1.0.0 → 1.1.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/README.md CHANGED
@@ -6,8 +6,8 @@ It sends the same command the Tuya app uses for **Lock Switch**: pulse `accessor
6
6
 
7
7
  ## What you get in Home
8
8
 
9
- - **Lock** — set to Unlock to open the gate (returns to Locked)
10
- - **Open Gate Switch** — momentary switch for the same open pulse (handy for automations)
9
+ - **Lock** (always) — Unlock opens the gate, then returns to Locked
10
+ - **Switch** (optional) — momentary control for the same open pulse; enable with `showSwitch`
11
11
 
12
12
  ## Requirements
13
13
 
@@ -41,12 +41,18 @@ Restart Homebridge, then add **Tuya Gate** from the Plugins page.
41
41
  "accessSecret": "YOUR_ACCESS_SECRET",
42
42
  "deviceId": "bf3f24408fb356db59qioh",
43
43
  "region": "eu",
44
- "lockCode": "accessory_lock"
44
+ "lockCode": "accessory_lock",
45
+ "showSwitch": false
45
46
  }
46
47
  ]
47
48
  }
48
49
  ```
49
50
 
51
+ | Option | Meaning |
52
+ |--------|---------|
53
+ | `showSwitch: false` (default) | Only the **Lock** appears in Home |
54
+ | `showSwitch: true` | **Lock** and a momentary **Switch** (same open command) |
55
+
50
56
  `region` must match the project data center (`eu` for `openapi.tuyaeu.com`).
51
57
 
52
58
  If you have a second lock channel, you can try `"lockCode": "ipc_c_lock"` (DP 232).
@@ -55,7 +61,7 @@ If you have a second lock channel, you can try `"lockCode": "ipc_c_lock"` (DP 23
55
61
 
56
62
  In the Home app:
57
63
 
58
- - When / scene: unlock **Open Gate**, or turn on **Open Gate Switch**
64
+ - Unlock **Open Gate**, or (if enabled) turn on **Open Gate Switch**
59
65
  - Then: turn on a light, send a notification, run a Shortcut for Siri announce, etc.
60
66
 
61
67
  ## Development
@@ -2,7 +2,8 @@
2
2
  "pluginAlias": "TuyaGate",
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
- "headerDisplay": "Opens a Tuya Gate Camera / video intercom lock from HomeKit by pulsing accessory_lock (DP 148).",
5
+ "headerDisplay": "Opens a Tuya Gate Camera / video intercom from HomeKit by pulsing accessory_lock (DP 148). By default Home only shows a Lock (Unlock = open). Optionally add a momentary Switch for the same action.",
6
+ "footerDisplay": "Tip: Keep “Show open switch” off for a cleaner Home screen. Turn it on if you prefer a switch tile for automations. Both controls send the same Tuya open command.",
6
7
  "schema": {
7
8
  "type": "object",
8
9
  "properties": {
@@ -10,7 +11,8 @@
10
11
  "title": "Name in Home",
11
12
  "type": "string",
12
13
  "default": "Open Gate",
13
- "required": true
14
+ "required": true,
15
+ "description": "Label for the lock (and optional switch) in the Home app."
14
16
  },
15
17
  "accessId": {
16
18
  "title": "Access ID / Client ID",
@@ -49,7 +51,13 @@
49
51
  "title": "Lock DP code",
50
52
  "type": "string",
51
53
  "default": "accessory_lock",
52
- "description": "Tuya property code for the gate open pulse. Default accessory_lock (DP 148)."
54
+ "description": "Tuya property code for the gate open pulse. Default accessory_lock (DP 148). Use ipc_c_lock for a second lock channel if needed."
55
+ },
56
+ "showSwitch": {
57
+ "title": "Show open switch",
58
+ "type": "boolean",
59
+ "default": false,
60
+ "description": "Off (default): only a Lock in Home — Unlock opens the gate. On: also add a momentary Switch that does the same open pulse (useful for some automations)."
53
61
  }
54
62
  }
55
63
  }
@@ -6,10 +6,11 @@ export declare class GateAccessory {
6
6
  private readonly accessory;
7
7
  private readonly client;
8
8
  private readonly displayName;
9
+ private readonly showSwitch;
9
10
  private readonly lockService;
10
- private readonly switchService;
11
+ private readonly switchService?;
11
12
  private busy;
12
- constructor(platform: TuyaGatePlatform, accessory: PlatformAccessory, client: TuyaClient, displayName: string);
13
+ constructor(platform: TuyaGatePlatform, accessory: PlatformAccessory, client: TuyaClient, displayName: string, showSwitch: boolean);
13
14
  private setLockTarget;
14
15
  private setSwitch;
15
16
  private pulseOpen;
package/dist/accessory.js CHANGED
@@ -7,14 +7,16 @@ class GateAccessory {
7
7
  accessory;
8
8
  client;
9
9
  displayName;
10
+ showSwitch;
10
11
  lockService;
11
12
  switchService;
12
13
  busy = false;
13
- constructor(platform, accessory, client, displayName) {
14
+ constructor(platform, accessory, client, displayName, showSwitch) {
14
15
  this.platform = platform;
15
16
  this.accessory = accessory;
16
17
  this.client = client;
17
18
  this.displayName = displayName;
19
+ this.showSwitch = showSwitch;
18
20
  const { Characteristic, Service } = this.platform;
19
21
  this.accessory.getService(Service.AccessoryInformation)
20
22
  ?.setCharacteristic(Characteristic.Manufacturer, 'Tuya')
@@ -29,12 +31,19 @@ class GateAccessory {
29
31
  .onSet((value) => this.setLockTarget(value));
30
32
  this.lockService.getCharacteristic(Characteristic.LockCurrentState)
31
33
  .onGet(() => Characteristic.LockCurrentState.SECURED);
32
- this.switchService = this.accessory.getService('Open Gate Switch')
33
- || this.accessory.addService(Service.Switch, `${displayName} Switch`, 'open-gate-switch');
34
- this.switchService.setCharacteristic(Characteristic.Name, `${displayName} Switch`);
35
- this.switchService.getCharacteristic(Characteristic.On)
36
- .onGet(() => false)
37
- .onSet((value) => this.setSwitch(value));
34
+ const existingSwitch = this.accessory.getService('Open Gate Switch')
35
+ || this.accessory.getService(Service.Switch);
36
+ if (showSwitch) {
37
+ this.switchService = existingSwitch
38
+ || this.accessory.addService(Service.Switch, `${displayName} Switch`, 'open-gate-switch');
39
+ this.switchService.setCharacteristic(Characteristic.Name, `${displayName} Switch`);
40
+ this.switchService.getCharacteristic(Characteristic.On)
41
+ .onGet(() => false)
42
+ .onSet((value) => this.setSwitch(value));
43
+ }
44
+ else if (existingSwitch) {
45
+ this.accessory.removeService(existingSwitch);
46
+ }
38
47
  }
39
48
  async setLockTarget(value) {
40
49
  const { Characteristic } = this.platform;
@@ -50,12 +59,12 @@ class GateAccessory {
50
59
  }, 50);
51
60
  }
52
61
  async setSwitch(value) {
53
- if (!value) {
62
+ if (!value || !this.switchService) {
54
63
  return;
55
64
  }
56
65
  await this.pulseOpen('switch');
57
66
  setTimeout(() => {
58
- this.switchService.updateCharacteristic(this.platform.Characteristic.On, false);
67
+ this.switchService?.updateCharacteristic(this.platform.Characteristic.On, false);
59
68
  }, 500);
60
69
  }
61
70
  async pulseOpen(source) {
@@ -1 +1 @@
1
- {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -46,7 +46,8 @@ class TuyaGatePlatform {
46
46
  const accessory = existing ?? new this.api.platformAccessory(name, uuid);
47
47
  accessory.context.deviceId = this.config.deviceId;
48
48
  const client = this.clientFactory(this.config);
49
- new accessory_1.GateAccessory(this, accessory, client, name);
49
+ const showSwitch = this.config.showSwitch === true;
50
+ new accessory_1.GateAccessory(this, accessory, client, name, showSwitch);
50
51
  if (!existing) {
51
52
  this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
52
53
  }
@@ -54,7 +55,7 @@ class TuyaGatePlatform {
54
55
  if (stale.length > 0) {
55
56
  this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, stale);
56
57
  }
57
- this.log.info(`Ready to open ${name} on device ${this.config.deviceId} (${this.config.lockCode || settings_1.DEFAULT_LOCK_CODE})`);
58
+ this.log.info(`Ready to open ${name} on device ${this.config.deviceId} (${this.config.lockCode || settings_1.DEFAULT_LOCK_CODE}; ${showSwitch ? 'lock+switch' : 'lock only'})`);
58
59
  }
59
60
  }
60
61
  exports.TuyaGatePlatform = TuyaGatePlatform;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "homebridge-tuya-gate",
3
3
  "displayName": "Tuya Gate",
4
- "version": "1.0.0",
4
+ "version": "1.1.0",
5
5
  "description": "Open a Tuya video intercom / gate lock from HomeKit (accessory_lock pulse).",
6
6
  "license": "Apache-2.0",
7
7
  "author": "mirimalulkasif",