@mega-yfue/eufy-sdk 0.5.0-beta.11 → 0.5.0-beta.13

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.
@@ -169,12 +169,11 @@ export declare const TUYA_CLEAN_TYPES: readonly ["Sweep", "SweepMop", "Mop"];
169
169
  /** @internal */
170
170
  export type TuyaCleanType = (typeof TUYA_CLEAN_TYPES)[number];
171
171
  /**
172
- * `ModeCtrlRequest.method` values for DP 152. Live-verified on T2351: START_AUTO_CLEAN → 0
173
- * (omitted from the wire when zero), START_GOHOME → 6, PAUSE_TASK → 13.
172
+ * `ModeCtrlRequest.method` values for DP 152. Live-verified on T2351: START_GOHOME → 6,
173
+ * PAUSE_TASK → 13. An auto clean is `START_AUTO_CLEAN` (0) with a payload — see
174
+ * {@link ModeCtrlParamMethod}.
174
175
  */
175
176
  export declare const ModeCtrlMethod: {
176
- /** Live-verified on a T2351. Zero, so it is omitted from the wire per the proto3 default rule. */
177
- readonly START_AUTO_CLEAN: 0;
178
177
  /** Live-verified on a T2351. */
179
178
  readonly START_GOHOME: 6;
180
179
  /** Live-verified on a T2351. */
@@ -202,9 +201,11 @@ export declare const ModeCtrlMethod: {
202
201
  * its argument in the signature: {@link VACUUM_CLEAN_MEMBERS.startScene},
203
202
  * {@link VACUUM_CLEAN_MEMBERS.cleanRooms} and {@link VACUUM_CLEAN_MEMBERS.cleanZones}.
204
203
  *
205
- * The outer frame these ride in is byte-verified on a live T2351, and `SCENE`, `SELECT_ROOMS` and
206
- * `SELECT_ZONES` have each since been RUN on a T2351 and did what they name — so their numbers rest on
207
- * observed behaviour rather than on the vendor's definition alone.
204
+ * The outer frame these ride in is byte-verified on a live T2351, and `AUTO`, `SCENE`, `SELECT_ROOMS`
205
+ * and `SELECT_ZONES` have each since been RUN on a T2351 and did what they name — so their numbers rest
206
+ * on observed behaviour rather than on the vendor's definition alone. `AUTO` is RUN with its payload:
207
+ * the vendor's definition calls `AutoClean.clean_times` valid only when non-zero, and the T2351 did
208
+ * not start on method 0 sent without it.
208
209
  *
209
210
  * That distinction is the whole point of checking, and this is the one place it is argued: an AIoT
210
211
  * data-point write is fire-and-forget, so a wrong number would be a different command arriving and
@@ -215,6 +216,11 @@ export declare const ModeCtrlMethod: {
215
216
  * scene id and a map id both arrive on DP 180.
216
217
  */
217
218
  export declare const ModeCtrlParamMethod: {
219
+ /** `START_AUTO_CLEAN` with an `AutoClean` payload — clean the whole floor. */
220
+ readonly AUTO: {
221
+ readonly method: 0;
222
+ readonly param: 3;
223
+ };
218
224
  /** `START_SELECT_ROOMS_CLEAN` — clean the named rooms of a named map. */
219
225
  readonly SELECT_ROOMS: {
220
226
  readonly method: 1;
@@ -274,17 +280,17 @@ export declare function encodeSelectZonesClean(mapId: number, zones: readonly Va
274
280
  * @internal
275
281
  */
276
282
  export declare function encodeSceneClean(sceneId: number): string;
283
+ /**
284
+ * Build a whole-floor auto clean carrying an `AutoClean` payload of one pass.
285
+ * @internal
286
+ */
287
+ export declare function encodeAutoClean(): string;
277
288
  /**
278
289
  * Encode a `ModeCtrlRequest` protobuf (DP 152) as a DP value: `varint(bodyLen) ++ {method:1, seq:2}`.
279
290
  *
280
291
  * Built on {@link RawDpWriter} rather than hand-rolled bytes. The frame is unchanged and the existing
281
292
  * byte-level test is what proves it — that test was written against a live T2351 capture, so it holds
282
293
  * the writer to the wire rather than to this function's own idea of the wire.
283
- *
284
- * Method 0 (START_AUTO_CLEAN) is omitted rather than written as an explicit zero, per the proto3
285
- * default-field rule and confirmed on that same capture. The writer deliberately does not apply that
286
- * rule itself: whether an explicit zero and an absent field mean the same thing is the
287
- * message's business, not the encoder's.
288
294
  * @internal
289
295
  */
290
296
  export declare function encodeModeCtrl(method: number, seq: number): string;
@@ -1955,7 +1961,7 @@ export declare const VACUUM_CLEAN_MEMBERS: {
1955
1961
  readonly provenance: "mega";
1956
1962
  readonly description: "Stop smart-follow mode (ModeCtrlRequest method 18 over DP 152). Method number not captured — unverified.";
1957
1963
  };
1958
- /** Start an auto-clean run via ModeCtrlRequest method 0 (DP 152). AIoT only — Tuya write unverified. */
1964
+ /** Start an auto-clean run via ModeCtrlRequest method 0 with one `AutoClean` pass (DP 152). AIoT only — Tuya write unverified. */
1959
1965
  readonly startCleaning: import("./members.js").MethodMember<() => Promise<void>> & {
1960
1966
  available: (ctx: import("./types.js").CommandContext) => boolean;
1961
1967
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mega-yfue/eufy-sdk",
3
- "version": "0.5.0-beta.11",
3
+ "version": "0.5.0-beta.13",
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",