@jay-d-tyler/homebridge-somfy-protect-automate 1.0.8 → 1.0.10
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/config.schema.json +24 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -31
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/config.schema.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"pluginAlias": "SomfyProtectAutomate",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
-
"headerDisplay": "This plugin
|
|
6
|
-
"footerDisplay": "💡 **Tip:**
|
|
5
|
+
"headerDisplay": "This plugin creates a switch called **Disarm Somfy Protect** that can be used in HomeKit automations to disarm your Somfy Protect alarm.",
|
|
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",
|
|
9
9
|
"properties": {
|
|
@@ -12,7 +12,28 @@
|
|
|
12
12
|
"type": "string",
|
|
13
13
|
"default": "Somfy Protect Automate",
|
|
14
14
|
"required": false
|
|
15
|
+
},
|
|
16
|
+
"alarmName": {
|
|
17
|
+
"title": "Somfy Protect Alarm Name",
|
|
18
|
+
"type": "string",
|
|
19
|
+
"required": true,
|
|
20
|
+
"default": "Somfy Protect",
|
|
21
|
+
"placeholder": "Somfy Protect",
|
|
22
|
+
"description": "The exact name of your Somfy Protect alarm as it appears in the Home app. Case-sensitive."
|
|
15
23
|
}
|
|
16
24
|
}
|
|
17
|
-
}
|
|
25
|
+
},
|
|
26
|
+
"layout": [
|
|
27
|
+
{
|
|
28
|
+
"type": "fieldset",
|
|
29
|
+
"title": "Configuration",
|
|
30
|
+
"expandable": false,
|
|
31
|
+
"items": [
|
|
32
|
+
{
|
|
33
|
+
"key": "alarmName",
|
|
34
|
+
"description": "Open the Home app, find your Somfy Protect alarm, and copy its exact name here."
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
18
39
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAQJ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAQJ,MAAM,YAAY,CAAC;yBAUJ,KAAK,GAAG;AAAxB,wBAEE"}
|
package/dist/index.js
CHANGED
|
@@ -63,13 +63,14 @@ class SomfyDisarmSwitch {
|
|
|
63
63
|
}
|
|
64
64
|
async setOn(value) {
|
|
65
65
|
const isOn = value;
|
|
66
|
-
this.platform.log.
|
|
66
|
+
this.platform.log.info('Switch triggered:', isOn ? 'ON' : 'OFF');
|
|
67
67
|
if (isOn) {
|
|
68
|
+
this.platform.log.info('Activating disarm sequence...');
|
|
68
69
|
await this.disarmSomfyAlarm();
|
|
69
70
|
setTimeout(() => {
|
|
70
71
|
this.switchState = false;
|
|
71
72
|
this.service.updateCharacteristic(this.platform.Characteristic.On, false);
|
|
72
|
-
this.platform.log.
|
|
73
|
+
this.platform.log.info('Switch reset to OFF (stateless)');
|
|
73
74
|
}, 1000);
|
|
74
75
|
}
|
|
75
76
|
this.switchState = isOn;
|
|
@@ -79,44 +80,53 @@ class SomfyDisarmSwitch {
|
|
|
79
80
|
}
|
|
80
81
|
async disarmSomfyAlarm() {
|
|
81
82
|
try {
|
|
82
|
-
this.platform.
|
|
83
|
+
if (!this.platform.config.alarmName) {
|
|
84
|
+
this.platform.log.error('Alarm name not configured! Please set "alarmName" in the plugin configuration.');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.platform.log.info(`Attempting to disarm Somfy Protect alarm: "${this.platform.config.alarmName}"...`);
|
|
83
88
|
const allAccessories = this.platform.api.platformAccessories || [];
|
|
84
89
|
this.platform.log.info(`Searching through ${allAccessories.length} total accessories in Homebridge...`);
|
|
85
90
|
if (allAccessories.length > 0) {
|
|
86
|
-
this.platform.log.info('
|
|
91
|
+
this.platform.log.info('Available accessories:');
|
|
87
92
|
allAccessories.forEach((acc, index) => {
|
|
88
|
-
this.platform.log.info(` ${index + 1}. "${acc.displayName}"
|
|
93
|
+
this.platform.log.info(` ${index + 1}. "${acc.displayName}"`);
|
|
89
94
|
});
|
|
90
95
|
}
|
|
91
96
|
else {
|
|
92
|
-
this.platform.log.warn('No accessories found in platformAccessories array.
|
|
93
|
-
this.platform.log.warn('
|
|
94
|
-
this.platform.log.warn('
|
|
95
|
-
|
|
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.');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const targetAccessory = allAccessories.find(acc => acc.displayName === this.platform.config.alarmName);
|
|
103
|
+
if (!targetAccessory) {
|
|
104
|
+
this.platform.log.error(`Could not find alarm with name "${this.platform.config.alarmName}"`);
|
|
105
|
+
this.platform.log.error('Available accessories:');
|
|
106
|
+
allAccessories.forEach(acc => {
|
|
107
|
+
this.platform.log.error(` - "${acc.displayName}"`);
|
|
108
|
+
});
|
|
109
|
+
this.platform.log.error('Please update the "alarmName" setting to match exactly.');
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
this.platform.log.info(`Found target accessory: "${targetAccessory.displayName}"`);
|
|
113
|
+
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);
|
|
116
|
+
if (!securityService) {
|
|
117
|
+
this.platform.log.error(`Accessory "${targetAccessory.displayName}" does not have a SecuritySystem service`);
|
|
118
|
+
this.platform.log.error('Make sure this is the correct alarm accessory.');
|
|
119
|
+
return;
|
|
96
120
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (isSomfyProtect) {
|
|
103
|
-
this.platform.log.info(`Found potential Somfy accessory: "${accessory.displayName}"`);
|
|
104
|
-
const services = accessory.services;
|
|
105
|
-
this.platform.log.info(` Services on this accessory: ${services.map(s => s.displayName || s.UUID).join(', ')}`);
|
|
106
|
-
const securityService = accessory.getService(this.platform.Service.SecuritySystem);
|
|
107
|
-
if (securityService) {
|
|
108
|
-
this.platform.log.info(`Found Somfy Protect security system: ${accessory.displayName}`);
|
|
109
|
-
const targetStateChar = securityService.getCharacteristic(this.platform.Characteristic.SecuritySystemTargetState);
|
|
110
|
-
if (targetStateChar) {
|
|
111
|
-
const DISARM = this.platform.Characteristic.SecuritySystemTargetState.DISARM;
|
|
112
|
-
await targetStateChar.setValue(DISARM);
|
|
113
|
-
this.platform.log.info(`Successfully sent DISARM command to ${accessory.displayName}`);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
121
|
+
this.platform.log.info('Found SecuritySystem service');
|
|
122
|
+
const targetStateChar = securityService.getCharacteristic(this.platform.Characteristic.SecuritySystemTargetState);
|
|
123
|
+
if (!targetStateChar) {
|
|
124
|
+
this.platform.log.error('SecuritySystem service does not have TargetState characteristic');
|
|
125
|
+
return;
|
|
118
126
|
}
|
|
119
|
-
this.platform.
|
|
127
|
+
const DISARM = this.platform.Characteristic.SecuritySystemTargetState.DISARM;
|
|
128
|
+
await targetStateChar.setValue(DISARM);
|
|
129
|
+
this.platform.log.info(`✓ Successfully sent DISARM command to "${targetAccessory.displayName}"`);
|
|
120
130
|
}
|
|
121
131
|
catch (error) {
|
|
122
132
|
this.platform.log.error('Error disarming Somfy alarm:', error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,GAAG,gDAAgD,CAAC;AACrE,MAAM,aAAa,GAAG,sBAAsB,CAAC;
|
|
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.
|
|
5
|
+
"version": "1.0.10",
|
|
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",
|