@camstack/addon-provider-amcrest 0.2.139 → 0.2.140
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
|
@@ -35,7 +35,7 @@ let node_stream_promises = require("node:stream/promises");
|
|
|
35
35
|
let node_child_process = require("node:child_process");
|
|
36
36
|
require("node:zlib");
|
|
37
37
|
let node_os = require("node:os");
|
|
38
|
-
//#region ../types/dist/event-category-
|
|
38
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
39
39
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
40
40
|
EventCategory["SystemBoot"] = "system.boot";
|
|
41
41
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -114,9 +114,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
114
114
|
/**
|
|
115
115
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
116
116
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
117
|
-
* alert centre turns it into one
|
|
117
|
+
* alert centre turns it into one critical alert.
|
|
118
118
|
*/
|
|
119
119
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
120
|
+
/**
|
|
121
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
122
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
123
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
124
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
125
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
126
|
+
* event may be dropped (D8, D11).
|
|
127
|
+
*/
|
|
128
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
120
129
|
EventCategory["AddonError"] = "addon.error";
|
|
121
130
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
122
131
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5441,7 +5450,7 @@ var ZodIssueCode = {
|
|
|
5441
5450
|
var ZodFirstPartyTypeKind;
|
|
5442
5451
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5443
5452
|
//#endregion
|
|
5444
|
-
//#region ../types/dist/sleep-
|
|
5453
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5445
5454
|
/**
|
|
5446
5455
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5447
5456
|
* window to float samples (D455).
|
|
@@ -13228,7 +13237,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13228
13237
|
]);
|
|
13229
13238
|
var AlertActionSchema = object({
|
|
13230
13239
|
label: string(),
|
|
13231
|
-
href: string().optional()
|
|
13240
|
+
href: string().optional(),
|
|
13241
|
+
/**
|
|
13242
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13243
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13244
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13245
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13246
|
+
*/
|
|
13247
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13232
13248
|
});
|
|
13233
13249
|
var AlertStatusSchema = _enum([
|
|
13234
13250
|
"active",
|
|
@@ -42057,6 +42073,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42057
42073
|
"server-updated",
|
|
42058
42074
|
"export-completed",
|
|
42059
42075
|
"backup-completed",
|
|
42076
|
+
"alert-critical",
|
|
42077
|
+
"alert-error",
|
|
42078
|
+
"alert-critical-resolved",
|
|
42060
42079
|
"camera-online",
|
|
42061
42080
|
"camera-offline",
|
|
42062
42081
|
"camera-disabled",
|
|
@@ -51237,7 +51256,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51237
51256
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51238
51257
|
kind: "mutation",
|
|
51239
51258
|
auth: "admin"
|
|
51240
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51259
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51260
|
+
clear: boolean(),
|
|
51261
|
+
repointLocationId: string().optional()
|
|
51262
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51241
51263
|
kind: "mutation",
|
|
51242
51264
|
auth: "admin"
|
|
51243
51265
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55902,6 +55924,11 @@ onStatusChanged: { data: object({
|
|
|
55902
55924
|
*
|
|
55903
55925
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55904
55926
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55927
|
+
*
|
|
55928
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55929
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55930
|
+
* the link is down, or the description does not carry it) and is never
|
|
55931
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55905
55932
|
*/
|
|
55906
55933
|
var DishwasherStateSchema = _enum([
|
|
55907
55934
|
"idle",
|
|
@@ -55911,43 +55938,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55911
55938
|
"error",
|
|
55912
55939
|
"unavailable"
|
|
55913
55940
|
]);
|
|
55941
|
+
/**
|
|
55942
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55943
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55944
|
+
*/
|
|
55945
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55946
|
+
"Inactive",
|
|
55947
|
+
"Ready",
|
|
55948
|
+
"DelayedStart",
|
|
55949
|
+
"Run",
|
|
55950
|
+
"Pause",
|
|
55951
|
+
"ActionRequired",
|
|
55952
|
+
"Finished",
|
|
55953
|
+
"Error",
|
|
55954
|
+
"Aborting"
|
|
55955
|
+
]);
|
|
55956
|
+
/**
|
|
55957
|
+
* Why fields may be `null`:
|
|
55958
|
+
* - `available` — the link is up and the description is loaded;
|
|
55959
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55960
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55961
|
+
* be loaded, so its values cannot be decoded.
|
|
55962
|
+
*/
|
|
55963
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55964
|
+
"available",
|
|
55965
|
+
"offline",
|
|
55966
|
+
"description-missing"
|
|
55967
|
+
]);
|
|
55914
55968
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55915
55969
|
"ok",
|
|
55916
55970
|
"low",
|
|
55917
55971
|
"empty"
|
|
55918
55972
|
]);
|
|
55919
55973
|
var DishwasherStatusSchema = object({
|
|
55974
|
+
availability: DishwasherAvailabilitySchema,
|
|
55975
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55920
55976
|
state: DishwasherStateSchema,
|
|
55921
|
-
/**
|
|
55977
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55978
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55979
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55922
55980
|
program: string().nullable(),
|
|
55923
|
-
/**
|
|
55981
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55982
|
+
selectedProgram: string().nullable(),
|
|
55983
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55924
55984
|
availablePrograms: array(string()),
|
|
55925
|
-
/**
|
|
55926
|
-
|
|
55985
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55986
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55987
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55988
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55927
55989
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55928
55990
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55929
|
-
/** True when the door is reported open. */
|
|
55930
|
-
doorOpen: boolean(),
|
|
55931
|
-
/** True when
|
|
55932
|
-
|
|
55933
|
-
/**
|
|
55934
|
-
|
|
55991
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55992
|
+
doorOpen: boolean().nullable(),
|
|
55993
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55994
|
+
doorLocked: boolean().nullable(),
|
|
55995
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55996
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55997
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55998
|
+
remoteControlActive: boolean().nullable(),
|
|
55999
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
56000
|
+
localControlActive: boolean().nullable(),
|
|
56001
|
+
/** Main power / switched-on state; null when not known. */
|
|
56002
|
+
powerOn: boolean().nullable(),
|
|
56003
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
56004
|
+
powerState: string().nullable(),
|
|
55935
56005
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55936
56006
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55937
|
-
|
|
55938
|
-
|
|
56007
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
56008
|
+
halfLoad: boolean().nullable(),
|
|
56009
|
+
hygienePlus: boolean().nullable(),
|
|
55939
56010
|
/** Extra dry option when the appliance exposes it. */
|
|
55940
|
-
extraDry: boolean(),
|
|
56011
|
+
extraDry: boolean().nullable(),
|
|
55941
56012
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55942
|
-
intensiveZone: boolean(),
|
|
56013
|
+
intensiveZone: boolean().nullable(),
|
|
55943
56014
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55944
|
-
varioSpeedPlus: boolean(),
|
|
55945
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55946
|
-
childLock: boolean(),
|
|
56015
|
+
varioSpeedPlus: boolean().nullable(),
|
|
56016
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
56017
|
+
childLock: boolean().nullable(),
|
|
56018
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
56019
|
+
activeEvents: array(string()),
|
|
56020
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55947
56021
|
errorCode: number().nullable(),
|
|
56022
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55948
56023
|
errorLabel: string().nullable(),
|
|
56024
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55949
56025
|
lastFetchedAt: number()
|
|
55950
56026
|
});
|
|
56027
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
56028
|
+
/** A value a program option or setting can take. */
|
|
56029
|
+
var DishwasherValueSchema = union([
|
|
56030
|
+
boolean(),
|
|
56031
|
+
string(),
|
|
56032
|
+
number()
|
|
56033
|
+
]);
|
|
56034
|
+
var DishwasherAccessSchema = _enum([
|
|
56035
|
+
"none",
|
|
56036
|
+
"read",
|
|
56037
|
+
"readWrite",
|
|
56038
|
+
"writeOnly",
|
|
56039
|
+
"readStatic"
|
|
56040
|
+
]);
|
|
56041
|
+
/**
|
|
56042
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
56043
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
56044
|
+
*/
|
|
56045
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
56046
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
56047
|
+
key: string(),
|
|
56048
|
+
/** Last segment of the key, for display. */
|
|
56049
|
+
name: string(),
|
|
56050
|
+
type: _enum([
|
|
56051
|
+
"boolean",
|
|
56052
|
+
"number",
|
|
56053
|
+
"enum",
|
|
56054
|
+
"string"
|
|
56055
|
+
]),
|
|
56056
|
+
access: DishwasherAccessSchema,
|
|
56057
|
+
/** The appliance reports this entity as currently available. */
|
|
56058
|
+
available: boolean(),
|
|
56059
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
56060
|
+
unit: string().nullable(),
|
|
56061
|
+
min: number().nullable(),
|
|
56062
|
+
max: number().nullable(),
|
|
56063
|
+
step: number().nullable(),
|
|
56064
|
+
/** Allowed members of an enum; null for other types. */
|
|
56065
|
+
enumValues: array(string()).nullable(),
|
|
56066
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
56067
|
+
});
|
|
56068
|
+
var DishwasherProgramSchema = object({
|
|
56069
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
56070
|
+
key: string(),
|
|
56071
|
+
name: string(),
|
|
56072
|
+
/** The appliance currently offers this program. */
|
|
56073
|
+
available: boolean(),
|
|
56074
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
56075
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56076
|
+
});
|
|
56077
|
+
var DishwasherOptionsSchema = object({
|
|
56078
|
+
availability: DishwasherAvailabilitySchema,
|
|
56079
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
56080
|
+
supportsStart: boolean(),
|
|
56081
|
+
supportsPause: boolean(),
|
|
56082
|
+
supportsResume: boolean(),
|
|
56083
|
+
supportsStop: boolean(),
|
|
56084
|
+
supportsPower: boolean(),
|
|
56085
|
+
/** Every program the description lists, with its options. */
|
|
56086
|
+
programs: array(DishwasherProgramSchema),
|
|
56087
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
56088
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56089
|
+
});
|
|
55951
56090
|
var dishwasherCapability = {
|
|
55952
56091
|
name: "dishwasher",
|
|
55953
56092
|
scope: "device",
|
|
@@ -55955,86 +56094,102 @@ var dishwasherCapability = {
|
|
|
55955
56094
|
mode: "singleton",
|
|
55956
56095
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55957
56096
|
methods: {
|
|
55958
|
-
|
|
56097
|
+
/**
|
|
56098
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
56099
|
+
* option feature keys; each is checked against the program's constraints.
|
|
56100
|
+
*/
|
|
56101
|
+
start: method(object({
|
|
56102
|
+
deviceId: DeviceIdSchema,
|
|
56103
|
+
program: string().min(1).optional(),
|
|
56104
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
56105
|
+
}), _void(), {
|
|
55959
56106
|
kind: "mutation",
|
|
55960
56107
|
auth: "protected"
|
|
55961
56108
|
}),
|
|
55962
|
-
pause: method(object({ deviceId:
|
|
56109
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55963
56110
|
kind: "mutation",
|
|
55964
56111
|
auth: "protected"
|
|
55965
56112
|
}),
|
|
55966
|
-
|
|
56113
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56114
|
+
kind: "mutation",
|
|
56115
|
+
auth: "protected"
|
|
56116
|
+
}),
|
|
56117
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55967
56118
|
kind: "mutation",
|
|
55968
56119
|
auth: "protected"
|
|
55969
56120
|
}),
|
|
56121
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55970
56122
|
setProgram: method(object({
|
|
55971
|
-
deviceId:
|
|
56123
|
+
deviceId: DeviceIdSchema,
|
|
55972
56124
|
program: string().min(1)
|
|
55973
56125
|
}), _void(), {
|
|
55974
56126
|
kind: "mutation",
|
|
55975
56127
|
auth: "protected"
|
|
55976
56128
|
}),
|
|
55977
56129
|
setPower: method(object({
|
|
55978
|
-
deviceId:
|
|
56130
|
+
deviceId: DeviceIdSchema,
|
|
55979
56131
|
on: boolean()
|
|
55980
56132
|
}), _void(), {
|
|
55981
56133
|
kind: "mutation",
|
|
55982
56134
|
auth: "protected"
|
|
55983
56135
|
}),
|
|
55984
56136
|
setHalfLoad: method(object({
|
|
55985
|
-
deviceId:
|
|
56137
|
+
deviceId: DeviceIdSchema,
|
|
55986
56138
|
on: boolean()
|
|
55987
56139
|
}), _void(), {
|
|
55988
56140
|
kind: "mutation",
|
|
55989
56141
|
auth: "protected"
|
|
55990
56142
|
}),
|
|
55991
56143
|
setHygienePlus: method(object({
|
|
55992
|
-
deviceId:
|
|
56144
|
+
deviceId: DeviceIdSchema,
|
|
55993
56145
|
on: boolean()
|
|
55994
56146
|
}), _void(), {
|
|
55995
56147
|
kind: "mutation",
|
|
55996
56148
|
auth: "protected"
|
|
55997
56149
|
}),
|
|
55998
56150
|
setExtraDry: method(object({
|
|
55999
|
-
deviceId:
|
|
56151
|
+
deviceId: DeviceIdSchema,
|
|
56000
56152
|
on: boolean()
|
|
56001
56153
|
}), _void(), {
|
|
56002
56154
|
kind: "mutation",
|
|
56003
56155
|
auth: "protected"
|
|
56004
56156
|
}),
|
|
56005
56157
|
setIntensiveZone: method(object({
|
|
56006
|
-
deviceId:
|
|
56158
|
+
deviceId: DeviceIdSchema,
|
|
56007
56159
|
on: boolean()
|
|
56008
56160
|
}), _void(), {
|
|
56009
56161
|
kind: "mutation",
|
|
56010
56162
|
auth: "protected"
|
|
56011
56163
|
}),
|
|
56012
56164
|
setVarioSpeedPlus: method(object({
|
|
56013
|
-
deviceId:
|
|
56165
|
+
deviceId: DeviceIdSchema,
|
|
56014
56166
|
on: boolean()
|
|
56015
56167
|
}), _void(), {
|
|
56016
56168
|
kind: "mutation",
|
|
56017
56169
|
auth: "protected"
|
|
56018
56170
|
}),
|
|
56019
56171
|
setChildLock: method(object({
|
|
56020
|
-
deviceId:
|
|
56172
|
+
deviceId: DeviceIdSchema,
|
|
56021
56173
|
on: boolean()
|
|
56022
56174
|
}), _void(), {
|
|
56023
56175
|
kind: "mutation",
|
|
56024
56176
|
auth: "protected"
|
|
56025
56177
|
}),
|
|
56178
|
+
/**
|
|
56179
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
56180
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
56181
|
+
* its declared range / members.
|
|
56182
|
+
*/
|
|
56026
56183
|
setOption: method(object({
|
|
56027
|
-
deviceId:
|
|
56184
|
+
deviceId: DeviceIdSchema,
|
|
56028
56185
|
key: string().min(1),
|
|
56029
|
-
value:
|
|
56030
|
-
boolean(),
|
|
56031
|
-
string(),
|
|
56032
|
-
number()
|
|
56033
|
-
])
|
|
56186
|
+
value: DishwasherValueSchema
|
|
56034
56187
|
}), _void(), {
|
|
56035
56188
|
kind: "mutation",
|
|
56036
56189
|
auth: "protected"
|
|
56037
|
-
})
|
|
56190
|
+
}),
|
|
56191
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
56192
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
56038
56193
|
},
|
|
56039
56194
|
status: {
|
|
56040
56195
|
schema: DishwasherStatusSchema,
|
|
@@ -70449,6 +70604,12 @@ Object.freeze({
|
|
|
70449
70604
|
addonId: null,
|
|
70450
70605
|
access: "view"
|
|
70451
70606
|
},
|
|
70607
|
+
"dishwasher.getOptions": {
|
|
70608
|
+
capName: "dishwasher",
|
|
70609
|
+
capScope: "device",
|
|
70610
|
+
addonId: null,
|
|
70611
|
+
access: "view"
|
|
70612
|
+
},
|
|
70452
70613
|
"dishwasher.getStatus": {
|
|
70453
70614
|
capName: "dishwasher",
|
|
70454
70615
|
capScope: "device",
|
|
@@ -70461,6 +70622,12 @@ Object.freeze({
|
|
|
70461
70622
|
addonId: null,
|
|
70462
70623
|
access: "create"
|
|
70463
70624
|
},
|
|
70625
|
+
"dishwasher.resume": {
|
|
70626
|
+
capName: "dishwasher",
|
|
70627
|
+
capScope: "device",
|
|
70628
|
+
addonId: null,
|
|
70629
|
+
access: "create"
|
|
70630
|
+
},
|
|
70464
70631
|
"dishwasher.setChildLock": {
|
|
70465
70632
|
capName: "dishwasher",
|
|
70466
70633
|
capScope: "device",
|
|
@@ -74961,6 +75128,12 @@ Object.freeze({
|
|
|
74961
75128
|
addonId: null,
|
|
74962
75129
|
access: "view"
|
|
74963
75130
|
},
|
|
75131
|
+
"storageMigration.moverClearance": {
|
|
75132
|
+
capName: "storage-migration",
|
|
75133
|
+
capScope: "system",
|
|
75134
|
+
addonId: null,
|
|
75135
|
+
access: "view"
|
|
75136
|
+
},
|
|
74964
75137
|
"storageMigration.movers": {
|
|
74965
75138
|
capName: "storage-migration",
|
|
74966
75139
|
capScope: "system",
|
|
@@ -77360,6 +77533,11 @@ Object.freeze({
|
|
|
77360
77533
|
form: "single",
|
|
77361
77534
|
optional: false
|
|
77362
77535
|
}],
|
|
77536
|
+
"dishwasher.getOptions": [{
|
|
77537
|
+
name: "deviceId",
|
|
77538
|
+
form: "single",
|
|
77539
|
+
optional: false
|
|
77540
|
+
}],
|
|
77363
77541
|
"dishwasher.getStatus": [{
|
|
77364
77542
|
name: "deviceId",
|
|
77365
77543
|
form: "single",
|
|
@@ -77370,6 +77548,11 @@ Object.freeze({
|
|
|
77370
77548
|
form: "single",
|
|
77371
77549
|
optional: false
|
|
77372
77550
|
}],
|
|
77551
|
+
"dishwasher.resume": [{
|
|
77552
|
+
name: "deviceId",
|
|
77553
|
+
form: "single",
|
|
77554
|
+
optional: false
|
|
77555
|
+
}],
|
|
77373
77556
|
"dishwasher.setChildLock": [{
|
|
77374
77557
|
name: "deviceId",
|
|
77375
77558
|
form: "single",
|
|
@@ -79456,6 +79639,9 @@ new Map(Object.entries({
|
|
|
79456
79639
|
"wrapper-update-available": "system",
|
|
79457
79640
|
"backup-completed": "system",
|
|
79458
79641
|
"export-completed": "system",
|
|
79642
|
+
"alert-critical": "system",
|
|
79643
|
+
"alert-error": "system",
|
|
79644
|
+
"alert-critical-resolved": "system",
|
|
79459
79645
|
"storage-location-low": "system",
|
|
79460
79646
|
"storage-location-critical": "system",
|
|
79461
79647
|
"storage-location-ok": "system",
|
|
@@ -79580,6 +79766,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79580
79766
|
"storage-location-ok"
|
|
79581
79767
|
]
|
|
79582
79768
|
},
|
|
79769
|
+
{
|
|
79770
|
+
id: "alerts",
|
|
79771
|
+
family: "system",
|
|
79772
|
+
label: "Alerts",
|
|
79773
|
+
kinds: [
|
|
79774
|
+
"alert-critical",
|
|
79775
|
+
"alert-error",
|
|
79776
|
+
"alert-critical-resolved"
|
|
79777
|
+
]
|
|
79778
|
+
},
|
|
79583
79779
|
{
|
|
79584
79780
|
id: "alarm",
|
|
79585
79781
|
family: "alarm",
|
|
@@ -79624,6 +79820,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
79624
79820
|
return [[descriptor.kind, field]];
|
|
79625
79821
|
})));
|
|
79626
79822
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
79823
|
+
object({
|
|
79824
|
+
phase: _enum(["raised", "resolved"]),
|
|
79825
|
+
episodeId: string().min(1),
|
|
79826
|
+
alertId: string().min(1),
|
|
79827
|
+
severity: AlertSeveritySchema,
|
|
79828
|
+
category: string(),
|
|
79829
|
+
title: string(),
|
|
79830
|
+
message: string(),
|
|
79831
|
+
sourceType: string().optional(),
|
|
79832
|
+
sourceId: string().optional(),
|
|
79833
|
+
nodeId: string().optional(),
|
|
79834
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
79835
|
+
actionUrl: string().optional(),
|
|
79836
|
+
at: number()
|
|
79837
|
+
});
|
|
79627
79838
|
var RULE_BODY_ONLY = ["body"];
|
|
79628
79839
|
var RULE_TEXT = ["title", "body"];
|
|
79629
79840
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -79633,6 +79844,11 @@ var TANK = [
|
|
|
79633
79844
|
"device-tank-full",
|
|
79634
79845
|
"device-tank-normal"
|
|
79635
79846
|
];
|
|
79847
|
+
var ALERT_EPISODE = [
|
|
79848
|
+
"alert-critical",
|
|
79849
|
+
"alert-error",
|
|
79850
|
+
"alert-critical-resolved"
|
|
79851
|
+
];
|
|
79636
79852
|
var UPDATES = [
|
|
79637
79853
|
"addon-update-available",
|
|
79638
79854
|
"server-update-available",
|
|
@@ -79825,14 +80041,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
79825
80041
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
79826
80042
|
([...RULE_TEXT], [...TANK]),
|
|
79827
80043
|
[...RULE_TEXT],
|
|
79828
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
79829
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
79830
|
-
[...RULE_TEXT],
|
|
80044
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80045
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
79831
80046
|
[...RULE_TEXT],
|
|
79832
80047
|
[...RULE_TEXT],
|
|
79833
80048
|
[...RULE_TEXT],
|
|
79834
80049
|
[...RULE_TEXT],
|
|
79835
80050
|
[...RULE_TEXT],
|
|
80051
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79836
80052
|
[...RULE_TEXT],
|
|
79837
80053
|
[...RULE_TEXT],
|
|
79838
80054
|
[...RULE_TEXT],
|
|
@@ -79850,7 +80066,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79850
80066
|
[...RULE_TEXT],
|
|
79851
80067
|
[...RULE_TEXT],
|
|
79852
80068
|
[...RULE_TEXT],
|
|
79853
|
-
[...RULE_TEXT],
|
|
80069
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80070
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80071
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80072
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80073
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79854
80074
|
[...RULE_TEXT],
|
|
79855
80075
|
[...RULE_TEXT],
|
|
79856
80076
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -14,7 +14,7 @@ import { networkInterfaces } from "node:os";
|
|
|
14
14
|
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
15
15
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
16
16
|
//#endregion
|
|
17
|
-
//#region ../types/dist/event-category-
|
|
17
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
18
18
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
19
19
|
EventCategory["SystemBoot"] = "system.boot";
|
|
20
20
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -93,9 +93,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
93
93
|
/**
|
|
94
94
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
95
95
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
96
|
-
* alert centre turns it into one
|
|
96
|
+
* alert centre turns it into one critical alert.
|
|
97
97
|
*/
|
|
98
98
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
99
|
+
/**
|
|
100
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
101
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
102
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
103
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
104
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
105
|
+
* event may be dropped (D8, D11).
|
|
106
|
+
*/
|
|
107
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
99
108
|
EventCategory["AddonError"] = "addon.error";
|
|
100
109
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
101
110
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5420,7 +5429,7 @@ var ZodIssueCode = {
|
|
|
5420
5429
|
var ZodFirstPartyTypeKind;
|
|
5421
5430
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5422
5431
|
//#endregion
|
|
5423
|
-
//#region ../types/dist/sleep-
|
|
5432
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5424
5433
|
/**
|
|
5425
5434
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5426
5435
|
* window to float samples (D455).
|
|
@@ -13207,7 +13216,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13207
13216
|
]);
|
|
13208
13217
|
var AlertActionSchema = object({
|
|
13209
13218
|
label: string(),
|
|
13210
|
-
href: string().optional()
|
|
13219
|
+
href: string().optional(),
|
|
13220
|
+
/**
|
|
13221
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13222
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13223
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13224
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13225
|
+
*/
|
|
13226
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13211
13227
|
});
|
|
13212
13228
|
var AlertStatusSchema = _enum([
|
|
13213
13229
|
"active",
|
|
@@ -42036,6 +42052,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42036
42052
|
"server-updated",
|
|
42037
42053
|
"export-completed",
|
|
42038
42054
|
"backup-completed",
|
|
42055
|
+
"alert-critical",
|
|
42056
|
+
"alert-error",
|
|
42057
|
+
"alert-critical-resolved",
|
|
42039
42058
|
"camera-online",
|
|
42040
42059
|
"camera-offline",
|
|
42041
42060
|
"camera-disabled",
|
|
@@ -51216,7 +51235,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51216
51235
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51217
51236
|
kind: "mutation",
|
|
51218
51237
|
auth: "admin"
|
|
51219
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51238
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51239
|
+
clear: boolean(),
|
|
51240
|
+
repointLocationId: string().optional()
|
|
51241
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51220
51242
|
kind: "mutation",
|
|
51221
51243
|
auth: "admin"
|
|
51222
51244
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55881,6 +55903,11 @@ onStatusChanged: { data: object({
|
|
|
55881
55903
|
*
|
|
55882
55904
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55883
55905
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55906
|
+
*
|
|
55907
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55908
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55909
|
+
* the link is down, or the description does not carry it) and is never
|
|
55910
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55884
55911
|
*/
|
|
55885
55912
|
var DishwasherStateSchema = _enum([
|
|
55886
55913
|
"idle",
|
|
@@ -55890,43 +55917,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55890
55917
|
"error",
|
|
55891
55918
|
"unavailable"
|
|
55892
55919
|
]);
|
|
55920
|
+
/**
|
|
55921
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55922
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55923
|
+
*/
|
|
55924
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55925
|
+
"Inactive",
|
|
55926
|
+
"Ready",
|
|
55927
|
+
"DelayedStart",
|
|
55928
|
+
"Run",
|
|
55929
|
+
"Pause",
|
|
55930
|
+
"ActionRequired",
|
|
55931
|
+
"Finished",
|
|
55932
|
+
"Error",
|
|
55933
|
+
"Aborting"
|
|
55934
|
+
]);
|
|
55935
|
+
/**
|
|
55936
|
+
* Why fields may be `null`:
|
|
55937
|
+
* - `available` — the link is up and the description is loaded;
|
|
55938
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55939
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55940
|
+
* be loaded, so its values cannot be decoded.
|
|
55941
|
+
*/
|
|
55942
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55943
|
+
"available",
|
|
55944
|
+
"offline",
|
|
55945
|
+
"description-missing"
|
|
55946
|
+
]);
|
|
55893
55947
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55894
55948
|
"ok",
|
|
55895
55949
|
"low",
|
|
55896
55950
|
"empty"
|
|
55897
55951
|
]);
|
|
55898
55952
|
var DishwasherStatusSchema = object({
|
|
55953
|
+
availability: DishwasherAvailabilitySchema,
|
|
55954
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55899
55955
|
state: DishwasherStateSchema,
|
|
55900
|
-
/**
|
|
55956
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55957
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55958
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55901
55959
|
program: string().nullable(),
|
|
55902
|
-
/**
|
|
55960
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55961
|
+
selectedProgram: string().nullable(),
|
|
55962
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55903
55963
|
availablePrograms: array(string()),
|
|
55904
|
-
/**
|
|
55905
|
-
|
|
55964
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55965
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55966
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55967
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55906
55968
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55907
55969
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55908
|
-
/** True when the door is reported open. */
|
|
55909
|
-
doorOpen: boolean(),
|
|
55910
|
-
/** True when
|
|
55911
|
-
|
|
55912
|
-
/**
|
|
55913
|
-
|
|
55970
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55971
|
+
doorOpen: boolean().nullable(),
|
|
55972
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55973
|
+
doorLocked: boolean().nullable(),
|
|
55974
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55975
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55976
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55977
|
+
remoteControlActive: boolean().nullable(),
|
|
55978
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55979
|
+
localControlActive: boolean().nullable(),
|
|
55980
|
+
/** Main power / switched-on state; null when not known. */
|
|
55981
|
+
powerOn: boolean().nullable(),
|
|
55982
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55983
|
+
powerState: string().nullable(),
|
|
55914
55984
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55915
55985
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55916
|
-
|
|
55917
|
-
|
|
55986
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55987
|
+
halfLoad: boolean().nullable(),
|
|
55988
|
+
hygienePlus: boolean().nullable(),
|
|
55918
55989
|
/** Extra dry option when the appliance exposes it. */
|
|
55919
|
-
extraDry: boolean(),
|
|
55990
|
+
extraDry: boolean().nullable(),
|
|
55920
55991
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55921
|
-
intensiveZone: boolean(),
|
|
55992
|
+
intensiveZone: boolean().nullable(),
|
|
55922
55993
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55923
|
-
varioSpeedPlus: boolean(),
|
|
55924
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55925
|
-
childLock: boolean(),
|
|
55994
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55995
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55996
|
+
childLock: boolean().nullable(),
|
|
55997
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55998
|
+
activeEvents: array(string()),
|
|
55999
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55926
56000
|
errorCode: number().nullable(),
|
|
56001
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55927
56002
|
errorLabel: string().nullable(),
|
|
56003
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55928
56004
|
lastFetchedAt: number()
|
|
55929
56005
|
});
|
|
56006
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
56007
|
+
/** A value a program option or setting can take. */
|
|
56008
|
+
var DishwasherValueSchema = union([
|
|
56009
|
+
boolean(),
|
|
56010
|
+
string(),
|
|
56011
|
+
number()
|
|
56012
|
+
]);
|
|
56013
|
+
var DishwasherAccessSchema = _enum([
|
|
56014
|
+
"none",
|
|
56015
|
+
"read",
|
|
56016
|
+
"readWrite",
|
|
56017
|
+
"writeOnly",
|
|
56018
|
+
"readStatic"
|
|
56019
|
+
]);
|
|
56020
|
+
/**
|
|
56021
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
56022
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
56023
|
+
*/
|
|
56024
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
56025
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
56026
|
+
key: string(),
|
|
56027
|
+
/** Last segment of the key, for display. */
|
|
56028
|
+
name: string(),
|
|
56029
|
+
type: _enum([
|
|
56030
|
+
"boolean",
|
|
56031
|
+
"number",
|
|
56032
|
+
"enum",
|
|
56033
|
+
"string"
|
|
56034
|
+
]),
|
|
56035
|
+
access: DishwasherAccessSchema,
|
|
56036
|
+
/** The appliance reports this entity as currently available. */
|
|
56037
|
+
available: boolean(),
|
|
56038
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
56039
|
+
unit: string().nullable(),
|
|
56040
|
+
min: number().nullable(),
|
|
56041
|
+
max: number().nullable(),
|
|
56042
|
+
step: number().nullable(),
|
|
56043
|
+
/** Allowed members of an enum; null for other types. */
|
|
56044
|
+
enumValues: array(string()).nullable(),
|
|
56045
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
56046
|
+
});
|
|
56047
|
+
var DishwasherProgramSchema = object({
|
|
56048
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
56049
|
+
key: string(),
|
|
56050
|
+
name: string(),
|
|
56051
|
+
/** The appliance currently offers this program. */
|
|
56052
|
+
available: boolean(),
|
|
56053
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
56054
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56055
|
+
});
|
|
56056
|
+
var DishwasherOptionsSchema = object({
|
|
56057
|
+
availability: DishwasherAvailabilitySchema,
|
|
56058
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
56059
|
+
supportsStart: boolean(),
|
|
56060
|
+
supportsPause: boolean(),
|
|
56061
|
+
supportsResume: boolean(),
|
|
56062
|
+
supportsStop: boolean(),
|
|
56063
|
+
supportsPower: boolean(),
|
|
56064
|
+
/** Every program the description lists, with its options. */
|
|
56065
|
+
programs: array(DishwasherProgramSchema),
|
|
56066
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
56067
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56068
|
+
});
|
|
55930
56069
|
var dishwasherCapability = {
|
|
55931
56070
|
name: "dishwasher",
|
|
55932
56071
|
scope: "device",
|
|
@@ -55934,86 +56073,102 @@ var dishwasherCapability = {
|
|
|
55934
56073
|
mode: "singleton",
|
|
55935
56074
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55936
56075
|
methods: {
|
|
55937
|
-
|
|
56076
|
+
/**
|
|
56077
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
56078
|
+
* option feature keys; each is checked against the program's constraints.
|
|
56079
|
+
*/
|
|
56080
|
+
start: method(object({
|
|
56081
|
+
deviceId: DeviceIdSchema,
|
|
56082
|
+
program: string().min(1).optional(),
|
|
56083
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
56084
|
+
}), _void(), {
|
|
55938
56085
|
kind: "mutation",
|
|
55939
56086
|
auth: "protected"
|
|
55940
56087
|
}),
|
|
55941
|
-
pause: method(object({ deviceId:
|
|
56088
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55942
56089
|
kind: "mutation",
|
|
55943
56090
|
auth: "protected"
|
|
55944
56091
|
}),
|
|
55945
|
-
|
|
56092
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56093
|
+
kind: "mutation",
|
|
56094
|
+
auth: "protected"
|
|
56095
|
+
}),
|
|
56096
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55946
56097
|
kind: "mutation",
|
|
55947
56098
|
auth: "protected"
|
|
55948
56099
|
}),
|
|
56100
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55949
56101
|
setProgram: method(object({
|
|
55950
|
-
deviceId:
|
|
56102
|
+
deviceId: DeviceIdSchema,
|
|
55951
56103
|
program: string().min(1)
|
|
55952
56104
|
}), _void(), {
|
|
55953
56105
|
kind: "mutation",
|
|
55954
56106
|
auth: "protected"
|
|
55955
56107
|
}),
|
|
55956
56108
|
setPower: method(object({
|
|
55957
|
-
deviceId:
|
|
56109
|
+
deviceId: DeviceIdSchema,
|
|
55958
56110
|
on: boolean()
|
|
55959
56111
|
}), _void(), {
|
|
55960
56112
|
kind: "mutation",
|
|
55961
56113
|
auth: "protected"
|
|
55962
56114
|
}),
|
|
55963
56115
|
setHalfLoad: method(object({
|
|
55964
|
-
deviceId:
|
|
56116
|
+
deviceId: DeviceIdSchema,
|
|
55965
56117
|
on: boolean()
|
|
55966
56118
|
}), _void(), {
|
|
55967
56119
|
kind: "mutation",
|
|
55968
56120
|
auth: "protected"
|
|
55969
56121
|
}),
|
|
55970
56122
|
setHygienePlus: method(object({
|
|
55971
|
-
deviceId:
|
|
56123
|
+
deviceId: DeviceIdSchema,
|
|
55972
56124
|
on: boolean()
|
|
55973
56125
|
}), _void(), {
|
|
55974
56126
|
kind: "mutation",
|
|
55975
56127
|
auth: "protected"
|
|
55976
56128
|
}),
|
|
55977
56129
|
setExtraDry: method(object({
|
|
55978
|
-
deviceId:
|
|
56130
|
+
deviceId: DeviceIdSchema,
|
|
55979
56131
|
on: boolean()
|
|
55980
56132
|
}), _void(), {
|
|
55981
56133
|
kind: "mutation",
|
|
55982
56134
|
auth: "protected"
|
|
55983
56135
|
}),
|
|
55984
56136
|
setIntensiveZone: method(object({
|
|
55985
|
-
deviceId:
|
|
56137
|
+
deviceId: DeviceIdSchema,
|
|
55986
56138
|
on: boolean()
|
|
55987
56139
|
}), _void(), {
|
|
55988
56140
|
kind: "mutation",
|
|
55989
56141
|
auth: "protected"
|
|
55990
56142
|
}),
|
|
55991
56143
|
setVarioSpeedPlus: method(object({
|
|
55992
|
-
deviceId:
|
|
56144
|
+
deviceId: DeviceIdSchema,
|
|
55993
56145
|
on: boolean()
|
|
55994
56146
|
}), _void(), {
|
|
55995
56147
|
kind: "mutation",
|
|
55996
56148
|
auth: "protected"
|
|
55997
56149
|
}),
|
|
55998
56150
|
setChildLock: method(object({
|
|
55999
|
-
deviceId:
|
|
56151
|
+
deviceId: DeviceIdSchema,
|
|
56000
56152
|
on: boolean()
|
|
56001
56153
|
}), _void(), {
|
|
56002
56154
|
kind: "mutation",
|
|
56003
56155
|
auth: "protected"
|
|
56004
56156
|
}),
|
|
56157
|
+
/**
|
|
56158
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
56159
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
56160
|
+
* its declared range / members.
|
|
56161
|
+
*/
|
|
56005
56162
|
setOption: method(object({
|
|
56006
|
-
deviceId:
|
|
56163
|
+
deviceId: DeviceIdSchema,
|
|
56007
56164
|
key: string().min(1),
|
|
56008
|
-
value:
|
|
56009
|
-
boolean(),
|
|
56010
|
-
string(),
|
|
56011
|
-
number()
|
|
56012
|
-
])
|
|
56165
|
+
value: DishwasherValueSchema
|
|
56013
56166
|
}), _void(), {
|
|
56014
56167
|
kind: "mutation",
|
|
56015
56168
|
auth: "protected"
|
|
56016
|
-
})
|
|
56169
|
+
}),
|
|
56170
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
56171
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
56017
56172
|
},
|
|
56018
56173
|
status: {
|
|
56019
56174
|
schema: DishwasherStatusSchema,
|
|
@@ -70428,6 +70583,12 @@ Object.freeze({
|
|
|
70428
70583
|
addonId: null,
|
|
70429
70584
|
access: "view"
|
|
70430
70585
|
},
|
|
70586
|
+
"dishwasher.getOptions": {
|
|
70587
|
+
capName: "dishwasher",
|
|
70588
|
+
capScope: "device",
|
|
70589
|
+
addonId: null,
|
|
70590
|
+
access: "view"
|
|
70591
|
+
},
|
|
70431
70592
|
"dishwasher.getStatus": {
|
|
70432
70593
|
capName: "dishwasher",
|
|
70433
70594
|
capScope: "device",
|
|
@@ -70440,6 +70601,12 @@ Object.freeze({
|
|
|
70440
70601
|
addonId: null,
|
|
70441
70602
|
access: "create"
|
|
70442
70603
|
},
|
|
70604
|
+
"dishwasher.resume": {
|
|
70605
|
+
capName: "dishwasher",
|
|
70606
|
+
capScope: "device",
|
|
70607
|
+
addonId: null,
|
|
70608
|
+
access: "create"
|
|
70609
|
+
},
|
|
70443
70610
|
"dishwasher.setChildLock": {
|
|
70444
70611
|
capName: "dishwasher",
|
|
70445
70612
|
capScope: "device",
|
|
@@ -74940,6 +75107,12 @@ Object.freeze({
|
|
|
74940
75107
|
addonId: null,
|
|
74941
75108
|
access: "view"
|
|
74942
75109
|
},
|
|
75110
|
+
"storageMigration.moverClearance": {
|
|
75111
|
+
capName: "storage-migration",
|
|
75112
|
+
capScope: "system",
|
|
75113
|
+
addonId: null,
|
|
75114
|
+
access: "view"
|
|
75115
|
+
},
|
|
74943
75116
|
"storageMigration.movers": {
|
|
74944
75117
|
capName: "storage-migration",
|
|
74945
75118
|
capScope: "system",
|
|
@@ -77339,6 +77512,11 @@ Object.freeze({
|
|
|
77339
77512
|
form: "single",
|
|
77340
77513
|
optional: false
|
|
77341
77514
|
}],
|
|
77515
|
+
"dishwasher.getOptions": [{
|
|
77516
|
+
name: "deviceId",
|
|
77517
|
+
form: "single",
|
|
77518
|
+
optional: false
|
|
77519
|
+
}],
|
|
77342
77520
|
"dishwasher.getStatus": [{
|
|
77343
77521
|
name: "deviceId",
|
|
77344
77522
|
form: "single",
|
|
@@ -77349,6 +77527,11 @@ Object.freeze({
|
|
|
77349
77527
|
form: "single",
|
|
77350
77528
|
optional: false
|
|
77351
77529
|
}],
|
|
77530
|
+
"dishwasher.resume": [{
|
|
77531
|
+
name: "deviceId",
|
|
77532
|
+
form: "single",
|
|
77533
|
+
optional: false
|
|
77534
|
+
}],
|
|
77352
77535
|
"dishwasher.setChildLock": [{
|
|
77353
77536
|
name: "deviceId",
|
|
77354
77537
|
form: "single",
|
|
@@ -79435,6 +79618,9 @@ new Map(Object.entries({
|
|
|
79435
79618
|
"wrapper-update-available": "system",
|
|
79436
79619
|
"backup-completed": "system",
|
|
79437
79620
|
"export-completed": "system",
|
|
79621
|
+
"alert-critical": "system",
|
|
79622
|
+
"alert-error": "system",
|
|
79623
|
+
"alert-critical-resolved": "system",
|
|
79438
79624
|
"storage-location-low": "system",
|
|
79439
79625
|
"storage-location-critical": "system",
|
|
79440
79626
|
"storage-location-ok": "system",
|
|
@@ -79559,6 +79745,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79559
79745
|
"storage-location-ok"
|
|
79560
79746
|
]
|
|
79561
79747
|
},
|
|
79748
|
+
{
|
|
79749
|
+
id: "alerts",
|
|
79750
|
+
family: "system",
|
|
79751
|
+
label: "Alerts",
|
|
79752
|
+
kinds: [
|
|
79753
|
+
"alert-critical",
|
|
79754
|
+
"alert-error",
|
|
79755
|
+
"alert-critical-resolved"
|
|
79756
|
+
]
|
|
79757
|
+
},
|
|
79562
79758
|
{
|
|
79563
79759
|
id: "alarm",
|
|
79564
79760
|
family: "alarm",
|
|
@@ -79603,6 +79799,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
79603
79799
|
return [[descriptor.kind, field]];
|
|
79604
79800
|
})));
|
|
79605
79801
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
79802
|
+
object({
|
|
79803
|
+
phase: _enum(["raised", "resolved"]),
|
|
79804
|
+
episodeId: string().min(1),
|
|
79805
|
+
alertId: string().min(1),
|
|
79806
|
+
severity: AlertSeveritySchema,
|
|
79807
|
+
category: string(),
|
|
79808
|
+
title: string(),
|
|
79809
|
+
message: string(),
|
|
79810
|
+
sourceType: string().optional(),
|
|
79811
|
+
sourceId: string().optional(),
|
|
79812
|
+
nodeId: string().optional(),
|
|
79813
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
79814
|
+
actionUrl: string().optional(),
|
|
79815
|
+
at: number()
|
|
79816
|
+
});
|
|
79606
79817
|
var RULE_BODY_ONLY = ["body"];
|
|
79607
79818
|
var RULE_TEXT = ["title", "body"];
|
|
79608
79819
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -79612,6 +79823,11 @@ var TANK = [
|
|
|
79612
79823
|
"device-tank-full",
|
|
79613
79824
|
"device-tank-normal"
|
|
79614
79825
|
];
|
|
79826
|
+
var ALERT_EPISODE = [
|
|
79827
|
+
"alert-critical",
|
|
79828
|
+
"alert-error",
|
|
79829
|
+
"alert-critical-resolved"
|
|
79830
|
+
];
|
|
79615
79831
|
var UPDATES = [
|
|
79616
79832
|
"addon-update-available",
|
|
79617
79833
|
"server-update-available",
|
|
@@ -79804,14 +80020,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
79804
80020
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
79805
80021
|
([...RULE_TEXT], [...TANK]),
|
|
79806
80022
|
[...RULE_TEXT],
|
|
79807
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
79808
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
79809
|
-
[...RULE_TEXT],
|
|
80023
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80024
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
79810
80025
|
[...RULE_TEXT],
|
|
79811
80026
|
[...RULE_TEXT],
|
|
79812
80027
|
[...RULE_TEXT],
|
|
79813
80028
|
[...RULE_TEXT],
|
|
79814
80029
|
[...RULE_TEXT],
|
|
80030
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79815
80031
|
[...RULE_TEXT],
|
|
79816
80032
|
[...RULE_TEXT],
|
|
79817
80033
|
[...RULE_TEXT],
|
|
@@ -79829,7 +80045,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79829
80045
|
[...RULE_TEXT],
|
|
79830
80046
|
[...RULE_TEXT],
|
|
79831
80047
|
[...RULE_TEXT],
|
|
79832
|
-
[...RULE_TEXT],
|
|
80048
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80049
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80050
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80051
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80052
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79833
80053
|
[...RULE_TEXT],
|
|
79834
80054
|
[...RULE_TEXT],
|
|
79835
80055
|
[...RULE_TEXT],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-amcrest",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.140",
|
|
4
4
|
"description": "Amcrest/Dahua camera device provider addon for CamStack — Dahua CGI over HTTP(S) with digest auth (snapshot, RTSP catalog, PTZ, image/day-night config)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|