@camstack/addon-matter-broker 0.2.129 → 0.2.130
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/addon.js +264 -44
- package/dist/addon.mjs +264 -44
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -13,7 +13,7 @@ let node_stream_promises = require("node:stream/promises");
|
|
|
13
13
|
let node_net = require("node:net");
|
|
14
14
|
let node_dgram = require("node:dgram");
|
|
15
15
|
node_dgram = require_esm.__toESM(node_dgram, 1);
|
|
16
|
-
//#region ../types/dist/event-category-
|
|
16
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
17
17
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
18
18
|
EventCategory["SystemBoot"] = "system.boot";
|
|
19
19
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -92,9 +92,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
92
92
|
/**
|
|
93
93
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
94
94
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
95
|
-
* alert centre turns it into one
|
|
95
|
+
* alert centre turns it into one critical alert.
|
|
96
96
|
*/
|
|
97
97
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
98
|
+
/**
|
|
99
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
100
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
101
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
102
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
103
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
104
|
+
* event may be dropped (D8, D11).
|
|
105
|
+
*/
|
|
106
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
98
107
|
EventCategory["AddonError"] = "addon.error";
|
|
99
108
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
100
109
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5552,7 +5561,7 @@ var ZodIssueCode = {
|
|
|
5552
5561
|
var ZodFirstPartyTypeKind;
|
|
5553
5562
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5554
5563
|
//#endregion
|
|
5555
|
-
//#region ../types/dist/sleep-
|
|
5564
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5556
5565
|
/**
|
|
5557
5566
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5558
5567
|
* window to float samples (D455).
|
|
@@ -13515,7 +13524,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13515
13524
|
]);
|
|
13516
13525
|
var AlertActionSchema = object({
|
|
13517
13526
|
label: string$2(),
|
|
13518
|
-
href: string$2().optional()
|
|
13527
|
+
href: string$2().optional(),
|
|
13528
|
+
/**
|
|
13529
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13530
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13531
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13532
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13533
|
+
*/
|
|
13534
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13519
13535
|
});
|
|
13520
13536
|
var AlertStatusSchema = _enum([
|
|
13521
13537
|
"active",
|
|
@@ -42297,6 +42313,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42297
42313
|
"server-updated",
|
|
42298
42314
|
"export-completed",
|
|
42299
42315
|
"backup-completed",
|
|
42316
|
+
"alert-critical",
|
|
42317
|
+
"alert-error",
|
|
42318
|
+
"alert-critical-resolved",
|
|
42300
42319
|
"camera-online",
|
|
42301
42320
|
"camera-offline",
|
|
42302
42321
|
"camera-disabled",
|
|
@@ -51373,7 +51392,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51373
51392
|
}), method(object({ jobId: string$2().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
|
|
51374
51393
|
kind: "mutation",
|
|
51375
51394
|
auth: "admin"
|
|
51376
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51395
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string$2()).readonly() }), object({
|
|
51396
|
+
clear: boolean(),
|
|
51397
|
+
repointLocationId: string$2().optional()
|
|
51398
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string$2() }), {
|
|
51377
51399
|
kind: "mutation",
|
|
51378
51400
|
auth: "admin"
|
|
51379
51401
|
}), method(StorageCleanupInputSchema, object({ jobId: string$2() }), {
|
|
@@ -55646,6 +55668,11 @@ onStatusChanged: { data: object({
|
|
|
55646
55668
|
*
|
|
55647
55669
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55648
55670
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55671
|
+
*
|
|
55672
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55673
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55674
|
+
* the link is down, or the description does not carry it) and is never
|
|
55675
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55649
55676
|
*/
|
|
55650
55677
|
var DishwasherStateSchema = _enum([
|
|
55651
55678
|
"idle",
|
|
@@ -55655,43 +55682,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55655
55682
|
"error",
|
|
55656
55683
|
"unavailable"
|
|
55657
55684
|
]);
|
|
55685
|
+
/**
|
|
55686
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55687
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55688
|
+
*/
|
|
55689
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55690
|
+
"Inactive",
|
|
55691
|
+
"Ready",
|
|
55692
|
+
"DelayedStart",
|
|
55693
|
+
"Run",
|
|
55694
|
+
"Pause",
|
|
55695
|
+
"ActionRequired",
|
|
55696
|
+
"Finished",
|
|
55697
|
+
"Error",
|
|
55698
|
+
"Aborting"
|
|
55699
|
+
]);
|
|
55700
|
+
/**
|
|
55701
|
+
* Why fields may be `null`:
|
|
55702
|
+
* - `available` — the link is up and the description is loaded;
|
|
55703
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55704
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55705
|
+
* be loaded, so its values cannot be decoded.
|
|
55706
|
+
*/
|
|
55707
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55708
|
+
"available",
|
|
55709
|
+
"offline",
|
|
55710
|
+
"description-missing"
|
|
55711
|
+
]);
|
|
55658
55712
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55659
55713
|
"ok",
|
|
55660
55714
|
"low",
|
|
55661
55715
|
"empty"
|
|
55662
55716
|
]);
|
|
55663
55717
|
var DishwasherStatusSchema = object({
|
|
55718
|
+
availability: DishwasherAvailabilitySchema,
|
|
55719
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55664
55720
|
state: DishwasherStateSchema,
|
|
55665
|
-
/**
|
|
55721
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55722
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55723
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55666
55724
|
program: string$2().nullable(),
|
|
55667
|
-
/**
|
|
55725
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55726
|
+
selectedProgram: string$2().nullable(),
|
|
55727
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55668
55728
|
availablePrograms: array(string$2()),
|
|
55669
|
-
/**
|
|
55670
|
-
|
|
55729
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55730
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55731
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55732
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55671
55733
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55672
55734
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55673
|
-
/** True when the door is reported open. */
|
|
55674
|
-
doorOpen: boolean(),
|
|
55675
|
-
/** True when
|
|
55676
|
-
|
|
55677
|
-
/**
|
|
55678
|
-
|
|
55735
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55736
|
+
doorOpen: boolean().nullable(),
|
|
55737
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55738
|
+
doorLocked: boolean().nullable(),
|
|
55739
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55740
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55741
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55742
|
+
remoteControlActive: boolean().nullable(),
|
|
55743
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55744
|
+
localControlActive: boolean().nullable(),
|
|
55745
|
+
/** Main power / switched-on state; null when not known. */
|
|
55746
|
+
powerOn: boolean().nullable(),
|
|
55747
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55748
|
+
powerState: string$2().nullable(),
|
|
55679
55749
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55680
55750
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55681
|
-
|
|
55682
|
-
|
|
55751
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55752
|
+
halfLoad: boolean().nullable(),
|
|
55753
|
+
hygienePlus: boolean().nullable(),
|
|
55683
55754
|
/** Extra dry option when the appliance exposes it. */
|
|
55684
|
-
extraDry: boolean(),
|
|
55755
|
+
extraDry: boolean().nullable(),
|
|
55685
55756
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55686
|
-
intensiveZone: boolean(),
|
|
55757
|
+
intensiveZone: boolean().nullable(),
|
|
55687
55758
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55688
|
-
varioSpeedPlus: boolean(),
|
|
55689
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55690
|
-
childLock: boolean(),
|
|
55759
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55760
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55761
|
+
childLock: boolean().nullable(),
|
|
55762
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55763
|
+
activeEvents: array(string$2()),
|
|
55764
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55691
55765
|
errorCode: number().nullable(),
|
|
55766
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55692
55767
|
errorLabel: string$2().nullable(),
|
|
55768
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55693
55769
|
lastFetchedAt: number()
|
|
55694
55770
|
});
|
|
55771
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55772
|
+
/** A value a program option or setting can take. */
|
|
55773
|
+
var DishwasherValueSchema = union([
|
|
55774
|
+
boolean(),
|
|
55775
|
+
string$2(),
|
|
55776
|
+
number()
|
|
55777
|
+
]);
|
|
55778
|
+
var DishwasherAccessSchema = _enum([
|
|
55779
|
+
"none",
|
|
55780
|
+
"read",
|
|
55781
|
+
"readWrite",
|
|
55782
|
+
"writeOnly",
|
|
55783
|
+
"readStatic"
|
|
55784
|
+
]);
|
|
55785
|
+
/**
|
|
55786
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55787
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55788
|
+
*/
|
|
55789
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55790
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55791
|
+
key: string$2(),
|
|
55792
|
+
/** Last segment of the key, for display. */
|
|
55793
|
+
name: string$2(),
|
|
55794
|
+
type: _enum([
|
|
55795
|
+
"boolean",
|
|
55796
|
+
"number",
|
|
55797
|
+
"enum",
|
|
55798
|
+
"string"
|
|
55799
|
+
]),
|
|
55800
|
+
access: DishwasherAccessSchema,
|
|
55801
|
+
/** The appliance reports this entity as currently available. */
|
|
55802
|
+
available: boolean(),
|
|
55803
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55804
|
+
unit: string$2().nullable(),
|
|
55805
|
+
min: number().nullable(),
|
|
55806
|
+
max: number().nullable(),
|
|
55807
|
+
step: number().nullable(),
|
|
55808
|
+
/** Allowed members of an enum; null for other types. */
|
|
55809
|
+
enumValues: array(string$2()).nullable(),
|
|
55810
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55811
|
+
});
|
|
55812
|
+
var DishwasherProgramSchema = object({
|
|
55813
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55814
|
+
key: string$2(),
|
|
55815
|
+
name: string$2(),
|
|
55816
|
+
/** The appliance currently offers this program. */
|
|
55817
|
+
available: boolean(),
|
|
55818
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55819
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55820
|
+
});
|
|
55821
|
+
var DishwasherOptionsSchema = object({
|
|
55822
|
+
availability: DishwasherAvailabilitySchema,
|
|
55823
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55824
|
+
supportsStart: boolean(),
|
|
55825
|
+
supportsPause: boolean(),
|
|
55826
|
+
supportsResume: boolean(),
|
|
55827
|
+
supportsStop: boolean(),
|
|
55828
|
+
supportsPower: boolean(),
|
|
55829
|
+
/** Every program the description lists, with its options. */
|
|
55830
|
+
programs: array(DishwasherProgramSchema),
|
|
55831
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55832
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55833
|
+
});
|
|
55695
55834
|
var dishwasherCapability = {
|
|
55696
55835
|
name: "dishwasher",
|
|
55697
55836
|
scope: "device",
|
|
@@ -55699,86 +55838,102 @@ var dishwasherCapability = {
|
|
|
55699
55838
|
mode: "singleton",
|
|
55700
55839
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55701
55840
|
methods: {
|
|
55702
|
-
|
|
55841
|
+
/**
|
|
55842
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55843
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55844
|
+
*/
|
|
55845
|
+
start: method(object({
|
|
55846
|
+
deviceId: DeviceIdSchema,
|
|
55847
|
+
program: string$2().min(1).optional(),
|
|
55848
|
+
options: record(string$2(), DishwasherValueSchema).optional()
|
|
55849
|
+
}), _void(), {
|
|
55703
55850
|
kind: "mutation",
|
|
55704
55851
|
auth: "protected"
|
|
55705
55852
|
}),
|
|
55706
|
-
pause: method(object({ deviceId:
|
|
55853
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55707
55854
|
kind: "mutation",
|
|
55708
55855
|
auth: "protected"
|
|
55709
55856
|
}),
|
|
55710
|
-
|
|
55857
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55858
|
+
kind: "mutation",
|
|
55859
|
+
auth: "protected"
|
|
55860
|
+
}),
|
|
55861
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55711
55862
|
kind: "mutation",
|
|
55712
55863
|
auth: "protected"
|
|
55713
55864
|
}),
|
|
55865
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55714
55866
|
setProgram: method(object({
|
|
55715
|
-
deviceId:
|
|
55867
|
+
deviceId: DeviceIdSchema,
|
|
55716
55868
|
program: string$2().min(1)
|
|
55717
55869
|
}), _void(), {
|
|
55718
55870
|
kind: "mutation",
|
|
55719
55871
|
auth: "protected"
|
|
55720
55872
|
}),
|
|
55721
55873
|
setPower: method(object({
|
|
55722
|
-
deviceId:
|
|
55874
|
+
deviceId: DeviceIdSchema,
|
|
55723
55875
|
on: boolean()
|
|
55724
55876
|
}), _void(), {
|
|
55725
55877
|
kind: "mutation",
|
|
55726
55878
|
auth: "protected"
|
|
55727
55879
|
}),
|
|
55728
55880
|
setHalfLoad: method(object({
|
|
55729
|
-
deviceId:
|
|
55881
|
+
deviceId: DeviceIdSchema,
|
|
55730
55882
|
on: boolean()
|
|
55731
55883
|
}), _void(), {
|
|
55732
55884
|
kind: "mutation",
|
|
55733
55885
|
auth: "protected"
|
|
55734
55886
|
}),
|
|
55735
55887
|
setHygienePlus: method(object({
|
|
55736
|
-
deviceId:
|
|
55888
|
+
deviceId: DeviceIdSchema,
|
|
55737
55889
|
on: boolean()
|
|
55738
55890
|
}), _void(), {
|
|
55739
55891
|
kind: "mutation",
|
|
55740
55892
|
auth: "protected"
|
|
55741
55893
|
}),
|
|
55742
55894
|
setExtraDry: method(object({
|
|
55743
|
-
deviceId:
|
|
55895
|
+
deviceId: DeviceIdSchema,
|
|
55744
55896
|
on: boolean()
|
|
55745
55897
|
}), _void(), {
|
|
55746
55898
|
kind: "mutation",
|
|
55747
55899
|
auth: "protected"
|
|
55748
55900
|
}),
|
|
55749
55901
|
setIntensiveZone: method(object({
|
|
55750
|
-
deviceId:
|
|
55902
|
+
deviceId: DeviceIdSchema,
|
|
55751
55903
|
on: boolean()
|
|
55752
55904
|
}), _void(), {
|
|
55753
55905
|
kind: "mutation",
|
|
55754
55906
|
auth: "protected"
|
|
55755
55907
|
}),
|
|
55756
55908
|
setVarioSpeedPlus: method(object({
|
|
55757
|
-
deviceId:
|
|
55909
|
+
deviceId: DeviceIdSchema,
|
|
55758
55910
|
on: boolean()
|
|
55759
55911
|
}), _void(), {
|
|
55760
55912
|
kind: "mutation",
|
|
55761
55913
|
auth: "protected"
|
|
55762
55914
|
}),
|
|
55763
55915
|
setChildLock: method(object({
|
|
55764
|
-
deviceId:
|
|
55916
|
+
deviceId: DeviceIdSchema,
|
|
55765
55917
|
on: boolean()
|
|
55766
55918
|
}), _void(), {
|
|
55767
55919
|
kind: "mutation",
|
|
55768
55920
|
auth: "protected"
|
|
55769
55921
|
}),
|
|
55922
|
+
/**
|
|
55923
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55924
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55925
|
+
* its declared range / members.
|
|
55926
|
+
*/
|
|
55770
55927
|
setOption: method(object({
|
|
55771
|
-
deviceId:
|
|
55928
|
+
deviceId: DeviceIdSchema,
|
|
55772
55929
|
key: string$2().min(1),
|
|
55773
|
-
value:
|
|
55774
|
-
boolean(),
|
|
55775
|
-
string$2(),
|
|
55776
|
-
number()
|
|
55777
|
-
])
|
|
55930
|
+
value: DishwasherValueSchema
|
|
55778
55931
|
}), _void(), {
|
|
55779
55932
|
kind: "mutation",
|
|
55780
55933
|
auth: "protected"
|
|
55781
|
-
})
|
|
55934
|
+
}),
|
|
55935
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55936
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55782
55937
|
},
|
|
55783
55938
|
status: {
|
|
55784
55939
|
schema: DishwasherStatusSchema,
|
|
@@ -69727,6 +69882,12 @@ Object.freeze({
|
|
|
69727
69882
|
addonId: null,
|
|
69728
69883
|
access: "view"
|
|
69729
69884
|
},
|
|
69885
|
+
"dishwasher.getOptions": {
|
|
69886
|
+
capName: "dishwasher",
|
|
69887
|
+
capScope: "device",
|
|
69888
|
+
addonId: null,
|
|
69889
|
+
access: "view"
|
|
69890
|
+
},
|
|
69730
69891
|
"dishwasher.getStatus": {
|
|
69731
69892
|
capName: "dishwasher",
|
|
69732
69893
|
capScope: "device",
|
|
@@ -69739,6 +69900,12 @@ Object.freeze({
|
|
|
69739
69900
|
addonId: null,
|
|
69740
69901
|
access: "create"
|
|
69741
69902
|
},
|
|
69903
|
+
"dishwasher.resume": {
|
|
69904
|
+
capName: "dishwasher",
|
|
69905
|
+
capScope: "device",
|
|
69906
|
+
addonId: null,
|
|
69907
|
+
access: "create"
|
|
69908
|
+
},
|
|
69742
69909
|
"dishwasher.setChildLock": {
|
|
69743
69910
|
capName: "dishwasher",
|
|
69744
69911
|
capScope: "device",
|
|
@@ -74239,6 +74406,12 @@ Object.freeze({
|
|
|
74239
74406
|
addonId: null,
|
|
74240
74407
|
access: "view"
|
|
74241
74408
|
},
|
|
74409
|
+
"storageMigration.moverClearance": {
|
|
74410
|
+
capName: "storage-migration",
|
|
74411
|
+
capScope: "system",
|
|
74412
|
+
addonId: null,
|
|
74413
|
+
access: "view"
|
|
74414
|
+
},
|
|
74242
74415
|
"storageMigration.movers": {
|
|
74243
74416
|
capName: "storage-migration",
|
|
74244
74417
|
capScope: "system",
|
|
@@ -76432,6 +76605,11 @@ Object.freeze({
|
|
|
76432
76605
|
form: "single",
|
|
76433
76606
|
optional: false
|
|
76434
76607
|
}],
|
|
76608
|
+
"dishwasher.getOptions": [{
|
|
76609
|
+
name: "deviceId",
|
|
76610
|
+
form: "single",
|
|
76611
|
+
optional: false
|
|
76612
|
+
}],
|
|
76435
76613
|
"dishwasher.getStatus": [{
|
|
76436
76614
|
name: "deviceId",
|
|
76437
76615
|
form: "single",
|
|
@@ -76442,6 +76620,11 @@ Object.freeze({
|
|
|
76442
76620
|
form: "single",
|
|
76443
76621
|
optional: false
|
|
76444
76622
|
}],
|
|
76623
|
+
"dishwasher.resume": [{
|
|
76624
|
+
name: "deviceId",
|
|
76625
|
+
form: "single",
|
|
76626
|
+
optional: false
|
|
76627
|
+
}],
|
|
76445
76628
|
"dishwasher.setChildLock": [{
|
|
76446
76629
|
name: "deviceId",
|
|
76447
76630
|
form: "single",
|
|
@@ -78528,6 +78711,9 @@ new Map(Object.entries({
|
|
|
78528
78711
|
"wrapper-update-available": "system",
|
|
78529
78712
|
"backup-completed": "system",
|
|
78530
78713
|
"export-completed": "system",
|
|
78714
|
+
"alert-critical": "system",
|
|
78715
|
+
"alert-error": "system",
|
|
78716
|
+
"alert-critical-resolved": "system",
|
|
78531
78717
|
"storage-location-low": "system",
|
|
78532
78718
|
"storage-location-critical": "system",
|
|
78533
78719
|
"storage-location-ok": "system",
|
|
@@ -78652,6 +78838,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78652
78838
|
"storage-location-ok"
|
|
78653
78839
|
]
|
|
78654
78840
|
},
|
|
78841
|
+
{
|
|
78842
|
+
id: "alerts",
|
|
78843
|
+
family: "system",
|
|
78844
|
+
label: "Alerts",
|
|
78845
|
+
kinds: [
|
|
78846
|
+
"alert-critical",
|
|
78847
|
+
"alert-error",
|
|
78848
|
+
"alert-critical-resolved"
|
|
78849
|
+
]
|
|
78850
|
+
},
|
|
78655
78851
|
{
|
|
78656
78852
|
id: "alarm",
|
|
78657
78853
|
family: "alarm",
|
|
@@ -78696,6 +78892,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78696
78892
|
return [[descriptor.kind, field]];
|
|
78697
78893
|
})));
|
|
78698
78894
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78895
|
+
object({
|
|
78896
|
+
phase: _enum(["raised", "resolved"]),
|
|
78897
|
+
episodeId: string$2().min(1),
|
|
78898
|
+
alertId: string$2().min(1),
|
|
78899
|
+
severity: AlertSeveritySchema,
|
|
78900
|
+
category: string$2(),
|
|
78901
|
+
title: string$2(),
|
|
78902
|
+
message: string$2(),
|
|
78903
|
+
sourceType: string$2().optional(),
|
|
78904
|
+
sourceId: string$2().optional(),
|
|
78905
|
+
nodeId: string$2().optional(),
|
|
78906
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78907
|
+
actionUrl: string$2().optional(),
|
|
78908
|
+
at: number()
|
|
78909
|
+
});
|
|
78699
78910
|
var RULE_BODY_ONLY = ["body"];
|
|
78700
78911
|
var RULE_TEXT = ["title", "body"];
|
|
78701
78912
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78705,6 +78916,11 @@ var TANK = [
|
|
|
78705
78916
|
"device-tank-full",
|
|
78706
78917
|
"device-tank-normal"
|
|
78707
78918
|
];
|
|
78919
|
+
var ALERT_EPISODE = [
|
|
78920
|
+
"alert-critical",
|
|
78921
|
+
"alert-error",
|
|
78922
|
+
"alert-critical-resolved"
|
|
78923
|
+
];
|
|
78708
78924
|
var UPDATES = [
|
|
78709
78925
|
"addon-update-available",
|
|
78710
78926
|
"server-update-available",
|
|
@@ -78897,14 +79113,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78897
79113
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78898
79114
|
([...RULE_TEXT], [...TANK]),
|
|
78899
79115
|
[...RULE_TEXT],
|
|
78900
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78901
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78902
|
-
[...RULE_TEXT],
|
|
79116
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
79117
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78903
79118
|
[...RULE_TEXT],
|
|
78904
79119
|
[...RULE_TEXT],
|
|
78905
79120
|
[...RULE_TEXT],
|
|
78906
79121
|
[...RULE_TEXT],
|
|
78907
79122
|
[...RULE_TEXT],
|
|
79123
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78908
79124
|
[...RULE_TEXT],
|
|
78909
79125
|
[...RULE_TEXT],
|
|
78910
79126
|
[...RULE_TEXT],
|
|
@@ -78922,7 +79138,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78922
79138
|
[...RULE_TEXT],
|
|
78923
79139
|
[...RULE_TEXT],
|
|
78924
79140
|
[...RULE_TEXT],
|
|
78925
|
-
[...RULE_TEXT],
|
|
79141
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79142
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79143
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79144
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79145
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78926
79146
|
[...RULE_TEXT],
|
|
78927
79147
|
[...RULE_TEXT],
|
|
78928
79148
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -11,7 +11,7 @@ import { networkInterfaces, tmpdir, uptime } from "node:os";
|
|
|
11
11
|
import { finished } from "node:stream/promises";
|
|
12
12
|
import { createConnection, createServer as createServer$2 } from "node:net";
|
|
13
13
|
import * as dgram from "node:dgram";
|
|
14
|
-
//#region ../types/dist/event-category-
|
|
14
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
15
15
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
16
16
|
EventCategory["SystemBoot"] = "system.boot";
|
|
17
17
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -90,9 +90,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
90
90
|
/**
|
|
91
91
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
92
92
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
93
|
-
* alert centre turns it into one
|
|
93
|
+
* alert centre turns it into one critical alert.
|
|
94
94
|
*/
|
|
95
95
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
96
|
+
/**
|
|
97
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
98
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
99
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
100
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
101
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
102
|
+
* event may be dropped (D8, D11).
|
|
103
|
+
*/
|
|
104
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
96
105
|
EventCategory["AddonError"] = "addon.error";
|
|
97
106
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
98
107
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5550,7 +5559,7 @@ var ZodIssueCode = {
|
|
|
5550
5559
|
var ZodFirstPartyTypeKind;
|
|
5551
5560
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5552
5561
|
//#endregion
|
|
5553
|
-
//#region ../types/dist/sleep-
|
|
5562
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5554
5563
|
/**
|
|
5555
5564
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5556
5565
|
* window to float samples (D455).
|
|
@@ -13513,7 +13522,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13513
13522
|
]);
|
|
13514
13523
|
var AlertActionSchema = object({
|
|
13515
13524
|
label: string$2(),
|
|
13516
|
-
href: string$2().optional()
|
|
13525
|
+
href: string$2().optional(),
|
|
13526
|
+
/**
|
|
13527
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13528
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13529
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13530
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13531
|
+
*/
|
|
13532
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13517
13533
|
});
|
|
13518
13534
|
var AlertStatusSchema = _enum([
|
|
13519
13535
|
"active",
|
|
@@ -42295,6 +42311,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42295
42311
|
"server-updated",
|
|
42296
42312
|
"export-completed",
|
|
42297
42313
|
"backup-completed",
|
|
42314
|
+
"alert-critical",
|
|
42315
|
+
"alert-error",
|
|
42316
|
+
"alert-critical-resolved",
|
|
42298
42317
|
"camera-online",
|
|
42299
42318
|
"camera-offline",
|
|
42300
42319
|
"camera-disabled",
|
|
@@ -51371,7 +51390,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51371
51390
|
}), method(object({ jobId: string$2().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
|
|
51372
51391
|
kind: "mutation",
|
|
51373
51392
|
auth: "admin"
|
|
51374
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51393
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string$2()).readonly() }), object({
|
|
51394
|
+
clear: boolean(),
|
|
51395
|
+
repointLocationId: string$2().optional()
|
|
51396
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string$2() }), {
|
|
51375
51397
|
kind: "mutation",
|
|
51376
51398
|
auth: "admin"
|
|
51377
51399
|
}), method(StorageCleanupInputSchema, object({ jobId: string$2() }), {
|
|
@@ -55644,6 +55666,11 @@ onStatusChanged: { data: object({
|
|
|
55644
55666
|
*
|
|
55645
55667
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55646
55668
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55669
|
+
*
|
|
55670
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55671
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55672
|
+
* the link is down, or the description does not carry it) and is never
|
|
55673
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55647
55674
|
*/
|
|
55648
55675
|
var DishwasherStateSchema = _enum([
|
|
55649
55676
|
"idle",
|
|
@@ -55653,43 +55680,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55653
55680
|
"error",
|
|
55654
55681
|
"unavailable"
|
|
55655
55682
|
]);
|
|
55683
|
+
/**
|
|
55684
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55685
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55686
|
+
*/
|
|
55687
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55688
|
+
"Inactive",
|
|
55689
|
+
"Ready",
|
|
55690
|
+
"DelayedStart",
|
|
55691
|
+
"Run",
|
|
55692
|
+
"Pause",
|
|
55693
|
+
"ActionRequired",
|
|
55694
|
+
"Finished",
|
|
55695
|
+
"Error",
|
|
55696
|
+
"Aborting"
|
|
55697
|
+
]);
|
|
55698
|
+
/**
|
|
55699
|
+
* Why fields may be `null`:
|
|
55700
|
+
* - `available` — the link is up and the description is loaded;
|
|
55701
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55702
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55703
|
+
* be loaded, so its values cannot be decoded.
|
|
55704
|
+
*/
|
|
55705
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55706
|
+
"available",
|
|
55707
|
+
"offline",
|
|
55708
|
+
"description-missing"
|
|
55709
|
+
]);
|
|
55656
55710
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55657
55711
|
"ok",
|
|
55658
55712
|
"low",
|
|
55659
55713
|
"empty"
|
|
55660
55714
|
]);
|
|
55661
55715
|
var DishwasherStatusSchema = object({
|
|
55716
|
+
availability: DishwasherAvailabilitySchema,
|
|
55717
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55662
55718
|
state: DishwasherStateSchema,
|
|
55663
|
-
/**
|
|
55719
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55720
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55721
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55664
55722
|
program: string$2().nullable(),
|
|
55665
|
-
/**
|
|
55723
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55724
|
+
selectedProgram: string$2().nullable(),
|
|
55725
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55666
55726
|
availablePrograms: array(string$2()),
|
|
55667
|
-
/**
|
|
55668
|
-
|
|
55727
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55728
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55729
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55730
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55669
55731
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55670
55732
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55671
|
-
/** True when the door is reported open. */
|
|
55672
|
-
doorOpen: boolean(),
|
|
55673
|
-
/** True when
|
|
55674
|
-
|
|
55675
|
-
/**
|
|
55676
|
-
|
|
55733
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55734
|
+
doorOpen: boolean().nullable(),
|
|
55735
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55736
|
+
doorLocked: boolean().nullable(),
|
|
55737
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55738
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55739
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55740
|
+
remoteControlActive: boolean().nullable(),
|
|
55741
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55742
|
+
localControlActive: boolean().nullable(),
|
|
55743
|
+
/** Main power / switched-on state; null when not known. */
|
|
55744
|
+
powerOn: boolean().nullable(),
|
|
55745
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55746
|
+
powerState: string$2().nullable(),
|
|
55677
55747
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55678
55748
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55679
|
-
|
|
55680
|
-
|
|
55749
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55750
|
+
halfLoad: boolean().nullable(),
|
|
55751
|
+
hygienePlus: boolean().nullable(),
|
|
55681
55752
|
/** Extra dry option when the appliance exposes it. */
|
|
55682
|
-
extraDry: boolean(),
|
|
55753
|
+
extraDry: boolean().nullable(),
|
|
55683
55754
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55684
|
-
intensiveZone: boolean(),
|
|
55755
|
+
intensiveZone: boolean().nullable(),
|
|
55685
55756
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55686
|
-
varioSpeedPlus: boolean(),
|
|
55687
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55688
|
-
childLock: boolean(),
|
|
55757
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55758
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55759
|
+
childLock: boolean().nullable(),
|
|
55760
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55761
|
+
activeEvents: array(string$2()),
|
|
55762
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55689
55763
|
errorCode: number().nullable(),
|
|
55764
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55690
55765
|
errorLabel: string$2().nullable(),
|
|
55766
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55691
55767
|
lastFetchedAt: number()
|
|
55692
55768
|
});
|
|
55769
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55770
|
+
/** A value a program option or setting can take. */
|
|
55771
|
+
var DishwasherValueSchema = union([
|
|
55772
|
+
boolean(),
|
|
55773
|
+
string$2(),
|
|
55774
|
+
number()
|
|
55775
|
+
]);
|
|
55776
|
+
var DishwasherAccessSchema = _enum([
|
|
55777
|
+
"none",
|
|
55778
|
+
"read",
|
|
55779
|
+
"readWrite",
|
|
55780
|
+
"writeOnly",
|
|
55781
|
+
"readStatic"
|
|
55782
|
+
]);
|
|
55783
|
+
/**
|
|
55784
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55785
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55786
|
+
*/
|
|
55787
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55788
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55789
|
+
key: string$2(),
|
|
55790
|
+
/** Last segment of the key, for display. */
|
|
55791
|
+
name: string$2(),
|
|
55792
|
+
type: _enum([
|
|
55793
|
+
"boolean",
|
|
55794
|
+
"number",
|
|
55795
|
+
"enum",
|
|
55796
|
+
"string"
|
|
55797
|
+
]),
|
|
55798
|
+
access: DishwasherAccessSchema,
|
|
55799
|
+
/** The appliance reports this entity as currently available. */
|
|
55800
|
+
available: boolean(),
|
|
55801
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55802
|
+
unit: string$2().nullable(),
|
|
55803
|
+
min: number().nullable(),
|
|
55804
|
+
max: number().nullable(),
|
|
55805
|
+
step: number().nullable(),
|
|
55806
|
+
/** Allowed members of an enum; null for other types. */
|
|
55807
|
+
enumValues: array(string$2()).nullable(),
|
|
55808
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55809
|
+
});
|
|
55810
|
+
var DishwasherProgramSchema = object({
|
|
55811
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55812
|
+
key: string$2(),
|
|
55813
|
+
name: string$2(),
|
|
55814
|
+
/** The appliance currently offers this program. */
|
|
55815
|
+
available: boolean(),
|
|
55816
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55817
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55818
|
+
});
|
|
55819
|
+
var DishwasherOptionsSchema = object({
|
|
55820
|
+
availability: DishwasherAvailabilitySchema,
|
|
55821
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55822
|
+
supportsStart: boolean(),
|
|
55823
|
+
supportsPause: boolean(),
|
|
55824
|
+
supportsResume: boolean(),
|
|
55825
|
+
supportsStop: boolean(),
|
|
55826
|
+
supportsPower: boolean(),
|
|
55827
|
+
/** Every program the description lists, with its options. */
|
|
55828
|
+
programs: array(DishwasherProgramSchema),
|
|
55829
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55830
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55831
|
+
});
|
|
55693
55832
|
var dishwasherCapability = {
|
|
55694
55833
|
name: "dishwasher",
|
|
55695
55834
|
scope: "device",
|
|
@@ -55697,86 +55836,102 @@ var dishwasherCapability = {
|
|
|
55697
55836
|
mode: "singleton",
|
|
55698
55837
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55699
55838
|
methods: {
|
|
55700
|
-
|
|
55839
|
+
/**
|
|
55840
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55841
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55842
|
+
*/
|
|
55843
|
+
start: method(object({
|
|
55844
|
+
deviceId: DeviceIdSchema,
|
|
55845
|
+
program: string$2().min(1).optional(),
|
|
55846
|
+
options: record(string$2(), DishwasherValueSchema).optional()
|
|
55847
|
+
}), _void(), {
|
|
55701
55848
|
kind: "mutation",
|
|
55702
55849
|
auth: "protected"
|
|
55703
55850
|
}),
|
|
55704
|
-
pause: method(object({ deviceId:
|
|
55851
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55705
55852
|
kind: "mutation",
|
|
55706
55853
|
auth: "protected"
|
|
55707
55854
|
}),
|
|
55708
|
-
|
|
55855
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55856
|
+
kind: "mutation",
|
|
55857
|
+
auth: "protected"
|
|
55858
|
+
}),
|
|
55859
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55709
55860
|
kind: "mutation",
|
|
55710
55861
|
auth: "protected"
|
|
55711
55862
|
}),
|
|
55863
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55712
55864
|
setProgram: method(object({
|
|
55713
|
-
deviceId:
|
|
55865
|
+
deviceId: DeviceIdSchema,
|
|
55714
55866
|
program: string$2().min(1)
|
|
55715
55867
|
}), _void(), {
|
|
55716
55868
|
kind: "mutation",
|
|
55717
55869
|
auth: "protected"
|
|
55718
55870
|
}),
|
|
55719
55871
|
setPower: method(object({
|
|
55720
|
-
deviceId:
|
|
55872
|
+
deviceId: DeviceIdSchema,
|
|
55721
55873
|
on: boolean()
|
|
55722
55874
|
}), _void(), {
|
|
55723
55875
|
kind: "mutation",
|
|
55724
55876
|
auth: "protected"
|
|
55725
55877
|
}),
|
|
55726
55878
|
setHalfLoad: method(object({
|
|
55727
|
-
deviceId:
|
|
55879
|
+
deviceId: DeviceIdSchema,
|
|
55728
55880
|
on: boolean()
|
|
55729
55881
|
}), _void(), {
|
|
55730
55882
|
kind: "mutation",
|
|
55731
55883
|
auth: "protected"
|
|
55732
55884
|
}),
|
|
55733
55885
|
setHygienePlus: method(object({
|
|
55734
|
-
deviceId:
|
|
55886
|
+
deviceId: DeviceIdSchema,
|
|
55735
55887
|
on: boolean()
|
|
55736
55888
|
}), _void(), {
|
|
55737
55889
|
kind: "mutation",
|
|
55738
55890
|
auth: "protected"
|
|
55739
55891
|
}),
|
|
55740
55892
|
setExtraDry: method(object({
|
|
55741
|
-
deviceId:
|
|
55893
|
+
deviceId: DeviceIdSchema,
|
|
55742
55894
|
on: boolean()
|
|
55743
55895
|
}), _void(), {
|
|
55744
55896
|
kind: "mutation",
|
|
55745
55897
|
auth: "protected"
|
|
55746
55898
|
}),
|
|
55747
55899
|
setIntensiveZone: method(object({
|
|
55748
|
-
deviceId:
|
|
55900
|
+
deviceId: DeviceIdSchema,
|
|
55749
55901
|
on: boolean()
|
|
55750
55902
|
}), _void(), {
|
|
55751
55903
|
kind: "mutation",
|
|
55752
55904
|
auth: "protected"
|
|
55753
55905
|
}),
|
|
55754
55906
|
setVarioSpeedPlus: method(object({
|
|
55755
|
-
deviceId:
|
|
55907
|
+
deviceId: DeviceIdSchema,
|
|
55756
55908
|
on: boolean()
|
|
55757
55909
|
}), _void(), {
|
|
55758
55910
|
kind: "mutation",
|
|
55759
55911
|
auth: "protected"
|
|
55760
55912
|
}),
|
|
55761
55913
|
setChildLock: method(object({
|
|
55762
|
-
deviceId:
|
|
55914
|
+
deviceId: DeviceIdSchema,
|
|
55763
55915
|
on: boolean()
|
|
55764
55916
|
}), _void(), {
|
|
55765
55917
|
kind: "mutation",
|
|
55766
55918
|
auth: "protected"
|
|
55767
55919
|
}),
|
|
55920
|
+
/**
|
|
55921
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55922
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55923
|
+
* its declared range / members.
|
|
55924
|
+
*/
|
|
55768
55925
|
setOption: method(object({
|
|
55769
|
-
deviceId:
|
|
55926
|
+
deviceId: DeviceIdSchema,
|
|
55770
55927
|
key: string$2().min(1),
|
|
55771
|
-
value:
|
|
55772
|
-
boolean(),
|
|
55773
|
-
string$2(),
|
|
55774
|
-
number()
|
|
55775
|
-
])
|
|
55928
|
+
value: DishwasherValueSchema
|
|
55776
55929
|
}), _void(), {
|
|
55777
55930
|
kind: "mutation",
|
|
55778
55931
|
auth: "protected"
|
|
55779
|
-
})
|
|
55932
|
+
}),
|
|
55933
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55934
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55780
55935
|
},
|
|
55781
55936
|
status: {
|
|
55782
55937
|
schema: DishwasherStatusSchema,
|
|
@@ -69725,6 +69880,12 @@ Object.freeze({
|
|
|
69725
69880
|
addonId: null,
|
|
69726
69881
|
access: "view"
|
|
69727
69882
|
},
|
|
69883
|
+
"dishwasher.getOptions": {
|
|
69884
|
+
capName: "dishwasher",
|
|
69885
|
+
capScope: "device",
|
|
69886
|
+
addonId: null,
|
|
69887
|
+
access: "view"
|
|
69888
|
+
},
|
|
69728
69889
|
"dishwasher.getStatus": {
|
|
69729
69890
|
capName: "dishwasher",
|
|
69730
69891
|
capScope: "device",
|
|
@@ -69737,6 +69898,12 @@ Object.freeze({
|
|
|
69737
69898
|
addonId: null,
|
|
69738
69899
|
access: "create"
|
|
69739
69900
|
},
|
|
69901
|
+
"dishwasher.resume": {
|
|
69902
|
+
capName: "dishwasher",
|
|
69903
|
+
capScope: "device",
|
|
69904
|
+
addonId: null,
|
|
69905
|
+
access: "create"
|
|
69906
|
+
},
|
|
69740
69907
|
"dishwasher.setChildLock": {
|
|
69741
69908
|
capName: "dishwasher",
|
|
69742
69909
|
capScope: "device",
|
|
@@ -74237,6 +74404,12 @@ Object.freeze({
|
|
|
74237
74404
|
addonId: null,
|
|
74238
74405
|
access: "view"
|
|
74239
74406
|
},
|
|
74407
|
+
"storageMigration.moverClearance": {
|
|
74408
|
+
capName: "storage-migration",
|
|
74409
|
+
capScope: "system",
|
|
74410
|
+
addonId: null,
|
|
74411
|
+
access: "view"
|
|
74412
|
+
},
|
|
74240
74413
|
"storageMigration.movers": {
|
|
74241
74414
|
capName: "storage-migration",
|
|
74242
74415
|
capScope: "system",
|
|
@@ -76430,6 +76603,11 @@ Object.freeze({
|
|
|
76430
76603
|
form: "single",
|
|
76431
76604
|
optional: false
|
|
76432
76605
|
}],
|
|
76606
|
+
"dishwasher.getOptions": [{
|
|
76607
|
+
name: "deviceId",
|
|
76608
|
+
form: "single",
|
|
76609
|
+
optional: false
|
|
76610
|
+
}],
|
|
76433
76611
|
"dishwasher.getStatus": [{
|
|
76434
76612
|
name: "deviceId",
|
|
76435
76613
|
form: "single",
|
|
@@ -76440,6 +76618,11 @@ Object.freeze({
|
|
|
76440
76618
|
form: "single",
|
|
76441
76619
|
optional: false
|
|
76442
76620
|
}],
|
|
76621
|
+
"dishwasher.resume": [{
|
|
76622
|
+
name: "deviceId",
|
|
76623
|
+
form: "single",
|
|
76624
|
+
optional: false
|
|
76625
|
+
}],
|
|
76443
76626
|
"dishwasher.setChildLock": [{
|
|
76444
76627
|
name: "deviceId",
|
|
76445
76628
|
form: "single",
|
|
@@ -78526,6 +78709,9 @@ new Map(Object.entries({
|
|
|
78526
78709
|
"wrapper-update-available": "system",
|
|
78527
78710
|
"backup-completed": "system",
|
|
78528
78711
|
"export-completed": "system",
|
|
78712
|
+
"alert-critical": "system",
|
|
78713
|
+
"alert-error": "system",
|
|
78714
|
+
"alert-critical-resolved": "system",
|
|
78529
78715
|
"storage-location-low": "system",
|
|
78530
78716
|
"storage-location-critical": "system",
|
|
78531
78717
|
"storage-location-ok": "system",
|
|
@@ -78650,6 +78836,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78650
78836
|
"storage-location-ok"
|
|
78651
78837
|
]
|
|
78652
78838
|
},
|
|
78839
|
+
{
|
|
78840
|
+
id: "alerts",
|
|
78841
|
+
family: "system",
|
|
78842
|
+
label: "Alerts",
|
|
78843
|
+
kinds: [
|
|
78844
|
+
"alert-critical",
|
|
78845
|
+
"alert-error",
|
|
78846
|
+
"alert-critical-resolved"
|
|
78847
|
+
]
|
|
78848
|
+
},
|
|
78653
78849
|
{
|
|
78654
78850
|
id: "alarm",
|
|
78655
78851
|
family: "alarm",
|
|
@@ -78694,6 +78890,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78694
78890
|
return [[descriptor.kind, field]];
|
|
78695
78891
|
})));
|
|
78696
78892
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78893
|
+
object({
|
|
78894
|
+
phase: _enum(["raised", "resolved"]),
|
|
78895
|
+
episodeId: string$2().min(1),
|
|
78896
|
+
alertId: string$2().min(1),
|
|
78897
|
+
severity: AlertSeveritySchema,
|
|
78898
|
+
category: string$2(),
|
|
78899
|
+
title: string$2(),
|
|
78900
|
+
message: string$2(),
|
|
78901
|
+
sourceType: string$2().optional(),
|
|
78902
|
+
sourceId: string$2().optional(),
|
|
78903
|
+
nodeId: string$2().optional(),
|
|
78904
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78905
|
+
actionUrl: string$2().optional(),
|
|
78906
|
+
at: number()
|
|
78907
|
+
});
|
|
78697
78908
|
var RULE_BODY_ONLY = ["body"];
|
|
78698
78909
|
var RULE_TEXT = ["title", "body"];
|
|
78699
78910
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78703,6 +78914,11 @@ var TANK = [
|
|
|
78703
78914
|
"device-tank-full",
|
|
78704
78915
|
"device-tank-normal"
|
|
78705
78916
|
];
|
|
78917
|
+
var ALERT_EPISODE = [
|
|
78918
|
+
"alert-critical",
|
|
78919
|
+
"alert-error",
|
|
78920
|
+
"alert-critical-resolved"
|
|
78921
|
+
];
|
|
78706
78922
|
var UPDATES = [
|
|
78707
78923
|
"addon-update-available",
|
|
78708
78924
|
"server-update-available",
|
|
@@ -78895,14 +79111,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78895
79111
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78896
79112
|
([...RULE_TEXT], [...TANK]),
|
|
78897
79113
|
[...RULE_TEXT],
|
|
78898
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78899
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78900
|
-
[...RULE_TEXT],
|
|
79114
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
79115
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78901
79116
|
[...RULE_TEXT],
|
|
78902
79117
|
[...RULE_TEXT],
|
|
78903
79118
|
[...RULE_TEXT],
|
|
78904
79119
|
[...RULE_TEXT],
|
|
78905
79120
|
[...RULE_TEXT],
|
|
79121
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78906
79122
|
[...RULE_TEXT],
|
|
78907
79123
|
[...RULE_TEXT],
|
|
78908
79124
|
[...RULE_TEXT],
|
|
@@ -78920,7 +79136,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78920
79136
|
[...RULE_TEXT],
|
|
78921
79137
|
[...RULE_TEXT],
|
|
78922
79138
|
[...RULE_TEXT],
|
|
78923
|
-
[...RULE_TEXT],
|
|
79139
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79140
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79141
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79142
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79143
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78924
79144
|
[...RULE_TEXT],
|
|
78925
79145
|
[...RULE_TEXT],
|
|
78926
79146
|
[...RULE_TEXT],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-matter-broker",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.130",
|
|
4
4
|
"description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|