@jay-d-tyler/homebridge-somfy-protect-automate 1.0.10 → 1.0.15

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
@@ -27,6 +27,20 @@ This plugin requires the main Somfy Protect plugin to be installed and configure
27
27
 
28
28
  Make sure your Somfy Protect alarm is working in HomeKit before installing this automation helper.
29
29
 
30
+ ## ⚠️ Important: Bridge Configuration
31
+
32
+ **Both plugins must run on the Default Bridge (not child bridges)** for cross-plugin communication to work.
33
+
34
+ ### How to Configure:
35
+
36
+ 1. In Homebridge Config UI X, go to **Plugins**
37
+ 2. Click on **Somfy Protect** → Settings (gear icon)
38
+ 3. Under **Bridge Settings**, select **"Default Bridge"**
39
+ 4. Do the same for **Somfy Protect Automate**
40
+ 5. Restart Homebridge
41
+
42
+ **Why?** Child bridges isolate plugins from each other. Since this plugin needs to access the Somfy Protect alarm accessory, both must share the same bridge (the main one).
43
+
30
44
  ## Installation
31
45
 
32
46
  ### Option 1: Homebridge Config UI X (Recommended)
@@ -54,7 +68,7 @@ Add this platform to your Homebridge `config.json`:
54
68
  {
55
69
  "platform": "SomfyProtectAutomate",
56
70
  "name": "Somfy Protect Automate",
57
- "buttonLabel": "Disarm Somfy"
71
+ "alarmName": "Somfy Protect"
58
72
  }
59
73
  ]
60
74
  }
@@ -65,8 +79,8 @@ Add this platform to your Homebridge `config.json`:
65
79
  | Option | Type | Required | Default | Description |
66
80
  |--------|------|----------|---------|-------------|
67
81
  | `platform` | string | Yes | `SomfyProtectAutomate` | Must be `SomfyProtectAutomate` |
68
- | `name` | string | Yes | `Somfy Protect Automate` | The name that appears in Homebridge logs |
69
- | `buttonLabel` | string | No | `Disarm Somfy` | The name of the switch in the Home app |
82
+ | `name` | string | No | `Somfy Protect Automate` | The name that appears in Homebridge logs |
83
+ | `alarmName` | string | Yes | `Somfy Protect` | The exact name of your Somfy Protect alarm as shown in the Home app |
70
84
 
71
85
  ## Usage
72
86
 
@@ -2,7 +2,7 @@
2
2
  "pluginAlias": "SomfyProtectAutomate",
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
- "headerDisplay": "This plugin creates a switch called **Disarm Somfy Protect** that can be used in HomeKit automations to disarm your Somfy Protect alarm.",
5
+ "headerDisplay": "This plugin creates a switch called **Disarm Somfy Protect** that can be used in HomeKit automations to disarm your Somfy Protect alarm.\n\n⚠️ **IMPORTANT:** Both this plugin and the Somfy Protect plugin must run on the **Default Bridge** (not child bridges) for cross-plugin communication to work. Go to each plugin's settings → Bridge Settings → Select \"Default Bridge\".",
6
6
  "footerDisplay": "💡 **Tip:** Find your alarm's exact name in the Home app, then enter it above. You can rename the switch in the Home app if desired.",
7
7
  "schema": {
8
8
  "type": "object",
package/dist/index.js CHANGED
@@ -16,9 +16,11 @@ class SomfyProtectAutomatePlatform {
16
16
  this.api = api;
17
17
  this.Service = this.api.hap.Service;
18
18
  this.Characteristic = this.api.hap.Characteristic;
19
- this.log.debug('Finished initializing platform:', this.config.name);
19
+ this.log.info('=== Somfy Protect Automate v1.0.10 Initializing ===');
20
+ this.log.info('Platform name:', this.config.name);
21
+ this.log.info('Alarm name configured:', this.config.alarmName || '(not set)');
20
22
  this.api.on('didFinishLaunching', () => {
21
- this.log.debug('Executed didFinishLaunching callback');
23
+ this.log.info('Homebridge finished launching, discovering devices...');
22
24
  this.discoverDevices();
23
25
  });
24
26
  }
@@ -27,8 +29,18 @@ class SomfyProtectAutomatePlatform {
27
29
  this.accessories.push(accessory);
28
30
  }
29
31
  discoverDevices() {
32
+ this.log.info('Starting device discovery...');
30
33
  const buttonLabel = 'Disarm Somfy Protect';
31
34
  const uuid = this.api.hap.uuid.generate(buttonLabel);
35
+ this.log.info(`Generated UUID for "${buttonLabel}": ${uuid}`);
36
+ const oldAccessoriesToRemove = this.accessories.filter(acc => acc.UUID !== uuid);
37
+ if (oldAccessoriesToRemove.length > 0) {
38
+ this.log.info(`Removing ${oldAccessoriesToRemove.length} old cached accessory(ies)...`);
39
+ oldAccessoriesToRemove.forEach(acc => {
40
+ this.log.info(` - Removing: "${acc.displayName}"`);
41
+ });
42
+ this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, oldAccessoriesToRemove);
43
+ }
32
44
  const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
33
45
  if (existingAccessory) {
34
46
  this.log.info('Restoring existing accessory from cache:', existingAccessory.displayName);
@@ -38,7 +50,9 @@ class SomfyProtectAutomatePlatform {
38
50
  this.log.info('Adding new accessory:', buttonLabel);
39
51
  const accessory = new this.api.platformAccessory(buttonLabel, uuid);
40
52
  new SomfyDisarmSwitch(this, accessory);
53
+ this.log.info('Registering accessory with Homebridge...');
41
54
  this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
55
+ this.log.info('✓ Accessory registered successfully');
42
56
  }
43
57
  }
44
58
  }
@@ -50,6 +64,7 @@ class SomfyDisarmSwitch {
50
64
  constructor(platform, accessory) {
51
65
  this.platform = platform;
52
66
  this.accessory = accessory;
67
+ this.platform.log.info(`Initializing switch: "${accessory.displayName}"`);
53
68
  this.accessory.getService(this.platform.Service.AccessoryInformation)
54
69
  .setCharacteristic(this.platform.Characteristic.Manufacturer, 'Jay Tyler')
55
70
  .setCharacteristic(this.platform.Characteristic.Model, 'Somfy Disarm Switch')
@@ -57,9 +72,11 @@ class SomfyDisarmSwitch {
57
72
  this.service = this.accessory.getService(this.platform.Service.Switch)
58
73
  || this.accessory.addService(this.platform.Service.Switch);
59
74
  this.service.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName);
75
+ this.platform.log.info('Registering characteristic handlers...');
60
76
  this.service.getCharacteristic(this.platform.Characteristic.On)
61
77
  .onSet(this.setOn.bind(this))
62
78
  .onGet(this.getOn.bind(this));
79
+ this.platform.log.info('✓ Switch initialized and ready');
63
80
  }
64
81
  async setOn(value) {
65
82
  const isOn = value;
@@ -85,25 +102,30 @@ class SomfyDisarmSwitch {
85
102
  return;
86
103
  }
87
104
  this.platform.log.info(`Attempting to disarm Somfy Protect alarm: "${this.platform.config.alarmName}"...`);
88
- const allAccessories = this.platform.api.platformAccessories || [];
89
- this.platform.log.info(`Searching through ${allAccessories.length} total accessories in Homebridge...`);
90
- if (allAccessories.length > 0) {
105
+ const homebridgeAPI = this.platform.api;
106
+ if (!homebridgeAPI._bridge) {
107
+ this.platform.log.error('Could not access Homebridge bridge instance');
108
+ return;
109
+ }
110
+ const bridge = homebridgeAPI._bridge;
111
+ const bridgedAccessories = bridge.bridgedAccessories || [];
112
+ this.platform.log.info(`Searching through ${bridgedAccessories.length} HAP accessories on the bridge...`);
113
+ if (bridgedAccessories.length > 0) {
91
114
  this.platform.log.info('Available accessories:');
92
- allAccessories.forEach((acc, index) => {
115
+ bridgedAccessories.forEach((acc, index) => {
93
116
  this.platform.log.info(` ${index + 1}. "${acc.displayName}"`);
94
117
  });
95
118
  }
96
119
  else {
97
- this.platform.log.warn('No accessories found in platformAccessories array.');
98
- this.platform.log.warn('This likely means the Homebridge API does not expose other plugins\' accessories.');
99
- this.platform.log.warn('You may need to use a different approach to control your alarm.');
120
+ this.platform.log.error('No accessories found on the bridge.');
121
+ this.platform.log.error('Make sure both plugins are running on the Default Bridge (not child bridges).');
100
122
  return;
101
123
  }
102
- const targetAccessory = allAccessories.find(acc => acc.displayName === this.platform.config.alarmName);
124
+ const targetAccessory = bridgedAccessories.find((acc) => acc.displayName === this.platform.config.alarmName);
103
125
  if (!targetAccessory) {
104
126
  this.platform.log.error(`Could not find alarm with name "${this.platform.config.alarmName}"`);
105
127
  this.platform.log.error('Available accessories:');
106
- allAccessories.forEach(acc => {
128
+ bridgedAccessories.forEach((acc) => {
107
129
  this.platform.log.error(` - "${acc.displayName}"`);
108
130
  });
109
131
  this.platform.log.error('Please update the "alarmName" setting to match exactly.');
@@ -111,21 +133,22 @@ class SomfyDisarmSwitch {
111
133
  }
112
134
  this.platform.log.info(`Found target accessory: "${targetAccessory.displayName}"`);
113
135
  const services = targetAccessory.services;
114
- this.platform.log.info(` Services: ${services.map(s => s.displayName || s.UUID).join(', ')}`);
115
- const securityService = targetAccessory.getService(this.platform.Service.SecuritySystem);
136
+ this.platform.log.info(` Services: ${services.map((s) => s.displayName || s.UUID).join(', ')}`);
137
+ const securityService = services.find((s) => s.UUID === this.platform.Service.SecuritySystem.UUID);
116
138
  if (!securityService) {
117
139
  this.platform.log.error(`Accessory "${targetAccessory.displayName}" does not have a SecuritySystem service`);
118
140
  this.platform.log.error('Make sure this is the correct alarm accessory.');
119
141
  return;
120
142
  }
121
143
  this.platform.log.info('Found SecuritySystem service');
122
- const targetStateChar = securityService.getCharacteristic(this.platform.Characteristic.SecuritySystemTargetState);
144
+ const targetStateChar = securityService.characteristics.find((c) => c.UUID === this.platform.Characteristic.SecuritySystemTargetState.UUID);
123
145
  if (!targetStateChar) {
124
146
  this.platform.log.error('SecuritySystem service does not have TargetState characteristic');
125
147
  return;
126
148
  }
127
149
  const DISARM = this.platform.Characteristic.SecuritySystemTargetState.DISARM;
128
- await targetStateChar.setValue(DISARM);
150
+ this.platform.log.info(`Setting SecuritySystemTargetState to DISARM (${DISARM})...`);
151
+ targetStateChar.setValue(DISARM);
129
152
  this.platform.log.info(`✓ Successfully sent DISARM command to "${targetAccessory.displayName}"`);
130
153
  }
131
154
  catch (error) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@jay-d-tyler/homebridge-somfy-protect-automate",
3
3
  "displayName": "Somfy Protect Automate",
4
4
  "type": "module",
5
- "version": "1.0.10",
5
+ "version": "1.0.15",
6
6
  "private": false,
7
7
  "description": "A Homebridge plugin that provides a stateless switch to disarm Somfy Protect alarms via automations",
8
8
  "author": "Jay Tyler",
@@ -32,8 +32,8 @@
32
32
  "README.md"
33
33
  ],
34
34
  "engines": {
35
- "node": "^18.17.0 || ^20.9.0 || ^22.0.0",
36
- "homebridge": "^1.6.0 || ^2.0.0-beta.0"
35
+ "node": ">=18.17.0",
36
+ "homebridge": ">=1.6.0"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "rimraf ./dist && tsc",