@mega-yfue/eufy-sdk 0.2.0-beta.26 → 0.2.0-beta.27
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/dist/index.js +25 -12
- package/dist/index.js.map +2 -2
- package/dist/model/capabilities/doorbell.d.ts +24 -14
- package/package.json +1 -1
|
@@ -14,8 +14,9 @@ export declare const DOORBELL_CMD: {
|
|
|
14
14
|
*/
|
|
15
15
|
readonly QUICK_RESPONSE: 1706;
|
|
16
16
|
/**
|
|
17
|
-
* Mechanical (wired) chime enable/disable — whether the doorbell drives an existing wired chime box
|
|
18
|
-
* (as opposed to / in addition to the
|
|
17
|
+
* Mechanical (wired) chime enable/disable — whether the doorbell drives an existing wired chime box,
|
|
18
|
+
* the app's "existing doorbell chime" (as opposed to / in addition to the HomeBase acting as the chime,
|
|
19
|
+
* param 1702 `chimeSwitch` above; toggling each switch alone wrote one parameter and named the pair). Same
|
|
19
20
|
* 136-byte direct-binary shape as `QUICK_RESPONSE`/camera on-off: `[u32 channel][u32 value][account_id
|
|
20
21
|
* ASCII, zero-padded to 128 bytes]`, outer P2P cmd = 1703 itself, signCode 8, on the device's own
|
|
21
22
|
* channel. Reversed from a live capture (outer-cmd 1703, signCode 8, captured on the doorbell's
|
|
@@ -24,6 +25,19 @@ export declare const DOORBELL_CMD: {
|
|
|
24
25
|
* App `APP_CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH`.
|
|
25
26
|
*/
|
|
26
27
|
readonly MECHANICAL_CHIME_SWITCH: 1703;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the HOMEBASE acts as the doorbell's chime — the app's "HomeBase as chime" switch, as opposed
|
|
30
|
+
* to the wired chime box {@link DOORBELL_CMD.MECHANICAL_CHIME_SWITCH} drives. The app constant reads
|
|
31
|
+
* `CHIME_SWITCH`, which is why this was long described as a separate plug-in chime; toggling that one
|
|
32
|
+
* switch alone on a T8210 behind a HomeBase wrote 1702 and nothing else, and the account has no
|
|
33
|
+
* plug-in chime at all. Same 136-byte direct-binary shape as
|
|
34
|
+
* that sibling: `[u32 channel][u32 value][account_id ASCII, zero-padded to 128 bytes]`, outer P2P cmd
|
|
35
|
+
* 1702 itself, signCode 8, on the device's own channel. Reversed from a live capture (outer-cmd 1702,
|
|
36
|
+
* signCode 8, on the doorbell's `device_channel` — 2 for that unit, NOT a wire constant, always use
|
|
37
|
+
* `ctx.channel`): turning OFF sent `value=0`, turning ON sent `value=1` — a plain boolean.
|
|
38
|
+
* App `APP_CMD_BAT_DOORBELL_CHIME_SWITCH`.
|
|
39
|
+
*/
|
|
40
|
+
readonly CHIME_SWITCH: 1702;
|
|
27
41
|
/**
|
|
28
42
|
* Wide Dynamic Range (WDR) image switch — a video/image tone-mapping setting that widens the
|
|
29
43
|
* exposure range in high-contrast scenes (bright sky behind a visitor, etc). SAME 136-byte
|
|
@@ -158,13 +172,10 @@ export declare function parseQuickResponses(voiceList: Array<{
|
|
|
158
172
|
/**
|
|
159
173
|
* Every `doorbell` feature, declared once.
|
|
160
174
|
*
|
|
161
|
-
*
|
|
175
|
+
* Two of the seven reads are read-ONLY here even though the device accepts a write, because the write
|
|
162
176
|
* does not belong to this capability or is not confirmed:
|
|
163
177
|
* - `ringtoneVolume` (1708) — the WRITE lives on `audio`, which owns every volume wire. 1708 leaks
|
|
164
178
|
* onto non-doorbell cameras, so `audio` gates its setter on the doorbell capability instead.
|
|
165
|
-
* - `chimeSwitch` (1702) — READ confirmed on a T8214, the WRITE wire never captured. Its 1703/1704
|
|
166
|
-
* siblings share the param range but that is NOT evidence of a shared frame, and a wrong guess on a
|
|
167
|
-
* fire-and-forget P2P write looks exactly like success.
|
|
168
179
|
* - `notificationMode` (1710) — a config JSON the device reports whole; no write is captured.
|
|
169
180
|
*
|
|
170
181
|
* Exported but NOT published: each entry states its wire id and the evidence it was confirmed on,
|
|
@@ -173,19 +184,18 @@ export declare function parseQuickResponses(voiceList: Array<{
|
|
|
173
184
|
*/
|
|
174
185
|
export declare const DOORBELL_MEMBERS: {
|
|
175
186
|
/**
|
|
176
|
-
* The
|
|
177
|
-
* `mechanicalChimeSwitch` drives. `
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* Sharing the 1702-1719 range with its captured siblings is not evidence of a shared frame shape.
|
|
187
|
+
* The HOMEBASE as the doorbell's chime — the hub plays the ring, not the wired chime box
|
|
188
|
+
* `mechanicalChimeSwitch` drives. `provenance` is "verified" on our own decrypt of the app's frame,
|
|
189
|
+
* not merely the param id observed live: direct-binary `[ch][value][acct]`, 1=on/0=off, the same shape
|
|
190
|
+
* as its 1703 sibling — captured, not inferred from the shared param range.
|
|
181
191
|
*/
|
|
182
192
|
readonly chimeSwitch: {
|
|
183
193
|
readonly param: 1702;
|
|
184
194
|
readonly type: "bool";
|
|
185
195
|
readonly kind: "boolean";
|
|
186
|
-
readonly provenance: "
|
|
187
|
-
readonly unverified: true;
|
|
196
|
+
readonly provenance: "verified";
|
|
188
197
|
readonly description: string;
|
|
198
|
+
readonly write: (v: string | number | boolean, ctx: import("./types.js").CommandContext) => import("../../core/contracts.js").Command;
|
|
189
199
|
};
|
|
190
200
|
/**
|
|
191
201
|
* `provenance` is "verified" not "mega": the actual write wire is confirmed (
|
|
@@ -197,7 +207,7 @@ export declare const DOORBELL_MEMBERS: {
|
|
|
197
207
|
readonly type: "bool";
|
|
198
208
|
readonly kind: "boolean";
|
|
199
209
|
readonly provenance: "verified";
|
|
200
|
-
readonly description:
|
|
210
|
+
readonly description: string;
|
|
201
211
|
readonly write: (v: string | number | boolean, ctx: import("./types.js").CommandContext) => import("../../core/contracts.js").Command;
|
|
202
212
|
};
|
|
203
213
|
/** Same reasoning and the same capture session as {@link DOORBELL_MEMBERS.mechanicalChimeSwitch}. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mega-yfue/eufy-sdk",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.27",
|
|
4
4
|
"description": "One typed TypeScript client for the Anker eufy v6 cloud — capability-driven devices, realtime events over P2P/MQTT/push, and live media",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "mega-yfue",
|