homebridge-ecobee-security 0.5.0 → 0.7.1

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
@@ -1,5 +1,44 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.1
4
+
5
+ - Keypad unlock: the plugin now reads ecobee's current state first and only disarms when the system
6
+ is armed, arming or alarming. A disarm sent while it was already off was followed by ecobee camera
7
+ activity alerts.
8
+ - An intrusion incident only shows as **Alarm triggered** while the system is armed. ecobee also
9
+ opens one for a camera activity alert while the system is off, which briefly showed as an alarm in
10
+ the Home app (and counted as one for security holds). Smoke alarms still show at any time.
11
+
12
+ ## 0.7.0
13
+
14
+ - New setting **Disarm when a door is unlocked with its keypad** (`keypadDisarm`, off by default,
15
+ in a new **Door keypads** card): entering a code on a smart lock's keypad turns the security system
16
+ off, like Nest Guard with a Nest × Yale lock. Works with locks from the same Homebridge that report
17
+ keypad unlocks (HomeKit's Lock Last Known Action, read over HAP on 127.0.0.1; needs insecure mode).
18
+ The settings page lists the locks found (`keypadLocks`; no list = all).
19
+
20
+ ## 0.6.0
21
+
22
+ - Security holds now keep Away off while a plugin (a robot vacuum) works, instead of just switching
23
+ Away to Home (ecobee's Stay). A plugin counts as out from its first hold until it releases, even if nothing was held.
24
+ - Away from the Home app (a scene, automation, Siri or the tile) while a robot is out waits for it:
25
+ the hold is kept (or started), Home meanwhile, and the release arms Away; the tile shows Arming
26
+ Away while it waits. Home, Night and Off in the Home app, and an alarm, still cancel the hold
27
+ and the waiting Away.
28
+ - New setting **Arm Away Now switch** (`armAwayNowSwitch`, in Security holds, off by default): adds
29
+ an Arm Away Now switch to the Home app that arms Away now and sends any robots that are out back to
30
+ their base.
31
+ - Away armed in the ecobee app or at the keypad while a robot is out asks the robot to head back to
32
+ its base before the exit delay ends, or to stop where it is if it can't make it. Plugins give a halt
33
+ endpoint with their hold request (`&halt=`), and the request says when the exit delay ends
34
+ (`&armAt=`; left out for a keypad Away, which is only seen once armed: the robot stops at once). A
35
+ robot that moves again asks for a new hold.
36
+ - New setting **Extra time for tasks to finish** (`taskWaitSeconds`, default 120, 0 = off):
37
+ when Away is armed from the ecobee app or the Arm Away Now switch while a task is running (like a
38
+ robot heading back to its base), the exit delay is extended by this much, and brought forward again
39
+ once the task is done (never earlier than it would have ended). A robot says it's docked, or stopped, with
40
+ `/release`; robots answer the halt with `returning: true` when they head back.
41
+
3
42
  ## 0.5.0
4
43
 
5
44
  - The `pollInterval` setting is gone: the security state is read every 10 s, as often as the ecobee
@@ -28,35 +67,7 @@
28
67
 
29
68
  ## 0.4.1
30
69
 
70
+ First public release.
71
+
31
72
  - Plugin icon in the README.
32
73
  - Catch and log errors creating the storage folder or control socket instead of stopping the bridge.
33
-
34
- ## 0.4.0
35
-
36
- - `offerNight`: adds Night to the Home app; it arms ecobee's Stay and keeps showing Night. Changing
37
- the setting recreates the security system in HomeKit (the Home app doesn't pick up new modes on an
38
- existing control).
39
- - `alarmTrigger: "entryDelay"`: show Alarm triggered only once an intrusion has outlasted the entry
40
- delay without a disarm, instead of as soon as ecobee opens the incident. Smoke still shows at once.
41
- - `smokeSensor` (on by default): a separate Smoke Alarm accessory that detects smoke while ecobee has a smoke-alarm
42
- incident open.
43
- - Air quality (`airQuality`, on by default): for ecobee thermostats with an air quality sensor, an
44
- Air Quality Sensor (level, VOC) and a Carbon Dioxide Sensor (ppm, alert at `co2Alert`, 1000 ppm).
45
- - The accessory reports the plugin version as its firmware version.
46
- - The hold API refuses a hold while any alarm incident is open, whichever `alarmTrigger` is set.
47
-
48
- ## 0.3.0
49
-
50
- - Sign in from the plugin's settings page in the Homebridge UI with your ecobee email, password
51
- and MFA code. No terminal or browser developer tools needed; the website sign-in is still there
52
- as a fallback.
53
- - `bin/ecobee-login.js` signs in with email and password by default; `--browser` for the old way.
54
-
55
- ## 0.2.0
56
-
57
- - Control socket (`control.sock`) so other plugins can hold the system at Stay and release it to
58
- Away afterwards (used by homebridge-narwal while the robot vacuum cleans).
59
-
60
- ## 0.1.0
61
-
62
- - First release: arm Stay / Away, disarm and alarm state in Apple Home, browser sign-in script.
package/README.md CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  # homebridge-ecobee-security
4
4
 
5
- Shows **ecobee Smart Security** in Apple Home as a security system: arm **Stay**, arm **Away**,
6
- **disarm**, and **Alarm triggered** when ecobee has an open intrusion or smoke incident. It also adds
5
+ Shows **ecobee Smart Security** in Apple Home as a security system: set it to **Home**, **Away** or
6
+ **Off** (ecobee's Stay, Away and disarmed), and see **Alarm triggered** when ecobee has an open
7
+ intrusion or smoke incident. It also adds
7
8
  **air quality** sensors for ecobee thermostats that have one (ecobee Premium), which ecobee's own
8
9
  HomeKit integration leaves out. Works with
9
10
  Siri ("set the security system to away") and Home automations. ecobee removed Smart Security from
@@ -72,76 +73,130 @@ node <plugin folder>/bin/ecobee-login.js --browser # website sign-in
72
73
 
73
74
  | Setting | Default | |
74
75
  |---|---|---|
75
- | `offerNight` | `false` | Adds Night to the Home app. ecobee has no Night mode, so Night arms Stay and the tile keeps showing Night until the state changes (a Stay armed elsewhere shows as Stay). HomeKit only picks up a changed list of modes on a new control, so changing this setting recreates the security system in the Home app: set up scenes and automations that use it again. |
76
+ | `offerNight` | `false` | Adds Night to the Home app. ecobee has no Night mode, so Night arms ecobee's Stay, and the tile keeps showing Night until the state changes (Stay armed in the ecobee app or at the keypad shows as Home). HomeKit only picks up a changed list of modes on a new control, so changing this setting recreates the security system in the Home app: set up scenes and automations that use it again. |
76
77
  | `alarmTrigger` | `"incident"` | When the tile enters **Triggered**: `"incident"` immediately, when ecobee opens an incident as a door or sensor trips while armed (mirrors the ecobee app); `"entryDelay"` only after the entry (disarm) delay runs out without a disarm. Smoke alarms always trigger immediately. |
77
78
  | `smokeSensor` | `true` | Adds a separate **Smoke Alarm** accessory (a Smoke Sensor) that detects smoke while ecobee has a smoke-alarm incident open, for automations and Home app smoke notifications. Set to `false` to remove it. |
78
- | `allowHolds` | `false` | Lets other Homebridge plugins ask for a **security hold** (see below), e.g. so a robot vacuum can clean while you're away without setting off the motion sensors. Off: hold requests are refused, and a hold left over from before is dropped without re-arming Away. |
79
+ | `allowHolds` | `false` | Lets other plugins, like a robot vacuum, keep the system from arming Away while their task runs (see [Security holds](#security-holds)). |
80
+ | `holdPlugins` | all | The plugins allowed to do that; the settings page lists them. |
81
+ | `armAwayNowSwitch` | `false` | Adds an **Arm Away Now** switch: arms Away immediately and asks any task in progress to stop (a robot goes home). |
82
+ | `taskWaitSeconds` | `120` | How much longer the Away countdown may wait for a task to finish, e.g. a robot getting home (0: don't wait). |
83
+ | `keypadDisarm` | `false` | Turns the security system off when a door is unlocked with a code on its keypad (see [Keypad unlock](#keypad-unlock)). |
84
+ | `keypadLocks` | all | The locks that do that, by serial number; the settings page lists the ones found. |
79
85
  | `airQuality` | `true` | For each thermostat with an air quality sensor: an accessory "&lt;thermostat&gt; Air Quality" with an **Air Quality Sensor** (overall level; VOC as ecobee reports it, in ppb, which the Home app labels µg/m³) and a **Carbon Dioxide Sensor** (ppm). Read every 5 minutes. The level follows the ecobee app's Clean–Poor bar: its first two segments are Excellent, then Good, Fair, Inferior, Poor; Unknown while the sensor calibrates. |
80
86
  | `co2Alert` | `1000` | CO2 (ppm) at or above which the Carbon Dioxide Sensor reports abnormal levels. |
81
87
 
82
88
  ## How it behaves
83
89
 
84
90
  - **Arm Away** uses ecobee's Away exit delay (60 s by default), just like the app. During the
85
- delay the Home app shows "Arming…" (current Disarmed, target Away). Stay uses the Stay exit delay
86
- (0 by default). Disarm needs no PIN.
91
+ delay the Home app shows "Arming…" (current Off, target Away). Home and Night use ecobee's Stay
92
+ exit delay (0 by default). Off needs no PIN.
87
93
  - **Changes from elsewhere** (ecobee app, keypad, ecobee automations) show up within 10 s, about
88
94
  as fast as in the ecobee app (it polls too), and quickly after an exit delay ends.
89
- - **Alarm triggered** while ecobee lists an open incident (see `alarmTrigger` above for when it
90
- starts showing). Disarming clears it. Every change in the incident list is logged.
91
- - **Siri:** the Home app calls Stay "Home". Asking Siri for Home or for Stay mode both arm Stay.
95
+ - **Alarm triggered** while ecobee lists an open incident: a smoke alarm at any time, an intrusion
96
+ only while armed (ecobee also opens one for a camera activity alert while the system is off; that
97
+ isn't shown as an alarm). See `alarmTrigger` above for when it starts showing. Disarming clears it. Every change in the incident list is logged.
98
+ - **Siri:** asking for Home or for Stay mode both set Home (ecobee's Stay).
92
99
  - **Night** is only offered with `offerNight`; ecobee has no Night mode of its own.
93
100
  - After three failed reads in a row the accessory shows a fault; reads back off up to 5 minutes.
94
- - **Security holds** for other plugins, with `allowHolds`: see below.
101
+ - **Keypad unlock:** unlocking a door with its keypad can turn the system off: see below.
102
+ - **Security holds** let other plugins, like a robot vacuum, keep the system from arming Away while they work: see below.
103
+
104
+ ## Keypad unlock
105
+
106
+ Turn on **Disarm when a door is unlocked with its keypad** (`keypadDisarm`) and entering a code on a
107
+ smart lock's keypad turns the security system off, like Nest Guard did with a Nest × Yale lock.
108
+ Family and guests use their lock codes; the lock's own app decides whose code works when (guest
109
+ schedules, expiry), so the plugin needs no codes of its own.
110
+
111
+ - **Which locks:** any lock in Apple Home from the same Homebridge whose plugin reports *how* it was
112
+ unlocked (HomeKit's Lock Last Known Action), for example homebridge-nest-accfactory's Nest × Yale
113
+ locks. The settings page lists the locks found; untick the ones that shouldn't disarm. Locks
114
+ paired to Apple Home directly (not through Homebridge) can't be seen.
115
+ - **Only when armed:** the plugin checks ecobee's current state first and sends nothing if the system
116
+ is already off.
117
+ - **Only keypad unlocks** count: not the app, Siri, automations, a key or the thumb turn. Any code
118
+ that opens the lock disarms, yours included.
119
+ - **Speed:** the plugin checks the locks every second; the disarm reaches ecobee about as fast as
120
+ one from the Home app. How quickly the lock reports the unlock depends on the lock and its plugin. Unlock before you open the door: ecobee opens an incident
121
+ as soon as a door opens while armed, and the disarm clears it, as with the ecobee keypad.
122
+ - **Locking** from the outside doesn't arm: most locks can't tell that from the thumb turn inside.
123
+ - A disarm ends any [security hold](#security-holds), as a change from the Home app does.
124
+ - Needs Homebridge's **insecure mode** (Homebridge Settings > Homebridge Insecure Mode / Accessory
125
+ Control; the Homebridge UI's accessory control uses it too): the plugin reads the locks over HAP on
126
+ 127.0.0.1 with the bridge PIN, since each child bridge runs in its own process. The log says if
127
+ it isn't on.
95
128
 
96
129
  ## Security holds
97
130
 
98
- A security hold lets another Homebridge plugin, such as a robot vacuum, keep the motion sensors from
99
- going off while it moves around the house when you're away. The plugin can only *ask*; this plugin
100
- decides, by four rules:
101
-
102
- 1. **Hold:** if the system is armed Away (or arming Away), it's switched to Stay. If an alarm is in
103
- progress, or ecobee can't be read, the hold is refused. Otherwise nothing changes.
104
- 2. **Release:** once **every** plugin that asked is done, and the system is still in Stay, it's
105
- armed Away again (with the normal exit delay).
106
- 3. **Your change wins:** anything someone else does during a hold — disarm, arm Away, a change in
107
- the Home app, an alarm — cancels it, and the system is left as it is.
108
- 4. **No timers:** nothing changes unless a plugin asks or you act.
109
-
110
- Every decision uses ecobee's state read at that moment, not the last poll. Holds are off until you
111
- turn on **Allow security holds** in the settings' **Security holds** section and tick each plugin that
112
- may ask (`holdPlugins`): it lists installed plugins that declare they use holds, and any plugin that
113
- has asked. A plugin that isn't ticked is refused (it can still release a hold it already has).
114
- Turning holds off drops a hold left over from before (without arming Away).
115
-
116
- **Limits** that follow from these rules:
117
-
118
- - **Your own Stay looks like the hold's Stay.** If you disarm and re-arm Stay in the ecobee app or at
119
- the keypad within a few seconds (between two reads), or while the bridge is restarting, the
120
- release still arms Away: ecobee doesn't say who last changed the state. Changes in the Home app are
121
- always seen.
122
- - **Your change wins even with a robot still out.** After you cancel a hold (say, disarm), arming
123
- Away while the robot is still cleaning can set off the motion sensors: a plugin only asks for a
124
- hold when it starts.
125
- - **Plugins identify themselves.** Any plugin running as the homebridge user can reach the socket,
126
- and the plugin name it gives is its own claim: the list keeps honest plugins apart, it isn't a
127
- lock. Two requests with the same name share one hold.
128
- - **A plugin that never releases leaves the system in Stay** until you change it.
129
-
130
- **API** (for plugin authors): a Unix socket at `<homebridge storage>/ecobee-security/control.sock`
131
- (mode 600, homebridge user only), declared in `package.json` as
132
- `"homebridge-security-hold": { "socket": "ecobee-security/control.sock" }` so plugins that support
133
- holds, like homebridge-narwal-freo, can list it. Plugins that ask for holds can declare
134
- `"homebridge-security-hold": { "client": true }` to show up in the list before their first request.
135
- The full API: [Security hold](https://github.com/seanfletchr/homebridge-narwal-freo/blob/main/docs/security-hold.md).
136
-
137
- - `POST /hold?by=<name>&plugin=<package>` → `{ "ok": true, "held": true|false, "state": "…" }`,
138
- or `"ok": false` with a `"reason"`: don't start. `plugin` is optional; without it the plugin is
139
- listed (and allowed) under its `by` name.
140
- - `POST /release?by=<name>&plugin=<package>` → `{ "released": true|false, "state": "…", "waiting": [names] }`;
141
- `waiting` lists holders still out.
142
- - With `allowHolds` off or the plugin not ticked, both answer 403 (a release from a current holder
143
- is always accepted); if ecobee can't be read (release) or isn't connected
144
- yet, a 5xx with `"error"` — try again later. Holds survive restarts (in `state.json`).
131
+ Things that move while you're out set off ecobee's motion sensors: a robot vacuum cleaning, or an AC
132
+ blowing plants around in front of a sensor. **Security holds** let other Homebridge plugins keep the
133
+ system from arming **Away** while their task runs. Instead the system is set to **Home** (Stay in the
134
+ ecobee app): doors and windows stay armed, motion sensors don't.
135
+
136
+ Plugins that support holds include
137
+ [homebridge-narwal-freo](https://github.com/seanfletchr/homebridge-narwal-freo) (robot vacuum). Any
138
+ plugin can add support; see [For plugin authors](#for-plugin-authors).
139
+
140
+ ### Turning it on
141
+
142
+ 1. In this plugin's settings, open **Security holds**, turn on **Allow security holds**, and tick the
143
+ plugins that may use them. (Plugins appear in the list once installed, or after they first ask.)
144
+ 2. Turn on the matching option in the other plugin's settings.
145
+
146
+ ### What happens
147
+
148
+ Using a robot vacuum as the example:
149
+
150
+ | Situation | What the security system does |
151
+ |---|---|
152
+ | The robot starts cleaning while the system is armed **Away** | Switches to Home, and goes back to Away when the robot is done. |
153
+ | The robot starts while the system is set to **Home**, **Night** or **Off** | Nothing changes. |
154
+ | You arm **Away in the Home app** while the robot is cleaning (the tile, a scene, an automation or Siri) | Stays in Home until the robot is done, then arms Away. The tile shows "Arming…" meanwhile. |
155
+ | You want Away **now** | Turn on the **Arm Away Now** switch (see below). It arms Away right away and sends the robot home. |
156
+ | You arm **Away in the ecobee app** while the robot is cleaning | Sends the robot home, and gives it up to 2 extra minutes on the countdown. It arms as soon as the robot is docked, but never earlier than your normal countdown. If the robot won't make it in time, it stops where it is before the sensors arm. |
157
+ | You arm **Away at the keypad** while the robot is cleaning | Stops the robot where it is. ecobee doesn't report keypad countdowns, so this happens once Away is already armed: there's a window of up to 10 seconds in which a motion sensor could still catch the robot. |
158
+ | You change the mode yourself while the robot is cleaning (in any app or at the keypad) | Your choice wins: when the robot is done, the system is left as you set it. |
159
+ | An alarm is going off, or ecobee can't be reached | The robot isn't allowed to start. |
160
+
161
+ Other plugins work the same way; what "stop" means is up to each one (a robot pauses or goes home,
162
+ an AC turns off). Several at once are fine: Away comes back once all of them are done.
163
+
164
+ ### Settings
165
+
166
+ In the **Security holds** section of the settings:
167
+
168
+ - **Allow security holds** (`allowHolds`) and the list of plugins allowed to ask (`holdPlugins`).
169
+ Turning holds off cancels any hold in progress without re-arming Away.
170
+ - **Arm Away Now switch** (`armAwayNowSwitch`): adds a switch to the Home app that arms Away
171
+ immediately, as from the ecobee app, asking any task in progress to stop (a robot goes home). Use it
172
+ from the Home app, a scene, or Siri ("turn on Arm Away Now").
173
+ - **Extra time for tasks to finish** (`taskWaitSeconds`, default 120 seconds, 0 to turn it off): how
174
+ much longer the Away countdown may wait for a task to wrap up, e.g. a robot getting back to its
175
+ base. It arms as soon as the task is done.
176
+
177
+ ### Good to know
178
+
179
+ - **Only Away is affected.** If your ecobee Stay mode also watches the motion sensors in question,
180
+ holds won't help there.
181
+ - **A quick re-arm in the ecobee app can be missed.** If you disarm and re-arm Stay within a few
182
+ seconds in the ecobee app or at the keypad (or while Homebridge restarts), the plugin may not
183
+ notice, and will arm Away when the task is done. Changes in the Home app are always noticed.
184
+ - **A plugin that can't be told to stop** keeps going when Away is armed at the keypad or in the
185
+ ecobee app. The log says so.
186
+ - **A plugin that never reports it's done** leaves the system in Home until you change it.
187
+ (homebridge-narwal-freo also lets go if its robot hasn't moved for 10 minutes, e.g. when it's
188
+ stuck.)
189
+ - **The allowed-plugins list is a courtesy, not a lock.** Any plugin running in your Homebridge can
190
+ reach the hold API and give any name.
191
+
192
+ ### For plugin authors
193
+
194
+ Holds suit any plugin whose task could trip a motion sensor. Plugins ask over a Unix socket at `<homebridge storage>/ecobee-security/control.sock` (homebridge user
195
+ only). This plugin declares it in `package.json` as
196
+ `"homebridge-security-hold": { "socket": "ecobee-security/control.sock" }`; plugins that ask for holds
197
+ can declare `"homebridge-security-hold": { "client": true }` to appear in the settings list. The API
198
+ (hold, release, and being asked to stop or finish before Away arms) is documented in
199
+ [Security hold](https://github.com/seanfletchr/homebridge-narwal-freo/blob/main/docs/security-hold.md).
145
200
 
146
201
  ## API notes
147
202
 
@@ -3,7 +3,7 @@
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
5
  "customUi": true,
6
- "headerDisplay": "Shows ecobee Smart Security as a security system in Apple Home (arm Stay / Away, disarm, alarm state). Unofficial: uses the same ecobee cloud as the app.",
6
+ "headerDisplay": "Adds ecobee Smart Security to Apple Home: set it to Home, Away or Off, and see alarms. Unofficial. It uses the same ecobee cloud as the ecobee app.",
7
7
  "schema": {
8
8
  "type": "object",
9
9
  "properties": {
@@ -19,18 +19,18 @@
19
19
  "x-schema-form": {
20
20
  "type": "password"
21
21
  },
22
- "description": "Filled in when you sign in above. Only needed again if ecobee signs the plugin out (password change, 'sign out everywhere')."
22
+ "description": "Filled in when you sign in. You only need a new one if ecobee signs the plugin out, for example after a password change."
23
23
  },
24
24
  "homeId": {
25
25
  "title": "Home ID",
26
26
  "type": "string",
27
- "description": "Only needed if the account has more than one home; the log lists them."
27
+ "description": "Only needed if your account has more than one home. The log lists your homes."
28
28
  },
29
29
  "offerNight": {
30
30
  "title": "Offer Night",
31
31
  "type": "boolean",
32
32
  "default": false,
33
- "description": "Adds the Night setting for more specific automations. ecobee has no \"Night\" mode, so Night arms Stay. Changing this recreates the security system in the Home app; scenes and automations using it must be set up again."
33
+ "description": "Adds a Night mode to use in automations. ecobee has no Night mode, so Night arms ecobee's Stay. Changing this recreates the security system in the Home app, so you need to set up its scenes and automations again."
34
34
  },
35
35
  "alarmTrigger": {
36
36
  "title": "Enter Triggered State",
@@ -44,25 +44,25 @@
44
44
  ]
45
45
  },
46
46
  {
47
- "title": "After the Entry/Disarm delay",
47
+ "title": "After the entry delay",
48
48
  "enum": [
49
49
  "entryDelay"
50
50
  ]
51
51
  }
52
52
  ],
53
- "description": "ecobee opens an incident as soon as a door or sensor trips while armed. \"After the Entry/Disarm delay\" waits until that delay runs out without a disarm, so automations on Triggered don't fire while you're walking in to disarm. Smoke alarms always trigger immediately."
53
+ "description": "Immediately: as soon as a door or sensor trips while armed, like the ecobee app. After the entry delay: only if no one disarms in time, so automations don't run while you walk in. Smoke alarms always trigger immediately."
54
54
  },
55
55
  "smokeSensor": {
56
56
  "title": "Smoke sensor",
57
57
  "type": "boolean",
58
58
  "default": true,
59
- "description": "Adds a separate \"Smoke Alarm\" accessory to the Home app that detects smoke whenever ecobee reports a smoke-alarm incident, so you can use it in automations and get Home app smoke notifications."
59
+ "description": "Adds a Smoke Alarm accessory that detects smoke when ecobee reports a smoke alarm. Use it for Home app notifications and automations."
60
60
  },
61
61
  "allowHolds": {
62
62
  "title": "Allow security holds",
63
63
  "type": "boolean",
64
64
  "default": false,
65
- "description": "Lets other Homebridge plugins (for example a robot vacuum, so it can clean while you're away) switch Away to Stay for a while and back to Away when they're done. Each plugin also has to be allowed in holdPlugins (the settings page lists the ones that asked). See \"Security holds\" in the README."
65
+ "description": "Lets other Homebridge plugins, like a robot vacuum, keep the system from arming Away while they work: if it's armed Away it's switched to Home (ecobee's Stay), and Away comes back when they're done. Away asked for in the Home app meanwhile waits until they're done. Each plugin also has to be allowed in holdPlugins (the settings page lists the ones that asked). See \"Security holds\" in the README."
66
66
  },
67
67
  "holdPlugins": {
68
68
  "title": "Plugins allowed to ask for holds",
@@ -70,20 +70,48 @@
70
70
  "items": {
71
71
  "type": "string"
72
72
  },
73
- "description": "Package names (or, for a plugin that doesn't say, the name it asks with). Without this list, every plugin may ask once Allow security holds is on."
73
+ "description": "Package names of the plugins that may ask, or the name a plugin asks with if it gives no package. With no list, all plugins may ask while Allow security holds is on."
74
+ },
75
+ "armAwayNowSwitch": {
76
+ "title": "Arm Away Now switch",
77
+ "type": "boolean",
78
+ "default": false,
79
+ "description": "Adds an Arm Away Now switch to the Home app (with Allow security holds on). Turning it on arms Away now, with the normal exit delay, and asks any task that's running to stop (a robot goes back to its base, or stops where it is if it can't make it in time). Away from the security tile, scenes, automations and Siri waits until robots are done instead."
80
+ },
81
+ "taskWaitSeconds": {
82
+ "title": "Extra time for tasks to finish (seconds)",
83
+ "type": "integer",
84
+ "default": 120,
85
+ "minimum": 0,
86
+ "maximum": 300,
87
+ "description": "If Away is armed while a task is running, like a robot heading back to its base, the countdown waits up to this much longer, and arms as soon as it's done. 0: no waiting."
88
+ },
89
+ "keypadDisarm": {
90
+ "title": "Disarm when a door is unlocked with its keypad",
91
+ "type": "boolean",
92
+ "default": false,
93
+ "description": "Entering a code on a smart lock's keypad turns the security system off, so family and guests can use their lock codes. Works with locks in Apple Home from this Homebridge that report keypad unlocks. Needs Homebridge's insecure mode. See \"Keypad unlock\" in the README."
94
+ },
95
+ "keypadLocks": {
96
+ "title": "Locks that disarm",
97
+ "type": "array",
98
+ "items": {
99
+ "type": "string"
100
+ },
101
+ "description": "Serial numbers of the locks that disarm (the settings page lists the ones found). With no list, every lock does."
74
102
  },
75
103
  "airQuality": {
76
104
  "title": "Air quality sensors",
77
105
  "type": "boolean",
78
106
  "default": true,
79
- "description": "For ecobee thermostats with an air quality sensor (ecobee Premium): adds an Air Quality Sensor (overall level and VOC) and a Carbon Dioxide Sensor (CO2 in ppm) per thermostat. ecobee's own HomeKit integration doesn't show these. Updated every 5 minutes."
107
+ "description": "Adds 2 sensors for each ecobee Premium thermostat: air quality (with VOC) and CO2. ecobee's own HomeKit integration doesn't include them. Updates every 5 minutes."
80
108
  },
81
109
  "co2Alert": {
82
110
  "title": "CO2 alert level (ppm)",
83
111
  "type": "integer",
84
112
  "default": 1000,
85
113
  "minimum": 400,
86
- "description": "The Carbon Dioxide Sensor reports abnormal CO2 at or above this level, for Home app notifications and automations (for example, turning on ventilation).",
114
+ "description": "At or above this level, the CO2 sensor reports abnormal CO2. Use it for notifications and automations, like turning on ventilation.",
87
115
  "condition": {
88
116
  "functionBody": "return model.airQuality !== false;"
89
117
  }