@mega-yfue/eufy-sdk 0.2.0-beta.25 → 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 CHANGED
@@ -2612,6 +2612,7 @@ var DeviceType = {
2612
2612
  PROFESSIONAL_247: 24,
2613
2613
  MINIBASE_CHIME: 25,
2614
2614
  CAMERA3_PRO: 26,
2615
+ STATION_9000: 27,
2615
2616
  HOMEBASE_MINI: 28,
2616
2617
  INDOOR_CAMERA: 30,
2617
2618
  INDOOR_PT_CAMERA: 31,
@@ -2708,6 +2709,7 @@ function classifyDevice(raw) {
2708
2709
  var STATION_TYPES = /* @__PURE__ */ new Set([
2709
2710
  DeviceType.STATION,
2710
2711
  DeviceType.HB3,
2712
+ DeviceType.STATION_9000,
2711
2713
  DeviceType.MINIBASE_CHIME,
2712
2714
  DeviceType.HOMEBASE_MINI,
2713
2715
  DeviceType.NVR_S4_MAX,
@@ -2787,6 +2789,8 @@ function codecFromModel(model) {
2787
2789
  return "station";
2788
2790
  if (/^T8N0/.test(m) || /^T8E0/.test(m))
2789
2791
  return "station";
2792
+ if (/^T9000/.test(m))
2793
+ return "station";
2790
2794
  if (/^T74/.test(m))
2791
2795
  return "lock";
2792
2796
  if (/^T85/.test(m))
@@ -4801,6 +4805,7 @@ var WALL_LIGHT_TYPES = /* @__PURE__ */ new Set([
4801
4805
  var HOMEBASE_TYPES = /* @__PURE__ */ new Set([
4802
4806
  DeviceType.STATION,
4803
4807
  DeviceType.HB3,
4808
+ DeviceType.STATION_9000,
4804
4809
  DeviceType.MINIBASE_CHIME,
4805
4810
  DeviceType.HOMEBASE_MINI
4806
4811
  ]);
@@ -6540,8 +6545,9 @@ var DOORBELL_CMD = {
6540
6545
  */
6541
6546
  QUICK_RESPONSE: 1706,
6542
6547
  /**
6543
- * Mechanical (wired) chime enable/disable — whether the doorbell drives an existing wired chime box
6544
- * (as opposed to / in addition to the wireless indoor chime, param 1702 `chimeSwitch` above). Same
6548
+ * Mechanical (wired) chime enable/disable — whether the doorbell drives an existing wired chime box,
6549
+ * the app's "existing doorbell chime" (as opposed to / in addition to the HomeBase acting as the chime,
6550
+ * param 1702 `chimeSwitch` above; toggling each switch alone wrote one parameter and named the pair). Same
6545
6551
  * 136-byte direct-binary shape as `QUICK_RESPONSE`/camera on-off: `[u32 channel][u32 value][account_id
6546
6552
  * ASCII, zero-padded to 128 bytes]`, outer P2P cmd = 1703 itself, signCode 8, on the device's own
6547
6553
  * channel. Reversed from a live capture (outer-cmd 1703, signCode 8, captured on the doorbell's
@@ -6550,6 +6556,19 @@ var DOORBELL_CMD = {
6550
6556
  * App `APP_CMD_BAT_DOORBELL_MECHANICAL_CHIME_SWITCH`.
6551
6557
  */
6552
6558
  MECHANICAL_CHIME_SWITCH: 1703,
6559
+ /**
6560
+ * Whether the HOMEBASE acts as the doorbell's chime — the app's "HomeBase as chime" switch, as opposed
6561
+ * to the wired chime box {@link DOORBELL_CMD.MECHANICAL_CHIME_SWITCH} drives. The app constant reads
6562
+ * `CHIME_SWITCH`, which is why this was long described as a separate plug-in chime; toggling that one
6563
+ * switch alone on a T8210 behind a HomeBase wrote 1702 and nothing else, and the account has no
6564
+ * plug-in chime at all. Same 136-byte direct-binary shape as
6565
+ * that sibling: `[u32 channel][u32 value][account_id ASCII, zero-padded to 128 bytes]`, outer P2P cmd
6566
+ * 1702 itself, signCode 8, on the device's own channel. Reversed from a live capture (outer-cmd 1702,
6567
+ * signCode 8, on the doorbell's `device_channel` — 2 for that unit, NOT a wire constant, always use
6568
+ * `ctx.channel`): turning OFF sent `value=0`, turning ON sent `value=1` — a plain boolean.
6569
+ * App `APP_CMD_BAT_DOORBELL_CHIME_SWITCH`.
6570
+ */
6571
+ CHIME_SWITCH: 1702,
6553
6572
  /**
6554
6573
  * Wide Dynamic Range (WDR) image switch — a video/image tone-mapping setting that widens the
6555
6574
  * exposure range in high-contrast scenes (bright sky behind a visitor, etc). SAME 136-byte
@@ -6646,19 +6665,18 @@ function parseQuickResponses(voiceList) {
6646
6665
  }
6647
6666
  var DOORBELL_MEMBERS = {
6648
6667
  /**
6649
- * The WIRELESS indoor chime — the separate plug-in unit, not the wired chime box
6650
- * `mechanicalChimeSwitch` drives. `unverified: true` with no `write` at all: the read is confirmed but
6651
- * the write frame has never been captured, so the setter is absent from the surface (a compile-time
6652
- * signal) and the intent path throws rather than reporting the doorbell as lacking the feature.
6653
- * Sharing the 1702-1719 range with its captured siblings is not evidence of a shared frame shape.
6668
+ * The HOMEBASE as the doorbell's chime — the hub plays the ring, not the wired chime box
6669
+ * `mechanicalChimeSwitch` drives. `provenance` is "verified" on our own decrypt of the app's frame,
6670
+ * not merely the param id observed live: direct-binary `[ch][value][acct]`, 1=on/0=off, the same shape
6671
+ * as its 1703 sibling — captured, not inferred from the shared param range.
6654
6672
  */
6655
6673
  chimeSwitch: {
6656
- param: 1702,
6674
+ param: DOORBELL_CMD.CHIME_SWITCH,
6657
6675
  type: "bool",
6658
6676
  kind: "boolean",
6659
- provenance: "mega",
6660
- unverified: true,
6661
- description: "Wireless indoor chime enabled (1702 CMD_BAT_DOORBELL_CHIME_SWITCH; READ confirmed on T8214 \u2014 the WRITE wire is unconfirmed, so no setter is offered rather than guessing it)."
6677
+ provenance: "verified",
6678
+ description: `The HomeBase plays the doorbell's chime (1702; the app's "HomeBase as chime" switch \u2014 write wire-confirmed live on T8210).`,
6679
+ write: (v, ctx) => setScalar(DOORBELL_CMD.CHIME_SWITCH, asBool(v) ? 1 : 0, ctx, "direct-binary")
6662
6680
  },
6663
6681
  /**
6664
6682
  * `provenance` is "verified" not "mega": the actual write wire is confirmed (
@@ -6670,7 +6688,7 @@ var DOORBELL_MEMBERS = {
6670
6688
  type: "bool",
6671
6689
  kind: "boolean",
6672
6690
  provenance: "verified",
6673
- description: "Mechanical chime enabled (1703; confirmed on T8214).",
6691
+ description: `The existing wired chime box rings (1703; the app's "existing doorbell chime" switch \u2014 confirmed on T8214, and that pairing confirmed by toggling it alone on a T8210).`,
6674
6692
  write: (v, ctx) => setScalar(DOORBELL_CMD.MECHANICAL_CHIME_SWITCH, asBool(v) ? 1 : 0, ctx, "direct-binary")
6675
6693
  },
6676
6694
  /** Same reasoning and the same capture session as {@link DOORBELL_MEMBERS.mechanicalChimeSwitch}. */