@camstack/addon-waste-collections 0.1.24 → 0.1.26
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/waste-collections.addon.js +213 -86
- package/dist/waste-collections.addon.mjs +213 -86
- package/package.json +1 -1
|
@@ -5571,7 +5571,7 @@ var ZodIssueCode = {
|
|
|
5571
5571
|
var ZodFirstPartyTypeKind;
|
|
5572
5572
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5573
5573
|
//#endregion
|
|
5574
|
-
//#region ../types/dist/sleep-
|
|
5574
|
+
//#region ../types/dist/sleep-CUp20JkO.mjs
|
|
5575
5575
|
/**
|
|
5576
5576
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5577
5577
|
* window to float samples (D455).
|
|
@@ -8661,7 +8661,11 @@ var ContributionSectionSchema = object({
|
|
|
8661
8661
|
literal(4)
|
|
8662
8662
|
]).optional(),
|
|
8663
8663
|
tab: string().optional(),
|
|
8664
|
-
location: _enum([
|
|
8664
|
+
location: _enum([
|
|
8665
|
+
"settings",
|
|
8666
|
+
"top-tab",
|
|
8667
|
+
"hero"
|
|
8668
|
+
]).optional(),
|
|
8665
8669
|
order: number().optional(),
|
|
8666
8670
|
fields: array(any())
|
|
8667
8671
|
});
|
|
@@ -13602,7 +13606,11 @@ var ConfigSectionWithValuesSchema = object({
|
|
|
13602
13606
|
literal(4)
|
|
13603
13607
|
]).optional(),
|
|
13604
13608
|
tab: string().optional(),
|
|
13605
|
-
location: _enum([
|
|
13609
|
+
location: _enum([
|
|
13610
|
+
"settings",
|
|
13611
|
+
"top-tab",
|
|
13612
|
+
"hero"
|
|
13613
|
+
]).optional(),
|
|
13606
13614
|
order: number().optional(),
|
|
13607
13615
|
fields: array(any())
|
|
13608
13616
|
});
|
|
@@ -17376,6 +17384,52 @@ var TierStatusSchema = object({
|
|
|
17376
17384
|
countedAt: number().nullable()
|
|
17377
17385
|
});
|
|
17378
17386
|
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
17387
|
+
/**
|
|
17388
|
+
* Why a series is orphan. `device-gone`: its device is absent from the
|
|
17389
|
+
* successful device listings (the departure clock). `undeclared`: its `cap:`
|
|
17390
|
+
* key is declared by no capability any more (a field a cap removed).
|
|
17391
|
+
*/
|
|
17392
|
+
var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
|
|
17393
|
+
/** Rows held per stored tier. */
|
|
17394
|
+
var TierRowsSchema = object({
|
|
17395
|
+
raw: number().int(),
|
|
17396
|
+
"5m": number().int(),
|
|
17397
|
+
"1h": number().int(),
|
|
17398
|
+
"1d": number().int()
|
|
17399
|
+
});
|
|
17400
|
+
var OrphanSeriesSchema = object({
|
|
17401
|
+
seriesId: number().int(),
|
|
17402
|
+
deviceId: number().int(),
|
|
17403
|
+
key: string(),
|
|
17404
|
+
scope: string(),
|
|
17405
|
+
/** The metric's display name; `null` when its metric row is gone too. */
|
|
17406
|
+
displayName: string().nullable(),
|
|
17407
|
+
reason: DeviceHistoryOrphanReasonSchema,
|
|
17408
|
+
/** `device-gone`: since when the device has been absent; `null` otherwise. */
|
|
17409
|
+
missingSince: number().nullable(),
|
|
17410
|
+
firstTs: number(),
|
|
17411
|
+
lastTs: number(),
|
|
17412
|
+
rows: TierRowsSchema
|
|
17413
|
+
});
|
|
17414
|
+
var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
|
|
17415
|
+
"not-found",
|
|
17416
|
+
"not-orphan",
|
|
17417
|
+
"failed"
|
|
17418
|
+
]);
|
|
17419
|
+
var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
|
|
17420
|
+
seriesId: number().int(),
|
|
17421
|
+
ok: literal(true),
|
|
17422
|
+
deleted: TierRowsSchema
|
|
17423
|
+
}), object({
|
|
17424
|
+
seriesId: number().int(),
|
|
17425
|
+
ok: literal(false),
|
|
17426
|
+
reason: DeviceHistoryOrphanDeleteRefusalSchema
|
|
17427
|
+
})]);
|
|
17428
|
+
var OrphanListSchema = object({
|
|
17429
|
+
series: array(OrphanSeriesSchema).readonly(),
|
|
17430
|
+
/** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
|
|
17431
|
+
truncated: boolean()
|
|
17432
|
+
});
|
|
17379
17433
|
var DeviceHistoryStatusSchema = object({
|
|
17380
17434
|
startedAt: number(),
|
|
17381
17435
|
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
@@ -17473,7 +17527,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
|
|
|
17473
17527
|
}), object({ enabled: boolean() }), {
|
|
17474
17528
|
kind: "mutation",
|
|
17475
17529
|
auth: "admin"
|
|
17476
|
-
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" })
|
|
17530
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" }), method(object({}), OrphanListSchema, { auth: "admin" }), method(object({ seriesIds: array(number().int()).min(1).max(50) }), object({ results: array(OrphanDeleteEntrySchema).readonly() }), {
|
|
17531
|
+
kind: "mutation",
|
|
17532
|
+
auth: "admin"
|
|
17533
|
+
});
|
|
17477
17534
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
17478
17535
|
object({ state: literal("absent") }),
|
|
17479
17536
|
object({
|
|
@@ -50147,6 +50204,19 @@ var NodeInferenceDeviceSchema = object({
|
|
|
50147
50204
|
/** Whether the node's live probe reports the device as usable right now. */
|
|
50148
50205
|
available: boolean(),
|
|
50149
50206
|
/**
|
|
50207
|
+
* Is the device on the node at all (D919)? `present` — the live probe
|
|
50208
|
+
* reported it; `absent` — the probe ANSWERED and did not report it, so only
|
|
50209
|
+
* its stored settings remain (unplugged, moved to another node): never
|
|
50210
|
+
* eligible, whatever its stored `enabled`, and forgettable with
|
|
50211
|
+
* `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
|
|
50212
|
+
* claimed (D315). Optional only for an orchestrator older than the field.
|
|
50213
|
+
*/
|
|
50214
|
+
presence: _enum([
|
|
50215
|
+
"present",
|
|
50216
|
+
"absent",
|
|
50217
|
+
"unknown"
|
|
50218
|
+
]).optional(),
|
|
50219
|
+
/**
|
|
50150
50220
|
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
50151
50221
|
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
50152
50222
|
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
@@ -50372,7 +50442,13 @@ method(object({
|
|
|
50372
50442
|
}), object({ success: literal(true) }), {
|
|
50373
50443
|
kind: "mutation",
|
|
50374
50444
|
auth: "admin"
|
|
50375
|
-
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50445
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50446
|
+
agentNodeId: string(),
|
|
50447
|
+
deviceKey: string()
|
|
50448
|
+
}), object({ success: literal(true) }), {
|
|
50449
|
+
kind: "mutation",
|
|
50450
|
+
auth: "admin"
|
|
50451
|
+
}), method(object({ agentNodeId: string() }), object({
|
|
50376
50452
|
success: literal(true),
|
|
50377
50453
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
50378
50454
|
effectiveModelId: string().nullable(),
|
|
@@ -54492,17 +54568,69 @@ object({
|
|
|
54492
54568
|
});
|
|
54493
54569
|
DeviceType.Sensor;
|
|
54494
54570
|
/**
|
|
54495
|
-
* Generic device-consumables capability —
|
|
54496
|
-
*
|
|
54497
|
-
* descaling cycles,
|
|
54498
|
-
*
|
|
54499
|
-
*
|
|
54500
|
-
*
|
|
54571
|
+
* Generic device-consumables capability — the ONE place a device reports what
|
|
54572
|
+
* it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
|
|
54573
|
+
* descaling cycles), supplies it draws from (a vacuum's clean-water tank and
|
|
54574
|
+
* detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
|
|
54575
|
+
* water tank, a dust bin). Each item carries its remaining life or fill and an
|
|
54576
|
+
* optional "Replaced" reset action. Device-agnostic: any provider that knows
|
|
54577
|
+
* its device tracks consumables registers it; the provider names each item
|
|
54578
|
+
* verbatim and says which `kind` it is.
|
|
54579
|
+
*
|
|
54580
|
+
* The admin UI renders it as ONE collapsible section directly under the
|
|
54581
|
+
* device page's hero card (`placement: 'hero'`), for every device bound to
|
|
54582
|
+
* this cap — never drawn by a device type's hero card itself (D915).
|
|
54501
54583
|
*
|
|
54502
54584
|
* Like `childLayout`, the cap is INERT until a provider sets items: no
|
|
54503
54585
|
* provider populates it by guessing (no HA inference). The UI renders a
|
|
54504
54586
|
* "No consumables reported" placeholder when `items` is empty.
|
|
54505
54587
|
*/
|
|
54588
|
+
/**
|
|
54589
|
+
* What an item IS, which decides which direction is bad:
|
|
54590
|
+
* - `wear` — a part that wears out (a brush, a filter); low life is bad.
|
|
54591
|
+
* - `supply` — something the device draws from (clean water, detergent,
|
|
54592
|
+
* salt, rinse aid); low or empty is bad.
|
|
54593
|
+
* - `waste` — something the device fills (dirty water, a dust bin); full is
|
|
54594
|
+
* bad.
|
|
54595
|
+
* Absent = `wear`.
|
|
54596
|
+
*/
|
|
54597
|
+
var ConsumableKindSchema = _enum([
|
|
54598
|
+
"wear",
|
|
54599
|
+
"supply",
|
|
54600
|
+
"waste"
|
|
54601
|
+
]);
|
|
54602
|
+
/**
|
|
54603
|
+
* What an item LOOKS like, which decides how a client draws it — independent
|
|
54604
|
+
* of `kind`, which decides which direction is bad:
|
|
54605
|
+
* - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
|
|
54606
|
+
* remaining time and a reset.
|
|
54607
|
+
* - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
|
|
54608
|
+
* - `product` — something bought and refilled (detergent, salt, rinse aid):
|
|
54609
|
+
* a stepped level and "refill".
|
|
54610
|
+
* - `bin` — a container that collects waste (a dust bin): a fill gauge
|
|
54611
|
+
* that warns when full.
|
|
54612
|
+
* Absent = derived from the kind ({@link consumableFormOf}).
|
|
54613
|
+
*/
|
|
54614
|
+
var ConsumableFormSchema = _enum([
|
|
54615
|
+
"part",
|
|
54616
|
+
"tank",
|
|
54617
|
+
"product",
|
|
54618
|
+
"bin"
|
|
54619
|
+
]);
|
|
54620
|
+
/** The provider's own discrete verdict on an item. */
|
|
54621
|
+
var ConsumableStatusSchema = _enum([
|
|
54622
|
+
"ok",
|
|
54623
|
+
"low",
|
|
54624
|
+
"empty",
|
|
54625
|
+
"full",
|
|
54626
|
+
"replace"
|
|
54627
|
+
]);
|
|
54628
|
+
_enum([
|
|
54629
|
+
"ok",
|
|
54630
|
+
"low",
|
|
54631
|
+
"empty",
|
|
54632
|
+
"full"
|
|
54633
|
+
]);
|
|
54506
54634
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
54507
54635
|
* each. */
|
|
54508
54636
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -54522,10 +54650,14 @@ var ConsumablesStatusSchema = object({
|
|
|
54522
54650
|
key: string().min(1),
|
|
54523
54651
|
/** Display name. */
|
|
54524
54652
|
label: string().min(1),
|
|
54525
|
-
/** Remaining life % when known (0..100). */
|
|
54653
|
+
/** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
|
|
54526
54654
|
level: number().min(0).max(100).nullable(),
|
|
54527
|
-
/**
|
|
54528
|
-
status:
|
|
54655
|
+
/** The provider's discrete verdict when known (binary mode). */
|
|
54656
|
+
status: ConsumableStatusSchema.nullable(),
|
|
54657
|
+
/** What the item is — decides whether low or full is bad. Absent = `wear`. */
|
|
54658
|
+
kind: ConsumableKindSchema.optional(),
|
|
54659
|
+
/** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
|
|
54660
|
+
form: ConsumableFormSchema.optional(),
|
|
54529
54661
|
/** Ms epoch of the last replace, when known. */
|
|
54530
54662
|
lastResetAt: number().nullable(),
|
|
54531
54663
|
/** Whether `reset()` is meaningful for this item. */
|
|
@@ -54760,8 +54892,9 @@ object({
|
|
|
54760
54892
|
status: DeviceStatusSchema
|
|
54761
54893
|
});
|
|
54762
54894
|
/**
|
|
54763
|
-
* Smart-dishwasher cap — program lifecycle, door / remote-start gates
|
|
54764
|
-
*
|
|
54895
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates and
|
|
54896
|
+
* common program options. Salt and rinse aid are NOT here: they are items of
|
|
54897
|
+
* the device's `consumables` cap, like every other device's (D915).
|
|
54765
54898
|
*
|
|
54766
54899
|
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
54767
54900
|
* by any integration that exposes the same program / option surface.
|
|
@@ -54809,11 +54942,6 @@ var DishwasherAvailabilitySchema = _enum([
|
|
|
54809
54942
|
"offline",
|
|
54810
54943
|
"description-missing"
|
|
54811
54944
|
]);
|
|
54812
|
-
var DishwasherConsumableLevelSchema = _enum([
|
|
54813
|
-
"ok",
|
|
54814
|
-
"low",
|
|
54815
|
-
"empty"
|
|
54816
|
-
]);
|
|
54817
54945
|
object({
|
|
54818
54946
|
availability: DishwasherAvailabilitySchema,
|
|
54819
54947
|
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
@@ -54846,8 +54974,6 @@ object({
|
|
|
54846
54974
|
powerOn: boolean().nullable(),
|
|
54847
54975
|
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
54848
54976
|
powerState: string().nullable(),
|
|
54849
|
-
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54850
|
-
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54851
54977
|
/**
|
|
54852
54978
|
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54853
54979
|
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
@@ -56887,7 +57013,7 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
|
|
|
56887
57013
|
enabled: boolean()
|
|
56888
57014
|
}), _void(), {
|
|
56889
57015
|
kind: "mutation",
|
|
56890
|
-
auth: "
|
|
57016
|
+
auth: "protected"
|
|
56891
57017
|
}), object({
|
|
56892
57018
|
deviceId: number(),
|
|
56893
57019
|
enabled: boolean(),
|
|
@@ -57377,6 +57503,13 @@ var TopologyNodeSchema = object({
|
|
|
57377
57503
|
cpuModel: string().nullable(),
|
|
57378
57504
|
cpuCores: number(),
|
|
57379
57505
|
memoryMB: number(),
|
|
57506
|
+
/**
|
|
57507
|
+
* The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
|
|
57508
|
+
* openvino, edgetpu …) — not its devices. An installed runtime says nothing
|
|
57509
|
+
* about whether its hardware is there (a Coral delegate stays installed
|
|
57510
|
+
* after the stick leaves, D919); the live device set is
|
|
57511
|
+
* `pipelineOrchestrator.getNodeInferenceDevices`.
|
|
57512
|
+
*/
|
|
57380
57513
|
engines: array(string()).readonly(),
|
|
57381
57514
|
isHub: boolean(),
|
|
57382
57515
|
isOnline: boolean(),
|
|
@@ -58341,7 +58474,28 @@ var ResolvedInferenceConfigSchema = object({
|
|
|
58341
58474
|
format: ModelFormatSchema,
|
|
58342
58475
|
reason: string()
|
|
58343
58476
|
});
|
|
58344
|
-
|
|
58477
|
+
/**
|
|
58478
|
+
* The answer of an accelerator rescan (D919): the node's device list after
|
|
58479
|
+
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
58480
|
+
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
58481
|
+
* bus, the installed-delegate fallback, or nothing).
|
|
58482
|
+
*/
|
|
58483
|
+
var AcceleratorRescanSchema = object({
|
|
58484
|
+
devices: array(InferenceDeviceDescriptorSchema).readonly(),
|
|
58485
|
+
appeared: array(string()).readonly(),
|
|
58486
|
+
disappeared: array(string()).readonly(),
|
|
58487
|
+
usbBus: _enum(["observed", "unobservable"]),
|
|
58488
|
+
decidedBy: _enum([
|
|
58489
|
+
"usb-ids",
|
|
58490
|
+
"pci",
|
|
58491
|
+
"delegate-fallback",
|
|
58492
|
+
"none"
|
|
58493
|
+
])
|
|
58494
|
+
});
|
|
58495
|
+
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
|
|
58496
|
+
kind: "mutation",
|
|
58497
|
+
auth: "admin"
|
|
58498
|
+
});
|
|
58345
58499
|
object({
|
|
58346
58500
|
/** Instantaneous power draw in watts. */
|
|
58347
58501
|
watts: number().optional(),
|
|
@@ -61630,60 +61784,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61630
61784
|
auth: "admin",
|
|
61631
61785
|
access: "delete"
|
|
61632
61786
|
});
|
|
61633
|
-
/**
|
|
61634
|
-
* Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
|
|
61635
|
-
* cleaning lifecycle plus a return-to-base / locate surface and an
|
|
61636
|
-
* optional fan-speed selector.
|
|
61637
|
-
*
|
|
61638
|
-
* State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
|
|
61639
|
-
* `paused` / `returning` / `docked` / `error`. `batteryLevel`
|
|
61640
|
-
* (0..100) is nullable — some vacuums don't report a battery
|
|
61641
|
-
* percentage. `fanSpeed` is the current speed token (provider-verbatim,
|
|
61642
|
-
* e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
|
|
61643
|
-
* tokens the hardware accepts so the UI renders only supported choices.
|
|
61644
|
-
*
|
|
61645
|
-
* The `setFanSpeed` method takes the bare `speed` token — the provider
|
|
61646
|
-
* validates it against the vacuum's own list. `locate` triggers the
|
|
61647
|
-
* find-me chirp; `returnToBase` sends it home.
|
|
61648
|
-
*
|
|
61649
|
-
* Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
|
|
61650
|
-
* `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
|
|
61651
|
-
* 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
|
|
61652
|
-
* SHOULD populate whichever tanks the hardware has — leave a field `null`
|
|
61653
|
-
* only when the device has no such tank at all, and use a `TankStatus`
|
|
61654
|
-
* with both inner fields `null` when the tank exists but its level is
|
|
61655
|
-
* currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
|
|
61656
|
-
* so the HA provider leaves all four `null`.
|
|
61657
|
-
*/
|
|
61658
|
-
var VacuumStateSchema = _enum([
|
|
61659
|
-
"idle",
|
|
61660
|
-
"cleaning",
|
|
61661
|
-
"paused",
|
|
61662
|
-
"returning",
|
|
61663
|
-
"docked",
|
|
61664
|
-
"drying",
|
|
61665
|
-
"error"
|
|
61666
|
-
]);
|
|
61667
|
-
/**
|
|
61668
|
-
* One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
|
|
61669
|
-
* detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
|
|
61670
|
-
* a discrete `status` (binary-style hardware), or both. Both `null` means the
|
|
61671
|
-
* level is currently unknown; the OWNING field being `null` means the
|
|
61672
|
-
* hardware has no such tank at all.
|
|
61673
|
-
*/
|
|
61674
|
-
var TankStatusSchema = object({
|
|
61675
|
-
/** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
|
|
61676
|
-
level: number().min(0).max(100).nullable(),
|
|
61677
|
-
/** Discrete state when the hardware is binary-mode; null otherwise. */
|
|
61678
|
-
status: _enum([
|
|
61679
|
-
"ok",
|
|
61680
|
-
"low",
|
|
61681
|
-
"full"
|
|
61682
|
-
]).nullable()
|
|
61683
|
-
});
|
|
61684
61787
|
object({
|
|
61685
61788
|
/** Lifecycle state of the vacuum. */
|
|
61686
|
-
state:
|
|
61789
|
+
state: _enum([
|
|
61790
|
+
"idle",
|
|
61791
|
+
"cleaning",
|
|
61792
|
+
"paused",
|
|
61793
|
+
"returning",
|
|
61794
|
+
"docked",
|
|
61795
|
+
"drying",
|
|
61796
|
+
"error"
|
|
61797
|
+
]),
|
|
61687
61798
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
61688
61799
|
* reading. */
|
|
61689
61800
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
@@ -61692,14 +61803,6 @@ object({
|
|
|
61692
61803
|
fanSpeed: string().nullable(),
|
|
61693
61804
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
61694
61805
|
availableFanSpeeds: array(string()),
|
|
61695
|
-
/** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
|
|
61696
|
-
cleanWater: TankStatusSchema.nullable(),
|
|
61697
|
-
/** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
|
|
61698
|
-
dirtyWater: TankStatusSchema.nullable(),
|
|
61699
|
-
/** Detergent tank. Null when the hardware has no detergent tank. */
|
|
61700
|
-
detergent: TankStatusSchema.nullable(),
|
|
61701
|
-
/** Dust bin. Null when the hardware has no dust bin. */
|
|
61702
|
-
dustBin: TankStatusSchema.nullable(),
|
|
61703
61806
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
61704
61807
|
progressPercent: number().min(0).max(100).nullable(),
|
|
61705
61808
|
/** Current error code (0 / null = no error). */
|
|
@@ -64240,6 +64343,12 @@ Object.freeze({
|
|
|
64240
64343
|
addonId: null,
|
|
64241
64344
|
access: "create"
|
|
64242
64345
|
},
|
|
64346
|
+
"deviceHistory.deleteOrphanSeries": {
|
|
64347
|
+
capName: "device-history",
|
|
64348
|
+
capScope: "system",
|
|
64349
|
+
addonId: null,
|
|
64350
|
+
access: "delete"
|
|
64351
|
+
},
|
|
64243
64352
|
"deviceHistory.getDeviceEnabled": {
|
|
64244
64353
|
capName: "device-history",
|
|
64245
64354
|
capScope: "system",
|
|
@@ -64258,6 +64367,12 @@ Object.freeze({
|
|
|
64258
64367
|
addonId: null,
|
|
64259
64368
|
access: "view"
|
|
64260
64369
|
},
|
|
64370
|
+
"deviceHistory.listOrphanSeries": {
|
|
64371
|
+
capName: "device-history",
|
|
64372
|
+
capScope: "system",
|
|
64373
|
+
addonId: null,
|
|
64374
|
+
access: "view"
|
|
64375
|
+
},
|
|
64261
64376
|
"deviceHistory.listSeries": {
|
|
64262
64377
|
capName: "device-history",
|
|
64263
64378
|
capScope: "system",
|
|
@@ -67882,6 +67997,12 @@ Object.freeze({
|
|
|
67882
67997
|
addonId: null,
|
|
67883
67998
|
access: "delete"
|
|
67884
67999
|
},
|
|
68000
|
+
"pipelineOrchestrator.forgetInferenceDevice": {
|
|
68001
|
+
capName: "pipeline-orchestrator",
|
|
68002
|
+
capScope: "system",
|
|
68003
|
+
addonId: null,
|
|
68004
|
+
access: "delete"
|
|
68005
|
+
},
|
|
67885
68006
|
"pipelineOrchestrator.getAgentLoad": {
|
|
67886
68007
|
capName: "pipeline-orchestrator",
|
|
67887
68008
|
capScope: "system",
|
|
@@ -68458,6 +68579,12 @@ Object.freeze({
|
|
|
68458
68579
|
addonId: null,
|
|
68459
68580
|
access: "view"
|
|
68460
68581
|
},
|
|
68582
|
+
"platformProbe.rescanAccelerators": {
|
|
68583
|
+
capName: "platform-probe",
|
|
68584
|
+
capScope: "system",
|
|
68585
|
+
addonId: null,
|
|
68586
|
+
access: "create"
|
|
68587
|
+
},
|
|
68461
68588
|
"platformProbe.resolveHwAccel": {
|
|
68462
68589
|
capName: "platform-probe",
|
|
68463
68590
|
capScope: "system",
|
|
@@ -74263,7 +74390,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
74263
74390
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
74264
74391
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
74265
74392
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
74266
|
-
([...RULE_TEXT], [...CONSUMABLE]),
|
|
74393
|
+
([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
|
|
74267
74394
|
([...RULE_TEXT], [...TANK]),
|
|
74268
74395
|
[...RULE_TEXT],
|
|
74269
74396
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
@@ -5567,7 +5567,7 @@ var ZodIssueCode = {
|
|
|
5567
5567
|
var ZodFirstPartyTypeKind;
|
|
5568
5568
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5569
5569
|
//#endregion
|
|
5570
|
-
//#region ../types/dist/sleep-
|
|
5570
|
+
//#region ../types/dist/sleep-CUp20JkO.mjs
|
|
5571
5571
|
/**
|
|
5572
5572
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5573
5573
|
* window to float samples (D455).
|
|
@@ -8657,7 +8657,11 @@ var ContributionSectionSchema = object({
|
|
|
8657
8657
|
literal(4)
|
|
8658
8658
|
]).optional(),
|
|
8659
8659
|
tab: string().optional(),
|
|
8660
|
-
location: _enum([
|
|
8660
|
+
location: _enum([
|
|
8661
|
+
"settings",
|
|
8662
|
+
"top-tab",
|
|
8663
|
+
"hero"
|
|
8664
|
+
]).optional(),
|
|
8661
8665
|
order: number().optional(),
|
|
8662
8666
|
fields: array(any())
|
|
8663
8667
|
});
|
|
@@ -13598,7 +13602,11 @@ var ConfigSectionWithValuesSchema = object({
|
|
|
13598
13602
|
literal(4)
|
|
13599
13603
|
]).optional(),
|
|
13600
13604
|
tab: string().optional(),
|
|
13601
|
-
location: _enum([
|
|
13605
|
+
location: _enum([
|
|
13606
|
+
"settings",
|
|
13607
|
+
"top-tab",
|
|
13608
|
+
"hero"
|
|
13609
|
+
]).optional(),
|
|
13602
13610
|
order: number().optional(),
|
|
13603
13611
|
fields: array(any())
|
|
13604
13612
|
});
|
|
@@ -17372,6 +17380,52 @@ var TierStatusSchema = object({
|
|
|
17372
17380
|
countedAt: number().nullable()
|
|
17373
17381
|
});
|
|
17374
17382
|
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
17383
|
+
/**
|
|
17384
|
+
* Why a series is orphan. `device-gone`: its device is absent from the
|
|
17385
|
+
* successful device listings (the departure clock). `undeclared`: its `cap:`
|
|
17386
|
+
* key is declared by no capability any more (a field a cap removed).
|
|
17387
|
+
*/
|
|
17388
|
+
var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
|
|
17389
|
+
/** Rows held per stored tier. */
|
|
17390
|
+
var TierRowsSchema = object({
|
|
17391
|
+
raw: number().int(),
|
|
17392
|
+
"5m": number().int(),
|
|
17393
|
+
"1h": number().int(),
|
|
17394
|
+
"1d": number().int()
|
|
17395
|
+
});
|
|
17396
|
+
var OrphanSeriesSchema = object({
|
|
17397
|
+
seriesId: number().int(),
|
|
17398
|
+
deviceId: number().int(),
|
|
17399
|
+
key: string(),
|
|
17400
|
+
scope: string(),
|
|
17401
|
+
/** The metric's display name; `null` when its metric row is gone too. */
|
|
17402
|
+
displayName: string().nullable(),
|
|
17403
|
+
reason: DeviceHistoryOrphanReasonSchema,
|
|
17404
|
+
/** `device-gone`: since when the device has been absent; `null` otherwise. */
|
|
17405
|
+
missingSince: number().nullable(),
|
|
17406
|
+
firstTs: number(),
|
|
17407
|
+
lastTs: number(),
|
|
17408
|
+
rows: TierRowsSchema
|
|
17409
|
+
});
|
|
17410
|
+
var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
|
|
17411
|
+
"not-found",
|
|
17412
|
+
"not-orphan",
|
|
17413
|
+
"failed"
|
|
17414
|
+
]);
|
|
17415
|
+
var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
|
|
17416
|
+
seriesId: number().int(),
|
|
17417
|
+
ok: literal(true),
|
|
17418
|
+
deleted: TierRowsSchema
|
|
17419
|
+
}), object({
|
|
17420
|
+
seriesId: number().int(),
|
|
17421
|
+
ok: literal(false),
|
|
17422
|
+
reason: DeviceHistoryOrphanDeleteRefusalSchema
|
|
17423
|
+
})]);
|
|
17424
|
+
var OrphanListSchema = object({
|
|
17425
|
+
series: array(OrphanSeriesSchema).readonly(),
|
|
17426
|
+
/** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
|
|
17427
|
+
truncated: boolean()
|
|
17428
|
+
});
|
|
17375
17429
|
var DeviceHistoryStatusSchema = object({
|
|
17376
17430
|
startedAt: number(),
|
|
17377
17431
|
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
@@ -17469,7 +17523,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
|
|
|
17469
17523
|
}), object({ enabled: boolean() }), {
|
|
17470
17524
|
kind: "mutation",
|
|
17471
17525
|
auth: "admin"
|
|
17472
|
-
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" })
|
|
17526
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" }), method(object({}), OrphanListSchema, { auth: "admin" }), method(object({ seriesIds: array(number().int()).min(1).max(50) }), object({ results: array(OrphanDeleteEntrySchema).readonly() }), {
|
|
17527
|
+
kind: "mutation",
|
|
17528
|
+
auth: "admin"
|
|
17529
|
+
});
|
|
17473
17530
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
17474
17531
|
object({ state: literal("absent") }),
|
|
17475
17532
|
object({
|
|
@@ -50143,6 +50200,19 @@ var NodeInferenceDeviceSchema = object({
|
|
|
50143
50200
|
/** Whether the node's live probe reports the device as usable right now. */
|
|
50144
50201
|
available: boolean(),
|
|
50145
50202
|
/**
|
|
50203
|
+
* Is the device on the node at all (D919)? `present` — the live probe
|
|
50204
|
+
* reported it; `absent` — the probe ANSWERED and did not report it, so only
|
|
50205
|
+
* its stored settings remain (unplugged, moved to another node): never
|
|
50206
|
+
* eligible, whatever its stored `enabled`, and forgettable with
|
|
50207
|
+
* `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
|
|
50208
|
+
* claimed (D315). Optional only for an orchestrator older than the field.
|
|
50209
|
+
*/
|
|
50210
|
+
presence: _enum([
|
|
50211
|
+
"present",
|
|
50212
|
+
"absent",
|
|
50213
|
+
"unknown"
|
|
50214
|
+
]).optional(),
|
|
50215
|
+
/**
|
|
50146
50216
|
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
50147
50217
|
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
50148
50218
|
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
@@ -50368,7 +50438,13 @@ method(object({
|
|
|
50368
50438
|
}), object({ success: literal(true) }), {
|
|
50369
50439
|
kind: "mutation",
|
|
50370
50440
|
auth: "admin"
|
|
50371
|
-
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50441
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50442
|
+
agentNodeId: string(),
|
|
50443
|
+
deviceKey: string()
|
|
50444
|
+
}), object({ success: literal(true) }), {
|
|
50445
|
+
kind: "mutation",
|
|
50446
|
+
auth: "admin"
|
|
50447
|
+
}), method(object({ agentNodeId: string() }), object({
|
|
50372
50448
|
success: literal(true),
|
|
50373
50449
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
50374
50450
|
effectiveModelId: string().nullable(),
|
|
@@ -54488,17 +54564,69 @@ object({
|
|
|
54488
54564
|
});
|
|
54489
54565
|
DeviceType.Sensor;
|
|
54490
54566
|
/**
|
|
54491
|
-
* Generic device-consumables capability —
|
|
54492
|
-
*
|
|
54493
|
-
* descaling cycles,
|
|
54494
|
-
*
|
|
54495
|
-
*
|
|
54496
|
-
*
|
|
54567
|
+
* Generic device-consumables capability — the ONE place a device reports what
|
|
54568
|
+
* it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
|
|
54569
|
+
* descaling cycles), supplies it draws from (a vacuum's clean-water tank and
|
|
54570
|
+
* detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
|
|
54571
|
+
* water tank, a dust bin). Each item carries its remaining life or fill and an
|
|
54572
|
+
* optional "Replaced" reset action. Device-agnostic: any provider that knows
|
|
54573
|
+
* its device tracks consumables registers it; the provider names each item
|
|
54574
|
+
* verbatim and says which `kind` it is.
|
|
54575
|
+
*
|
|
54576
|
+
* The admin UI renders it as ONE collapsible section directly under the
|
|
54577
|
+
* device page's hero card (`placement: 'hero'`), for every device bound to
|
|
54578
|
+
* this cap — never drawn by a device type's hero card itself (D915).
|
|
54497
54579
|
*
|
|
54498
54580
|
* Like `childLayout`, the cap is INERT until a provider sets items: no
|
|
54499
54581
|
* provider populates it by guessing (no HA inference). The UI renders a
|
|
54500
54582
|
* "No consumables reported" placeholder when `items` is empty.
|
|
54501
54583
|
*/
|
|
54584
|
+
/**
|
|
54585
|
+
* What an item IS, which decides which direction is bad:
|
|
54586
|
+
* - `wear` — a part that wears out (a brush, a filter); low life is bad.
|
|
54587
|
+
* - `supply` — something the device draws from (clean water, detergent,
|
|
54588
|
+
* salt, rinse aid); low or empty is bad.
|
|
54589
|
+
* - `waste` — something the device fills (dirty water, a dust bin); full is
|
|
54590
|
+
* bad.
|
|
54591
|
+
* Absent = `wear`.
|
|
54592
|
+
*/
|
|
54593
|
+
var ConsumableKindSchema = _enum([
|
|
54594
|
+
"wear",
|
|
54595
|
+
"supply",
|
|
54596
|
+
"waste"
|
|
54597
|
+
]);
|
|
54598
|
+
/**
|
|
54599
|
+
* What an item LOOKS like, which decides how a client draws it — independent
|
|
54600
|
+
* of `kind`, which decides which direction is bad:
|
|
54601
|
+
* - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
|
|
54602
|
+
* remaining time and a reset.
|
|
54603
|
+
* - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
|
|
54604
|
+
* - `product` — something bought and refilled (detergent, salt, rinse aid):
|
|
54605
|
+
* a stepped level and "refill".
|
|
54606
|
+
* - `bin` — a container that collects waste (a dust bin): a fill gauge
|
|
54607
|
+
* that warns when full.
|
|
54608
|
+
* Absent = derived from the kind ({@link consumableFormOf}).
|
|
54609
|
+
*/
|
|
54610
|
+
var ConsumableFormSchema = _enum([
|
|
54611
|
+
"part",
|
|
54612
|
+
"tank",
|
|
54613
|
+
"product",
|
|
54614
|
+
"bin"
|
|
54615
|
+
]);
|
|
54616
|
+
/** The provider's own discrete verdict on an item. */
|
|
54617
|
+
var ConsumableStatusSchema = _enum([
|
|
54618
|
+
"ok",
|
|
54619
|
+
"low",
|
|
54620
|
+
"empty",
|
|
54621
|
+
"full",
|
|
54622
|
+
"replace"
|
|
54623
|
+
]);
|
|
54624
|
+
_enum([
|
|
54625
|
+
"ok",
|
|
54626
|
+
"low",
|
|
54627
|
+
"empty",
|
|
54628
|
+
"full"
|
|
54629
|
+
]);
|
|
54502
54630
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
54503
54631
|
* each. */
|
|
54504
54632
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -54518,10 +54646,14 @@ var ConsumablesStatusSchema = object({
|
|
|
54518
54646
|
key: string().min(1),
|
|
54519
54647
|
/** Display name. */
|
|
54520
54648
|
label: string().min(1),
|
|
54521
|
-
/** Remaining life % when known (0..100). */
|
|
54649
|
+
/** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
|
|
54522
54650
|
level: number().min(0).max(100).nullable(),
|
|
54523
|
-
/**
|
|
54524
|
-
status:
|
|
54651
|
+
/** The provider's discrete verdict when known (binary mode). */
|
|
54652
|
+
status: ConsumableStatusSchema.nullable(),
|
|
54653
|
+
/** What the item is — decides whether low or full is bad. Absent = `wear`. */
|
|
54654
|
+
kind: ConsumableKindSchema.optional(),
|
|
54655
|
+
/** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
|
|
54656
|
+
form: ConsumableFormSchema.optional(),
|
|
54525
54657
|
/** Ms epoch of the last replace, when known. */
|
|
54526
54658
|
lastResetAt: number().nullable(),
|
|
54527
54659
|
/** Whether `reset()` is meaningful for this item. */
|
|
@@ -54756,8 +54888,9 @@ object({
|
|
|
54756
54888
|
status: DeviceStatusSchema
|
|
54757
54889
|
});
|
|
54758
54890
|
/**
|
|
54759
|
-
* Smart-dishwasher cap — program lifecycle, door / remote-start gates
|
|
54760
|
-
*
|
|
54891
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates and
|
|
54892
|
+
* common program options. Salt and rinse aid are NOT here: they are items of
|
|
54893
|
+
* the device's `consumables` cap, like every other device's (D915).
|
|
54761
54894
|
*
|
|
54762
54895
|
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
54763
54896
|
* by any integration that exposes the same program / option surface.
|
|
@@ -54805,11 +54938,6 @@ var DishwasherAvailabilitySchema = _enum([
|
|
|
54805
54938
|
"offline",
|
|
54806
54939
|
"description-missing"
|
|
54807
54940
|
]);
|
|
54808
|
-
var DishwasherConsumableLevelSchema = _enum([
|
|
54809
|
-
"ok",
|
|
54810
|
-
"low",
|
|
54811
|
-
"empty"
|
|
54812
|
-
]);
|
|
54813
54941
|
object({
|
|
54814
54942
|
availability: DishwasherAvailabilitySchema,
|
|
54815
54943
|
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
@@ -54842,8 +54970,6 @@ object({
|
|
|
54842
54970
|
powerOn: boolean().nullable(),
|
|
54843
54971
|
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
54844
54972
|
powerState: string().nullable(),
|
|
54845
|
-
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54846
|
-
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54847
54973
|
/**
|
|
54848
54974
|
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54849
54975
|
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
@@ -56883,7 +57009,7 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
|
|
|
56883
57009
|
enabled: boolean()
|
|
56884
57010
|
}), _void(), {
|
|
56885
57011
|
kind: "mutation",
|
|
56886
|
-
auth: "
|
|
57012
|
+
auth: "protected"
|
|
56887
57013
|
}), object({
|
|
56888
57014
|
deviceId: number(),
|
|
56889
57015
|
enabled: boolean(),
|
|
@@ -57373,6 +57499,13 @@ var TopologyNodeSchema = object({
|
|
|
57373
57499
|
cpuModel: string().nullable(),
|
|
57374
57500
|
cpuCores: number(),
|
|
57375
57501
|
memoryMB: number(),
|
|
57502
|
+
/**
|
|
57503
|
+
* The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
|
|
57504
|
+
* openvino, edgetpu …) — not its devices. An installed runtime says nothing
|
|
57505
|
+
* about whether its hardware is there (a Coral delegate stays installed
|
|
57506
|
+
* after the stick leaves, D919); the live device set is
|
|
57507
|
+
* `pipelineOrchestrator.getNodeInferenceDevices`.
|
|
57508
|
+
*/
|
|
57376
57509
|
engines: array(string()).readonly(),
|
|
57377
57510
|
isHub: boolean(),
|
|
57378
57511
|
isOnline: boolean(),
|
|
@@ -58337,7 +58470,28 @@ var ResolvedInferenceConfigSchema = object({
|
|
|
58337
58470
|
format: ModelFormatSchema,
|
|
58338
58471
|
reason: string()
|
|
58339
58472
|
});
|
|
58340
|
-
|
|
58473
|
+
/**
|
|
58474
|
+
* The answer of an accelerator rescan (D919): the node's device list after
|
|
58475
|
+
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
58476
|
+
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
58477
|
+
* bus, the installed-delegate fallback, or nothing).
|
|
58478
|
+
*/
|
|
58479
|
+
var AcceleratorRescanSchema = object({
|
|
58480
|
+
devices: array(InferenceDeviceDescriptorSchema).readonly(),
|
|
58481
|
+
appeared: array(string()).readonly(),
|
|
58482
|
+
disappeared: array(string()).readonly(),
|
|
58483
|
+
usbBus: _enum(["observed", "unobservable"]),
|
|
58484
|
+
decidedBy: _enum([
|
|
58485
|
+
"usb-ids",
|
|
58486
|
+
"pci",
|
|
58487
|
+
"delegate-fallback",
|
|
58488
|
+
"none"
|
|
58489
|
+
])
|
|
58490
|
+
});
|
|
58491
|
+
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
|
|
58492
|
+
kind: "mutation",
|
|
58493
|
+
auth: "admin"
|
|
58494
|
+
});
|
|
58341
58495
|
object({
|
|
58342
58496
|
/** Instantaneous power draw in watts. */
|
|
58343
58497
|
watts: number().optional(),
|
|
@@ -61626,60 +61780,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61626
61780
|
auth: "admin",
|
|
61627
61781
|
access: "delete"
|
|
61628
61782
|
});
|
|
61629
|
-
/**
|
|
61630
|
-
* Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
|
|
61631
|
-
* cleaning lifecycle plus a return-to-base / locate surface and an
|
|
61632
|
-
* optional fan-speed selector.
|
|
61633
|
-
*
|
|
61634
|
-
* State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
|
|
61635
|
-
* `paused` / `returning` / `docked` / `error`. `batteryLevel`
|
|
61636
|
-
* (0..100) is nullable — some vacuums don't report a battery
|
|
61637
|
-
* percentage. `fanSpeed` is the current speed token (provider-verbatim,
|
|
61638
|
-
* e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
|
|
61639
|
-
* tokens the hardware accepts so the UI renders only supported choices.
|
|
61640
|
-
*
|
|
61641
|
-
* The `setFanSpeed` method takes the bare `speed` token — the provider
|
|
61642
|
-
* validates it against the vacuum's own list. `locate` triggers the
|
|
61643
|
-
* find-me chirp; `returnToBase` sends it home.
|
|
61644
|
-
*
|
|
61645
|
-
* Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
|
|
61646
|
-
* `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
|
|
61647
|
-
* 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
|
|
61648
|
-
* SHOULD populate whichever tanks the hardware has — leave a field `null`
|
|
61649
|
-
* only when the device has no such tank at all, and use a `TankStatus`
|
|
61650
|
-
* with both inner fields `null` when the tank exists but its level is
|
|
61651
|
-
* currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
|
|
61652
|
-
* so the HA provider leaves all four `null`.
|
|
61653
|
-
*/
|
|
61654
|
-
var VacuumStateSchema = _enum([
|
|
61655
|
-
"idle",
|
|
61656
|
-
"cleaning",
|
|
61657
|
-
"paused",
|
|
61658
|
-
"returning",
|
|
61659
|
-
"docked",
|
|
61660
|
-
"drying",
|
|
61661
|
-
"error"
|
|
61662
|
-
]);
|
|
61663
|
-
/**
|
|
61664
|
-
* One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
|
|
61665
|
-
* detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
|
|
61666
|
-
* a discrete `status` (binary-style hardware), or both. Both `null` means the
|
|
61667
|
-
* level is currently unknown; the OWNING field being `null` means the
|
|
61668
|
-
* hardware has no such tank at all.
|
|
61669
|
-
*/
|
|
61670
|
-
var TankStatusSchema = object({
|
|
61671
|
-
/** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
|
|
61672
|
-
level: number().min(0).max(100).nullable(),
|
|
61673
|
-
/** Discrete state when the hardware is binary-mode; null otherwise. */
|
|
61674
|
-
status: _enum([
|
|
61675
|
-
"ok",
|
|
61676
|
-
"low",
|
|
61677
|
-
"full"
|
|
61678
|
-
]).nullable()
|
|
61679
|
-
});
|
|
61680
61783
|
object({
|
|
61681
61784
|
/** Lifecycle state of the vacuum. */
|
|
61682
|
-
state:
|
|
61785
|
+
state: _enum([
|
|
61786
|
+
"idle",
|
|
61787
|
+
"cleaning",
|
|
61788
|
+
"paused",
|
|
61789
|
+
"returning",
|
|
61790
|
+
"docked",
|
|
61791
|
+
"drying",
|
|
61792
|
+
"error"
|
|
61793
|
+
]),
|
|
61683
61794
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
61684
61795
|
* reading. */
|
|
61685
61796
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
@@ -61688,14 +61799,6 @@ object({
|
|
|
61688
61799
|
fanSpeed: string().nullable(),
|
|
61689
61800
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
61690
61801
|
availableFanSpeeds: array(string()),
|
|
61691
|
-
/** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
|
|
61692
|
-
cleanWater: TankStatusSchema.nullable(),
|
|
61693
|
-
/** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
|
|
61694
|
-
dirtyWater: TankStatusSchema.nullable(),
|
|
61695
|
-
/** Detergent tank. Null when the hardware has no detergent tank. */
|
|
61696
|
-
detergent: TankStatusSchema.nullable(),
|
|
61697
|
-
/** Dust bin. Null when the hardware has no dust bin. */
|
|
61698
|
-
dustBin: TankStatusSchema.nullable(),
|
|
61699
61802
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
61700
61803
|
progressPercent: number().min(0).max(100).nullable(),
|
|
61701
61804
|
/** Current error code (0 / null = no error). */
|
|
@@ -64236,6 +64339,12 @@ Object.freeze({
|
|
|
64236
64339
|
addonId: null,
|
|
64237
64340
|
access: "create"
|
|
64238
64341
|
},
|
|
64342
|
+
"deviceHistory.deleteOrphanSeries": {
|
|
64343
|
+
capName: "device-history",
|
|
64344
|
+
capScope: "system",
|
|
64345
|
+
addonId: null,
|
|
64346
|
+
access: "delete"
|
|
64347
|
+
},
|
|
64239
64348
|
"deviceHistory.getDeviceEnabled": {
|
|
64240
64349
|
capName: "device-history",
|
|
64241
64350
|
capScope: "system",
|
|
@@ -64254,6 +64363,12 @@ Object.freeze({
|
|
|
64254
64363
|
addonId: null,
|
|
64255
64364
|
access: "view"
|
|
64256
64365
|
},
|
|
64366
|
+
"deviceHistory.listOrphanSeries": {
|
|
64367
|
+
capName: "device-history",
|
|
64368
|
+
capScope: "system",
|
|
64369
|
+
addonId: null,
|
|
64370
|
+
access: "view"
|
|
64371
|
+
},
|
|
64257
64372
|
"deviceHistory.listSeries": {
|
|
64258
64373
|
capName: "device-history",
|
|
64259
64374
|
capScope: "system",
|
|
@@ -67878,6 +67993,12 @@ Object.freeze({
|
|
|
67878
67993
|
addonId: null,
|
|
67879
67994
|
access: "delete"
|
|
67880
67995
|
},
|
|
67996
|
+
"pipelineOrchestrator.forgetInferenceDevice": {
|
|
67997
|
+
capName: "pipeline-orchestrator",
|
|
67998
|
+
capScope: "system",
|
|
67999
|
+
addonId: null,
|
|
68000
|
+
access: "delete"
|
|
68001
|
+
},
|
|
67881
68002
|
"pipelineOrchestrator.getAgentLoad": {
|
|
67882
68003
|
capName: "pipeline-orchestrator",
|
|
67883
68004
|
capScope: "system",
|
|
@@ -68454,6 +68575,12 @@ Object.freeze({
|
|
|
68454
68575
|
addonId: null,
|
|
68455
68576
|
access: "view"
|
|
68456
68577
|
},
|
|
68578
|
+
"platformProbe.rescanAccelerators": {
|
|
68579
|
+
capName: "platform-probe",
|
|
68580
|
+
capScope: "system",
|
|
68581
|
+
addonId: null,
|
|
68582
|
+
access: "create"
|
|
68583
|
+
},
|
|
68457
68584
|
"platformProbe.resolveHwAccel": {
|
|
68458
68585
|
capName: "platform-probe",
|
|
68459
68586
|
capScope: "system",
|
|
@@ -74259,7 +74386,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
74259
74386
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
74260
74387
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
74261
74388
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
74262
|
-
([...RULE_TEXT], [...CONSUMABLE]),
|
|
74389
|
+
([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
|
|
74263
74390
|
([...RULE_TEXT], [...TANK]),
|
|
74264
74391
|
[...RULE_TEXT],
|
|
74265
74392
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-waste-collections",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "Waste collection schedules via the vendored HACS waste_collection_schedule Python core — full source catalog as calendar-source.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|