@camstack/addon-provider-homeassistant 1.2.651 → 1.2.652
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 +7 -0
- package/dist/addon.js +199 -1
- package/dist/addon.mjs +199 -1
- package/dist/{ha-broker-source-CCmZ9I6P.mjs → ha-broker-source-CBWl6Wat.mjs} +284 -130
- package/dist/{ha-broker-source-D4_TtF2V.js → ha-broker-source-D3ScsO0T.js} +289 -129
- package/dist/ha-export/ha-export.addon.js +6 -2
- package/dist/ha-export/ha-export.addon.mjs +6 -2
- package/package.json +5 -2
|
@@ -5974,7 +5974,7 @@ var ZodIssueCode = {
|
|
|
5974
5974
|
var ZodFirstPartyTypeKind;
|
|
5975
5975
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5976
5976
|
//#endregion
|
|
5977
|
-
//#region ../types/dist/sleep-
|
|
5977
|
+
//#region ../types/dist/sleep-hmSP-eJt.mjs
|
|
5978
5978
|
/**
|
|
5979
5979
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5980
5980
|
* window to float samples (D455).
|
|
@@ -9763,6 +9763,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9763
9763
|
"backup",
|
|
9764
9764
|
"battery",
|
|
9765
9765
|
"binary",
|
|
9766
|
+
"board-key-source",
|
|
9766
9767
|
"brightness",
|
|
9767
9768
|
"broker",
|
|
9768
9769
|
"button",
|
|
@@ -9884,6 +9885,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9884
9885
|
"privacy-mask",
|
|
9885
9886
|
"ptz",
|
|
9886
9887
|
"ptz-autotrack",
|
|
9888
|
+
"pump-cycle",
|
|
9887
9889
|
"reboot",
|
|
9888
9890
|
"record-entries",
|
|
9889
9891
|
"recording",
|
|
@@ -11176,18 +11178,6 @@ Object.freeze({
|
|
|
11176
11178
|
"path": "pumpRunning",
|
|
11177
11179
|
"valueType": "boolean"
|
|
11178
11180
|
},
|
|
11179
|
-
{
|
|
11180
|
-
"path": "pumpIntervalEnabled",
|
|
11181
|
-
"valueType": "boolean"
|
|
11182
|
-
},
|
|
11183
|
-
{
|
|
11184
|
-
"path": "pumpOnTime",
|
|
11185
|
-
"valueType": "number"
|
|
11186
|
-
},
|
|
11187
|
-
{
|
|
11188
|
-
"path": "pumpOffTime",
|
|
11189
|
-
"valueType": "number"
|
|
11190
|
-
},
|
|
11191
11181
|
{
|
|
11192
11182
|
"path": "lastDrink",
|
|
11193
11183
|
"valueType": "number"
|
|
@@ -11311,6 +11301,20 @@ Object.freeze({
|
|
|
11311
11301
|
"valueType": "number"
|
|
11312
11302
|
}
|
|
11313
11303
|
],
|
|
11304
|
+
"pump-cycle": [
|
|
11305
|
+
{
|
|
11306
|
+
"path": "enabled",
|
|
11307
|
+
"valueType": "boolean"
|
|
11308
|
+
},
|
|
11309
|
+
{
|
|
11310
|
+
"path": "onTime",
|
|
11311
|
+
"valueType": "number"
|
|
11312
|
+
},
|
|
11313
|
+
{
|
|
11314
|
+
"path": "offTime",
|
|
11315
|
+
"valueType": "number"
|
|
11316
|
+
}
|
|
11317
|
+
],
|
|
11314
11318
|
"recording-archive": [
|
|
11315
11319
|
{
|
|
11316
11320
|
"path": "deviceId",
|
|
@@ -19467,24 +19471,52 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
19467
19471
|
args: { on: false }
|
|
19468
19472
|
},
|
|
19469
19473
|
{
|
|
19470
|
-
id: "petFountain.
|
|
19471
|
-
method: "
|
|
19474
|
+
id: "petFountain.resetDailyConsumption",
|
|
19475
|
+
method: "resetDailyConsumption",
|
|
19476
|
+
label: t("Clear daily consumption", "Azzera il consumo giornaliero"),
|
|
19477
|
+
phrase: t("Clear the daily water consumption of {device}", "Azzera il consumo giornaliero di acqua di {device}"),
|
|
19478
|
+
icon: "rotate-ccw"
|
|
19479
|
+
}
|
|
19480
|
+
],
|
|
19481
|
+
state: [{
|
|
19482
|
+
kind: "boolean",
|
|
19483
|
+
field: "empty",
|
|
19484
|
+
label: t("Tank empty", "Serbatoio vuoto"),
|
|
19485
|
+
whenTrue: t("When the tank of {device} is empty", "Quando il serbatoio di {device} è vuoto"),
|
|
19486
|
+
whenFalse: t("When the tank of {device} is refilled", "Quando il serbatoio di {device} viene riempito"),
|
|
19487
|
+
icon: "droplet"
|
|
19488
|
+
}, {
|
|
19489
|
+
kind: "numeric",
|
|
19490
|
+
field: "waterLevel",
|
|
19491
|
+
quantity: t("the water level", "il livello dell’acqua"),
|
|
19492
|
+
label: t("Water level", "Livello dell’acqua"),
|
|
19493
|
+
unit: "%",
|
|
19494
|
+
icon: "droplets"
|
|
19495
|
+
}]
|
|
19496
|
+
},
|
|
19497
|
+
"pump-cycle": {
|
|
19498
|
+
scope: "device",
|
|
19499
|
+
noun: t("Pump cycle", "Ciclo della pompa"),
|
|
19500
|
+
actions: [
|
|
19501
|
+
{
|
|
19502
|
+
id: "pumpCycle.on",
|
|
19503
|
+
method: "setEnabled",
|
|
19472
19504
|
label: t("Pump cycle on", "Ciclo pompa attivo"),
|
|
19473
19505
|
phrase: t("Run the pump of {device} on its on/off cycle", "Fai lavorare la pompa di {device} a ciclo acceso/spento"),
|
|
19474
19506
|
icon: "timer",
|
|
19475
19507
|
args: { on: true }
|
|
19476
19508
|
},
|
|
19477
19509
|
{
|
|
19478
|
-
id: "
|
|
19479
|
-
method: "
|
|
19510
|
+
id: "pumpCycle.off",
|
|
19511
|
+
method: "setEnabled",
|
|
19480
19512
|
label: t("Pump cycle off", "Ciclo pompa spento"),
|
|
19481
19513
|
phrase: t("Run the pump of {device} continuously", "Fai lavorare la pompa di {device} in continuo"),
|
|
19482
19514
|
icon: "timer-off",
|
|
19483
19515
|
args: { on: false }
|
|
19484
19516
|
},
|
|
19485
19517
|
{
|
|
19486
|
-
id: "
|
|
19487
|
-
method: "
|
|
19518
|
+
id: "pumpCycle.onMinutes",
|
|
19519
|
+
method: "setOnMinutes",
|
|
19488
19520
|
label: t("Set pump run time", "Imposta il tempo di lavoro della pompa"),
|
|
19489
19521
|
phrase: t("Set the pump of {device} to run {minutes} minutes per cycle", "Imposta la pompa di {device} a lavorare {minutes} minuti per ciclo"),
|
|
19490
19522
|
icon: "timer",
|
|
@@ -19500,8 +19532,8 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
19500
19532
|
}]
|
|
19501
19533
|
},
|
|
19502
19534
|
{
|
|
19503
|
-
id: "
|
|
19504
|
-
method: "
|
|
19535
|
+
id: "pumpCycle.offMinutes",
|
|
19536
|
+
method: "setOffMinutes",
|
|
19505
19537
|
label: t("Set pump rest time", "Imposta il tempo di riposo della pompa"),
|
|
19506
19538
|
phrase: t("Set the pump of {device} to rest {minutes} minutes per cycle", "Imposta la pompa di {device} a riposare {minutes} minuti per ciclo"),
|
|
19507
19539
|
icon: "timer-off",
|
|
@@ -19515,29 +19547,15 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
19515
19547
|
unit: "min"
|
|
19516
19548
|
}
|
|
19517
19549
|
}]
|
|
19518
|
-
},
|
|
19519
|
-
{
|
|
19520
|
-
id: "petFountain.resetDailyConsumption",
|
|
19521
|
-
method: "resetDailyConsumption",
|
|
19522
|
-
label: t("Clear daily consumption", "Azzera il consumo giornaliero"),
|
|
19523
|
-
phrase: t("Clear the daily water consumption of {device}", "Azzera il consumo giornaliero di acqua di {device}"),
|
|
19524
|
-
icon: "rotate-ccw"
|
|
19525
19550
|
}
|
|
19526
19551
|
],
|
|
19527
19552
|
state: [{
|
|
19528
19553
|
kind: "boolean",
|
|
19529
|
-
field: "
|
|
19530
|
-
label: t("
|
|
19531
|
-
whenTrue: t("When
|
|
19532
|
-
whenFalse: t("When
|
|
19533
|
-
icon: "
|
|
19534
|
-
}, {
|
|
19535
|
-
kind: "numeric",
|
|
19536
|
-
field: "waterLevel",
|
|
19537
|
-
quantity: t("the water level", "il livello dell’acqua"),
|
|
19538
|
-
label: t("Water level", "Livello dell’acqua"),
|
|
19539
|
-
unit: "%",
|
|
19540
|
-
icon: "droplets"
|
|
19554
|
+
field: "enabled",
|
|
19555
|
+
label: t("Pump cycle", "Ciclo pompa"),
|
|
19556
|
+
whenTrue: t("When {device} starts running its pump on a cycle", "Quando {device} inizia a far lavorare la pompa a ciclo"),
|
|
19557
|
+
whenFalse: t("When {device} runs its pump continuously", "Quando {device} fa lavorare la pompa in continuo"),
|
|
19558
|
+
icon: "timer"
|
|
19541
19559
|
}]
|
|
19542
19560
|
},
|
|
19543
19561
|
"media-player": {
|
|
@@ -21430,6 +21448,7 @@ var SYSTEM_CAP_VOCABULARY = {
|
|
|
21430
21448
|
"audio-analyzer": system(PIPELINE),
|
|
21431
21449
|
"audio-codec": system(INTERNAL),
|
|
21432
21450
|
"auth-provider": system(IDENTITY),
|
|
21451
|
+
"board-key-source": system(INTERNAL),
|
|
21433
21452
|
backup: system("system backups — run and restored from the Backups page"),
|
|
21434
21453
|
broker: system("message-broker connections — configured, not actuated"),
|
|
21435
21454
|
"calendar-source": system(INTERNAL),
|
|
@@ -46684,6 +46703,63 @@ var binaryCapability = {
|
|
|
46684
46703
|
volatileStateFields: ["lastChangedAt"]
|
|
46685
46704
|
};
|
|
46686
46705
|
/**
|
|
46706
|
+
* Why a board key could not be read. Typed so a caller reports the cause and
|
|
46707
|
+
* never treats "could not read" as "has no key" (D49).
|
|
46708
|
+
*/
|
|
46709
|
+
var BoardKeyFailureReasonSchema = _enum([
|
|
46710
|
+
"unknown-source",
|
|
46711
|
+
"not-admin",
|
|
46712
|
+
"no-builder",
|
|
46713
|
+
"no-ingress-url",
|
|
46714
|
+
"unreachable",
|
|
46715
|
+
"unknown-board",
|
|
46716
|
+
"no-encryption-key",
|
|
46717
|
+
"unreadable-config"
|
|
46718
|
+
]);
|
|
46719
|
+
var BoardKeySourceSchema = object({
|
|
46720
|
+
sourceId: string(),
|
|
46721
|
+
name: string()
|
|
46722
|
+
});
|
|
46723
|
+
var BoardKeyBoardSchema = object({
|
|
46724
|
+
/** The builder's file name, e.g. `kitchen.yaml`: the handle `getBoardKey` takes. */
|
|
46725
|
+
configuration: string(),
|
|
46726
|
+
/** The node name the builder gives the board. */
|
|
46727
|
+
name: string(),
|
|
46728
|
+
/** The address the builder knows the board by, when it has one. */
|
|
46729
|
+
address: string().nullable()
|
|
46730
|
+
});
|
|
46731
|
+
var BoardKeyFailureSchema = object({
|
|
46732
|
+
ok: literal(false),
|
|
46733
|
+
reason: BoardKeyFailureReasonSchema,
|
|
46734
|
+
detail: string().optional()
|
|
46735
|
+
});
|
|
46736
|
+
var ListBoardsResultSchema = discriminatedUnion("ok", [object({
|
|
46737
|
+
ok: literal(true),
|
|
46738
|
+
boards: array(BoardKeyBoardSchema).readonly()
|
|
46739
|
+
}), BoardKeyFailureSchema]);
|
|
46740
|
+
var GetBoardKeyResultSchema = discriminatedUnion("ok", [object({
|
|
46741
|
+
ok: literal(true),
|
|
46742
|
+
key: string()
|
|
46743
|
+
}), BoardKeyFailureSchema]);
|
|
46744
|
+
/**
|
|
46745
|
+
* Where a device board's API encryption key can be read from (the ESPHome
|
|
46746
|
+
* builder that runs beside a Home Assistant). Admin only: `getBoardKey`
|
|
46747
|
+
* returns a credential, and nothing else the source holds ever crosses.
|
|
46748
|
+
*/
|
|
46749
|
+
var boardKeySourceCapability = {
|
|
46750
|
+
name: "board-key-source",
|
|
46751
|
+
scope: "system",
|
|
46752
|
+
mode: "collection",
|
|
46753
|
+
methods: {
|
|
46754
|
+
listSources: method(_void(), array(BoardKeySourceSchema).readonly(), { auth: "admin" }),
|
|
46755
|
+
listBoards: method(object({ sourceId: string().min(1) }), ListBoardsResultSchema, { auth: "admin" }),
|
|
46756
|
+
getBoardKey: method(object({
|
|
46757
|
+
sourceId: string().min(1),
|
|
46758
|
+
configuration: string().min(1)
|
|
46759
|
+
}), GetBoardKeyResultSchema, { auth: "admin" })
|
|
46760
|
+
}
|
|
46761
|
+
};
|
|
46762
|
+
/**
|
|
46687
46763
|
* Dimmable-light brightness control. Co-exists with `switch` on the
|
|
46688
46764
|
* same device — the switch toggles on/off, this cap sets the level
|
|
46689
46765
|
* applied when the light is on. Drivers map their per-vendor dim
|
|
@@ -53427,7 +53503,7 @@ var DishwasherStatusSchema = object({
|
|
|
53427
53503
|
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
53428
53504
|
lastFetchedAt: number()
|
|
53429
53505
|
});
|
|
53430
|
-
var DeviceIdSchema$
|
|
53506
|
+
var DeviceIdSchema$2 = number().int().nonnegative();
|
|
53431
53507
|
/** A value a program option or setting can take. */
|
|
53432
53508
|
var DishwasherValueSchema = union([
|
|
53433
53509
|
boolean(),
|
|
@@ -53502,77 +53578,77 @@ var dishwasherCapability = {
|
|
|
53502
53578
|
* option feature keys; each is checked against the program's constraints.
|
|
53503
53579
|
*/
|
|
53504
53580
|
start: method(object({
|
|
53505
|
-
deviceId: DeviceIdSchema$
|
|
53581
|
+
deviceId: DeviceIdSchema$2,
|
|
53506
53582
|
program: string().min(1).optional(),
|
|
53507
53583
|
options: record(string(), DishwasherValueSchema).optional()
|
|
53508
53584
|
}), _void(), {
|
|
53509
53585
|
kind: "mutation",
|
|
53510
53586
|
auth: "protected"
|
|
53511
53587
|
}),
|
|
53512
|
-
pause: method(object({ deviceId: DeviceIdSchema$
|
|
53588
|
+
pause: method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
53513
53589
|
kind: "mutation",
|
|
53514
53590
|
auth: "protected"
|
|
53515
53591
|
}),
|
|
53516
|
-
resume: method(object({ deviceId: DeviceIdSchema$
|
|
53592
|
+
resume: method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
53517
53593
|
kind: "mutation",
|
|
53518
53594
|
auth: "protected"
|
|
53519
53595
|
}),
|
|
53520
|
-
stop: method(object({ deviceId: DeviceIdSchema$
|
|
53596
|
+
stop: method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
53521
53597
|
kind: "mutation",
|
|
53522
53598
|
auth: "protected"
|
|
53523
53599
|
}),
|
|
53524
53600
|
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
53525
53601
|
setProgram: method(object({
|
|
53526
|
-
deviceId: DeviceIdSchema$
|
|
53602
|
+
deviceId: DeviceIdSchema$2,
|
|
53527
53603
|
program: string().min(1)
|
|
53528
53604
|
}), _void(), {
|
|
53529
53605
|
kind: "mutation",
|
|
53530
53606
|
auth: "protected"
|
|
53531
53607
|
}),
|
|
53532
53608
|
setPower: method(object({
|
|
53533
|
-
deviceId: DeviceIdSchema$
|
|
53609
|
+
deviceId: DeviceIdSchema$2,
|
|
53534
53610
|
on: boolean()
|
|
53535
53611
|
}), _void(), {
|
|
53536
53612
|
kind: "mutation",
|
|
53537
53613
|
auth: "protected"
|
|
53538
53614
|
}),
|
|
53539
53615
|
setHalfLoad: method(object({
|
|
53540
|
-
deviceId: DeviceIdSchema$
|
|
53616
|
+
deviceId: DeviceIdSchema$2,
|
|
53541
53617
|
on: boolean()
|
|
53542
53618
|
}), _void(), {
|
|
53543
53619
|
kind: "mutation",
|
|
53544
53620
|
auth: "protected"
|
|
53545
53621
|
}),
|
|
53546
53622
|
setHygienePlus: method(object({
|
|
53547
|
-
deviceId: DeviceIdSchema$
|
|
53623
|
+
deviceId: DeviceIdSchema$2,
|
|
53548
53624
|
on: boolean()
|
|
53549
53625
|
}), _void(), {
|
|
53550
53626
|
kind: "mutation",
|
|
53551
53627
|
auth: "protected"
|
|
53552
53628
|
}),
|
|
53553
53629
|
setExtraDry: method(object({
|
|
53554
|
-
deviceId: DeviceIdSchema$
|
|
53630
|
+
deviceId: DeviceIdSchema$2,
|
|
53555
53631
|
on: boolean()
|
|
53556
53632
|
}), _void(), {
|
|
53557
53633
|
kind: "mutation",
|
|
53558
53634
|
auth: "protected"
|
|
53559
53635
|
}),
|
|
53560
53636
|
setIntensiveZone: method(object({
|
|
53561
|
-
deviceId: DeviceIdSchema$
|
|
53637
|
+
deviceId: DeviceIdSchema$2,
|
|
53562
53638
|
on: boolean()
|
|
53563
53639
|
}), _void(), {
|
|
53564
53640
|
kind: "mutation",
|
|
53565
53641
|
auth: "protected"
|
|
53566
53642
|
}),
|
|
53567
53643
|
setVarioSpeedPlus: method(object({
|
|
53568
|
-
deviceId: DeviceIdSchema$
|
|
53644
|
+
deviceId: DeviceIdSchema$2,
|
|
53569
53645
|
on: boolean()
|
|
53570
53646
|
}), _void(), {
|
|
53571
53647
|
kind: "mutation",
|
|
53572
53648
|
auth: "protected"
|
|
53573
53649
|
}),
|
|
53574
53650
|
setChildLock: method(object({
|
|
53575
|
-
deviceId: DeviceIdSchema$
|
|
53651
|
+
deviceId: DeviceIdSchema$2,
|
|
53576
53652
|
on: boolean()
|
|
53577
53653
|
}), _void(), {
|
|
53578
53654
|
kind: "mutation",
|
|
@@ -53584,7 +53660,7 @@ var dishwasherCapability = {
|
|
|
53584
53660
|
* its declared range / members.
|
|
53585
53661
|
*/
|
|
53586
53662
|
setOption: method(object({
|
|
53587
|
-
deviceId: DeviceIdSchema$
|
|
53663
|
+
deviceId: DeviceIdSchema$2,
|
|
53588
53664
|
key: string().min(1),
|
|
53589
53665
|
value: DishwasherValueSchema
|
|
53590
53666
|
}), _void(), {
|
|
@@ -53592,7 +53668,7 @@ var dishwasherCapability = {
|
|
|
53592
53668
|
auth: "protected"
|
|
53593
53669
|
}),
|
|
53594
53670
|
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
53595
|
-
getOptions: method(object({ deviceId: DeviceIdSchema$
|
|
53671
|
+
getOptions: method(object({ deviceId: DeviceIdSchema$2 }), DishwasherOptionsSchema, { auth: "protected" })
|
|
53596
53672
|
},
|
|
53597
53673
|
status: {
|
|
53598
53674
|
schema: DishwasherStatusSchema,
|
|
@@ -68941,7 +69017,7 @@ var petFeederCapability = {
|
|
|
68941
69017
|
/**
|
|
68942
69018
|
* Pet water-fountain cap. Models the telemetry and the control surface of a
|
|
68943
69019
|
* circulating drinking fountain: how much water is in the tank, how much the
|
|
68944
|
-
* pet drank, whether the pump runs
|
|
69020
|
+
* pet drank, whether the pump runs.
|
|
68945
69021
|
*
|
|
68946
69022
|
* It has no native vendor provider of its own: a fountain reaches CamStack as
|
|
68947
69023
|
* a container of loose entities (a pump switch, two number boxes, a "filter
|
|
@@ -68957,8 +69033,10 @@ var petFeederCapability = {
|
|
|
68957
69033
|
* never here. Every reading may be `null`: a source that is offline or does
|
|
68958
69034
|
* not report is unknown, never zero.
|
|
68959
69035
|
*
|
|
68960
|
-
* The
|
|
68961
|
-
* cap
|
|
69036
|
+
* The pump's on/off duty cycle is model-specific and lives in the optional
|
|
69037
|
+
* `pump-cycle` cap. The filter, the cleaning and the water change are not
|
|
69038
|
+
* fields of this cap: they are items of the `consumables` cap on the same
|
|
69039
|
+
* device (kind `wear`), reset by the same forward mechanism.
|
|
68962
69040
|
*/
|
|
68963
69041
|
var PetFountainStatusSchema = object({
|
|
68964
69042
|
/** Water in the tank, 0..100 (%). Null while the source has not reported. */
|
|
@@ -68969,27 +69047,20 @@ var PetFountainStatusSchema = object({
|
|
|
68969
69047
|
empty: boolean().nullable(),
|
|
68970
69048
|
/** True while the pump is running. Null while unknown. */
|
|
68971
69049
|
pumpRunning: boolean().nullable(),
|
|
68972
|
-
/** True when the pump works on an on/off duty cycle rather than continuously. */
|
|
68973
|
-
pumpIntervalEnabled: boolean().nullable(),
|
|
68974
|
-
/** How long the pump runs per cycle, in seconds. */
|
|
68975
|
-
pumpOnTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
68976
|
-
/** How long the pump rests per cycle, in seconds. */
|
|
68977
|
-
pumpOffTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
68978
69050
|
/** Water drunk in the last drink, in litres. */
|
|
68979
69051
|
lastDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
68980
69052
|
/** Water drunk in the current hour, in litres. */
|
|
68981
69053
|
currentHourDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
68982
69054
|
/** Water drunk over the last 24 hours (rolling), in litres. */
|
|
68983
69055
|
last24hDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
68984
|
-
/** Water drunk since local midnight, in litres. */
|
|
69056
|
+
/** Water drunk since local midnight, in litres. Null when the fountain has no such sensor. */
|
|
68985
69057
|
todayDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
68986
69058
|
/** Decoded fault message. Null means healthy; a non-null string is an active fault. */
|
|
68987
69059
|
error: string().nullable(),
|
|
68988
69060
|
/** Ms epoch when the slice was last refreshed. */
|
|
68989
69061
|
lastFetchedAt: number()
|
|
68990
69062
|
});
|
|
68991
|
-
var DeviceIdSchema = number().int().nonnegative();
|
|
68992
|
-
var MinutesSchema = number().int().min(0);
|
|
69063
|
+
var DeviceIdSchema$1 = number().int().nonnegative();
|
|
68993
69064
|
var petFountainCapability = {
|
|
68994
69065
|
name: "pet-fountain",
|
|
68995
69066
|
scope: "device",
|
|
@@ -68999,38 +69070,14 @@ var petFountainCapability = {
|
|
|
68999
69070
|
methods: {
|
|
69000
69071
|
/** Start or stop the pump. */
|
|
69001
69072
|
setPump: method(object({
|
|
69002
|
-
deviceId: DeviceIdSchema,
|
|
69003
|
-
on: boolean()
|
|
69004
|
-
}), _void(), {
|
|
69005
|
-
kind: "mutation",
|
|
69006
|
-
auth: "protected"
|
|
69007
|
-
}),
|
|
69008
|
-
/** Switch the on/off duty cycle on or off (off = the pump runs continuously). */
|
|
69009
|
-
setPumpInterval: method(object({
|
|
69010
|
-
deviceId: DeviceIdSchema,
|
|
69073
|
+
deviceId: DeviceIdSchema$1,
|
|
69011
69074
|
on: boolean()
|
|
69012
69075
|
}), _void(), {
|
|
69013
69076
|
kind: "mutation",
|
|
69014
69077
|
auth: "protected"
|
|
69015
69078
|
}),
|
|
69016
|
-
/** Set how many minutes the pump runs per cycle. */
|
|
69017
|
-
setPumpOnMinutes: method(object({
|
|
69018
|
-
deviceId: DeviceIdSchema,
|
|
69019
|
-
minutes: MinutesSchema
|
|
69020
|
-
}), _void(), {
|
|
69021
|
-
kind: "mutation",
|
|
69022
|
-
auth: "protected"
|
|
69023
|
-
}),
|
|
69024
|
-
/** Set how many minutes the pump rests per cycle. */
|
|
69025
|
-
setPumpOffMinutes: method(object({
|
|
69026
|
-
deviceId: DeviceIdSchema,
|
|
69027
|
-
minutes: MinutesSchema
|
|
69028
|
-
}), _void(), {
|
|
69029
|
-
kind: "mutation",
|
|
69030
|
-
auth: "protected"
|
|
69031
|
-
}),
|
|
69032
69079
|
/** Clear the rolling daily consumption counters on the device. */
|
|
69033
|
-
resetDailyConsumption: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
69080
|
+
resetDailyConsumption: method(object({ deviceId: DeviceIdSchema$1 }), _void(), {
|
|
69034
69081
|
kind: "mutation",
|
|
69035
69082
|
auth: "protected"
|
|
69036
69083
|
})
|
|
@@ -71363,6 +71410,79 @@ var ptzAutotrackCapability = {
|
|
|
71363
71410
|
*/
|
|
71364
71411
|
history: "none"
|
|
71365
71412
|
};
|
|
71413
|
+
/**
|
|
71414
|
+
* The on/off duty cycle of a pet fountain's pump. Some models run the pump
|
|
71415
|
+
* continuously and have nothing to configure; others can alternate a run time
|
|
71416
|
+
* and a rest time. That is model-specific, so it is its own optional cap on the
|
|
71417
|
+
* fountain device: a fountain without cycle entities simply never composes it
|
|
71418
|
+
* (planning#366), and the `pet-fountain` cap stays the model-independent core.
|
|
71419
|
+
*
|
|
71420
|
+
* Like `pet-fountain` it has no native vendor provider: an operator BUILDS the
|
|
71421
|
+
* cycle from loose entities (a cycle switch and two number boxes) and every
|
|
71422
|
+
* method is a forward to one source entity (D659, D967). Durations are stored
|
|
71423
|
+
* in SECONDS (D944); a number box that cannot be read back leaves them `null`
|
|
71424
|
+
* — unknown, never zero (D393).
|
|
71425
|
+
*/
|
|
71426
|
+
var PumpCycleStatusSchema = object({
|
|
71427
|
+
/** True when the pump works on the on/off cycle, false when it runs continuously. Null while unknown. */
|
|
71428
|
+
enabled: boolean().nullable(),
|
|
71429
|
+
/** How long the pump runs per cycle, in seconds. Null while unknown. */
|
|
71430
|
+
onTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
71431
|
+
/** How long the pump rests per cycle, in seconds. Null while unknown. */
|
|
71432
|
+
offTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
71433
|
+
/** Ms epoch when the slice was last refreshed. */
|
|
71434
|
+
lastFetchedAt: number()
|
|
71435
|
+
});
|
|
71436
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
71437
|
+
var MinutesSchema = number().int().min(0);
|
|
71438
|
+
var pumpCycleCapability = {
|
|
71439
|
+
name: "pump-cycle",
|
|
71440
|
+
scope: "device",
|
|
71441
|
+
deviceNative: true,
|
|
71442
|
+
mode: "singleton",
|
|
71443
|
+
deviceTypes: [DeviceType.PetFountain],
|
|
71444
|
+
methods: {
|
|
71445
|
+
/** Switch the on/off duty cycle on or off (off = the pump runs continuously). */
|
|
71446
|
+
setEnabled: method(object({
|
|
71447
|
+
deviceId: DeviceIdSchema,
|
|
71448
|
+
on: boolean()
|
|
71449
|
+
}), _void(), {
|
|
71450
|
+
kind: "mutation",
|
|
71451
|
+
auth: "protected"
|
|
71452
|
+
}),
|
|
71453
|
+
/** Set how many minutes the pump runs per cycle. */
|
|
71454
|
+
setOnMinutes: method(object({
|
|
71455
|
+
deviceId: DeviceIdSchema,
|
|
71456
|
+
minutes: MinutesSchema
|
|
71457
|
+
}), _void(), {
|
|
71458
|
+
kind: "mutation",
|
|
71459
|
+
auth: "protected"
|
|
71460
|
+
}),
|
|
71461
|
+
/** Set how many minutes the pump rests per cycle. */
|
|
71462
|
+
setOffMinutes: method(object({
|
|
71463
|
+
deviceId: DeviceIdSchema,
|
|
71464
|
+
minutes: MinutesSchema
|
|
71465
|
+
}), _void(), {
|
|
71466
|
+
kind: "mutation",
|
|
71467
|
+
auth: "protected"
|
|
71468
|
+
})
|
|
71469
|
+
},
|
|
71470
|
+
status: {
|
|
71471
|
+
schema: PumpCycleStatusSchema,
|
|
71472
|
+
kind: "push"
|
|
71473
|
+
},
|
|
71474
|
+
/** Runtime-state slice — mirrored by the kernel; the hero card reads it whole. */
|
|
71475
|
+
runtimeState: PumpCycleStatusSchema,
|
|
71476
|
+
/**
|
|
71477
|
+
* Runtime-state durability: **session** — live appliance state re-published on connect.
|
|
71478
|
+
*
|
|
71479
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
71480
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
71481
|
+
*/
|
|
71482
|
+
durability: "session",
|
|
71483
|
+
/** History (D850): a duty-cycle setting is not a series worth recording. */
|
|
71484
|
+
history: "none"
|
|
71485
|
+
};
|
|
71366
71486
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, DeviceType.Gateway, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
71367
71487
|
kind: "mutation",
|
|
71368
71488
|
auth: "admin"
|
|
@@ -80659,6 +80779,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
80659
80779
|
pressureSensor: pressureSensorCapability,
|
|
80660
80780
|
privacyMask: privacyMaskCapability,
|
|
80661
80781
|
ptzAutotrack: ptzAutotrackCapability,
|
|
80782
|
+
pumpCycle: pumpCycleCapability,
|
|
80662
80783
|
recordingOnboard: recordingOnboardCapability,
|
|
80663
80784
|
recordingSignal: recordingSignalCapability,
|
|
80664
80785
|
runningState: runningStateCapability,
|
|
@@ -82843,6 +82964,27 @@ Object.freeze({
|
|
|
82843
82964
|
access: "view",
|
|
82844
82965
|
role: "viewer"
|
|
82845
82966
|
},
|
|
82967
|
+
"boardKeySource.getBoardKey": {
|
|
82968
|
+
capName: "board-key-source",
|
|
82969
|
+
capScope: "system",
|
|
82970
|
+
addonId: null,
|
|
82971
|
+
access: "view",
|
|
82972
|
+
role: "admin"
|
|
82973
|
+
},
|
|
82974
|
+
"boardKeySource.listBoards": {
|
|
82975
|
+
capName: "board-key-source",
|
|
82976
|
+
capScope: "system",
|
|
82977
|
+
addonId: null,
|
|
82978
|
+
access: "view",
|
|
82979
|
+
role: "admin"
|
|
82980
|
+
},
|
|
82981
|
+
"boardKeySource.listSources": {
|
|
82982
|
+
capName: "board-key-source",
|
|
82983
|
+
capScope: "system",
|
|
82984
|
+
addonId: null,
|
|
82985
|
+
access: "view",
|
|
82986
|
+
role: "admin"
|
|
82987
|
+
},
|
|
82846
82988
|
"brightness.getStatus": {
|
|
82847
82989
|
capName: "brightness",
|
|
82848
82990
|
capScope: "device",
|
|
@@ -87666,27 +87808,6 @@ Object.freeze({
|
|
|
87666
87808
|
access: "create",
|
|
87667
87809
|
role: "viewer"
|
|
87668
87810
|
},
|
|
87669
|
-
"petFountain.setPumpInterval": {
|
|
87670
|
-
capName: "pet-fountain",
|
|
87671
|
-
capScope: "device",
|
|
87672
|
-
addonId: null,
|
|
87673
|
-
access: "create",
|
|
87674
|
-
role: "viewer"
|
|
87675
|
-
},
|
|
87676
|
-
"petFountain.setPumpOffMinutes": {
|
|
87677
|
-
capName: "pet-fountain",
|
|
87678
|
-
capScope: "device",
|
|
87679
|
-
addonId: null,
|
|
87680
|
-
access: "create",
|
|
87681
|
-
role: "viewer"
|
|
87682
|
-
},
|
|
87683
|
-
"petFountain.setPumpOnMinutes": {
|
|
87684
|
-
capName: "pet-fountain",
|
|
87685
|
-
capScope: "device",
|
|
87686
|
-
addonId: null,
|
|
87687
|
-
access: "create",
|
|
87688
|
-
role: "viewer"
|
|
87689
|
-
},
|
|
87690
87811
|
"pipelineAnalytics.addRetrainFrameFromRecording": {
|
|
87691
87812
|
capName: "pipeline-analytics",
|
|
87692
87813
|
capScope: "device",
|
|
@@ -89465,6 +89586,34 @@ Object.freeze({
|
|
|
89465
89586
|
access: "create",
|
|
89466
89587
|
role: "admin"
|
|
89467
89588
|
},
|
|
89589
|
+
"pumpCycle.getStatus": {
|
|
89590
|
+
capName: "pump-cycle",
|
|
89591
|
+
capScope: "device",
|
|
89592
|
+
addonId: null,
|
|
89593
|
+
access: "view",
|
|
89594
|
+
role: "viewer"
|
|
89595
|
+
},
|
|
89596
|
+
"pumpCycle.setEnabled": {
|
|
89597
|
+
capName: "pump-cycle",
|
|
89598
|
+
capScope: "device",
|
|
89599
|
+
addonId: null,
|
|
89600
|
+
access: "create",
|
|
89601
|
+
role: "viewer"
|
|
89602
|
+
},
|
|
89603
|
+
"pumpCycle.setOffMinutes": {
|
|
89604
|
+
capName: "pump-cycle",
|
|
89605
|
+
capScope: "device",
|
|
89606
|
+
addonId: null,
|
|
89607
|
+
access: "create",
|
|
89608
|
+
role: "viewer"
|
|
89609
|
+
},
|
|
89610
|
+
"pumpCycle.setOnMinutes": {
|
|
89611
|
+
capName: "pump-cycle",
|
|
89612
|
+
capScope: "device",
|
|
89613
|
+
addonId: null,
|
|
89614
|
+
access: "create",
|
|
89615
|
+
role: "viewer"
|
|
89616
|
+
},
|
|
89468
89617
|
"reboot.reboot": {
|
|
89469
89618
|
capName: "reboot",
|
|
89470
89619
|
capScope: "device",
|
|
@@ -94020,21 +94169,6 @@ Object.freeze({
|
|
|
94020
94169
|
form: "single",
|
|
94021
94170
|
optional: false
|
|
94022
94171
|
}],
|
|
94023
|
-
"petFountain.setPumpInterval": [{
|
|
94024
|
-
name: "deviceId",
|
|
94025
|
-
form: "single",
|
|
94026
|
-
optional: false
|
|
94027
|
-
}],
|
|
94028
|
-
"petFountain.setPumpOffMinutes": [{
|
|
94029
|
-
name: "deviceId",
|
|
94030
|
-
form: "single",
|
|
94031
|
-
optional: false
|
|
94032
|
-
}],
|
|
94033
|
-
"petFountain.setPumpOnMinutes": [{
|
|
94034
|
-
name: "deviceId",
|
|
94035
|
-
form: "single",
|
|
94036
|
-
optional: false
|
|
94037
|
-
}],
|
|
94038
94172
|
"pipelineAnalytics.addRetrainFrameFromRecording": [{
|
|
94039
94173
|
name: "deviceId",
|
|
94040
94174
|
form: "single",
|
|
@@ -94670,6 +94804,26 @@ Object.freeze({
|
|
|
94670
94804
|
form: "single",
|
|
94671
94805
|
optional: false
|
|
94672
94806
|
}],
|
|
94807
|
+
"pumpCycle.getStatus": [{
|
|
94808
|
+
name: "deviceId",
|
|
94809
|
+
form: "single",
|
|
94810
|
+
optional: false
|
|
94811
|
+
}],
|
|
94812
|
+
"pumpCycle.setEnabled": [{
|
|
94813
|
+
name: "deviceId",
|
|
94814
|
+
form: "single",
|
|
94815
|
+
optional: false
|
|
94816
|
+
}],
|
|
94817
|
+
"pumpCycle.setOffMinutes": [{
|
|
94818
|
+
name: "deviceId",
|
|
94819
|
+
form: "single",
|
|
94820
|
+
optional: false
|
|
94821
|
+
}],
|
|
94822
|
+
"pumpCycle.setOnMinutes": [{
|
|
94823
|
+
name: "deviceId",
|
|
94824
|
+
form: "single",
|
|
94825
|
+
optional: false
|
|
94826
|
+
}],
|
|
94673
94827
|
"reboot.reboot": [{
|
|
94674
94828
|
name: "deviceId",
|
|
94675
94829
|
form: "single",
|
|
@@ -97308,4 +97462,4 @@ async function listHomeAssistantBrokers(query) {
|
|
|
97308
97462
|
return (await query({})).filter((broker) => broker.kind === HA_BROKER_KIND);
|
|
97309
97463
|
}
|
|
97310
97464
|
//#endregion
|
|
97311
|
-
export {
|
|
97465
|
+
export { humidifierCapability as $, boolean as $t, brightnessCapability as A, switchCapability as At, consumableFormOf as B, weatherCapability as Bt, alarmPanelCapability as C, runningFromLawnMower as Ct, bestLocationMatch as D, scriptRunnerCapability as Dt, batteryCapability as E, runningStateCapability as Et, calendarSourceCapability as F, updateCapability as Ft, deviceAdminLinkCapability as G, defineAddonMigrations as Gt, contactCapability as H, RecordSecretUnavailableError as Ht, carbonMonoxideCapability as I, vacuumControlCapability as It, enumSensorCapability as J, entryBody as Jt, deviceAdoptionCapability as K, defineEntryKind as Kt, climateControlCapability as L, valveCapability as Lt, buildAddonRouteProvider as M, temperatureSensorCapability as Mt, buildDeviceAdminUrl as N, tryConvertDelta as Nt, binaryCapability as O, sendToExportedTarget as Ot, buttonCapability as P, tryConvertUnit as Pt, gasCapability as Q, array as Qt, colorCapability as R, vibrationCapability as Rt, airQualitySensorCapability as S, runExportedAction as St, automationControlCapability as T, runningFromVacuumState as Tt, controlCapability as U, baseUnitOf as Ut, consumableKindOf as V, BaseAddon as Vt, coverCapability as W, createEvent as Wt, fanControlCapability as X, nodePin as Xt, eventEmitterCapability as Y, isReadingQuantity as Yt, floodCapability as Z, _enum as Zt, PLUG_APPLIANCE_TYPES as _, pressureSensorCapability as _t, BaseDevice as a, string as an, mediaPlayerCapability as at, accessoriesCapability as b, quantityFromUnit as bt, COCO_TO_MACRO as c, url as cn, notificationOutputCapability as ct, ConsumableItemSchema as d, DeviceType as dn, oauthIntegrationCapability as dt, discriminatedUnion as en, humiditySensorCapability as et, ConsumableStatusSchema as f, errMsg as fn, parseAdminBase as ft, MediaPlayerRepeatSchema as g, presenceCapability as gt, HvacModeSchema as h, prepareNotification as ht, AlarmArmModeSchema as i, record as in, lockControlCapability as it, brokerCapability as j, tamperCapability as jt, boardKeySourceCapability as k, smokeCapability as kt, CameraSwitchIdSchema as l, DeviceFeature as ln, notifierCapability as lt, FanDirectionSchema as m, preconditionOf as mt, HA_PROVIDER_ADDON_ID as n, number as nn, ingestReading as nt, BaseDeviceProvider as o, union as on, motionCapability as ot, EnumSensorDateTimeFormatSchema as p, EventCategory as pn, powerMeterCapability as pt, deviceExportCapability as q, defineRecordKinds as qt, listHomeAssistantBrokers as r, object as rn, lawnMowerControlCapability as rt, CAMERA_SWITCH_ORDER as s, unknown as sn, normalizeUnit as st, HA_BROKER_KIND as t, literal as tn, imageCapability as tt, ConsumableFormSchema as u, DeviceRole as un, numericSensorCapability as ut, RUNNING_STATE_COLD as v, pruneDeletedEntities as vt, ambientLightSensorCapability as w, runningFromMediaPlayer as wt, addonRoutesCapability as x, resolveAttachmentUrls as xt, TargetSchema as y, publicEndpointReaderFrom as yt, connectivityCapability as z, waterHeaterCapability as zt };
|