@apocaliss92/nodedreame 1.0.0 → 1.2.0
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.cjs +370 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +324 -20
- package/dist/index.d.ts +324 -20
- package/dist/index.js +369 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -92,6 +92,12 @@ interface PropertyResult {
|
|
|
92
92
|
piid?: number | undefined;
|
|
93
93
|
value?: unknown;
|
|
94
94
|
code?: number | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Epoch-ms the cloud last observed this value. Only populated by the
|
|
97
|
+
* cloud-shadow read (`getCachedProperties`); absent on live `get_properties`.
|
|
98
|
+
* Surfaced so callers can report the cache age of a standby device.
|
|
99
|
+
*/
|
|
100
|
+
updateDate?: number | undefined;
|
|
95
101
|
[key: string]: unknown;
|
|
96
102
|
}
|
|
97
103
|
|
|
@@ -289,6 +295,8 @@ interface PushLike {
|
|
|
289
295
|
interface BaseDeviceDeps {
|
|
290
296
|
createPush(device: DreameDevice, session: DreameSession, region: DreameRegion): PushLike;
|
|
291
297
|
getProperties(base: CommonInput, props: MiotProp[]): Promise<PropertyResult[]>;
|
|
298
|
+
/** Read the cloud-cached (shadow) values WITHOUT waking the device. */
|
|
299
|
+
getCachedProperties(base: CommonInput, props: MiotProp[]): Promise<PropertyResult[]>;
|
|
292
300
|
setProperties(base: CommonInput, writes: PropertyWrite[]): Promise<PropertyResult[]>;
|
|
293
301
|
callAction(base: CommonInput, action: {
|
|
294
302
|
siid: number;
|
|
@@ -345,6 +353,13 @@ declare class BaseDevice<Events extends BaseDeviceEvents = BaseDeviceEvents> ext
|
|
|
345
353
|
start(): Promise<void>;
|
|
346
354
|
/** Live-read properties, update the cache, return the raw results. */
|
|
347
355
|
refreshProperties(props: MiotProp[]): Promise<PropertyResult[]>;
|
|
356
|
+
/**
|
|
357
|
+
* Read the CLOUD-CACHED (shadow) values of `props` WITHOUT waking the device,
|
|
358
|
+
* update the cache, and emit `propertyChanged`/`stateChanged` just like
|
|
359
|
+
* {@link refreshProperties} — but sourced from the cloud shadow endpoint, so
|
|
360
|
+
* it works for standby/offline robots (and never surfaces a false 80001).
|
|
361
|
+
*/
|
|
362
|
+
refreshCachedProperties(props: MiotProp[]): Promise<PropertyResult[]>;
|
|
348
363
|
/** Write a property to the device. */
|
|
349
364
|
setProperty(write: PropertyWrite): Promise<PropertyResult[]>;
|
|
350
365
|
/** Invoke a MIoT action on the device. */
|
|
@@ -451,11 +466,27 @@ declare enum MiotState {
|
|
|
451
466
|
ReturnToEmpty = 28,
|
|
452
467
|
WaitingForTask = 29,
|
|
453
468
|
CleanWashboardBase = 30,
|
|
469
|
+
ReturningToDrain = 31,
|
|
470
|
+
Draining = 32,
|
|
454
471
|
AutoWaterDraining = 33,
|
|
472
|
+
Emptying = 34,
|
|
473
|
+
DustBagDrying = 35,
|
|
474
|
+
DustBagDryingPaused = 36,
|
|
475
|
+
HeadingToExtraCleaning = 37,
|
|
476
|
+
ExtraCleaning = 38,
|
|
477
|
+
FindingPetPaused = 95,
|
|
478
|
+
FindingPet = 96,
|
|
455
479
|
ShortcutRunning = 97,
|
|
456
480
|
CameraMonitoring = 98,
|
|
457
481
|
CameraMonitoringPaused = 99,
|
|
458
|
-
InitialDeepClean = 101
|
|
482
|
+
InitialDeepClean = 101,
|
|
483
|
+
InitialDeepCleanPaused = 102,
|
|
484
|
+
Sanitizing = 103,
|
|
485
|
+
SanitizingWithDry = 104,
|
|
486
|
+
ChangingMop = 105,
|
|
487
|
+
ChangingMopPaused = 106,
|
|
488
|
+
FloorMaintaining = 107,
|
|
489
|
+
FloorMaintainingPaused = 108
|
|
459
490
|
}
|
|
460
491
|
/** VERIFIED on r2532a 2026-05-02 — ChargingStatus (siid 3 piid 2). */
|
|
461
492
|
declare enum ChargingStatus {
|
|
@@ -490,27 +521,97 @@ declare enum CleaningMode {
|
|
|
490
521
|
}
|
|
491
522
|
/**
|
|
492
523
|
* Error / fault value space for ERROR (siid 2 piid 2) and FAULTS_STR
|
|
493
|
-
* (siid 4 piid 18).
|
|
494
|
-
*
|
|
524
|
+
* (siid 4 piid 18). This is the FULL Tasshack `DreameVacuumErrorCode` table
|
|
525
|
+
* (types.py) — every documented integer is mapped. Members whose names were
|
|
526
|
+
* VERIFIED live on r2532a keep their verified labels even where the donor uses
|
|
527
|
+
* a different label for the same integer (annotated inline); the rest carry the
|
|
528
|
+
* donor's documented name. UNKNOWN (-1) is intentionally omitted — an unknown
|
|
529
|
+
* code falls through the cast-free lookup and surfaces as the raw number.
|
|
495
530
|
*/
|
|
496
531
|
declare enum MiotError {
|
|
497
|
-
Clear = 0
|
|
498
|
-
WheelRotationAnomaly = 1
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
532
|
+
Clear = 0,// donor NO_ERROR
|
|
533
|
+
WheelRotationAnomaly = 1,// donor DROP (VERIFIED label kept)
|
|
534
|
+
Cliff = 2,
|
|
535
|
+
Bumper = 3,
|
|
536
|
+
Gesture = 4,
|
|
537
|
+
BumperRepeat = 5,
|
|
538
|
+
DropRepeat = 6,
|
|
539
|
+
OpticalFlow = 7,
|
|
540
|
+
Box = 8,
|
|
541
|
+
TankBox = 9,
|
|
542
|
+
WaterBoxEmpty = 10,
|
|
543
|
+
BoxFull = 11,
|
|
544
|
+
Brush = 12,
|
|
545
|
+
SideBrush = 13,
|
|
546
|
+
Fan = 14,
|
|
547
|
+
LeftWheelMotor = 15,
|
|
548
|
+
RightWheelMotor = 16,
|
|
549
|
+
TurnSuffocate = 17,
|
|
550
|
+
RobotLifted = 18,// donor FORWARD_SUFFOCATE (VERIFIED label kept)
|
|
551
|
+
ChargerGet = 19,
|
|
506
552
|
BatteryLow = 20,
|
|
507
553
|
ChargeFault = 21,
|
|
508
|
-
BatteryPercentageAnomaly = 22
|
|
554
|
+
BatteryPercentageAnomaly = 22,// donor BATTERY_PERCENTAGE
|
|
555
|
+
Heart = 23,
|
|
556
|
+
CameraOcclusion = 24,
|
|
557
|
+
Move = 25,
|
|
558
|
+
FlowShielding = 26,
|
|
559
|
+
InfraredShielding = 27,
|
|
509
560
|
ChargeNoElectric = 28,
|
|
510
561
|
BatteryFault = 29,
|
|
562
|
+
FanSpeedError = 30,
|
|
563
|
+
LeftWheelSpeed = 31,
|
|
564
|
+
RightWheelSpeed = 32,
|
|
565
|
+
Bmi055Acce = 33,
|
|
566
|
+
Bmi055Gyro = 34,
|
|
567
|
+
Xv7001 = 35,
|
|
568
|
+
LeftMagnet = 36,
|
|
569
|
+
RightMagnet = 37,
|
|
570
|
+
FlowError = 38,
|
|
571
|
+
InfraredFault = 39,
|
|
572
|
+
CameraFault = 40,
|
|
573
|
+
StrongMagnet = 41,
|
|
574
|
+
WaterPump = 42,
|
|
575
|
+
Rtc = 43,
|
|
576
|
+
AutoKeyTrig = 44,
|
|
577
|
+
P3v3 = 45,
|
|
578
|
+
CameraIdle = 46,
|
|
579
|
+
Blocked = 47,
|
|
580
|
+
LdsError = 48,
|
|
581
|
+
LdsBumper = 49,
|
|
582
|
+
WaterPump2 = 50,
|
|
583
|
+
FilterBlocked = 51,
|
|
584
|
+
Edge = 54,
|
|
585
|
+
Carpet = 55,
|
|
586
|
+
Laser = 56,
|
|
587
|
+
Edge2 = 57,
|
|
588
|
+
Ultrasonic = 58,
|
|
589
|
+
NoGoZone = 59,
|
|
590
|
+
Route = 61,
|
|
591
|
+
Route2 = 62,
|
|
592
|
+
Blocked2 = 63,
|
|
593
|
+
Blocked3 = 64,
|
|
594
|
+
Restricted = 65,
|
|
595
|
+
Restricted2 = 66,
|
|
596
|
+
Restricted3 = 67,
|
|
597
|
+
TaskComplete = 68,// donor REMOVE_MOP (VERIFIED label kept)
|
|
598
|
+
MopRemoved = 69,
|
|
599
|
+
MopRemoved2 = 70,
|
|
600
|
+
MopPadStopRotate = 71,
|
|
601
|
+
MopPadStopRotate2 = 72,
|
|
602
|
+
ManualMopInstallRequired = 74,// donor MOP_INSTALL_FAILED (VERIFIED label kept)
|
|
511
603
|
LowBatteryTurnOff = 75,
|
|
604
|
+
DirtyTankNotInstalled = 76,
|
|
605
|
+
RobotInHiddenRoom = 78,
|
|
606
|
+
LdsFailedToLift = 79,
|
|
512
607
|
RobotStuck = 80,
|
|
513
608
|
RobotStuckRepeat = 81,
|
|
609
|
+
SlipperyFloor = 82,
|
|
610
|
+
UnknownError = 84,
|
|
611
|
+
CheckMopInstall = 85,
|
|
612
|
+
DirtyWaterTankFull = 86,
|
|
613
|
+
RetractableLegStuck = 88,
|
|
614
|
+
InternalError = 89,
|
|
514
615
|
RobotStuck2 = 90,
|
|
515
616
|
RobotStuckOnTables = 91,
|
|
516
617
|
RobotStuckOnPassage = 92,
|
|
@@ -521,19 +622,91 @@ declare enum MiotError {
|
|
|
521
622
|
RobotStuckOnPet = 97,
|
|
522
623
|
RobotStuckOnSlipperySurface = 98,
|
|
523
624
|
RobotStuckOnCarpet = 99,
|
|
524
|
-
RobotStuckOnCurtain = 200,
|
|
525
625
|
BinFull = 101,
|
|
626
|
+
BinOpen = 102,
|
|
627
|
+
BinOpen2 = 103,
|
|
628
|
+
BinFull2 = 104,
|
|
629
|
+
WastewaterTankFull = 105,// donor WATER_TANK (VERIFIED label kept)
|
|
630
|
+
DirtyWaterTank = 106,
|
|
631
|
+
CleanWaterTankEmpty = 107,// donor WATER_TANK_DRY (VERIFIED label kept)
|
|
632
|
+
DirtyWaterTank2 = 108,
|
|
633
|
+
DirtyWaterTankBlocked = 109,
|
|
634
|
+
DirtyWaterTankPump = 110,
|
|
635
|
+
MopPad = 111,
|
|
636
|
+
WetMopPad = 112,
|
|
637
|
+
WashboardFilterNeedsCleaning = 114,// donor CLEAN_MOP_PAD (VERIFIED label kept)
|
|
638
|
+
CleanTankLevel = 116,
|
|
526
639
|
StationDisconnected = 117,
|
|
527
|
-
|
|
640
|
+
DirtyTankLevel = 118,
|
|
641
|
+
WashboardLevel = 119,
|
|
642
|
+
MopPadsMissing = 120,// donor NO_MOP_IN_STATION (VERIFIED label kept)
|
|
643
|
+
DustBagFull = 121,
|
|
644
|
+
UnknownWarning = 122,
|
|
645
|
+
SelfTestFailed = 123,
|
|
646
|
+
WashboardNotWorking = 124,
|
|
647
|
+
DrainageFailed = 125,
|
|
648
|
+
MopNotDetected = 126,
|
|
649
|
+
MopHolderError = 127,
|
|
650
|
+
DockError = 128,
|
|
651
|
+
WashFailed = 129,
|
|
652
|
+
RobotStuckOnCurtain = 200,
|
|
653
|
+
EdgeMopStopRotate = 201,
|
|
654
|
+
EdgeMopDetached = 202,
|
|
655
|
+
ChassisLiftMalfunction = 203,
|
|
656
|
+
InternalError2 = 207,
|
|
657
|
+
MopCoverError = 209,
|
|
658
|
+
RollerMopError = 210,
|
|
659
|
+
OnboardWaterTankEmpty = 213,
|
|
660
|
+
OnboardDirtyWaterTankFull = 214,
|
|
661
|
+
MopNotInstalled = 215,
|
|
662
|
+
RollerMopError2 = 218,
|
|
663
|
+
FluffingRollerError = 222,
|
|
664
|
+
MopCoverError2 = 223,
|
|
665
|
+
BlockedByObstacle = 226,
|
|
666
|
+
ReturnToChargeFailed = 1000
|
|
528
667
|
}
|
|
529
|
-
/**
|
|
668
|
+
/**
|
|
669
|
+
* TASK_STATUS (siid 4 piid 1). Codes 1/2/3/6/12/14 carry the labels VERIFIED
|
|
670
|
+
* live on r2532a 2026-05-02 — these are KEPT verbatim because they were
|
|
671
|
+
* observed against real task transitions and differ from the donor's labels for
|
|
672
|
+
* the same integers (donor: 1=AUTO_CLEANING, 2=ZONE_CLEANING, 3=SEGMENT_CLEANING,
|
|
673
|
+
* 6=AUTO_CLEANING_PAUSED, 12=MOPPING_PAUSED, 14=ZONE_MOPPING_PAUSED). The
|
|
674
|
+
* remaining members are ASSUMED from Tasshack `DreameVacuumTaskStatus`
|
|
675
|
+
* (types.py) — added so documented codes resolve to a name. Unknown codes
|
|
676
|
+
* surface as raw via {@link VacuumDevice.taskStatusRaw}.
|
|
677
|
+
*/
|
|
530
678
|
declare enum TaskStatus {
|
|
679
|
+
Completed = 0,
|
|
531
680
|
InterruptedOrPaused = 1,
|
|
532
681
|
Active = 2,
|
|
533
682
|
Transitioning = 3,
|
|
683
|
+
SpotCleaning = 4,
|
|
684
|
+
FastMapping = 5,
|
|
534
685
|
OnDockIdle = 6,
|
|
686
|
+
ZoneCleaningPaused = 7,
|
|
687
|
+
SegmentCleaningPaused = 8,
|
|
688
|
+
SpotCleaningPaused = 9,
|
|
689
|
+
MapCleaningPaused = 10,
|
|
690
|
+
DockingPaused = 11,
|
|
535
691
|
TransientPauseEdge = 12,
|
|
536
|
-
|
|
692
|
+
SegmentMoppingPaused = 13,
|
|
693
|
+
NeedsIntervention = 14,
|
|
694
|
+
AutoMoppingPaused = 15,
|
|
695
|
+
AutoDockingPaused = 16,
|
|
696
|
+
SegmentDockingPaused = 17,
|
|
697
|
+
ZoneDockingPaused = 18,
|
|
698
|
+
CruisingPath = 20,
|
|
699
|
+
CruisingPathPaused = 21,
|
|
700
|
+
CruisingPoint = 22,
|
|
701
|
+
CruisingPointPaused = 23,
|
|
702
|
+
SummonCleanPaused = 24,
|
|
703
|
+
ReturningInstallMop = 25,
|
|
704
|
+
ReturningRemoveMop = 26,
|
|
705
|
+
StationCleaning = 27,
|
|
706
|
+
PetFinding = 30,
|
|
707
|
+
AutoCleaningWashingPaused = 31,
|
|
708
|
+
AreaCleaningWashingPaused = 32,
|
|
709
|
+
CustomCleaningWashingPaused = 33
|
|
537
710
|
}
|
|
538
711
|
|
|
539
712
|
/**
|
|
@@ -1009,6 +1182,14 @@ declare class VacuumDevice extends BaseDevice<VacuumDeviceEvents> {
|
|
|
1009
1182
|
constructor(input: BaseDeviceInput);
|
|
1010
1183
|
/** Rich, vacuum-specific capability record (booleans + supported enums). */
|
|
1011
1184
|
get vacuumCapabilities(): VacuumCapabilities;
|
|
1185
|
+
/**
|
|
1186
|
+
* The suction levels this model supports, as a {@link SuctionLevel} enum array
|
|
1187
|
+
* (from the capability record). Lets a consumer see which fan speeds are
|
|
1188
|
+
* selectable without reaching into {@link vacuumCapabilities}.
|
|
1189
|
+
*/
|
|
1190
|
+
get supportedSuctionLevels(): readonly SuctionLevel[];
|
|
1191
|
+
/** The water/mop volumes this model supports, as a {@link WaterVolume} enum array. */
|
|
1192
|
+
get supportedWaterVolumes(): readonly WaterVolume[];
|
|
1012
1193
|
get statusRaw(): number | null;
|
|
1013
1194
|
get status(): MiotState | null;
|
|
1014
1195
|
get battery(): number | null;
|
|
@@ -1080,6 +1261,14 @@ declare class VacuumDevice extends BaseDevice<VacuumDeviceEvents> {
|
|
|
1080
1261
|
x: number;
|
|
1081
1262
|
y: number;
|
|
1082
1263
|
}, opts?: CleanOpts): Promise<unknown>;
|
|
1264
|
+
/**
|
|
1265
|
+
* Seed the cache from the CLOUD SHADOW (last-known values) WITHOUT waking the
|
|
1266
|
+
* robot — reads {@link VacuumDevice.DEFAULT_PROPS} from the cloud-cached
|
|
1267
|
+
* endpoint. After it resolves, every typed getter (status/battery/suction/
|
|
1268
|
+
* water/cleaningMode/error/charging…) reflects the cached values, so a
|
|
1269
|
+
* standby/docked vacuum reports its state exactly as the Dreamehome app does.
|
|
1270
|
+
*/
|
|
1271
|
+
refreshFromCache(): Promise<void>;
|
|
1083
1272
|
/** The most-recently-decoded map, or `null` until {@link getMap} succeeds. */
|
|
1084
1273
|
get lastMap(): VacuumMap | null;
|
|
1085
1274
|
/**
|
|
@@ -1192,13 +1381,104 @@ declare enum MowerControlAction {
|
|
|
1192
1381
|
}
|
|
1193
1382
|
/**
|
|
1194
1383
|
* Observed TASK_STATUS codes (siid 5 piid 104), service5.py TASK_STATUS_MAPPING.
|
|
1195
|
-
* Only `SpotIncomplete` (7) has a confirmed meaning; the
|
|
1196
|
-
* "Unknown task status: N"
|
|
1384
|
+
* Only `SpotIncomplete` (7) has a confirmed meaning; the donor explicitly marks
|
|
1385
|
+
* codes 2/3/10/13 as "Unknown task status: N" (observed after RAIN/LOST/
|
|
1386
|
+
* LOW_BATTERY events). Those are NOT invented as named members — they surface as
|
|
1387
|
+
* raw via {@link MowerDevice.taskStatusRaw}. This is the FULL documented set:
|
|
1388
|
+
* the donor names exactly one code.
|
|
1197
1389
|
*/
|
|
1198
1390
|
declare enum MowerTaskStatus {
|
|
1199
1391
|
/** "Task incomplete - spot mowing". */
|
|
1200
1392
|
SpotIncomplete = 7
|
|
1201
1393
|
}
|
|
1394
|
+
/**
|
|
1395
|
+
* Mower device-code / fault value space for DEVICE_CODE (siid 2 piid 2). This is
|
|
1396
|
+
* the FULL donor `BASE_DEVICE_CODES` registry (property/device_code.py), codes
|
|
1397
|
+
* 0..73 contiguous. Each integer is documented by the donor with a name +
|
|
1398
|
+
* severity (INFO / WARNING / ERROR — noted inline). 0 = NO_DEVICE_CODE (normal
|
|
1399
|
+
* operation). Codes not in this table (model-specific extensions) fall through
|
|
1400
|
+
* the cast-free lookup and surface as raw via {@link MowerDevice.faultRaw}.
|
|
1401
|
+
*
|
|
1402
|
+
* Two donor names repeat at different integers; the second occurrence is
|
|
1403
|
+
* suffixed (`LidarDirtyWarning` 38, `BatteryOverheatWarning` 42) to keep enum
|
|
1404
|
+
* member names unique while preserving the integer source of truth.
|
|
1405
|
+
*/
|
|
1406
|
+
declare enum MowerFault {
|
|
1407
|
+
NoDeviceCode = 0,// INFO
|
|
1408
|
+
Tilted = 1,// ERROR
|
|
1409
|
+
Trapped = 2,// ERROR
|
|
1410
|
+
NarrowPathToStation = 3,// ERROR
|
|
1411
|
+
LeftWheel = 4,// ERROR
|
|
1412
|
+
RightWheel = 5,// ERROR
|
|
1413
|
+
LiftMotor = 6,// ERROR
|
|
1414
|
+
Cutter = 7,// ERROR
|
|
1415
|
+
SidedMotor = 8,// ERROR
|
|
1416
|
+
CrashPlate = 9,// ERROR
|
|
1417
|
+
Charging = 10,// ERROR
|
|
1418
|
+
BatteryOverheat = 11,// ERROR
|
|
1419
|
+
LidarCovered = 12,// ERROR
|
|
1420
|
+
LidarOverheatWithoutMap = 13,// ERROR
|
|
1421
|
+
LidarOverheatWithMap = 14,// ERROR
|
|
1422
|
+
LidarOverheat = 15,// ERROR
|
|
1423
|
+
LidarDirty = 16,// ERROR
|
|
1424
|
+
LidarAbnormal = 17,// ERROR
|
|
1425
|
+
LocationWeak = 18,// ERROR
|
|
1426
|
+
LocationLost = 19,// ERROR
|
|
1427
|
+
Sensor = 20,// ERROR
|
|
1428
|
+
InForbiddenArea = 21,// ERROR
|
|
1429
|
+
OutOfMap = 22,// ERROR
|
|
1430
|
+
EmergencyStop = 23,// ERROR
|
|
1431
|
+
BatteryLow = 24,// ERROR
|
|
1432
|
+
MapFileCrack = 25,// ERROR
|
|
1433
|
+
AwayFromMap = 26,// ERROR
|
|
1434
|
+
HumanDetected = 27,// ERROR
|
|
1435
|
+
BladeLoss = 28,// ERROR
|
|
1436
|
+
StationLoss = 29,// ERROR
|
|
1437
|
+
MaintainLoss = 30,// ERROR
|
|
1438
|
+
BackChargeFailed = 31,// WARNING
|
|
1439
|
+
DockingFailed = 32,// WARNING
|
|
1440
|
+
LocatingFailedWithMap = 33,// WARNING
|
|
1441
|
+
LocatingFailedWithoutMap = 34,// WARNING
|
|
1442
|
+
LocatingAbnormal = 35,// WARNING
|
|
1443
|
+
TaskStartFailed = 36,// WARNING
|
|
1444
|
+
PathImpassable = 37,// ERROR
|
|
1445
|
+
LidarDirtyWarning = 38,// WARNING (donor LIDAR_DIRTY at 38)
|
|
1446
|
+
CamDirty = 39,// WARNING
|
|
1447
|
+
CamAbnormal = 40,// WARNING
|
|
1448
|
+
CamCover = 41,// WARNING
|
|
1449
|
+
BatteryOverheatWarning = 42,// WARNING (donor BATTERY_OVERHEAT at 42)
|
|
1450
|
+
BatteryTempLow = 43,// WARNING
|
|
1451
|
+
AutobuildBorder = 44,// WARNING
|
|
1452
|
+
AutobuildSide = 45,// WARNING
|
|
1453
|
+
BorderFinish = 46,// INFO
|
|
1454
|
+
NewMap = 47,// INFO
|
|
1455
|
+
TaskFinish = 48,// INFO
|
|
1456
|
+
DestinationNotReachable = 49,// INFO
|
|
1457
|
+
TaskStart = 50,// INFO
|
|
1458
|
+
CruiseStart = 51,// INFO
|
|
1459
|
+
PointAndGoStart = 52,// INFO
|
|
1460
|
+
ScheduleStart = 53,// INFO
|
|
1461
|
+
BatteryLowReturning = 54,// INFO
|
|
1462
|
+
BatteryLowScheduleSuspend = 55,// INFO
|
|
1463
|
+
BadWeatherProtecting = 56,// INFO
|
|
1464
|
+
RainScheduleInterupted = 57,// INFO
|
|
1465
|
+
RainScheduleSuspend = 58,// INFO
|
|
1466
|
+
ForzenReturning = 59,// INFO
|
|
1467
|
+
FrozenScheduleSuspend = 60,// INFO
|
|
1468
|
+
NotDisturbReturning = 61,// INFO
|
|
1469
|
+
NotDisturbScheduleSuspend = 62,// INFO
|
|
1470
|
+
WorkingScheduleSuspend = 63,// INFO
|
|
1471
|
+
RemoteControlingScheduleSuspend = 64,// INFO
|
|
1472
|
+
EmergencyStoppedScheduleSuspend = 65,// INFO
|
|
1473
|
+
TopCoverOpenScheduleSuspend = 66,// INFO
|
|
1474
|
+
FaultModeScheduleSuspend = 67,// INFO
|
|
1475
|
+
ScheduleTimeout = 68,// INFO
|
|
1476
|
+
StationNotConnectedToWorkingArea = 69,// INFO
|
|
1477
|
+
ContinueFromBreakpoint = 70,// INFO
|
|
1478
|
+
IdleTimeoutReturning = 71,// INFO
|
|
1479
|
+
PauseTimeoutReturning = 72,// INFO
|
|
1480
|
+
TopCoverOpen = 73
|
|
1481
|
+
}
|
|
1202
1482
|
|
|
1203
1483
|
/**
|
|
1204
1484
|
* Cast-free mower decoders. Re-exports the shared numeric primitives, and adds
|
|
@@ -1417,6 +1697,19 @@ declare class MowerDevice extends BaseDevice {
|
|
|
1417
1697
|
get isDocked(): boolean;
|
|
1418
1698
|
get isMowing(): boolean;
|
|
1419
1699
|
get taskStatusRaw(): number | null;
|
|
1700
|
+
/**
|
|
1701
|
+
* TASK_STATUS (5:104) decoded to {@link MowerTaskStatus}, or null. The donor
|
|
1702
|
+
* names only code 7 (SpotIncomplete); codes 2/3/10/13 are documented "Unknown
|
|
1703
|
+
* task status" and intentionally surface as raw via {@link taskStatusRaw}.
|
|
1704
|
+
*/
|
|
1705
|
+
get taskStatus(): MowerTaskStatus | null;
|
|
1706
|
+
get faultRaw(): number | null;
|
|
1707
|
+
/**
|
|
1708
|
+
* DEVICE_CODE (2:2) decoded to a {@link MowerFault} (the donor's
|
|
1709
|
+
* BASE_DEVICE_CODES registry, 0..73), or null for a model-specific/undocumented
|
|
1710
|
+
* code — which still surfaces as the raw number via {@link faultRaw}.
|
|
1711
|
+
*/
|
|
1712
|
+
get fault(): MowerFault | null;
|
|
1420
1713
|
/** Parsed scheduling task descriptor (2:50), or null. */
|
|
1421
1714
|
get task(): MowerTaskDescriptor | null;
|
|
1422
1715
|
/**
|
|
@@ -1451,6 +1744,14 @@ declare class MowerDevice extends BaseDevice {
|
|
|
1451
1744
|
startMowingEdges(contourIds: number[][]): Promise<unknown>;
|
|
1452
1745
|
/** Spot mowing (2:50 o:103). */
|
|
1453
1746
|
startMowingSpots(spotAreaIds: number[]): Promise<unknown>;
|
|
1747
|
+
/**
|
|
1748
|
+
* Seed the cache from the CLOUD SHADOW (last-known values) WITHOUT waking the
|
|
1749
|
+
* mower — reads {@link MowerDevice.DEFAULT_PROPS} from the cloud-cached
|
|
1750
|
+
* endpoint. After it resolves, every typed getter (status/battery/charging/
|
|
1751
|
+
* coverage/task/controlAction…) reflects the cached values, so a docked/
|
|
1752
|
+
* standby mower reports its state exactly as the Dreamehome app does.
|
|
1753
|
+
*/
|
|
1754
|
+
refreshFromCache(): Promise<void>;
|
|
1454
1755
|
/** The most-recently-parsed map, or `null` until {@link getMap} succeeds. */
|
|
1455
1756
|
get lastMap(): MowerMap | null;
|
|
1456
1757
|
/**
|
|
@@ -1472,6 +1773,9 @@ declare class MowerDevice extends BaseDevice {
|
|
|
1472
1773
|
static readonly DEFAULT_PROPS: readonly [{
|
|
1473
1774
|
readonly siid: 2;
|
|
1474
1775
|
readonly piid: 1;
|
|
1776
|
+
}, {
|
|
1777
|
+
readonly siid: 2;
|
|
1778
|
+
readonly piid: 2;
|
|
1475
1779
|
}, {
|
|
1476
1780
|
readonly siid: 3;
|
|
1477
1781
|
readonly piid: 1;
|
|
@@ -1490,4 +1794,4 @@ declare class MowerDevice extends BaseDevice {
|
|
|
1490
1794
|
}];
|
|
1491
1795
|
}
|
|
1492
1796
|
|
|
1493
|
-
export { BaseDevice, type BaseDeviceEvents, type BatchDeviceDataFetcher, type CapabilityResolver, ChargingStatus, type CleanOpts, CleaningMode, type CreateDeviceArgs, DefaultCapabilityResolver, type DeviceCapabilities, type DeviceEvent, DreameApiError, DreameAuthError, type DreameCloudState, type DreameDevice, DreameDeviceOfflineError, DreameError, type DreameRegion, type DreameSession, DreameTransportError, LIBRARY_NAME, MODEL_CAPABILITIES as MOWER_MODEL_CAPABILITIES, type MapBoundingBox, type MapCleanedAreaOverlay, type MapDimensions, type MapFrameType, type MapLayer, type MapLayerType, type MapLowLyingArea, type MapObstacle, type MapPath, type MapPathType, type MapPoint, type MapPose, type MapRestrictedArea, type MapRoom, type MapRoomWall, type MapRun, type MapSegment, type MapStorey, type MapVirtualWall, type MapWallsInfo, type MiotAction, MiotError, type MiotProp, MiotState, type MowerAvailableMap, type MowerCapabilities, MowerCapabilityResolver, MowerChargingStatus, type MowerContour, MowerControlAction, type MowerControlState, MowerDevice, type MowerDeviceInput, type MowerMap, type MowerMapBoundary, type MowerMowPath, type MowerPathEntry, type MowerPoint, type MowerSpotArea, MowerStatus, type MowerTaskDescriptor, MowerTaskStatus, type MowerZone, Nodreame, type NodreameDeps, type NodreameEvents, type NodreameOptions, type OssFetchInput, type OssFetcherLike, type PropertyChangedEvent, type PropertyResult, type PropertyState, type PropertyWrite, type RenderMowerSvgOptions, type RenderVacuumPngOptions, type StateChangedEvent, SuctionLevel, TaskStatus, MODEL_CAPABILITIES$1 as VACUUM_MODEL_CAPABILITIES, type VacuumCapabilities, VacuumCapabilityResolver, VacuumDevice, type VacuumGetMapInput, type VacuumMap, WaterVolume, getMowerCapabilities, getVacuumCapabilities, renderMowerSvg, renderVacuumPng, resolveCapabilities };
|
|
1797
|
+
export { BaseDevice, type BaseDeviceEvents, type BatchDeviceDataFetcher, type CapabilityResolver, ChargingStatus, type CleanOpts, CleaningMode, type CreateDeviceArgs, DefaultCapabilityResolver, type DeviceCapabilities, type DeviceEvent, DreameApiError, DreameAuthError, type DreameCloudState, type DreameDevice, DreameDeviceOfflineError, DreameError, type DreameRegion, type DreameSession, DreameTransportError, LIBRARY_NAME, MODEL_CAPABILITIES as MOWER_MODEL_CAPABILITIES, type MapBoundingBox, type MapCleanedAreaOverlay, type MapDimensions, type MapFrameType, type MapLayer, type MapLayerType, type MapLowLyingArea, type MapObstacle, type MapPath, type MapPathType, type MapPoint, type MapPose, type MapRestrictedArea, type MapRoom, type MapRoomWall, type MapRun, type MapSegment, type MapStorey, type MapVirtualWall, type MapWallsInfo, type MiotAction, MiotError, type MiotProp, MiotState, type MowerAvailableMap, type MowerCapabilities, MowerCapabilityResolver, MowerChargingStatus, type MowerContour, MowerControlAction, type MowerControlState, MowerDevice, type MowerDeviceInput, MowerFault, type MowerMap, type MowerMapBoundary, type MowerMowPath, type MowerPathEntry, type MowerPoint, type MowerSpotArea, MowerStatus, type MowerTaskDescriptor, MowerTaskStatus, type MowerZone, Nodreame, type NodreameDeps, type NodreameEvents, type NodreameOptions, type OssFetchInput, type OssFetcherLike, type PropertyChangedEvent, type PropertyResult, type PropertyState, type PropertyWrite, type RenderMowerSvgOptions, type RenderVacuumPngOptions, type StateChangedEvent, SuctionLevel, TaskStatus, MODEL_CAPABILITIES$1 as VACUUM_MODEL_CAPABILITIES, type VacuumCapabilities, VacuumCapabilityResolver, VacuumDevice, type VacuumGetMapInput, type VacuumMap, WaterVolume, getMowerCapabilities, getVacuumCapabilities, renderMowerSvg, renderVacuumPng, resolveCapabilities };
|