homebridge-ecobee-security 0.8.0 → 0.9.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 +76 -0
- package/README.md +360 -56
- package/config.schema.json +154 -10
- package/homebridge-ui/public/index.html +352 -49
- package/homebridge-ui/server.js +54 -0
- package/lib/camera/bridged.js +171 -0
- package/lib/camera/buffer.js +222 -0
- package/lib/camera/camera.js +713 -0
- package/lib/camera/h264.js +245 -0
- package/lib/camera/hap-link.js +292 -0
- package/lib/camera/hap-pairing.js +116 -0
- package/lib/camera/jitter.js +152 -0
- package/lib/camera/mkv.js +126 -0
- package/lib/camera/mp4info.js +182 -0
- package/lib/camera/recorder.js +397 -0
- package/lib/camera/session.js +650 -0
- package/lib/camera/talk.js +311 -0
- package/lib/comfort.js +280 -0
- package/lib/ecobee.js +266 -0
- package/lib/platform.js +538 -7
- package/lib/presence.js +156 -0
- package/lib/security.js +8 -4
- package/lib/vacation.js +252 -0
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,81 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.1
|
|
4
|
+
|
|
5
|
+
- New setting **Add Comfort Setting switches** (`comfortSetting`, `comfortHoldType`): a Comfort Setting
|
|
6
|
+
accessory with a switch for each ecobee comfort setting (Home, Away, Sleep and your own). Turning one on
|
|
7
|
+
holds it, turning it off goes back to the schedule, and holds set in the ecobee app show up too.
|
|
8
|
+
- New setting **Two-way talk (beta)** (`twoWayAudio`, off by default): talk through the doorbell from the Home
|
|
9
|
+
app's live view. Needs the doorbell to accept audio from the plugin; the log says what it answered. With it
|
|
10
|
+
on, `twoWayAudioTest` (config only) plays a 3-second tone on the doorbell when a live view starts.
|
|
11
|
+
- New setting **Enable presence sensors for household members** (`memberPresence`, `presenceMembers`):
|
|
12
|
+
an occupancy sensor per person, Occupied while the ecobee app's location says they are home, for Home
|
|
13
|
+
app conditions like "only if Alex is home". Needs location set to Always in the ecobee app on that
|
|
14
|
+
person's phone; shows No Response while unknown.
|
|
15
|
+
- New setting **Home Occupied source** (`occupancySource`): besides your own Home app automations
|
|
16
|
+
(the default), Home Occupied can follow **ecobee Autopilot**, the ecobee app's location on household
|
|
17
|
+
members' phones, which arms and disarms like the switch does. ecobee's Smart Home & Away stays as the
|
|
18
|
+
third choice, now labelled beta.
|
|
19
|
+
- Two new settings with the Vacation Mode switch (off by default; they need the Home Occupied switch and
|
|
20
|
+
a source other than ecobee Smart Home & Away): **Start a vacation when the home has been empty for**
|
|
21
|
+
(`vacationWhenEmpty`, `vacationEmptyHours`), a safety net that starts a vacation once, and **End the
|
|
22
|
+
vacation when someone comes home** (`vacationEndOnArrival`), which also ends dated vacations.
|
|
23
|
+
- When the last hold is released (a robot back on its base, say) and it had switched Away to Home, Away is
|
|
24
|
+
armed again after a 3-second countdown instead of the full exit delay. The house was already empty, so
|
|
25
|
+
the delay only left it unarmed longer. Away you asked for during the hold still gets the normal exit delay.
|
|
26
|
+
- Fixed: turning Vacation Mode on in the Home app didn't start a vacation (ecobee rejected the vacation's
|
|
27
|
+
name).
|
|
28
|
+
|
|
29
|
+
## 0.9.0
|
|
30
|
+
|
|
31
|
+
### Doorbell camera (beta)
|
|
32
|
+
|
|
33
|
+
- New setting **Doorbell camera** (`doorbellCamera`, off by default; `ffmpegPath`): the ecobee Smart
|
|
34
|
+
Doorbell Camera as its own HomeKit camera, with live view and snapshots. The plugin keeps a session to
|
|
35
|
+
the camera open on your network, reconnects by itself, and the camera shows **No Response** while it is
|
|
36
|
+
down or ecobee can't be reached. Needs an ffmpeg with libfdk_aac and libx264 (the Homebridge Raspberry
|
|
37
|
+
Pi image has one). Live view and recordings carry an ecobee watermark.
|
|
38
|
+
- **Doorbell link** (settings > Doorbell camera): pair the plugin with the doorbell's own HomeKit server
|
|
39
|
+
from the settings page. The camera then becomes a **video doorbell** with an instant ring (single,
|
|
40
|
+
double and long press) and a motion sensor, the ecobee sensors the doorbell bridges to HomeKit are
|
|
41
|
+
published by the plugin, and the doorbell's **Chime Doorbell**, **Camera Status Light** and **Night
|
|
42
|
+
Vision Light** switches are kept in sync. Remove ecobee's own doorbell from the Home app first.
|
|
43
|
+
- **HomeKit Secure Video**: recordings start about 4 seconds before the motion. Video is encoded in
|
|
44
|
+
software (libx264), which takes about 2 of a Raspberry Pi 4's cores while recording. Motion comes from
|
|
45
|
+
the doorbell link, or from ecobee's cloud every 5 seconds without it. New setting **Motion grace
|
|
46
|
+
period** (`motionGrace`, 15 seconds): the motion sensor stays on this long after motion ends, so clips
|
|
47
|
+
are at least about 10 seconds. `debugRecordings` keeps the last clips for troubleshooting.
|
|
48
|
+
|
|
49
|
+
### Switches and sensors
|
|
50
|
+
|
|
51
|
+
- **Home Occupied** now also has an occupancy sensor that follows the switch (Occupied while it is on).
|
|
52
|
+
- New setting **Vacation Mode switch** (`vacationSwitch`, off by default): a switch that is on while an
|
|
53
|
+
ecobee vacation is running, for other accessories to follow. Turn it on to start a vacation now, until
|
|
54
|
+
you turn it off (30 days at the latest); set dated vacations in the ecobee app. Turning it off ends the
|
|
55
|
+
vacation. Shows No Response while ecobee can't be reached.
|
|
56
|
+
- The two switches have fixed names, **Home Occupied** and **Vacation Mode**; rename them in the Home app.
|
|
57
|
+
The `occupancyName` setting (0.8.0) and the `vacationSwitchName` of earlier test builds still work if
|
|
58
|
+
they are already in your config, but are no longer in the settings page.
|
|
59
|
+
- Settings page: **Home Occupied** and **Vacation Mode** are now together in a **Switches and
|
|
60
|
+
sensors** card.
|
|
61
|
+
|
|
62
|
+
### Settings
|
|
63
|
+
|
|
64
|
+
- **Offer Night** is now **Enable Night**.
|
|
65
|
+
- **Enter Triggered State** is now **Home app alarm**, with the options *When a sensor is tripped (entry
|
|
66
|
+
delay starts)* (default, as before) and *When the siren goes off (entry delay ran out)*, and a clearer
|
|
67
|
+
description: it only changes the Home app's tile and automations, not ecobee's alerts or professional
|
|
68
|
+
monitoring.
|
|
69
|
+
- Settings page: cards are now ecobee account, Security system, Door keypads, Security holds, Doorbell
|
|
70
|
+
camera, Switches and sensors. In Doorbell camera the status of the doorbell link comes first, then the
|
|
71
|
+
link, then Recording, with the ffmpeg path under Advanced.
|
|
72
|
+
- The doorbell camera needs an ffmpeg with libx264 as well as libfdk_aac; without it the camera isn't
|
|
73
|
+
published and the log says why. The setting's description no longer says ecobee's tile keeps the ring.
|
|
74
|
+
|
|
75
|
+
### Dependencies
|
|
76
|
+
|
|
77
|
+
- Added `werift` (MIT) and `hap-controller` (MPL-2.0).
|
|
78
|
+
|
|
3
79
|
## 0.8.0
|
|
4
80
|
|
|
5
81
|
- While the plugin can't reach ecobee (three failed reads in a row, or signed out), the security
|
package/README.md
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
|
-
<p align="center"><img src="
|
|
1
|
+
<p align="center"><img src="ecobee-header.png" alt="Homebridge and ecobee" width="100%"></p>
|
|
2
2
|
|
|
3
3
|
# homebridge-ecobee-security
|
|
4
4
|
|
|
5
|
+
<p align="center"><b>ecobee Smart Security</b> for Apple Home</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/homebridge-ecobee-security"><img src="https://img.shields.io/npm/v/homebridge-ecobee-security?label=npm%40latest" alt="npm version"></a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/homebridge-ecobee-security"><img src="https://img.shields.io/npm/dm/homebridge-ecobee-security" alt="npm monthly downloads"></a>
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/npm/l/homebridge-ecobee-security" alt="license"></a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
5
13
|
Shows **ecobee Smart Security** in Apple Home as a security system: set it to **Home**, **Away** or
|
|
6
14
|
**Off** (ecobee's Stay, Away and disarmed), and see **Alarm triggered** when ecobee has an open
|
|
7
|
-
intrusion or smoke incident. It
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
intrusion or smoke incident. It works with Siri ("set the security system to away") and Home
|
|
16
|
+
automations. ecobee removed Smart Security from its HomeKit integration; this brings it back, and adds
|
|
17
|
+
air quality sensors, a keypad disarm, presence and vacation switches, security holds for other plugins
|
|
18
|
+
and the ecobee doorbell camera with HomeKit Secure Video.
|
|
19
|
+
|
|
20
|
+
<p align="center"><img src="ecobee-devices.png" alt="An ecobee thermostat with security keypad, SmartSensor, doorbell camera and contact sensors" width="100%"></p>
|
|
12
21
|
|
|
13
22
|
Unofficial. It uses the same cloud API as the ecobee iOS app (Auth0 sign-in at `auth.ecobee.com`,
|
|
14
23
|
GraphQL at `federated-api.prod.federated-graph.generacapis.com`), which ecobee can change at any time.
|
|
15
|
-
No dependencies.
|
|
16
24
|
|
|
17
25
|
> [!WARNING]
|
|
18
26
|
> Not affiliated with or endorsed by ecobee. The plugin signs in as the ecobee iOS app, which
|
|
@@ -20,6 +28,40 @@ No dependencies.
|
|
|
20
28
|
> If you have **professional monitoring**, testing an alarm (opening a door while armed) can
|
|
21
29
|
> lead to a call from the monitoring centre or a dispatch, just as it would with the ecobee app.
|
|
22
30
|
|
|
31
|
+
## Features
|
|
32
|
+
|
|
33
|
+
- **Security system** with Home, Away, Night (optional) and Off, exit delay, and Alarm triggered.
|
|
34
|
+
- **Smoke Alarm** sensor for automations and Home app smoke notifications.
|
|
35
|
+
- **Air quality** and **CO2** sensors for ecobee thermostats that have one (ecobee Premium).
|
|
36
|
+
- **Keypad unlock** turns the system off when a door is unlocked with a code on its keypad.
|
|
37
|
+
- **Home Occupied** switch (with occupancy sensor) for arrive and leave automations without confirmation prompts.
|
|
38
|
+
- **Vacation Mode** switch that follows, and starts, an ecobee vacation.
|
|
39
|
+
- **Security holds** let other plugins, like a robot vacuum, keep the system from arming Away while they work.
|
|
40
|
+
- **Doorbell camera** with HomeKit Secure Video, live view and snapshots; with the **doorbell link**, instant ring and motion, the sensors the doorbell bridges to HomeKit, and its Chime, Status Light and Night Vision switches.
|
|
41
|
+
|
|
42
|
+
## Contents
|
|
43
|
+
|
|
44
|
+
- [Requirements](#requirements)
|
|
45
|
+
- [Install](#install)
|
|
46
|
+
- [Sign-in](#sign-in)
|
|
47
|
+
- [Settings](#settings)
|
|
48
|
+
- [Security system](#security-system)
|
|
49
|
+
- [Keypad unlock](#keypad-unlock)
|
|
50
|
+
- [Security holds](#security-holds)
|
|
51
|
+
- [Doorbell camera](#doorbell-camera)
|
|
52
|
+
- [Home Occupied switch](#home-occupied-switch)
|
|
53
|
+
- [Vacation Mode switch](#vacation-mode-switch)
|
|
54
|
+
- [Smoke alarm and air quality](#smoke-alarm-and-air-quality)
|
|
55
|
+
- [Troubleshooting](#troubleshooting)
|
|
56
|
+
- [API notes](#api-notes)
|
|
57
|
+
- [License](#license)
|
|
58
|
+
|
|
59
|
+
## Requirements
|
|
60
|
+
|
|
61
|
+
- Homebridge 1.8 or 2.x and Node 22 or 24.
|
|
62
|
+
- An ecobee account with **Smart Security** (the ecobee Smart Doorbell Camera is only needed for the doorbell features).
|
|
63
|
+
- For the doorbell camera: an ffmpeg with `libfdk_aac` and `libx264` (the Homebridge Raspberry Pi image has one), and, for HomeKit Secure Video, a home hub and an iCloud+ plan.
|
|
64
|
+
|
|
23
65
|
## Install
|
|
24
66
|
|
|
25
67
|
In the Homebridge UI, search the Plugins tab for **ecobee Smart Security**, or:
|
|
@@ -28,7 +70,7 @@ In the Homebridge UI, search the Plugins tab for **ecobee Smart Security**, or:
|
|
|
28
70
|
npm install -g homebridge-ecobee-security
|
|
29
71
|
```
|
|
30
72
|
|
|
31
|
-
Running it as a child bridge is recommended.
|
|
73
|
+
Running it as a child bridge is recommended.
|
|
32
74
|
|
|
33
75
|
## Sign-in
|
|
34
76
|
|
|
@@ -52,7 +94,10 @@ node <plugin folder>/bin/ecobee-login.js # email, password, MFA code
|
|
|
52
94
|
node <plugin folder>/bin/ecobee-login.js --browser # website sign-in
|
|
53
95
|
```
|
|
54
96
|
|
|
55
|
-
##
|
|
97
|
+
## Settings
|
|
98
|
+
|
|
99
|
+
Everything is set on the plugin's settings page in the Homebridge UI, in these cards (the config
|
|
100
|
+
keys are for editing `config.json` by hand):
|
|
56
101
|
|
|
57
102
|
```json
|
|
58
103
|
{
|
|
@@ -71,23 +116,62 @@ node <plugin folder>/bin/ecobee-login.js --browser # website sign-in
|
|
|
71
116
|
|
|
72
117
|
`homeId` is only needed if the account has several homes (the settings page lists them).
|
|
73
118
|
|
|
119
|
+
### ecobee account
|
|
120
|
+
|
|
121
|
+
Sign-in: see [Sign-in](#sign-in).
|
|
122
|
+
|
|
123
|
+
### Security system settings
|
|
124
|
+
|
|
125
|
+
| Setting | Default | |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| `offerNight` | `false` | **Enable Night** in the settings. 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. |
|
|
128
|
+
| `alarmTrigger` | `"incident"` | **Home app alarm** in the settings: when the Home app's security tile shows **Triggered**, and so when its critical alert and "security system triggered" automations fire. `"incident"` ("When a sensor is tripped (entry delay starts)"): as soon as ecobee opens an incident because a door or sensor tripped while armed, like the ecobee app, so it alerts every time someone comes in, even if they disarm in time. `"entryDelay"` ("When the siren goes off (entry delay ran out)"): only after the entry delay runs out without a disarm. ecobee's own alerts and professional monitoring don't change either way. Smoke alarms always trigger immediately. |
|
|
129
|
+
|
|
130
|
+
### Door keypads settings
|
|
131
|
+
|
|
132
|
+
| Setting | Default | |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| `keypadDisarm` | `false` | Turns the security system off when a door is unlocked with a code on its keypad (see [Keypad unlock](#keypad-unlock)). |
|
|
135
|
+
| `keypadLocks` | all | The locks that do that, by serial number; the settings page lists the ones found. |
|
|
136
|
+
|
|
137
|
+
### Security holds settings
|
|
138
|
+
|
|
74
139
|
| Setting | Default | |
|
|
75
140
|
|---|---|---|
|
|
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. |
|
|
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. |
|
|
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. |
|
|
79
141
|
| `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
142
|
| `holdPlugins` | all | The plugins allowed to do that; the settings page lists them. |
|
|
81
143
|
| `armAwayNowSwitch` | `false` | Adds an **Arm Away Now** switch: arms Away immediately and asks any task in progress to stop (a robot goes home). |
|
|
82
144
|
| `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). |
|
|
145
|
+
|
|
146
|
+
### Doorbell camera settings
|
|
147
|
+
|
|
148
|
+
| Setting | Default | |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| `doorbellCamera` | `false` | Adds the doorbell camera (beta). Restart the bridge after changing it. |
|
|
151
|
+
| `motionGrace` | `15` | Seconds the motion sensor stays on after the doorbell's motion ends (6 to 120). |
|
|
152
|
+
| `ffmpegPath` | `/usr/local/bin/ffmpeg` if it exists, else `ffmpeg` | The ffmpeg to use. |
|
|
153
|
+
| `twoWayAudio` | `false` | Talk through the doorbell from the Home app's live view (beta; see [Two-way talk](#two-way-talk-beta)). |
|
|
154
|
+
| `twoWayAudioTest` | `false` | With `twoWayAudio`: plays a 3-second tone on the doorbell when a live view starts (config file only). |
|
|
155
|
+
| `debugRecordings` | `false` | Keeps the last five recordings for troubleshooting (config file only; see [Troubleshooting](#troubleshooting)). |
|
|
156
|
+
|
|
157
|
+
### Switches and sensors settings
|
|
158
|
+
|
|
159
|
+
| Setting | Default | |
|
|
160
|
+
|---|---|---|
|
|
83
161
|
| `occupancySwitch` | `false` | Adds a **Home Occupied** switch for your presence automations (see [Home Occupied switch](#home-occupied-switch)). |
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
162
|
+
| `occupancySource` | `"home"` | Who sets Home Occupied: `"home"` (your automations), `"autopilot"` or `"ecobee"` (see [Home Occupied source](#home-occupied-source)). |
|
|
163
|
+
| `memberPresence` | `false` | Adds a presence sensor for each household member in `presenceMembers` (see [Member presence sensors](#member-presence-sensors)). |
|
|
164
|
+
| `presenceMembers` | none | The ecobee account ids of the people to add; the settings page lists them. |
|
|
165
|
+
| `vacationSwitch` | `false` | Adds a **Vacation Mode** switch that is on while an ecobee vacation is running (see [Vacation Mode switch](#vacation-mode-switch)). |
|
|
166
|
+
| `vacationWhenEmpty` | `false` | Starts a vacation when Home Occupied has been off for `vacationEmptyHours` (default 24; see [Vacations that follow Home Occupied](#vacations-that-follow-home-occupied)). |
|
|
167
|
+
| `vacationEndOnArrival` | `false` | Ends running vacations when Home Occupied turns on. |
|
|
168
|
+
| `comfortSetting` | `false` | Adds a **Comfort Setting** accessory with a switch per ecobee comfort setting (see [Comfort Setting](#comfort-setting)). |
|
|
169
|
+
| `comfortHoldType` | `"nextTransition"` | How long a comfort setting turned on is held: `"nextTransition"` or `"indefinite"`. |
|
|
170
|
+
| `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. |
|
|
87
171
|
| `airQuality` | `true` | For each thermostat with an air quality sensor: an accessory "<thermostat> 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. |
|
|
88
172
|
| `co2Alert` | `1000` | CO2 (ppm) at or above which the Carbon Dioxide Sensor reports abnormal levels. |
|
|
89
173
|
|
|
90
|
-
##
|
|
174
|
+
## Security system
|
|
91
175
|
|
|
92
176
|
- **Arm Away** uses ecobee's Away exit delay (60 s by default), just like the app. During the
|
|
93
177
|
delay the Home app shows "Arming…" (current Off, target Away). Home and Night use ecobee's Stay
|
|
@@ -104,9 +188,9 @@ node <plugin folder>/bin/ecobee-login.js --browser # website sign-in
|
|
|
104
188
|
The security tile and Smoke Alarm also show No Response when ecobee can't reach your thermostats, which run
|
|
105
189
|
Smart Security, for a minute (all of them; one dropping out briefly doesn't count), and an air quality sensor
|
|
106
190
|
does when ecobee can't reach its thermostat.
|
|
107
|
-
- **Keypad unlock:** unlocking a door with its keypad can turn the system off: see
|
|
108
|
-
- **Home Occupied switch:** your arrive and leave automations can arm and disarm Away without a confirmation prompt: see
|
|
109
|
-
- **Security holds** let other plugins, like a robot vacuum, keep the system from arming Away while they work: see
|
|
191
|
+
- **Keypad unlock:** unlocking a door with its keypad can turn the system off: see [Keypad unlock](#keypad-unlock).
|
|
192
|
+
- **Home Occupied switch:** your arrive and leave automations can arm and disarm Away without a confirmation prompt: see [Home Occupied switch](#home-occupied-switch).
|
|
193
|
+
- **Security holds** let other plugins, like a robot vacuum, keep the system from arming Away while they work: see [Security holds](#security-holds).
|
|
110
194
|
|
|
111
195
|
## Keypad unlock
|
|
112
196
|
|
|
@@ -133,39 +217,6 @@ schedules, expiry), so the plugin needs no codes of its own.
|
|
|
133
217
|
127.0.0.1 with the bridge PIN, since each child bridge runs in its own process. The log says if
|
|
134
218
|
it isn't on.
|
|
135
219
|
|
|
136
|
-
## Home Occupied switch
|
|
137
|
-
|
|
138
|
-
Apple Home asks you to confirm (a notification you have to tap) whenever a people-arrive or
|
|
139
|
-
people-leave automation changes a security system. Automations that flip an ordinary switch don't
|
|
140
|
-
ask. Turn on **Home Occupied switch** (`occupancySwitch`) and the plugin adds a **Home Occupied**
|
|
141
|
-
switch (named by `occupancyName`) that those automations set instead; the plugin then changes the
|
|
142
|
-
security system itself.
|
|
143
|
-
|
|
144
|
-
In the Home app, create two automations:
|
|
145
|
-
|
|
146
|
-
1. **When the last person leaves** (People > Leave, "Everyone leaves") > turn **Home Occupied** off.
|
|
147
|
-
2. **When the first person arrives** (People > Arrive, "Anyone arrives") > turn **Home Occupied** on.
|
|
148
|
-
|
|
149
|
-
What each direction does:
|
|
150
|
-
|
|
151
|
-
- **Off (nobody home)** arms **Away** exactly as Away from the Home app does: the normal exit delay,
|
|
152
|
-
and if a robot or other task is out it [waits for it](#security-holds). Home, Night and Off are all
|
|
153
|
-
switched to Away; if it is already Away, or waiting to be, nothing happens.
|
|
154
|
-
- **On (someone home)** turns the system **off, but only if it is Away** (armed, arming, or waiting for
|
|
155
|
-
a task to finish). Home and Night, and a system that is already off, are left as they are, so
|
|
156
|
-
arriving never cancels the Home you set before bed.
|
|
157
|
-
- Only a real change counts: setting the switch to the value it already has does nothing. It starts as
|
|
158
|
-
on and is remembered across restarts; restarting the plugin never arms or disarms anything.
|
|
159
|
-
- The switch is your presence signal, not a mirror of the security system: arming or disarming
|
|
160
|
-
elsewhere doesn't move it.
|
|
161
|
-
- If ecobee can't be reached, the switch still keeps its new value; the log says the security system
|
|
162
|
-
was left as it was (disarming is retried once).
|
|
163
|
-
|
|
164
|
-
> [!CAUTION]
|
|
165
|
-
> HomeKit doesn't ask for authorisation to use a switch. Turning Home Occupied on, by hand, with Siri
|
|
166
|
-
> or from a shared home member's phone, turns off an Away system, so treat it as as sensitive as the
|
|
167
|
-
> security tile itself.
|
|
168
|
-
|
|
169
220
|
## Security holds
|
|
170
221
|
|
|
171
222
|
Things that move while you're out set off ecobee's motion sensors: a robot vacuum cleaning, or an AC
|
|
@@ -189,10 +240,10 @@ Using a robot vacuum as the example:
|
|
|
189
240
|
|
|
190
241
|
| Situation | What the security system does |
|
|
191
242
|
|---|---|
|
|
192
|
-
| The robot starts cleaning while the system is armed **Away** | Switches to Home, and goes back to Away when the robot is done. |
|
|
243
|
+
| The robot starts cleaning while the system is armed **Away** | Switches to Home, and goes back to Away when the robot is done, after a 3-second countdown. |
|
|
193
244
|
| The robot starts while the system is set to **Home**, **Night** or **Off** | Nothing changes. |
|
|
194
|
-
| 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. |
|
|
195
|
-
| You want Away **now** | Turn on the **Arm Away Now** switch (see
|
|
245
|
+
| 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 with the normal exit delay. The tile shows "Arming…" meanwhile. |
|
|
246
|
+
| You want Away **now** | Turn on the **Arm Away Now** switch (see [Hold options](#hold-options)). It arms Away right away and sends the robot home. |
|
|
196
247
|
| 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. |
|
|
197
248
|
| 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. |
|
|
198
249
|
| 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. |
|
|
@@ -201,7 +252,7 @@ Using a robot vacuum as the example:
|
|
|
201
252
|
Other plugins work the same way; what "stop" means is up to each one (a robot pauses or goes home,
|
|
202
253
|
an AC turns off). Several at once are fine: Away comes back once all of them are done.
|
|
203
254
|
|
|
204
|
-
###
|
|
255
|
+
### Hold options
|
|
205
256
|
|
|
206
257
|
In the **Security holds** section of the settings:
|
|
207
258
|
|
|
@@ -238,6 +289,259 @@ can declare `"homebridge-security-hold": { "client": true }` to appear in the se
|
|
|
238
289
|
(hold, release, and being asked to stop or finish before Away arms) is documented in
|
|
239
290
|
[Security hold](https://github.com/seanfletchr/homebridge-narwal-freo/blob/main/docs/security-hold.md).
|
|
240
291
|
|
|
292
|
+
## Doorbell camera
|
|
293
|
+
|
|
294
|
+
Turn on **Doorbell camera** (`doorbellCamera`, off by default, beta) to bring the ecobee Smart Doorbell
|
|
295
|
+
Camera into HomeKit Secure Video: recordings, activity zones and Apple's person and package detection in the
|
|
296
|
+
Home app, plus live view and snapshots. With the
|
|
297
|
+
[doorbell link](#doorbell-link) it is a full video doorbell: instant ring and motion, the sensors the
|
|
298
|
+
doorbell bridges to HomeKit, and its Chime, Status Light and Night Vision switches.
|
|
299
|
+
|
|
300
|
+
The settings card (**Doorbell camera with HomeKit Secure Video**) only appears when your ecobee account has a
|
|
301
|
+
doorbell; the plugin checks once when the bridge starts. Below the switch, **Doorbell link** shows whether the
|
|
302
|
+
link is set up (**Pair…** / **Unlink**), and **Advanced** holds the motion grace period and the ffmpeg path.
|
|
303
|
+
|
|
304
|
+
**Needs an ffmpeg with libfdk_aac and libx264.** The Homebridge Raspberry Pi image has one at
|
|
305
|
+
`/usr/local/bin/ffmpeg`, which is used automatically; otherwise set `ffmpegPath`. Without libfdk_aac or libx264 the
|
|
306
|
+
camera isn't published and the log says why.
|
|
307
|
+
|
|
308
|
+
### Setup
|
|
309
|
+
|
|
310
|
+
1. In the plugin settings, turn on **Doorbell camera with HomeKit Secure Video**.
|
|
311
|
+
2. *Optional but recommended:* in the Home app, **remove ecobee's own doorbell**. Its automations go
|
|
312
|
+
with it, and so do the sensors it bridges to HomeKit (an ecobee SmartSensor on a door, say); the
|
|
313
|
+
plugin publishes those again once linked. A doorbell pairs with only one HomeKit home at a time, so
|
|
314
|
+
this is needed for the link.
|
|
315
|
+
3. In the settings, next to Doorbell link, choose **Pair…**, then **Find doorbells**, enter the doorbell's
|
|
316
|
+
HomeKit setup code (the 8 digits on the doorbell or its box; the plugin never stores it) and **Pair**.
|
|
317
|
+
4. **Restart the bridge.**
|
|
318
|
+
5. The camera is published as its **own accessory**, not behind the Homebridge bridge, with its own setup
|
|
319
|
+
code, which the log prints at start. In the Home app, **Add Accessory** > **More options**, and enter it.
|
|
320
|
+
6. In the Home app, open the camera's settings > **Recording Options** and choose **Stream** or
|
|
321
|
+
**Stream & Allow Recording** for when you're home and away. Set up your automations again.
|
|
322
|
+
|
|
323
|
+
Skip steps 2 to 4 to run the camera without the link: it is then a second tile, a plain camera named
|
|
324
|
+
"<name> Camera", next to ecobee's own doorbell tile, which keeps the ring, motion and recordings. With the
|
|
325
|
+
link the camera replaces ecobee's doorbell.
|
|
326
|
+
|
|
327
|
+
Notes:
|
|
328
|
+
|
|
329
|
+
- The plugin keeps one live view session to the camera open all the time, over your home network, so the
|
|
330
|
+
picture appears quickly. It reconnects by itself, and the camera shows **No Response** while the
|
|
331
|
+
session has been down for a minute or the plugin can't reach ecobee.
|
|
332
|
+
- Live view and recordings carry an **"ecobee" watermark** in the corner, which ecobee's own HomeKit
|
|
333
|
+
stream doesn't have.
|
|
334
|
+
- The doorbell streams about 1 Mb/s continuously while the camera is on. **A weak Wi-Fi link at the
|
|
335
|
+
doorbell shows up as frozen or choppy video**; move the access point closer or use a mesh node nearby.
|
|
336
|
+
- The live view video is the camera's own, passed on as it is (portrait, not re-encoded). The audio is
|
|
337
|
+
converted to the AAC-ELD HomeKit needs.
|
|
338
|
+
- Turning the camera off in the Home app (**Camera Off**) refuses live views and recordings.
|
|
339
|
+
|
|
340
|
+
### Doorbell link
|
|
341
|
+
|
|
342
|
+
The doorbell is also a HomeKit accessory itself, on your network. Pair the plugin with it (step 3
|
|
343
|
+
above) and the camera becomes a **video doorbell** with the doorbell's own name, a **new accessory** in
|
|
344
|
+
the Home app. You get:
|
|
345
|
+
|
|
346
|
+
- the **ring** (single, double and long press) and a **motion sensor**, within about a second;
|
|
347
|
+
- the **sensors the doorbell connects to HomeKit**, published by the plugin with their contact, motion,
|
|
348
|
+
occupancy and battery state;
|
|
349
|
+
- the doorbell's own switches: **Chime Doorbell**, **Camera Status Light** and **Night Vision Light**.
|
|
350
|
+
Changes in the Home app are sent to the doorbell, and changes made at the doorbell show up in the Home
|
|
351
|
+
app. While the link is down, setting one fails.
|
|
352
|
+
|
|
353
|
+
The pairing is kept in `ecobee-security/doorbell-pairing.json` in the Homebridge folder. **Unlink** in the
|
|
354
|
+
settings removes it from the doorbell as well (restart the bridge afterwards). If the link drops, the
|
|
355
|
+
plugin looks for the doorbell again and reconnects by itself; the ring, motion, switches and bridged
|
|
356
|
+
sensors show **No Response** while it has been down for a minute. The video still comes from the
|
|
357
|
+
cloud session (the doorbell's own stream isn't used).
|
|
358
|
+
|
|
359
|
+
### HomeKit Secure Video
|
|
360
|
+
|
|
361
|
+
The camera records for HomeKit Secure Video (a home hub and an iCloud+ plan are needed, as for any
|
|
362
|
+
HomeKit camera). Turn recording on in the camera's **Recording Options** (setup step 6); the clips, with
|
|
363
|
+
person, animal and package detection, are then made by HomeKit.
|
|
364
|
+
|
|
365
|
+
- **Motion** comes from the doorbell itself through the [doorbell link](#doorbell-link), within a second,
|
|
366
|
+
and a doorbell press counts as motion too. Without the link the plugin asks ecobee's cloud for the
|
|
367
|
+
camera's events every 5 seconds, so motion arrives a few seconds late (the clip still starts about 4
|
|
368
|
+
seconds before it).
|
|
369
|
+
- The plugin keeps the last 30 seconds of the camera in memory (a couple of MB) and starts each clip about
|
|
370
|
+
4 seconds before the motion. **The video of a clip is re-encoded** with libx264 (software), as HomeKit's
|
|
371
|
+
recording settings ask (the camera's own stream has keyframes too far apart for HomeKit). That uses about
|
|
372
|
+
2 of a Raspberry Pi 4's cores while a clip is being recorded; live view is not re-encoded and is light.
|
|
373
|
+
The audio is converted to AAC. **Record Audio** in the Home app decides whether a clip has sound.
|
|
374
|
+
- **Motion grace period** (`motionGrace`, 15 seconds by default, 6 to 120): the motion sensor stays on this long
|
|
375
|
+
after the doorbell's motion ends (and after a press), so one visit is one motion, and HomeKit decides when a
|
|
376
|
+
clip ends. Clips are therefore at least about 10 seconds long (the pre-roll, the grace period and HomeKit's own
|
|
377
|
+
tail). The plugin itself stops a clip only after 5 minutes.
|
|
378
|
+
|
|
379
|
+
To inspect recordings, see [Troubleshooting](#troubleshooting).
|
|
380
|
+
|
|
381
|
+
### Two-way talk (beta)
|
|
382
|
+
|
|
383
|
+
Turn on **Two-way talk** (`twoWayAudio`) and restart the bridge to talk through the doorbell from the Home app's
|
|
384
|
+
live view (the microphone button). It is a beta: whether the doorbell accepts audio from the plugin isn't known for
|
|
385
|
+
every firmware, and talking adds a little delay. The log says at start-up what the doorbell answered ("two-way
|
|
386
|
+
talk: the camera answered audio sendrecv" is good; anything else means it can't take audio and the plugin carries
|
|
387
|
+
on receive-only, as before). The live view's picture and sound are not affected.
|
|
388
|
+
|
|
389
|
+
To check that audio reaches the doorbell, set `"twoWayAudioTest": true` in the config (there is no settings-page
|
|
390
|
+
switch), open the live view while standing at the door, and listen for a 3-second tone; the log says "test tone
|
|
391
|
+
sent". Turn it off afterwards.
|
|
392
|
+
|
|
393
|
+
## Home Occupied switch
|
|
394
|
+
|
|
395
|
+
Apple Home asks you to confirm (a notification you have to tap) whenever a people-arrive or
|
|
396
|
+
people-leave automation changes a security system. Automations that flip an ordinary switch don't
|
|
397
|
+
ask. Turn on **Home Occupied switch** (`occupancySwitch`) and the plugin adds a **Home Occupied**
|
|
398
|
+
switch (named **Home Occupied**; rename it in the Home app) that those automations set instead; the plugin then changes the
|
|
399
|
+
security system itself. The accessory also has an occupancy sensor that shows Occupied while the
|
|
400
|
+
switch is on, so automations can use "occupancy detected / not detected" and the room shows it. The tile shows the
|
|
401
|
+
occupancy sensor; tapping it opens the switch.
|
|
402
|
+
|
|
403
|
+
In the Home app, create two automations:
|
|
404
|
+
|
|
405
|
+
1. **When the last person leaves** (People > Leave, "Everyone leaves") > turn **Home Occupied** off.
|
|
406
|
+
2. **When the first person arrives** (People > Arrive, "Anyone arrives") > turn **Home Occupied** on.
|
|
407
|
+
|
|
408
|
+
What each direction does:
|
|
409
|
+
|
|
410
|
+
- **Off (nobody home)** arms **Away** exactly as Away from the Home app does: the normal exit delay,
|
|
411
|
+
and if a robot or other task is out it [waits for it](#security-holds). Home, Night and Off are all
|
|
412
|
+
switched to Away; if it is already Away, or waiting to be, nothing happens.
|
|
413
|
+
- **On (someone home)** turns the system **off, but only if it is Away** (armed, arming, or waiting for
|
|
414
|
+
a task to finish). Home and Night, and a system that is already off, are left as they are, so
|
|
415
|
+
arriving never cancels the Home you set before bed.
|
|
416
|
+
- Only a real change counts: setting the switch to the value it already has does nothing. It starts as
|
|
417
|
+
on and is remembered across restarts; restarting the plugin never arms or disarms anything.
|
|
418
|
+
- The switch is your presence signal, not a mirror of the security system: arming or disarming
|
|
419
|
+
elsewhere doesn't move it.
|
|
420
|
+
- If ecobee can't be reached, the switch still keeps its new value; the log says the security system
|
|
421
|
+
was left as it was (disarming is retried once).
|
|
422
|
+
|
|
423
|
+
> [!CAUTION]
|
|
424
|
+
> HomeKit doesn't ask for authorisation to use a switch. Turning Home Occupied on, by hand, with Siri
|
|
425
|
+
> or from a shared home member's phone, turns off an Away system, so treat it as as sensitive as the
|
|
426
|
+
> security tile itself.
|
|
427
|
+
|
|
428
|
+
### Home Occupied source
|
|
429
|
+
|
|
430
|
+
Who sets the switch is the **Home Occupied source** (`occupancySource`), shown once the switch is on.
|
|
431
|
+
Restart the bridge after changing it.
|
|
432
|
+
|
|
433
|
+
| Source | `occupancySource` | What decides |
|
|
434
|
+
|---|---|---|
|
|
435
|
+
| **Set via Home App Automations** | `"home"` (default) | You do, with Home app arrive/leave automations, which use Apple's location of each person in your Home. Fastest, and you keep the most control. Nothing to set up in ecobee. |
|
|
436
|
+
| **ecobee Autopilot** | `"autopilot"` | The ecobee app's location on each household member's phone, read every 30 seconds. Location must be set to **Always** in the ecobee app on every phone that counts. Reacts quickly, but doesn't see guests or people without the ecobee app. |
|
|
437
|
+
| **ecobee Smart Home & Away (beta)** | `"ecobee"` | The thermostat, part of ecobee's eco+: it decides from motion on ecobee sensors, plus phones when Autopilot is on. It notices anyone in the house, but can take a long time to decide the home is empty. Paused during an ecobee vacation. Doesn't arm or disarm anything. |
|
|
438
|
+
|
|
439
|
+
With Autopilot, someone home is any member whose phone is tracked and reads home; nobody home is all of
|
|
440
|
+
those reading away. If some are unknown and none is home, the switch keeps its last state, and so it
|
|
441
|
+
does if no member is tracked or ecobee can't be reached (the log says which). After a restart, Autopilot's first reading only brings the switch up to date, without arming or disarming
|
|
442
|
+
anything; later changes arm and disarm exactly as the switch does. With either ecobee source the switch follows ecobee, so changing it
|
|
443
|
+
in the Home app is undone.
|
|
444
|
+
|
|
445
|
+
> [!NOTE]
|
|
446
|
+
> If ecobee's own Autopilot is set to arm and disarm by itself in the ecobee app, ecobee and the plugin
|
|
447
|
+
> both act on the same arrivals and departures. Pick one.
|
|
448
|
+
|
|
449
|
+
## Member presence sensors
|
|
450
|
+
|
|
451
|
+
Turn on **Enable presence sensors for household members** (`memberPresence`) and tick the people in the
|
|
452
|
+
settings (`presenceMembers`, their ecobee account ids). Each gets an occupancy sensor named after them,
|
|
453
|
+
**Occupied** while the ecobee app's location says they are home, for Home app conditions like "only if
|
|
454
|
+
Alex is home" or "only when nobody else is home". The plugin reads ecobee every 30 seconds and logs
|
|
455
|
+
when someone comes or goes. Restart the bridge after changing the setting.
|
|
456
|
+
|
|
457
|
+
- The person's phone must report to ecobee with location set to **Always** in the ecobee app. A person
|
|
458
|
+
for whom that isn't so isn't listed as available in the settings, and gets no sensor until it is.
|
|
459
|
+
- Only household members count. Guests, and people without the ecobee app, aren't seen.
|
|
460
|
+
- **No Response** means unknown: ecobee doesn't know where the phone is, the person is no longer tracked,
|
|
461
|
+
or ecobee couldn't be reached for a while.
|
|
462
|
+
- Anyone you share your Home with can see these sensors, and so where the people are.
|
|
463
|
+
|
|
464
|
+
## Vacation Mode switch
|
|
465
|
+
|
|
466
|
+
Turn on **Vacation Mode switch** (`vacationSwitch`) and the plugin adds a switch named **Vacation Mode**
|
|
467
|
+
(rename it in the Home app) that is **on while an ecobee vacation is running** on any of your thermostats,
|
|
468
|
+
so other accessories or plugins can follow it (for example a robot vacuum's vacation mode that
|
|
469
|
+
follows a switch by name). The plugin reads ecobee every minute and logs when a vacation starts or
|
|
470
|
+
ends.
|
|
471
|
+
|
|
472
|
+
- Turn the switch **on** to start a vacation now, on every thermostat, until you turn it off. It
|
|
473
|
+
uses the temperatures of ecobee's default vacation settings, fan on auto, and ends by itself after
|
|
474
|
+
30 days at the latest. Set dated vacations in the ecobee app. If ecobee doesn't show the vacation
|
|
475
|
+
afterwards, the switch goes back to off and the log warns.
|
|
476
|
+
- Turning the switch **off** ends the running vacation on the thermostats. If ecobee still reports
|
|
477
|
+
it afterwards, the switch shows on again and the log warns.
|
|
478
|
+
- Like the other sensors, the switch shows No Response while ecobee can't be reached or you're
|
|
479
|
+
signed out. Restart the bridge after changing the setting.
|
|
480
|
+
|
|
481
|
+
### Vacations that follow Home Occupied
|
|
482
|
+
|
|
483
|
+
Two optional settings in the Vacation Mode section (off by default). They need both the Home Occupied
|
|
484
|
+
and the Vacation Mode switches, and a [Home Occupied source](#home-occupied-source) other than ecobee
|
|
485
|
+
Smart Home & Away, which ecobee pauses during a vacation.
|
|
486
|
+
|
|
487
|
+
- **Start a vacation when the home has been empty for** (`vacationWhenEmpty`, `vacationEmptyHours`,
|
|
488
|
+
24 by default, 1 to 720): once Home Occupied has been off that long and no vacation is running, the
|
|
489
|
+
plugin starts one as the switch does. It does this at most once per empty period, so a vacation you
|
|
490
|
+
end by hand while still away stays ended. Treat it as a safety net and start vacations deliberately,
|
|
491
|
+
with the switch or dated in the ecobee app: a wrongly "empty" home (say, a phone without location
|
|
492
|
+
set to Always under ecobee Autopilot) would start one, which is why the default is long.
|
|
493
|
+
- **End the vacation when someone comes home** (`vacationEndOnArrival`): when Home Occupied turns on,
|
|
494
|
+
every running ecobee vacation ends, including dated ones from the ecobee app. The reading right
|
|
495
|
+
after a restart doesn't count.
|
|
496
|
+
|
|
497
|
+
Visitors while you're away aren't household members, so Home Occupied stays off and the vacation keeps
|
|
498
|
+
running. They disarm with their keypad code and arm Away from the ecobee keypad when they leave. If
|
|
499
|
+
they forget, the Home app's security notification shows the disarm, and you can arm from your phone.
|
|
500
|
+
|
|
501
|
+
## Comfort Setting
|
|
502
|
+
|
|
503
|
+
Turn on **Add Comfort Setting switches** (`comfortSetting`) and the plugin adds one accessory,
|
|
504
|
+
**Comfort Setting**, with a switch for each of your ecobee comfort settings (Home, Away, Sleep and your own,
|
|
505
|
+
read from the thermostats' program; with several thermostats, a setting any of them has). It is for
|
|
506
|
+
automations such as "Home Occupied off → Away on".
|
|
507
|
+
|
|
508
|
+
- Turning a switch **on** holds that comfort setting on the thermostats that have it, and the others
|
|
509
|
+
turn off. How long: `comfortHoldType`, `"nextTransition"` (default, until the next scheduled change)
|
|
510
|
+
or `"indefinite"` (until you change it).
|
|
511
|
+
- Turning the active switch **off** goes back to your schedule, so all off means following the schedule.
|
|
512
|
+
- A hold set in the ecobee app or on the thermostat lights the matching switch (read every minute). A
|
|
513
|
+
temperature-only hold lights none.
|
|
514
|
+
- During an ecobee vacation all switches are off and changes are refused (the log says so).
|
|
515
|
+
- Like the other sensors, the switches show No Response while ecobee can't be reached. Restart the
|
|
516
|
+
bridge after changing the setting.
|
|
517
|
+
|
|
518
|
+
> [!NOTE]
|
|
519
|
+
> The Home app shows the switches as one tile, and tapping the tile toggles all of them. Open the tile
|
|
520
|
+
> and pick one, or use **Show as Separate Tiles** in the accessory's settings.
|
|
521
|
+
|
|
522
|
+
## Smoke alarm and air quality
|
|
523
|
+
|
|
524
|
+
- **Smoke Alarm** (`smokeSensor`, on by default) is its own accessory, a Smoke Sensor that detects smoke while ecobee has a smoke-alarm incident open. It is separate from the security tile (the Home app would otherwise merge it into the tile with a cloud icon).
|
|
525
|
+
- **Air quality** (`airQuality`, on by default) adds, for each thermostat with an air quality sensor (ecobee Premium), an Air Quality Sensor and a Carbon Dioxide Sensor, read every 5 minutes; `co2Alert` sets the CO2 level (ppm) that reports abnormal levels. Details are in the settings table above. Temperature and humidity come from ecobee's own HomeKit integration.
|
|
526
|
+
|
|
527
|
+
## Troubleshooting
|
|
528
|
+
|
|
529
|
+
- **No Response** in the Home app: the security tile, Smoke Alarm and air quality sensors show it
|
|
530
|
+
instead of their last state when ecobee can't be reached (see [Security system](#security-system)),
|
|
531
|
+
you're signed out (sign in again, [Sign-in](#sign-in)), or, for the doorbell link and camera, the
|
|
532
|
+
session has been down for a minute.
|
|
533
|
+
- **Frozen or choppy doorbell video:** a weak Wi-Fi link at the doorbell; move the access point closer
|
|
534
|
+
or use a mesh node nearby.
|
|
535
|
+
- **Live view doesn't work or ends after about 30 seconds** from a Mac or iPhone on a different
|
|
536
|
+
network than Homebridge (for example plugged into the ISP router behind a mesh router): keep the
|
|
537
|
+
device on the same network as Homebridge.
|
|
538
|
+
- **Recordings look wrong or are missing:** set `"debugRecordings": true` in the plugin's config (there is no settings-page switch) to keep the last five clips exactly as
|
|
539
|
+
sent to HomeKit, in `ecobee-security/recordings` in the Homebridge folder: an `.mp4` and a `.json` with each fragment's size,
|
|
540
|
+
send time and timing (decode time, sample count and duration per track). Turn it off again afterwards; the clips are
|
|
541
|
+
video of your home.
|
|
542
|
+
- **Camera not published:** the ffmpeg lacks `libfdk_aac` or `libx264`; the log says so. Set `ffmpegPath`.
|
|
543
|
+
- **Keypad disarm does nothing:** Homebridge's insecure mode must be on; the log says if it isn't.
|
|
544
|
+
|
|
241
545
|
## API notes
|
|
242
546
|
|
|
243
547
|
[docs/api.md](docs/api.md) describes the sign-in flow and GraphQL calls the plugin uses, for anyone
|