@camstack/addon-agent-ui 1.2.315 → 1.2.317
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/CHANGELOG.md +12 -0
- package/dist/.bundle-modules.json +6 -6
- package/dist/addon.js +307 -121
- package/dist/assets/{MotionZonesSettings-bgrKuCjb.js → MotionZonesSettings-D5XMXmky.js} +1 -1
- package/dist/assets/{PrivacyMaskSettings-aAj3HzsY.js → PrivacyMaskSettings-DEi5ksRJ.js} +1 -1
- package/dist/assets/{SceneMonitorEditor-CsNjduqX.js → SceneMonitorEditor-BY-C2cHf.js} +1 -1
- package/dist/assets/index-DMz4jMip.js +127 -0
- package/dist/index.html +1 -1
- package/package.json +2 -2
- package/dist/assets/index-MaQ1EcJ3.js +0 -127
package/dist/addon.js
CHANGED
|
@@ -5843,7 +5843,7 @@ var ZodIssueCode = {
|
|
|
5843
5843
|
var ZodFirstPartyTypeKind;
|
|
5844
5844
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5845
5845
|
//#endregion
|
|
5846
|
-
//#region ../types/dist/sleep-
|
|
5846
|
+
//#region ../types/dist/sleep-hmSP-eJt.mjs
|
|
5847
5847
|
/**
|
|
5848
5848
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5849
5849
|
* window to float samples (D455).
|
|
@@ -9282,6 +9282,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9282
9282
|
"backup",
|
|
9283
9283
|
"battery",
|
|
9284
9284
|
"binary",
|
|
9285
|
+
"board-key-source",
|
|
9285
9286
|
"brightness",
|
|
9286
9287
|
"broker",
|
|
9287
9288
|
"button",
|
|
@@ -9403,6 +9404,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9403
9404
|
"privacy-mask",
|
|
9404
9405
|
"ptz",
|
|
9405
9406
|
"ptz-autotrack",
|
|
9407
|
+
"pump-cycle",
|
|
9406
9408
|
"reboot",
|
|
9407
9409
|
"record-entries",
|
|
9408
9410
|
"recording",
|
|
@@ -10695,18 +10697,6 @@ Object.freeze({
|
|
|
10695
10697
|
"path": "pumpRunning",
|
|
10696
10698
|
"valueType": "boolean"
|
|
10697
10699
|
},
|
|
10698
|
-
{
|
|
10699
|
-
"path": "pumpIntervalEnabled",
|
|
10700
|
-
"valueType": "boolean"
|
|
10701
|
-
},
|
|
10702
|
-
{
|
|
10703
|
-
"path": "pumpOnTime",
|
|
10704
|
-
"valueType": "number"
|
|
10705
|
-
},
|
|
10706
|
-
{
|
|
10707
|
-
"path": "pumpOffTime",
|
|
10708
|
-
"valueType": "number"
|
|
10709
|
-
},
|
|
10710
10700
|
{
|
|
10711
10701
|
"path": "lastDrink",
|
|
10712
10702
|
"valueType": "number"
|
|
@@ -10830,6 +10820,20 @@ Object.freeze({
|
|
|
10830
10820
|
"valueType": "number"
|
|
10831
10821
|
}
|
|
10832
10822
|
],
|
|
10823
|
+
"pump-cycle": [
|
|
10824
|
+
{
|
|
10825
|
+
"path": "enabled",
|
|
10826
|
+
"valueType": "boolean"
|
|
10827
|
+
},
|
|
10828
|
+
{
|
|
10829
|
+
"path": "onTime",
|
|
10830
|
+
"valueType": "number"
|
|
10831
|
+
},
|
|
10832
|
+
{
|
|
10833
|
+
"path": "offTime",
|
|
10834
|
+
"valueType": "number"
|
|
10835
|
+
}
|
|
10836
|
+
],
|
|
10833
10837
|
"recording-archive": [
|
|
10834
10838
|
{
|
|
10835
10839
|
"path": "deviceId",
|
|
@@ -12493,6 +12497,73 @@ var NodeColorIdSchema = _enum([
|
|
|
12493
12497
|
"node-g",
|
|
12494
12498
|
"node-h"
|
|
12495
12499
|
]);
|
|
12500
|
+
//#endregion
|
|
12501
|
+
//#region ../types/dist/index.mjs
|
|
12502
|
+
var SMTP_INBOUND_DEFAULT_PORT = 2525;
|
|
12503
|
+
var SMTP_INBOUND_DEFAULT_DOMAIN = "camstack.local";
|
|
12504
|
+
var SMTP_INBOUND_DEFAULT_MAX_MESSAGE_BYTES = 25 * 1024 * 1024;
|
|
12505
|
+
/** The text excerpt a message carries on the bus. */
|
|
12506
|
+
var SMTP_INBOUND_TEXT_MAX_CHARS = 4096;
|
|
12507
|
+
var PortSchema = number().int().min(1).max(65535);
|
|
12508
|
+
/** A recipient local-part: what stands before the `@`. */
|
|
12509
|
+
var SmtpRecipientSchema = string().min(1).max(64).regex(/^[A-Za-z0-9._+-]+$/);
|
|
12510
|
+
object({
|
|
12511
|
+
port: PortSchema.default(SMTP_INBOUND_DEFAULT_PORT),
|
|
12512
|
+
bindHost: string().min(1).default("0.0.0.0"),
|
|
12513
|
+
domain: string().min(1).default(SMTP_INBOUND_DEFAULT_DOMAIN),
|
|
12514
|
+
requireAuth: boolean().default(true),
|
|
12515
|
+
username: string().default(""),
|
|
12516
|
+
password: string().default("").meta({ secret: true }),
|
|
12517
|
+
starttls: boolean().default(false),
|
|
12518
|
+
maxMessageBytes: number().int().positive().default(SMTP_INBOUND_DEFAULT_MAX_MESSAGE_BYTES)
|
|
12519
|
+
});
|
|
12520
|
+
object({
|
|
12521
|
+
host: string().min(1).nullable(),
|
|
12522
|
+
hostReason: string().nullable(),
|
|
12523
|
+
port: PortSchema,
|
|
12524
|
+
domain: string().min(1),
|
|
12525
|
+
requireAuth: boolean(),
|
|
12526
|
+
username: string(),
|
|
12527
|
+
password: string(),
|
|
12528
|
+
starttls: boolean()
|
|
12529
|
+
});
|
|
12530
|
+
object({
|
|
12531
|
+
recipients: array(SmtpRecipientSchema).min(1),
|
|
12532
|
+
/**
|
|
12533
|
+
* Who is subscribing. A second `subscribe` with the same id REPLACES that subscriber's
|
|
12534
|
+
* recipients (the way a consumer that restarted, or lost a device, declares its set again);
|
|
12535
|
+
* a recipient held by another subscriber is refused with `smtp-inbound/recipient-claimed`.
|
|
12536
|
+
* Absent, the subscriber is anonymous and unique.
|
|
12537
|
+
*/
|
|
12538
|
+
subscriberId: string().min(1).max(64).optional()
|
|
12539
|
+
});
|
|
12540
|
+
var SmtpInboundAttachmentSchema = object({
|
|
12541
|
+
filename: string(),
|
|
12542
|
+
contentType: string(),
|
|
12543
|
+
bytes: number().int().nonnegative()
|
|
12544
|
+
});
|
|
12545
|
+
/** The payload of one `broker.message` (the key is the recipient local-part). */
|
|
12546
|
+
var SmtpInboundMessageSchema = object({
|
|
12547
|
+
/** Monotonic per mailbox; a gap tells a consumer it missed an event. */
|
|
12548
|
+
seq: number().int().positive(),
|
|
12549
|
+
messageId: string(),
|
|
12550
|
+
receivedAt: number().int().nonnegative(),
|
|
12551
|
+
from: string(),
|
|
12552
|
+
to: string(),
|
|
12553
|
+
subject: string(),
|
|
12554
|
+
text: string().max(SMTP_INBOUND_TEXT_MAX_CHARS),
|
|
12555
|
+
attachments: array(SmtpInboundAttachmentSchema)
|
|
12556
|
+
});
|
|
12557
|
+
object({
|
|
12558
|
+
/** The newest seq issued so far (0 before any mail). */
|
|
12559
|
+
lastSeq: number().int().nonnegative(),
|
|
12560
|
+
/** The oldest seq still retained; messages below it are gone. */
|
|
12561
|
+
oldestSeq: number().int().nonnegative(),
|
|
12562
|
+
messages: array(object({
|
|
12563
|
+
key: string(),
|
|
12564
|
+
message: SmtpInboundMessageSchema
|
|
12565
|
+
}))
|
|
12566
|
+
});
|
|
12496
12567
|
new Set([
|
|
12497
12568
|
"track",
|
|
12498
12569
|
"face",
|
|
@@ -18765,24 +18836,52 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
18765
18836
|
args: { on: false }
|
|
18766
18837
|
},
|
|
18767
18838
|
{
|
|
18768
|
-
id: "petFountain.
|
|
18769
|
-
method: "
|
|
18839
|
+
id: "petFountain.resetDailyConsumption",
|
|
18840
|
+
method: "resetDailyConsumption",
|
|
18841
|
+
label: t("Clear daily consumption", "Azzera il consumo giornaliero"),
|
|
18842
|
+
phrase: t("Clear the daily water consumption of {device}", "Azzera il consumo giornaliero di acqua di {device}"),
|
|
18843
|
+
icon: "rotate-ccw"
|
|
18844
|
+
}
|
|
18845
|
+
],
|
|
18846
|
+
state: [{
|
|
18847
|
+
kind: "boolean",
|
|
18848
|
+
field: "empty",
|
|
18849
|
+
label: t("Tank empty", "Serbatoio vuoto"),
|
|
18850
|
+
whenTrue: t("When the tank of {device} is empty", "Quando il serbatoio di {device} è vuoto"),
|
|
18851
|
+
whenFalse: t("When the tank of {device} is refilled", "Quando il serbatoio di {device} viene riempito"),
|
|
18852
|
+
icon: "droplet"
|
|
18853
|
+
}, {
|
|
18854
|
+
kind: "numeric",
|
|
18855
|
+
field: "waterLevel",
|
|
18856
|
+
quantity: t("the water level", "il livello dell’acqua"),
|
|
18857
|
+
label: t("Water level", "Livello dell’acqua"),
|
|
18858
|
+
unit: "%",
|
|
18859
|
+
icon: "droplets"
|
|
18860
|
+
}]
|
|
18861
|
+
},
|
|
18862
|
+
"pump-cycle": {
|
|
18863
|
+
scope: "device",
|
|
18864
|
+
noun: t("Pump cycle", "Ciclo della pompa"),
|
|
18865
|
+
actions: [
|
|
18866
|
+
{
|
|
18867
|
+
id: "pumpCycle.on",
|
|
18868
|
+
method: "setEnabled",
|
|
18770
18869
|
label: t("Pump cycle on", "Ciclo pompa attivo"),
|
|
18771
18870
|
phrase: t("Run the pump of {device} on its on/off cycle", "Fai lavorare la pompa di {device} a ciclo acceso/spento"),
|
|
18772
18871
|
icon: "timer",
|
|
18773
18872
|
args: { on: true }
|
|
18774
18873
|
},
|
|
18775
18874
|
{
|
|
18776
|
-
id: "
|
|
18777
|
-
method: "
|
|
18875
|
+
id: "pumpCycle.off",
|
|
18876
|
+
method: "setEnabled",
|
|
18778
18877
|
label: t("Pump cycle off", "Ciclo pompa spento"),
|
|
18779
18878
|
phrase: t("Run the pump of {device} continuously", "Fai lavorare la pompa di {device} in continuo"),
|
|
18780
18879
|
icon: "timer-off",
|
|
18781
18880
|
args: { on: false }
|
|
18782
18881
|
},
|
|
18783
18882
|
{
|
|
18784
|
-
id: "
|
|
18785
|
-
method: "
|
|
18883
|
+
id: "pumpCycle.onMinutes",
|
|
18884
|
+
method: "setOnMinutes",
|
|
18786
18885
|
label: t("Set pump run time", "Imposta il tempo di lavoro della pompa"),
|
|
18787
18886
|
phrase: t("Set the pump of {device} to run {minutes} minutes per cycle", "Imposta la pompa di {device} a lavorare {minutes} minuti per ciclo"),
|
|
18788
18887
|
icon: "timer",
|
|
@@ -18798,8 +18897,8 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
18798
18897
|
}]
|
|
18799
18898
|
},
|
|
18800
18899
|
{
|
|
18801
|
-
id: "
|
|
18802
|
-
method: "
|
|
18900
|
+
id: "pumpCycle.offMinutes",
|
|
18901
|
+
method: "setOffMinutes",
|
|
18803
18902
|
label: t("Set pump rest time", "Imposta il tempo di riposo della pompa"),
|
|
18804
18903
|
phrase: t("Set the pump of {device} to rest {minutes} minutes per cycle", "Imposta la pompa di {device} a riposare {minutes} minuti per ciclo"),
|
|
18805
18904
|
icon: "timer-off",
|
|
@@ -18813,29 +18912,15 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
18813
18912
|
unit: "min"
|
|
18814
18913
|
}
|
|
18815
18914
|
}]
|
|
18816
|
-
},
|
|
18817
|
-
{
|
|
18818
|
-
id: "petFountain.resetDailyConsumption",
|
|
18819
|
-
method: "resetDailyConsumption",
|
|
18820
|
-
label: t("Clear daily consumption", "Azzera il consumo giornaliero"),
|
|
18821
|
-
phrase: t("Clear the daily water consumption of {device}", "Azzera il consumo giornaliero di acqua di {device}"),
|
|
18822
|
-
icon: "rotate-ccw"
|
|
18823
18915
|
}
|
|
18824
18916
|
],
|
|
18825
18917
|
state: [{
|
|
18826
18918
|
kind: "boolean",
|
|
18827
|
-
field: "
|
|
18828
|
-
label: t("
|
|
18829
|
-
whenTrue: t("When
|
|
18830
|
-
whenFalse: t("When
|
|
18831
|
-
icon: "
|
|
18832
|
-
}, {
|
|
18833
|
-
kind: "numeric",
|
|
18834
|
-
field: "waterLevel",
|
|
18835
|
-
quantity: t("the water level", "il livello dell’acqua"),
|
|
18836
|
-
label: t("Water level", "Livello dell’acqua"),
|
|
18837
|
-
unit: "%",
|
|
18838
|
-
icon: "droplets"
|
|
18919
|
+
field: "enabled",
|
|
18920
|
+
label: t("Pump cycle", "Ciclo pompa"),
|
|
18921
|
+
whenTrue: t("When {device} starts running its pump on a cycle", "Quando {device} inizia a far lavorare la pompa a ciclo"),
|
|
18922
|
+
whenFalse: t("When {device} runs its pump continuously", "Quando {device} fa lavorare la pompa in continuo"),
|
|
18923
|
+
icon: "timer"
|
|
18839
18924
|
}]
|
|
18840
18925
|
},
|
|
18841
18926
|
"media-player": {
|
|
@@ -20728,6 +20813,7 @@ var SYSTEM_CAP_VOCABULARY = {
|
|
|
20728
20813
|
"audio-analyzer": system(PIPELINE),
|
|
20729
20814
|
"audio-codec": system(INTERNAL),
|
|
20730
20815
|
"auth-provider": system(IDENTITY),
|
|
20816
|
+
"board-key-source": system(INTERNAL),
|
|
20731
20817
|
backup: system("system backups — run and restored from the Backups page"),
|
|
20732
20818
|
broker: system("message-broker connections — configured, not actuated"),
|
|
20733
20819
|
"calendar-source": system(INTERNAL),
|
|
@@ -45171,6 +45257,49 @@ object({
|
|
|
45171
45257
|
lastChangedAt: number()
|
|
45172
45258
|
});
|
|
45173
45259
|
DeviceType.Sensor;
|
|
45260
|
+
/**
|
|
45261
|
+
* Why a board key could not be read. Typed so a caller reports the cause and
|
|
45262
|
+
* never treats "could not read" as "has no key" (D49).
|
|
45263
|
+
*/
|
|
45264
|
+
var BoardKeyFailureReasonSchema = _enum([
|
|
45265
|
+
"unknown-source",
|
|
45266
|
+
"not-admin",
|
|
45267
|
+
"no-builder",
|
|
45268
|
+
"no-ingress-url",
|
|
45269
|
+
"unreachable",
|
|
45270
|
+
"unknown-board",
|
|
45271
|
+
"no-encryption-key",
|
|
45272
|
+
"unreadable-config"
|
|
45273
|
+
]);
|
|
45274
|
+
var BoardKeySourceSchema = object({
|
|
45275
|
+
sourceId: string(),
|
|
45276
|
+
name: string()
|
|
45277
|
+
});
|
|
45278
|
+
var BoardKeyBoardSchema = object({
|
|
45279
|
+
/** The builder's file name, e.g. `kitchen.yaml`: the handle `getBoardKey` takes. */
|
|
45280
|
+
configuration: string(),
|
|
45281
|
+
/** The node name the builder gives the board. */
|
|
45282
|
+
name: string(),
|
|
45283
|
+
/** The address the builder knows the board by, when it has one. */
|
|
45284
|
+
address: string().nullable()
|
|
45285
|
+
});
|
|
45286
|
+
var BoardKeyFailureSchema = object({
|
|
45287
|
+
ok: literal(false),
|
|
45288
|
+
reason: BoardKeyFailureReasonSchema,
|
|
45289
|
+
detail: string().optional()
|
|
45290
|
+
});
|
|
45291
|
+
var ListBoardsResultSchema = discriminatedUnion("ok", [object({
|
|
45292
|
+
ok: literal(true),
|
|
45293
|
+
boards: array(BoardKeyBoardSchema).readonly()
|
|
45294
|
+
}), BoardKeyFailureSchema]);
|
|
45295
|
+
var GetBoardKeyResultSchema = discriminatedUnion("ok", [object({
|
|
45296
|
+
ok: literal(true),
|
|
45297
|
+
key: string()
|
|
45298
|
+
}), BoardKeyFailureSchema]);
|
|
45299
|
+
method(_void(), array(BoardKeySourceSchema).readonly(), { auth: "admin" }), method(object({ sourceId: string().min(1) }), ListBoardsResultSchema, { auth: "admin" }), method(object({
|
|
45300
|
+
sourceId: string().min(1),
|
|
45301
|
+
configuration: string().min(1)
|
|
45302
|
+
}), GetBoardKeyResultSchema, { auth: "admin" });
|
|
45174
45303
|
object({
|
|
45175
45304
|
/** Current level as 0..100 inclusive. Firmware-reported. */
|
|
45176
45305
|
level: number().min(0).max(100).meta(readingMeta("percentage")),
|
|
@@ -50833,7 +50962,7 @@ object({
|
|
|
50833
50962
|
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
50834
50963
|
lastFetchedAt: number()
|
|
50835
50964
|
});
|
|
50836
|
-
var DeviceIdSchema$
|
|
50965
|
+
var DeviceIdSchema$2 = number().int().nonnegative();
|
|
50837
50966
|
/** A value a program option or setting can take. */
|
|
50838
50967
|
var DishwasherValueSchema = union([
|
|
50839
50968
|
boolean(),
|
|
@@ -50897,77 +51026,77 @@ var DishwasherOptionsSchema = object({
|
|
|
50897
51026
|
options: array(DishwasherOptionDescriptorSchema)
|
|
50898
51027
|
});
|
|
50899
51028
|
DeviceType.Dishwasher, method(object({
|
|
50900
|
-
deviceId: DeviceIdSchema$
|
|
51029
|
+
deviceId: DeviceIdSchema$2,
|
|
50901
51030
|
program: string().min(1).optional(),
|
|
50902
51031
|
options: record(string(), DishwasherValueSchema).optional()
|
|
50903
51032
|
}), _void(), {
|
|
50904
51033
|
kind: "mutation",
|
|
50905
51034
|
auth: "protected"
|
|
50906
|
-
}), method(object({ deviceId: DeviceIdSchema$
|
|
51035
|
+
}), method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
50907
51036
|
kind: "mutation",
|
|
50908
51037
|
auth: "protected"
|
|
50909
|
-
}), method(object({ deviceId: DeviceIdSchema$
|
|
51038
|
+
}), method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
50910
51039
|
kind: "mutation",
|
|
50911
51040
|
auth: "protected"
|
|
50912
|
-
}), method(object({ deviceId: DeviceIdSchema$
|
|
51041
|
+
}), method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
50913
51042
|
kind: "mutation",
|
|
50914
51043
|
auth: "protected"
|
|
50915
51044
|
}), method(object({
|
|
50916
|
-
deviceId: DeviceIdSchema$
|
|
51045
|
+
deviceId: DeviceIdSchema$2,
|
|
50917
51046
|
program: string().min(1)
|
|
50918
51047
|
}), _void(), {
|
|
50919
51048
|
kind: "mutation",
|
|
50920
51049
|
auth: "protected"
|
|
50921
51050
|
}), method(object({
|
|
50922
|
-
deviceId: DeviceIdSchema$
|
|
51051
|
+
deviceId: DeviceIdSchema$2,
|
|
50923
51052
|
on: boolean()
|
|
50924
51053
|
}), _void(), {
|
|
50925
51054
|
kind: "mutation",
|
|
50926
51055
|
auth: "protected"
|
|
50927
51056
|
}), method(object({
|
|
50928
|
-
deviceId: DeviceIdSchema$
|
|
51057
|
+
deviceId: DeviceIdSchema$2,
|
|
50929
51058
|
on: boolean()
|
|
50930
51059
|
}), _void(), {
|
|
50931
51060
|
kind: "mutation",
|
|
50932
51061
|
auth: "protected"
|
|
50933
51062
|
}), method(object({
|
|
50934
|
-
deviceId: DeviceIdSchema$
|
|
51063
|
+
deviceId: DeviceIdSchema$2,
|
|
50935
51064
|
on: boolean()
|
|
50936
51065
|
}), _void(), {
|
|
50937
51066
|
kind: "mutation",
|
|
50938
51067
|
auth: "protected"
|
|
50939
51068
|
}), method(object({
|
|
50940
|
-
deviceId: DeviceIdSchema$
|
|
51069
|
+
deviceId: DeviceIdSchema$2,
|
|
50941
51070
|
on: boolean()
|
|
50942
51071
|
}), _void(), {
|
|
50943
51072
|
kind: "mutation",
|
|
50944
51073
|
auth: "protected"
|
|
50945
51074
|
}), method(object({
|
|
50946
|
-
deviceId: DeviceIdSchema$
|
|
51075
|
+
deviceId: DeviceIdSchema$2,
|
|
50947
51076
|
on: boolean()
|
|
50948
51077
|
}), _void(), {
|
|
50949
51078
|
kind: "mutation",
|
|
50950
51079
|
auth: "protected"
|
|
50951
51080
|
}), method(object({
|
|
50952
|
-
deviceId: DeviceIdSchema$
|
|
51081
|
+
deviceId: DeviceIdSchema$2,
|
|
50953
51082
|
on: boolean()
|
|
50954
51083
|
}), _void(), {
|
|
50955
51084
|
kind: "mutation",
|
|
50956
51085
|
auth: "protected"
|
|
50957
51086
|
}), method(object({
|
|
50958
|
-
deviceId: DeviceIdSchema$
|
|
51087
|
+
deviceId: DeviceIdSchema$2,
|
|
50959
51088
|
on: boolean()
|
|
50960
51089
|
}), _void(), {
|
|
50961
51090
|
kind: "mutation",
|
|
50962
51091
|
auth: "protected"
|
|
50963
51092
|
}), method(object({
|
|
50964
|
-
deviceId: DeviceIdSchema$
|
|
51093
|
+
deviceId: DeviceIdSchema$2,
|
|
50965
51094
|
key: string().min(1),
|
|
50966
51095
|
value: DishwasherValueSchema
|
|
50967
51096
|
}), _void(), {
|
|
50968
51097
|
kind: "mutation",
|
|
50969
51098
|
auth: "protected"
|
|
50970
|
-
}), method(object({ deviceId: DeviceIdSchema$
|
|
51099
|
+
}), method(object({ deviceId: DeviceIdSchema$2 }), DishwasherOptionsSchema, { auth: "protected" });
|
|
50971
51100
|
/**
|
|
50972
51101
|
* Palette entry ids (D939). Audio is the one gradient; `audio-*` leaves are
|
|
50973
51102
|
* not entries. `heatmapScrub` is a mark, not an event kind.
|
|
@@ -52708,6 +52837,11 @@ var IntegrationInstanceSchema = object({
|
|
|
52708
52837
|
name: string(),
|
|
52709
52838
|
/** The addon's own rule (an URL is present, a client id is present...). */
|
|
52710
52839
|
configured: boolean(),
|
|
52840
|
+
/**
|
|
52841
|
+
* The instance's own on/off switch (D996): always present, derived from the record body
|
|
52842
|
+
* (`enabled !== false`, so a row written before the field existed is on).
|
|
52843
|
+
*/
|
|
52844
|
+
enabled: boolean(),
|
|
52711
52845
|
/** Values for the instance form; a secret is a `SecretFieldView`, never text. */
|
|
52712
52846
|
formValues: record(string(), unknown()),
|
|
52713
52847
|
status: IntegrationInstanceStatusSchema.optional()
|
|
@@ -52727,6 +52861,12 @@ method(_void(), IntegrationInstanceDescriptionSchema, { auth: "admin" }), method
|
|
|
52727
52861
|
}), method(IntegrationInstancePatchSchema, object({ ok: literal(true) }), {
|
|
52728
52862
|
kind: "mutation",
|
|
52729
52863
|
auth: "admin"
|
|
52864
|
+
}), method(object({
|
|
52865
|
+
id: IntegrationInstanceIdSchema,
|
|
52866
|
+
enabled: boolean()
|
|
52867
|
+
}), object({ ok: literal(true) }), {
|
|
52868
|
+
kind: "mutation",
|
|
52869
|
+
auth: "admin"
|
|
52730
52870
|
}), method(object({ id: IntegrationInstanceIdSchema }), object({ ok: literal(true) }), {
|
|
52731
52871
|
kind: "mutation",
|
|
52732
52872
|
auth: "admin"
|
|
@@ -64772,52 +64912,27 @@ object({
|
|
|
64772
64912
|
empty: boolean().nullable(),
|
|
64773
64913
|
/** True while the pump is running. Null while unknown. */
|
|
64774
64914
|
pumpRunning: boolean().nullable(),
|
|
64775
|
-
/** True when the pump works on an on/off duty cycle rather than continuously. */
|
|
64776
|
-
pumpIntervalEnabled: boolean().nullable(),
|
|
64777
|
-
/** How long the pump runs per cycle, in seconds. */
|
|
64778
|
-
pumpOnTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
64779
|
-
/** How long the pump rests per cycle, in seconds. */
|
|
64780
|
-
pumpOffTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
64781
64915
|
/** Water drunk in the last drink, in litres. */
|
|
64782
64916
|
lastDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
64783
64917
|
/** Water drunk in the current hour, in litres. */
|
|
64784
64918
|
currentHourDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
64785
64919
|
/** Water drunk over the last 24 hours (rolling), in litres. */
|
|
64786
64920
|
last24hDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
64787
|
-
/** Water drunk since local midnight, in litres. */
|
|
64921
|
+
/** Water drunk since local midnight, in litres. Null when the fountain has no such sensor. */
|
|
64788
64922
|
todayDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
64789
64923
|
/** Decoded fault message. Null means healthy; a non-null string is an active fault. */
|
|
64790
64924
|
error: string().nullable(),
|
|
64791
64925
|
/** Ms epoch when the slice was last refreshed. */
|
|
64792
64926
|
lastFetchedAt: number()
|
|
64793
64927
|
});
|
|
64794
|
-
var DeviceIdSchema = number().int().nonnegative();
|
|
64795
|
-
var MinutesSchema = number().int().min(0);
|
|
64928
|
+
var DeviceIdSchema$1 = number().int().nonnegative();
|
|
64796
64929
|
DeviceType.PetFountain, method(object({
|
|
64797
|
-
deviceId: DeviceIdSchema,
|
|
64798
|
-
on: boolean()
|
|
64799
|
-
}), _void(), {
|
|
64800
|
-
kind: "mutation",
|
|
64801
|
-
auth: "protected"
|
|
64802
|
-
}), method(object({
|
|
64803
|
-
deviceId: DeviceIdSchema,
|
|
64930
|
+
deviceId: DeviceIdSchema$1,
|
|
64804
64931
|
on: boolean()
|
|
64805
64932
|
}), _void(), {
|
|
64806
64933
|
kind: "mutation",
|
|
64807
64934
|
auth: "protected"
|
|
64808
|
-
}), method(object({
|
|
64809
|
-
deviceId: DeviceIdSchema,
|
|
64810
|
-
minutes: MinutesSchema
|
|
64811
|
-
}), _void(), {
|
|
64812
|
-
kind: "mutation",
|
|
64813
|
-
auth: "protected"
|
|
64814
|
-
}), method(object({
|
|
64815
|
-
deviceId: DeviceIdSchema,
|
|
64816
|
-
minutes: MinutesSchema
|
|
64817
|
-
}), _void(), {
|
|
64818
|
-
kind: "mutation",
|
|
64819
|
-
auth: "protected"
|
|
64820
|
-
}), method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
64935
|
+
}), method(object({ deviceId: DeviceIdSchema$1 }), _void(), {
|
|
64821
64936
|
kind: "mutation",
|
|
64822
64937
|
auth: "protected"
|
|
64823
64938
|
});
|
|
@@ -66777,6 +66892,37 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
66777
66892
|
deviceId: number(),
|
|
66778
66893
|
status: PtzAutotrackStatusSchema
|
|
66779
66894
|
});
|
|
66895
|
+
object({
|
|
66896
|
+
/** True when the pump works on the on/off cycle, false when it runs continuously. Null while unknown. */
|
|
66897
|
+
enabled: boolean().nullable(),
|
|
66898
|
+
/** How long the pump runs per cycle, in seconds. Null while unknown. */
|
|
66899
|
+
onTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
66900
|
+
/** How long the pump rests per cycle, in seconds. Null while unknown. */
|
|
66901
|
+
offTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
66902
|
+
/** Ms epoch when the slice was last refreshed. */
|
|
66903
|
+
lastFetchedAt: number()
|
|
66904
|
+
});
|
|
66905
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
66906
|
+
var MinutesSchema = number().int().min(0);
|
|
66907
|
+
DeviceType.PetFountain, method(object({
|
|
66908
|
+
deviceId: DeviceIdSchema,
|
|
66909
|
+
on: boolean()
|
|
66910
|
+
}), _void(), {
|
|
66911
|
+
kind: "mutation",
|
|
66912
|
+
auth: "protected"
|
|
66913
|
+
}), method(object({
|
|
66914
|
+
deviceId: DeviceIdSchema,
|
|
66915
|
+
minutes: MinutesSchema
|
|
66916
|
+
}), _void(), {
|
|
66917
|
+
kind: "mutation",
|
|
66918
|
+
auth: "protected"
|
|
66919
|
+
}), method(object({
|
|
66920
|
+
deviceId: DeviceIdSchema,
|
|
66921
|
+
minutes: MinutesSchema
|
|
66922
|
+
}), _void(), {
|
|
66923
|
+
kind: "mutation",
|
|
66924
|
+
auth: "protected"
|
|
66925
|
+
});
|
|
66780
66926
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, DeviceType.Gateway, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
66781
66927
|
kind: "mutation",
|
|
66782
66928
|
auth: "admin"
|
|
@@ -75470,6 +75616,27 @@ Object.freeze({
|
|
|
75470
75616
|
access: "view",
|
|
75471
75617
|
role: "viewer"
|
|
75472
75618
|
},
|
|
75619
|
+
"boardKeySource.getBoardKey": {
|
|
75620
|
+
capName: "board-key-source",
|
|
75621
|
+
capScope: "system",
|
|
75622
|
+
addonId: null,
|
|
75623
|
+
access: "view",
|
|
75624
|
+
role: "admin"
|
|
75625
|
+
},
|
|
75626
|
+
"boardKeySource.listBoards": {
|
|
75627
|
+
capName: "board-key-source",
|
|
75628
|
+
capScope: "system",
|
|
75629
|
+
addonId: null,
|
|
75630
|
+
access: "view",
|
|
75631
|
+
role: "admin"
|
|
75632
|
+
},
|
|
75633
|
+
"boardKeySource.listSources": {
|
|
75634
|
+
capName: "board-key-source",
|
|
75635
|
+
capScope: "system",
|
|
75636
|
+
addonId: null,
|
|
75637
|
+
access: "view",
|
|
75638
|
+
role: "admin"
|
|
75639
|
+
},
|
|
75473
75640
|
"brightness.getStatus": {
|
|
75474
75641
|
capName: "brightness",
|
|
75475
75642
|
capScope: "device",
|
|
@@ -78151,6 +78318,13 @@ Object.freeze({
|
|
|
78151
78318
|
access: "view",
|
|
78152
78319
|
role: "admin"
|
|
78153
78320
|
},
|
|
78321
|
+
"integrationInstances.setInstanceEnabled": {
|
|
78322
|
+
capName: "integration-instances",
|
|
78323
|
+
capScope: "system",
|
|
78324
|
+
addonId: null,
|
|
78325
|
+
access: "create",
|
|
78326
|
+
role: "admin"
|
|
78327
|
+
},
|
|
78154
78328
|
"integrationInstances.testInstance": {
|
|
78155
78329
|
capName: "integration-instances",
|
|
78156
78330
|
capScope: "system",
|
|
@@ -80286,27 +80460,6 @@ Object.freeze({
|
|
|
80286
80460
|
access: "create",
|
|
80287
80461
|
role: "viewer"
|
|
80288
80462
|
},
|
|
80289
|
-
"petFountain.setPumpInterval": {
|
|
80290
|
-
capName: "pet-fountain",
|
|
80291
|
-
capScope: "device",
|
|
80292
|
-
addonId: null,
|
|
80293
|
-
access: "create",
|
|
80294
|
-
role: "viewer"
|
|
80295
|
-
},
|
|
80296
|
-
"petFountain.setPumpOffMinutes": {
|
|
80297
|
-
capName: "pet-fountain",
|
|
80298
|
-
capScope: "device",
|
|
80299
|
-
addonId: null,
|
|
80300
|
-
access: "create",
|
|
80301
|
-
role: "viewer"
|
|
80302
|
-
},
|
|
80303
|
-
"petFountain.setPumpOnMinutes": {
|
|
80304
|
-
capName: "pet-fountain",
|
|
80305
|
-
capScope: "device",
|
|
80306
|
-
addonId: null,
|
|
80307
|
-
access: "create",
|
|
80308
|
-
role: "viewer"
|
|
80309
|
-
},
|
|
80310
80463
|
"pipelineAnalytics.addRetrainFrameFromRecording": {
|
|
80311
80464
|
capName: "pipeline-analytics",
|
|
80312
80465
|
capScope: "device",
|
|
@@ -82085,6 +82238,34 @@ Object.freeze({
|
|
|
82085
82238
|
access: "create",
|
|
82086
82239
|
role: "admin"
|
|
82087
82240
|
},
|
|
82241
|
+
"pumpCycle.getStatus": {
|
|
82242
|
+
capName: "pump-cycle",
|
|
82243
|
+
capScope: "device",
|
|
82244
|
+
addonId: null,
|
|
82245
|
+
access: "view",
|
|
82246
|
+
role: "viewer"
|
|
82247
|
+
},
|
|
82248
|
+
"pumpCycle.setEnabled": {
|
|
82249
|
+
capName: "pump-cycle",
|
|
82250
|
+
capScope: "device",
|
|
82251
|
+
addonId: null,
|
|
82252
|
+
access: "create",
|
|
82253
|
+
role: "viewer"
|
|
82254
|
+
},
|
|
82255
|
+
"pumpCycle.setOffMinutes": {
|
|
82256
|
+
capName: "pump-cycle",
|
|
82257
|
+
capScope: "device",
|
|
82258
|
+
addonId: null,
|
|
82259
|
+
access: "create",
|
|
82260
|
+
role: "viewer"
|
|
82261
|
+
},
|
|
82262
|
+
"pumpCycle.setOnMinutes": {
|
|
82263
|
+
capName: "pump-cycle",
|
|
82264
|
+
capScope: "device",
|
|
82265
|
+
addonId: null,
|
|
82266
|
+
access: "create",
|
|
82267
|
+
role: "viewer"
|
|
82268
|
+
},
|
|
82088
82269
|
"reboot.reboot": {
|
|
82089
82270
|
capName: "reboot",
|
|
82090
82271
|
capScope: "device",
|
|
@@ -86629,21 +86810,6 @@ Object.freeze({
|
|
|
86629
86810
|
form: "single",
|
|
86630
86811
|
optional: false
|
|
86631
86812
|
}],
|
|
86632
|
-
"petFountain.setPumpInterval": [{
|
|
86633
|
-
name: "deviceId",
|
|
86634
|
-
form: "single",
|
|
86635
|
-
optional: false
|
|
86636
|
-
}],
|
|
86637
|
-
"petFountain.setPumpOffMinutes": [{
|
|
86638
|
-
name: "deviceId",
|
|
86639
|
-
form: "single",
|
|
86640
|
-
optional: false
|
|
86641
|
-
}],
|
|
86642
|
-
"petFountain.setPumpOnMinutes": [{
|
|
86643
|
-
name: "deviceId",
|
|
86644
|
-
form: "single",
|
|
86645
|
-
optional: false
|
|
86646
|
-
}],
|
|
86647
86813
|
"pipelineAnalytics.addRetrainFrameFromRecording": [{
|
|
86648
86814
|
name: "deviceId",
|
|
86649
86815
|
form: "single",
|
|
@@ -87279,6 +87445,26 @@ Object.freeze({
|
|
|
87279
87445
|
form: "single",
|
|
87280
87446
|
optional: false
|
|
87281
87447
|
}],
|
|
87448
|
+
"pumpCycle.getStatus": [{
|
|
87449
|
+
name: "deviceId",
|
|
87450
|
+
form: "single",
|
|
87451
|
+
optional: false
|
|
87452
|
+
}],
|
|
87453
|
+
"pumpCycle.setEnabled": [{
|
|
87454
|
+
name: "deviceId",
|
|
87455
|
+
form: "single",
|
|
87456
|
+
optional: false
|
|
87457
|
+
}],
|
|
87458
|
+
"pumpCycle.setOffMinutes": [{
|
|
87459
|
+
name: "deviceId",
|
|
87460
|
+
form: "single",
|
|
87461
|
+
optional: false
|
|
87462
|
+
}],
|
|
87463
|
+
"pumpCycle.setOnMinutes": [{
|
|
87464
|
+
name: "deviceId",
|
|
87465
|
+
form: "single",
|
|
87466
|
+
optional: false
|
|
87467
|
+
}],
|
|
87282
87468
|
"reboot.reboot": [{
|
|
87283
87469
|
name: "deviceId",
|
|
87284
87470
|
form: "single",
|
|
@@ -89470,7 +89656,7 @@ var AgentUIAddon = class extends BaseAddon {
|
|
|
89470
89656
|
capability: adminUiCapability,
|
|
89471
89657
|
provider: {
|
|
89472
89658
|
getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
|
|
89473
|
-
getVersion: async () => ({ version: "1.2.
|
|
89659
|
+
getVersion: async () => ({ version: "1.2.317" })
|
|
89474
89660
|
}
|
|
89475
89661
|
}];
|
|
89476
89662
|
}
|