@viguza/homebridge-ezviz 2.0.1 → 2.0.3
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 +25 -0
- package/README.md +6 -2
- package/dist/accessories/ip-camera.js +6 -2
- package/dist/accessories/ip-camera.js.map +1 -1
- package/dist/api/ezviz-api.d.ts +13 -4
- package/dist/api/ezviz-api.js +155 -73
- package/dist/api/ezviz-api.js.map +1 -1
- package/dist/api/ezviz-requests.d.ts +3 -0
- package/dist/api/ezviz-requests.js +7 -21
- package/dist/api/ezviz-requests.js.map +1 -1
- package/dist/platform.d.ts +7 -0
- package/dist/platform.js +25 -2
- package/dist/platform.js.map +1 -1
- package/dist/types/data.d.ts +2 -2
- package/dist/utils/ffmpeg.d.ts +0 -2
- package/dist/utils/ffmpeg.js +6 -22
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/hksv-prebuffer.d.ts +4 -0
- package/dist/utils/hksv-prebuffer.js +48 -8
- package/dist/utils/hksv-prebuffer.js.map +1 -1
- package/dist/utils/hksv-recording-delegate.d.ts +1 -1
- package/dist/utils/hksv-recording-delegate.js +22 -12
- package/dist/utils/hksv-recording-delegate.js.map +1 -1
- package/dist/utils/mp4-parser.js +8 -1
- package/dist/utils/mp4-parser.js.map +1 -1
- package/dist/utils/rtsp-url.d.ts +5 -0
- package/dist/utils/rtsp-url.js +14 -5
- package/dist/utils/rtsp-url.js.map +1 -1
- package/dist/utils/sanitize.d.ts +5 -0
- package/dist/utils/sanitize.js +10 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/streaming-delegate.js +5 -3
- package/dist/utils/streaming-delegate.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
19
|
### Removed
|
|
20
20
|
- Nothing yet
|
|
21
21
|
|
|
22
|
+
## [2.0.3] - 2026-09-24
|
|
23
|
+
|
|
24
|
+
### Security
|
|
25
|
+
- Camera credentials no longer leak into the Homebridge log. Snapshot timeouts, live-view ffmpeg output (including ffmpeg's own error and banner lines) and ffmpeg start failures printed the full RTSP URL with the camera's username and verification code. They're now masked as `rtsp://***:***@...`, including for verification codes containing characters like `@` or `/`
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- MQTT real-time push still died after the first 12h session refresh: the refreshed credentials dropped the EZVIZ username, so the reconnect added in 2.0.2 was skipped and motion silently fell back to the 30s poll. The username is now kept, and MQTT also reconnects when the session is renewed mid-cycle after EZVIZ rejects it
|
|
29
|
+
- Plug, camera privacy and alarm-mode changes failed with "communication failure" after EZVIZ invalidated the session mid-cycle, until the next 12h refresh. They now renew the session and retry like other requests
|
|
30
|
+
- A session renewal that EZVIZ kept rejecting could produce an endless chain of retry requests
|
|
31
|
+
- HomeKit Secure Video: when two recordings overlapped, closing the first one stopped the wrong ffmpeg process and left the old one running against the camera. This caused "Recording download stream is still awaiting generator" warnings and could use up the camera's RTSP connections, making later snapshots time out. An ffmpeg process that ignored the stop signal also could never be force-stopped
|
|
32
|
+
- HomeKit Secure Video: if the background prebuffer's ffmpeg died (e.g. a WiFi drop or camera reboot), recordings lost their pre-roll until restart and could fail to decode. It now restarts automatically with a clean buffer
|
|
33
|
+
- HomeKit Secure Video: an unexpected error on the prebuffer's local connection could crash Homebridge, and an unusual video stream could make a recording hang silently
|
|
34
|
+
- Verification codes containing special characters (such as `@`, `/` or `#`) produced an invalid RTSP URL
|
|
35
|
+
- Live view crashed for cameras that EZVIZ reports without a switch list
|
|
36
|
+
- A camera that was offline when Homebridge started was left half set up. It now gets a working camera accessory and a log warning explaining that video will work once it's back online and Homebridge is restarted
|
|
37
|
+
- Accounts with more than 30 devices only saw the first 30. Devices past that point were also removed from HomeKit if their position in the list changed
|
|
38
|
+
- Toggling a plug or camera privacy right as a background refresh was running could make HomeKit show the old state for up to a minute
|
|
39
|
+
- An alarm mode reported as `0` (unset) could be misread as another mode
|
|
40
|
+
- Dual-lens cameras made two identical alarm-history requests every 30 seconds instead of one
|
|
41
|
+
|
|
42
|
+
## [2.0.2] - 2026-09-24
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
- The MQTT push subscription was only registered once at startup, tied to the sessionId active at that moment. The 12h session refresh issued a new sessionId but never reconnected MQTT, so the socket stayed "connected" while EZVIZ silently stopped routing real-time alarms to it — motion then fell back to the 30s poll indefinitely. MQTT now reconnects after every session refresh
|
|
46
|
+
|
|
22
47
|
## [2.0.1] - 2026-09-24
|
|
23
48
|
|
|
24
49
|
### Fixed
|
package/README.md
CHANGED
|
@@ -124,7 +124,7 @@ Add the following to your Homebridge `config.json` file:
|
|
|
124
124
|
| `serial` | string | Yes | Camera serial number |
|
|
125
125
|
| `username` | string | Yes | Camera username (usually "admin") |
|
|
126
126
|
| `code` | string | Yes | Camera verification code |
|
|
127
|
-
| `dualCamera` | boolean | No | Enable for devices with two physical lenses (e.g. H9c) |
|
|
127
|
+
| `dualCamera` | boolean | No | Enable for devices with two physical lenses (e.g. H9c). Each lens gets its own camera accessory; the "Camera Off" (privacy) control applies to the whole device, not a single lens |
|
|
128
128
|
|
|
129
129
|
### Smart Plug Configuration
|
|
130
130
|
|
|
@@ -164,6 +164,10 @@ For a complete list of all supported region codes, see [config.schema.json](conf
|
|
|
164
164
|
- Check that Video & Picture Encryption is enabled
|
|
165
165
|
- Verify camera credentials are correct
|
|
166
166
|
- Check network connectivity
|
|
167
|
+
- If the log warns that EZVIZ reported no local IP address for the camera, it was offline when Homebridge started. Bring it back online and restart Homebridge
|
|
168
|
+
|
|
169
|
+
#### Motion Is Detected Late
|
|
170
|
+
Motion normally arrives in real time over EZVIZ's MQTT push service, with a 30-second poll as a fallback. Look for `MQTT push connected — real-time alerts active` in the log at startup. If it's missing, or the motion log lines show `(poll)` instead of `(MQTT)`, only the fallback is working; enable Debug mode and check the `MQTT` log lines to see why
|
|
167
171
|
|
|
168
172
|
#### Smart Plug Not Responding
|
|
169
173
|
- Verify the verification code is correct
|
|
@@ -191,7 +195,7 @@ Enable debug mode for detailed logging:
|
|
|
191
195
|
3. Create a new issue with:
|
|
192
196
|
- Device information
|
|
193
197
|
- Configuration (without credentials)
|
|
194
|
-
- Error logs
|
|
198
|
+
- Error logs (camera usernames and verification codes in RTSP URLs are masked as `***:***` in the plugin's logs, but still review logs before sharing them)
|
|
195
199
|
- Steps to reproduce
|
|
196
200
|
|
|
197
201
|
## API Documentation
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { StreamingDelegate } from '../utils/streaming-delegate.js';
|
|
2
2
|
import { HksvRecordingDelegate } from '../utils/hksv-recording-delegate.js';
|
|
3
|
-
import {
|
|
3
|
+
import { HKSV_PREBUFFER_LENGTH_MS } from '../utils/hksv-prebuffer.js';
|
|
4
|
+
import { getCameraLocalIp, getRtspUrl } from '../utils/rtsp-url.js';
|
|
4
5
|
import { SwitchTypes } from '../utils/enums.js';
|
|
5
6
|
const STATE_REFRESH_INTERVAL_MS = 60_000;
|
|
6
|
-
const HKSV_PREBUFFER_LENGTH_MS = 4000;
|
|
7
7
|
/**
|
|
8
8
|
* IP Camera accessory for EZVIZ devices
|
|
9
9
|
* Handles video streaming and camera functionality
|
|
@@ -68,6 +68,10 @@ export class IPCamera {
|
|
|
68
68
|
// to recognize it as the recording trigger. CameraMotionSensor drives this service.
|
|
69
69
|
this.motionService = this.accessory.getService(this.platform.Service.MotionSensor) ||
|
|
70
70
|
this.accessory.addService(this.platform.Service.MotionSensor);
|
|
71
|
+
if (!getCameraLocalIp(accessory.context.device)) {
|
|
72
|
+
this.platform.log.warn(`${accessory.context.device.Name}: EZVIZ reported no local IP address (camera offline?). ` +
|
|
73
|
+
'Live view and recording will fail until it is back online and Homebridge is restarted.');
|
|
74
|
+
}
|
|
71
75
|
const rtspUrl = getRtspUrl(accessory.context.device);
|
|
72
76
|
// Configure camera controller options
|
|
73
77
|
const options = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ip-camera.js","sourceRoot":"","sources":["../../src/accessories/ip-camera.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ip-camera.js","sourceRoot":"","sources":["../../src/accessories/ip-camera.ts"],"names":[],"mappings":"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"}
|
package/dist/api/ezviz-api.d.ts
CHANGED
|
@@ -12,6 +12,10 @@ export declare class EZVIZAPI {
|
|
|
12
12
|
private log;
|
|
13
13
|
private deviceListCache;
|
|
14
14
|
private deviceListInFlight;
|
|
15
|
+
private deviceListGeneration;
|
|
16
|
+
private refreshInFlight;
|
|
17
|
+
private readonly latestAlarmInFlight;
|
|
18
|
+
onSessionRefreshed?: () => void;
|
|
15
19
|
constructor(config: EZVIZConfig, log?: Logging);
|
|
16
20
|
/**
|
|
17
21
|
* Generates a random string of specified length
|
|
@@ -26,16 +30,19 @@ export declare class EZVIZAPI {
|
|
|
26
30
|
authenticate(): Promise<Credentials | undefined>;
|
|
27
31
|
/**
|
|
28
32
|
* Refreshes the session using the refresh token, falling back to full re-authentication
|
|
29
|
-
* if the refresh token is missing or rejected.
|
|
33
|
+
* if the refresh token is missing or rejected. Concurrent callers (e.g. several requests
|
|
34
|
+
* hitting 401 at once) share a single refresh.
|
|
30
35
|
* @returns Promise resolving to updated credentials or undefined on failure
|
|
31
36
|
*/
|
|
32
37
|
refreshSession(): Promise<Credentials | undefined>;
|
|
38
|
+
private doRefreshSession;
|
|
33
39
|
/**
|
|
34
40
|
* Gets the domain URL for the specified region
|
|
35
41
|
* @param id - The region ID
|
|
36
42
|
* @returns Promise resolving to the domain URL
|
|
37
43
|
*/
|
|
38
44
|
getDomain(id: number): Promise<string>;
|
|
45
|
+
private request;
|
|
39
46
|
/**
|
|
40
47
|
* Returns the MQTT push address from the server info endpoint.
|
|
41
48
|
* Used to connect the MQTT client for real-time push notifications.
|
|
@@ -50,9 +57,7 @@ export declare class EZVIZAPI {
|
|
|
50
57
|
* @returns Promise resolving to device list or undefined if failed
|
|
51
58
|
*/
|
|
52
59
|
listDevices(forceRefresh?: boolean): Promise<ListDevicesResponse | undefined>;
|
|
53
|
-
|
|
54
|
-
* Performs the actual device list request and populates the cache
|
|
55
|
-
*/
|
|
60
|
+
private startDeviceListFetch;
|
|
56
61
|
private fetchDeviceList;
|
|
57
62
|
/**
|
|
58
63
|
* Drops the cached device list so the next read fetches fresh state.
|
|
@@ -64,11 +69,15 @@ export declare class EZVIZAPI {
|
|
|
64
69
|
* if it has no alarm history. Uses /v3/alarms/v2/advanced, which filters server-side by
|
|
65
70
|
* deviceSerials — unlike /v3/unifiedmsg/list, which silently ignores that param and
|
|
66
71
|
* always returns global results.
|
|
72
|
+
*
|
|
73
|
+
* Concurrent calls for the same serial share one request: a dual-lens camera has a
|
|
74
|
+
* motion sensor per lens, both polling the same device on the same schedule.
|
|
67
75
|
*/
|
|
68
76
|
getLatestAlarm(serialNumber: string): Promise<{
|
|
69
77
|
time: number;
|
|
70
78
|
picUrl: string;
|
|
71
79
|
} | null>;
|
|
80
|
+
private fetchLatestAlarm;
|
|
72
81
|
/**
|
|
73
82
|
* Sets the state of a switch/plug
|
|
74
83
|
* @param serialNumber - The device serial number
|
package/dist/api/ezviz-api.js
CHANGED
|
@@ -4,6 +4,38 @@ import crypto, { randomBytes } from 'crypto';
|
|
|
4
4
|
import { EZVIZ_CLIENT_TYPE, EZVIZ_USER_AGENT, EZVIZ_BASE_API_URL, EZVIZ_DOMAINS_ENDPOINT, EZVIZ_AUTH_ENDPOINT, EZVIZ_DEVICES_ENDPOINT, EZVIZ_SWITCH_STATUS_ENDPOINT, EZVIZ_ALARMINFO_ENDPOINT, EZVIZ_SERVER_INFO_ENDPOINT, EZVIZ_DEFENCE_MODE_ENDPOINT, EZVIZ_DEFENCE_MODE_GET_ENDPOINT, API_ENDPOINT_REFRESH, RUSSIA_DOMAIN, RUSSIA_AREA_ID, DEFAULT_GROUP_ID, EZVIZ_REQUEST_TIMEOUT_MS, EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, DEVICE_LIST_CACHE_TTL_MS, } from './ezviz-constants.js';
|
|
5
5
|
import { DefenceMode } from '../utils/enums.js';
|
|
6
6
|
import { sendRequest } from './ezviz-requests.js';
|
|
7
|
+
const DEVICE_LIST_PAGE_SIZE = 30;
|
|
8
|
+
// Safety bound in case the API keeps reporting another page.
|
|
9
|
+
const DEVICE_LIST_MAX_PAGES = 10;
|
|
10
|
+
function hasNextPage(response) {
|
|
11
|
+
// Accept either casing: the typed shape uses Page.HasNext, but it isn't verified
|
|
12
|
+
// against every region's API.
|
|
13
|
+
const page = (response?.Page ?? response?.page);
|
|
14
|
+
return Boolean(page?.HasNext ?? page?.hasNext);
|
|
15
|
+
}
|
|
16
|
+
function isPlainObject(value) {
|
|
17
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Combines consecutive device-list pages: list fields are concatenated and the
|
|
21
|
+
* per-serial maps (CONNECTION, SWITCH, ...) are merged.
|
|
22
|
+
*/
|
|
23
|
+
function mergeDeviceListPages(a, b) {
|
|
24
|
+
const merged = { ...a };
|
|
25
|
+
for (const [key, value] of Object.entries(b ?? {})) {
|
|
26
|
+
const existing = merged[key];
|
|
27
|
+
if (Array.isArray(existing) && Array.isArray(value)) {
|
|
28
|
+
merged[key] = [...existing, ...value];
|
|
29
|
+
}
|
|
30
|
+
else if (key !== 'Page' && key !== 'page' && key !== 'meta' && isPlainObject(existing) && isPlainObject(value)) {
|
|
31
|
+
merged[key] = { ...existing, ...value };
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
merged[key] = value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return merged;
|
|
38
|
+
}
|
|
7
39
|
/**
|
|
8
40
|
* EZVIZ API client for interacting with EZVIZ services
|
|
9
41
|
*/
|
|
@@ -13,6 +45,15 @@ export class EZVIZAPI {
|
|
|
13
45
|
log;
|
|
14
46
|
deviceListCache = null;
|
|
15
47
|
deviceListInFlight = null;
|
|
48
|
+
// Bumped by every write, so a list fetch that was already in flight can tell its
|
|
49
|
+
// result may predate the write.
|
|
50
|
+
deviceListGeneration = 0;
|
|
51
|
+
refreshInFlight = null;
|
|
52
|
+
latestAlarmInFlight = new Map();
|
|
53
|
+
// Invoked after every successful session rotation, including ones triggered by a 401
|
|
54
|
+
// mid-request, so anything bound to the old sessionId (the MQTT push subscription)
|
|
55
|
+
// can re-establish itself.
|
|
56
|
+
onSessionRefreshed;
|
|
16
57
|
constructor(config, log) {
|
|
17
58
|
this.config = config;
|
|
18
59
|
this.sessionId = null;
|
|
@@ -97,10 +138,26 @@ export class EZVIZAPI {
|
|
|
97
138
|
}
|
|
98
139
|
/**
|
|
99
140
|
* Refreshes the session using the refresh token, falling back to full re-authentication
|
|
100
|
-
* if the refresh token is missing or rejected.
|
|
141
|
+
* if the refresh token is missing or rejected. Concurrent callers (e.g. several requests
|
|
142
|
+
* hitting 401 at once) share a single refresh.
|
|
101
143
|
* @returns Promise resolving to updated credentials or undefined on failure
|
|
102
144
|
*/
|
|
103
|
-
|
|
145
|
+
refreshSession() {
|
|
146
|
+
if (!this.refreshInFlight) {
|
|
147
|
+
this.refreshInFlight = this.doRefreshSession()
|
|
148
|
+
.then((credentials) => {
|
|
149
|
+
if (credentials) {
|
|
150
|
+
this.onSessionRefreshed?.();
|
|
151
|
+
}
|
|
152
|
+
return credentials;
|
|
153
|
+
})
|
|
154
|
+
.finally(() => {
|
|
155
|
+
this.refreshInFlight = null;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return this.refreshInFlight;
|
|
159
|
+
}
|
|
160
|
+
async doRefreshSession() {
|
|
104
161
|
const creds = this.config.credentials;
|
|
105
162
|
if (!creds?.rfSessionId) {
|
|
106
163
|
this.log?.debug('No refresh token available, falling back to full re-authentication');
|
|
@@ -130,11 +187,11 @@ export class EZVIZAPI {
|
|
|
130
187
|
this.log?.debug(`Session refresh rejected (code ${result.meta?.code}), falling back to full re-authentication`);
|
|
131
188
|
return this.authenticate();
|
|
132
189
|
}
|
|
190
|
+
// Spread to keep username/pushAddr, which the MQTT reconnect after a refresh needs.
|
|
133
191
|
const updated = {
|
|
192
|
+
...creds,
|
|
134
193
|
sessionId: result.sessionInfo.sessionId,
|
|
135
194
|
rfSessionId: result.sessionInfo.refreshSessionId,
|
|
136
|
-
featureCode: creds.featureCode,
|
|
137
|
-
cuName: creds.cuName,
|
|
138
195
|
};
|
|
139
196
|
this.sessionId = updated.sessionId;
|
|
140
197
|
this.config.credentials = updated;
|
|
@@ -182,13 +239,19 @@ export class EZVIZAPI {
|
|
|
182
239
|
throw error;
|
|
183
240
|
}
|
|
184
241
|
}
|
|
242
|
+
request(endpoint, method, data, options = {}) {
|
|
243
|
+
return sendRequest(this.config, this.config.domain, endpoint, method, data, 3, {
|
|
244
|
+
...options,
|
|
245
|
+
onUnauthorized: async () => Boolean(await this.refreshSession()),
|
|
246
|
+
});
|
|
247
|
+
}
|
|
185
248
|
/**
|
|
186
249
|
* Returns the MQTT push address from the server info endpoint.
|
|
187
250
|
* Used to connect the MQTT client for real-time push notifications.
|
|
188
251
|
*/
|
|
189
252
|
async getServiceUrls() {
|
|
190
253
|
try {
|
|
191
|
-
const response = await
|
|
254
|
+
const response = await this.request(EZVIZ_SERVER_INFO_ENDPOINT, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
|
|
192
255
|
const sysConfig = response?.systemConfigInfo;
|
|
193
256
|
const pushAddr = sysConfig?.pushAddr ?? null;
|
|
194
257
|
if (pushAddr && this.config.credentials) {
|
|
@@ -219,41 +282,66 @@ export class EZVIZAPI {
|
|
|
219
282
|
return;
|
|
220
283
|
}
|
|
221
284
|
}
|
|
222
|
-
if (!forceRefresh) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
return this.deviceListCache.data;
|
|
226
|
-
}
|
|
227
|
-
if (this.deviceListInFlight) {
|
|
228
|
-
this.log?.debug('Joining in-flight device list request');
|
|
229
|
-
return this.deviceListInFlight;
|
|
230
|
-
}
|
|
285
|
+
if (!forceRefresh && this.deviceListCache && this.deviceListCache.expiresAt > Date.now()) {
|
|
286
|
+
this.log?.debug('Using cached device list');
|
|
287
|
+
return this.deviceListCache.data;
|
|
231
288
|
}
|
|
232
|
-
const
|
|
233
|
-
this.deviceListInFlight
|
|
234
|
-
|
|
235
|
-
|
|
289
|
+
const generation = this.deviceListGeneration;
|
|
290
|
+
let request = forceRefresh ? null : this.deviceListInFlight;
|
|
291
|
+
if (request) {
|
|
292
|
+
this.log?.debug('Joining in-flight device list request');
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
request = this.startDeviceListFetch();
|
|
236
296
|
}
|
|
237
|
-
|
|
297
|
+
const result = await request;
|
|
298
|
+
if (this.deviceListGeneration !== generation) {
|
|
299
|
+
// A write landed while this was in flight, so the result may predate it; returning
|
|
300
|
+
// it would revert the state the write just set.
|
|
301
|
+
return this.listDevices();
|
|
302
|
+
}
|
|
303
|
+
return result;
|
|
304
|
+
}
|
|
305
|
+
startDeviceListFetch() {
|
|
306
|
+
const generation = this.deviceListGeneration;
|
|
307
|
+
const request = this.fetchDeviceList().then((info) => {
|
|
308
|
+
if (this.deviceListGeneration === generation) {
|
|
309
|
+
this.deviceListCache = { data: info, expiresAt: Date.now() + DEVICE_LIST_CACHE_TTL_MS };
|
|
310
|
+
}
|
|
311
|
+
return info;
|
|
312
|
+
});
|
|
313
|
+
this.deviceListInFlight = request;
|
|
314
|
+
request
|
|
315
|
+
.finally(() => {
|
|
238
316
|
if (this.deviceListInFlight === request) {
|
|
239
317
|
this.deviceListInFlight = null;
|
|
240
318
|
}
|
|
241
|
-
}
|
|
319
|
+
})
|
|
320
|
+
.catch(() => {
|
|
321
|
+
// Rejection is surfaced to the awaiting callers; this chain only clears state.
|
|
322
|
+
});
|
|
323
|
+
return request;
|
|
242
324
|
}
|
|
243
|
-
/**
|
|
244
|
-
* Performs the actual device list request and populates the cache
|
|
245
|
-
*/
|
|
246
325
|
async fetchDeviceList() {
|
|
247
326
|
try {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
327
|
+
let merged = null;
|
|
328
|
+
let offset = 0;
|
|
329
|
+
for (let page = 0; page < DEVICE_LIST_MAX_PAGES; page++) {
|
|
330
|
+
const query = querystring.stringify({
|
|
331
|
+
filter: 'CONNECTION,WIFI,SWITCH,STATUS,NODISTURB,P2P,FEATURE,DETECTOR',
|
|
332
|
+
groupId: DEFAULT_GROUP_ID,
|
|
333
|
+
limit: DEVICE_LIST_PAGE_SIZE,
|
|
334
|
+
offset,
|
|
335
|
+
});
|
|
336
|
+
const info = await this.request(`${EZVIZ_DEVICES_ENDPOINT}?${query}`, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
|
|
337
|
+
merged = merged ? mergeDeviceListPages(merged, info) : info;
|
|
338
|
+
const received = info?.deviceInfos?.length ?? 0;
|
|
339
|
+
if (!hasNextPage(info) || received === 0) {
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
offset += received;
|
|
343
|
+
}
|
|
344
|
+
return merged;
|
|
257
345
|
}
|
|
258
346
|
catch (error) {
|
|
259
347
|
this.log?.error('Error fetching devices:', error);
|
|
@@ -266,14 +354,29 @@ export class EZVIZAPI {
|
|
|
266
354
|
*/
|
|
267
355
|
invalidateDeviceListCache() {
|
|
268
356
|
this.deviceListCache = null;
|
|
357
|
+
this.deviceListInFlight = null;
|
|
358
|
+
this.deviceListGeneration++;
|
|
269
359
|
}
|
|
270
360
|
/**
|
|
271
361
|
* Returns the most recent alarm's timestamp (ms) and snapshot URL for a device, or null
|
|
272
362
|
* if it has no alarm history. Uses /v3/alarms/v2/advanced, which filters server-side by
|
|
273
363
|
* deviceSerials — unlike /v3/unifiedmsg/list, which silently ignores that param and
|
|
274
364
|
* always returns global results.
|
|
365
|
+
*
|
|
366
|
+
* Concurrent calls for the same serial share one request: a dual-lens camera has a
|
|
367
|
+
* motion sensor per lens, both polling the same device on the same schedule.
|
|
275
368
|
*/
|
|
276
|
-
|
|
369
|
+
getLatestAlarm(serialNumber) {
|
|
370
|
+
let request = this.latestAlarmInFlight.get(serialNumber);
|
|
371
|
+
if (!request) {
|
|
372
|
+
request = this.fetchLatestAlarm(serialNumber).finally(() => {
|
|
373
|
+
this.latestAlarmInFlight.delete(serialNumber);
|
|
374
|
+
});
|
|
375
|
+
this.latestAlarmInFlight.set(serialNumber, request);
|
|
376
|
+
}
|
|
377
|
+
return request;
|
|
378
|
+
}
|
|
379
|
+
async fetchLatestAlarm(serialNumber) {
|
|
277
380
|
if (!this.sessionId) {
|
|
278
381
|
try {
|
|
279
382
|
await this.authenticate();
|
|
@@ -290,7 +393,7 @@ export class EZVIZAPI {
|
|
|
290
393
|
limit: 1,
|
|
291
394
|
stype: -1,
|
|
292
395
|
});
|
|
293
|
-
const response = await
|
|
396
|
+
const response = await this.request(`${EZVIZ_ALARMINFO_ENDPOINT}?${query}`, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
|
|
294
397
|
const latest = response?.alarms?.[0];
|
|
295
398
|
if (!latest?.alarmStartTime) {
|
|
296
399
|
return null;
|
|
@@ -321,30 +424,19 @@ export class EZVIZAPI {
|
|
|
321
424
|
throw error;
|
|
322
425
|
}
|
|
323
426
|
}
|
|
324
|
-
const
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
'user-agent': EZVIZ_USER_AGENT,
|
|
332
|
-
},
|
|
333
|
-
data: querystring.stringify({
|
|
334
|
-
channel: 0,
|
|
335
|
-
clientType: 1,
|
|
336
|
-
enable: value ? 1 : 0,
|
|
337
|
-
serial: serialNumber,
|
|
338
|
-
type: type,
|
|
339
|
-
}),
|
|
340
|
-
};
|
|
427
|
+
const data = querystring.stringify({
|
|
428
|
+
channel: 0,
|
|
429
|
+
clientType: 1,
|
|
430
|
+
enable: value ? 1 : 0,
|
|
431
|
+
serial: serialNumber,
|
|
432
|
+
type: type,
|
|
433
|
+
});
|
|
341
434
|
try {
|
|
342
|
-
const response = await
|
|
343
|
-
if (response
|
|
344
|
-
throw new Error(`Switch state update failed: ${response.
|
|
435
|
+
const response = await this.request(EZVIZ_SWITCH_STATUS_ENDPOINT, 'POST', data);
|
|
436
|
+
if (response?.retcode) {
|
|
437
|
+
throw new Error(`Switch state update failed: ${response.retcode}`);
|
|
345
438
|
}
|
|
346
439
|
this.invalidateDeviceListCache();
|
|
347
|
-
return response.data;
|
|
348
440
|
}
|
|
349
441
|
catch (error) {
|
|
350
442
|
this.log?.error('Error setting switch state:', error);
|
|
@@ -418,25 +510,14 @@ export class EZVIZAPI {
|
|
|
418
510
|
groupId: groupId,
|
|
419
511
|
mode: mode,
|
|
420
512
|
});
|
|
421
|
-
const config = {
|
|
422
|
-
method: 'post',
|
|
423
|
-
timeout: EZVIZ_REQUEST_TIMEOUT_MS,
|
|
424
|
-
url: `${this.config.domain}${EZVIZ_DEFENCE_MODE_ENDPOINT}?${query}`,
|
|
425
|
-
headers: {
|
|
426
|
-
'sessionid': this.sessionId,
|
|
427
|
-
'clienttype': EZVIZ_CLIENT_TYPE,
|
|
428
|
-
'user-agent': EZVIZ_USER_AGENT,
|
|
429
|
-
},
|
|
430
|
-
};
|
|
431
513
|
try {
|
|
432
|
-
const response = await
|
|
433
|
-
if (response
|
|
434
|
-
throw new Error(`Defence mode update failed: ${response.
|
|
514
|
+
const response = await this.request(`${EZVIZ_DEFENCE_MODE_ENDPOINT}?${query}`, 'POST');
|
|
515
|
+
if (response?.retcode && response.retcode !== '200') {
|
|
516
|
+
throw new Error(`Defence mode update failed: ${response.retcode}`);
|
|
435
517
|
}
|
|
436
|
-
if (response
|
|
437
|
-
throw new Error(`Defence mode update failed: ${response.
|
|
518
|
+
if (response?.meta?.code && response.meta.code !== 200) {
|
|
519
|
+
throw new Error(`Defence mode update failed: ${response.meta.code} - ${response.meta.message}`);
|
|
438
520
|
}
|
|
439
|
-
return response.data;
|
|
440
521
|
}
|
|
441
522
|
catch (error) {
|
|
442
523
|
this.log?.error('Error setting defence mode:', error);
|
|
@@ -462,7 +543,7 @@ export class EZVIZAPI {
|
|
|
462
543
|
groupId: groupId,
|
|
463
544
|
});
|
|
464
545
|
try {
|
|
465
|
-
const response = await
|
|
546
|
+
const response = await this.request(`${EZVIZ_DEFENCE_MODE_GET_ENDPOINT}?${query}`, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
|
|
466
547
|
if (response?.retcode && response.retcode !== '200') {
|
|
467
548
|
throw new Error(`Failed to get defence mode: ${response.retcode}`);
|
|
468
549
|
}
|
|
@@ -471,7 +552,8 @@ export class EZVIZAPI {
|
|
|
471
552
|
}
|
|
472
553
|
// Extract the mode from the response
|
|
473
554
|
// The response structure may vary, but typically it's in response.mode or response.defenceMode
|
|
474
|
-
|
|
555
|
+
// `??`, not `||`: 0 (UNSET_MODE) is a valid mode, not a missing one.
|
|
556
|
+
const mode = response?.mode ?? response?.defenceMode ?? response?.data?.mode;
|
|
475
557
|
if (mode === undefined || mode === null) {
|
|
476
558
|
this.log?.debug('No mode found in response, defaulting to UNSET_MODE');
|
|
477
559
|
return DefenceMode.UNSET_MODE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ezviz-api.js","sourceRoot":"","sources":["../../src/api/ezviz-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ezviz-api.js","sourceRoot":"","sources":["../../src/api/ezviz-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,11 @@ export declare function withNetworkRetry<T>(fn: () => Promise<T>, retries: numbe
|
|
|
24
24
|
* networkRetries (default 0) retries transient network
|
|
25
25
|
* errors with backoff before giving up. Leave both unset
|
|
26
26
|
* for requests on a HomeKit-blocking read path.
|
|
27
|
+
* onUnauthorized is called on a 401 to rotate the session
|
|
28
|
+
* (resolving false if it couldn't) before retrying.
|
|
27
29
|
*/
|
|
28
30
|
export declare function sendRequest<T>(config: EZVIZConfig, hostname: string, endpoint: string, method: Method, data?: string, retries?: number, options?: {
|
|
29
31
|
timeoutMs?: number;
|
|
30
32
|
networkRetries?: number;
|
|
33
|
+
onUnauthorized?: () => Promise<boolean>;
|
|
31
34
|
}): Promise<T>;
|