@camstack/addon-provider-homematic 1.2.59 → 1.2.60
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 +118 -1
- package/dist/addon.mjs +118 -1
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -10536,6 +10536,89 @@ var LocationStatSchema = object({
|
|
|
10536
10536
|
fileCount: number(),
|
|
10537
10537
|
present: boolean()
|
|
10538
10538
|
});
|
|
10539
|
+
/** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
|
|
10540
|
+
var BackupRunStateSchema = _enum([
|
|
10541
|
+
"queued",
|
|
10542
|
+
"running",
|
|
10543
|
+
"succeeded",
|
|
10544
|
+
"failed",
|
|
10545
|
+
"cancelled"
|
|
10546
|
+
]);
|
|
10547
|
+
/**
|
|
10548
|
+
* Where a running backup currently is. `queued` before it starts,
|
|
10549
|
+
* `building` while the tar.gz is being staged, `uploading` during the
|
|
10550
|
+
* per-destination fan-out, `done` once terminal.
|
|
10551
|
+
*/
|
|
10552
|
+
var BackupRunPhaseSchema = _enum([
|
|
10553
|
+
"queued",
|
|
10554
|
+
"building",
|
|
10555
|
+
"uploading",
|
|
10556
|
+
"done"
|
|
10557
|
+
]);
|
|
10558
|
+
/**
|
|
10559
|
+
* Observable state of one backup run — readable WHILE it runs via
|
|
10560
|
+
* `backup.listRuns`. This is what makes the execution queue and
|
|
10561
|
+
* `backup.cancel` usable: the 2026-09-04 incident (two concurrent
|
|
10562
|
+
* multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
|
|
10563
|
+
* diagnosable with `du` because nothing reported that runs existed or
|
|
10564
|
+
* how large the staged archive had grown.
|
|
10565
|
+
*/
|
|
10566
|
+
var BackupRunSchema = object({
|
|
10567
|
+
/** Stable run id — the handle `backup.cancel` takes. */
|
|
10568
|
+
id: string(),
|
|
10569
|
+
state: BackupRunStateSchema,
|
|
10570
|
+
phase: BackupRunPhaseSchema,
|
|
10571
|
+
/**
|
|
10572
|
+
* Resolved destination location ids. Empty while queued (targets are
|
|
10573
|
+
* resolved when the run starts, against the then-current policies).
|
|
10574
|
+
*/
|
|
10575
|
+
destinationIds: array(string()).readonly(),
|
|
10576
|
+
label: string().optional(),
|
|
10577
|
+
/** ms-epoch when the run was submitted (trigger call / schedule fire). */
|
|
10578
|
+
requestedAt: number(),
|
|
10579
|
+
/** ms-epoch when the run left the queue and started building. */
|
|
10580
|
+
startedAt: number().optional(),
|
|
10581
|
+
/** ms-epoch when the run reached a terminal state. */
|
|
10582
|
+
finishedAt: number().optional(),
|
|
10583
|
+
/** Compressed bytes of the staging archive written so far. */
|
|
10584
|
+
stagedBytes: number(),
|
|
10585
|
+
/** Final staged archive size, once the build phase completes. */
|
|
10586
|
+
archiveSizeBytes: number().optional(),
|
|
10587
|
+
/** Bytes pushed to the destination currently uploading. */
|
|
10588
|
+
uploadedBytes: number(),
|
|
10589
|
+
/** Destinations where the archive fully landed (uploaded + indexed). */
|
|
10590
|
+
completedDestinationIds: array(string()).readonly(),
|
|
10591
|
+
/** Destinations that failed during the fan-out. */
|
|
10592
|
+
failedDestinationIds: array(string()).readonly(),
|
|
10593
|
+
/** Failure message when `state === 'failed'`. */
|
|
10594
|
+
error: string().optional(),
|
|
10595
|
+
/**
|
|
10596
|
+
* 1-based place in the execution queue — 1 = runs next. Present only
|
|
10597
|
+
* while `state === 'queued'`. Stamped by the orchestrator from the
|
|
10598
|
+
* queue's OWN pending order, never derived from timestamps, so the
|
|
10599
|
+
* UI cannot show an order the executor will not honour.
|
|
10600
|
+
*/
|
|
10601
|
+
queuePosition: number().int().min(1).optional()
|
|
10602
|
+
});
|
|
10603
|
+
/**
|
|
10604
|
+
* Result of `backup.trigger`. The call still resolves when the run
|
|
10605
|
+
* terminates (compat with schedule-driven runs and the admin UI), but
|
|
10606
|
+
* it now names the run and says whether it had to WAIT: a trigger that
|
|
10607
|
+
* arrives while another run is in flight is enqueued (or joined onto
|
|
10608
|
+
* an identical already-queued run), never started concurrently.
|
|
10609
|
+
*/
|
|
10610
|
+
var BackupTriggerResultSchema = object({
|
|
10611
|
+
/** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
|
|
10612
|
+
runId: string(),
|
|
10613
|
+
/** True when the run waited behind an in-flight run instead of starting immediately. */
|
|
10614
|
+
queued: boolean(),
|
|
10615
|
+
/** True when this trigger was coalesced onto an identical already-queued run. */
|
|
10616
|
+
joined: boolean(),
|
|
10617
|
+
/** True when the run was cancelled before completing every destination. */
|
|
10618
|
+
cancelled: boolean(),
|
|
10619
|
+
/** One entry per destination the archive landed at (partial on cancel). */
|
|
10620
|
+
entries: array(BackupEntrySchema).readonly()
|
|
10621
|
+
});
|
|
10539
10622
|
/**
|
|
10540
10623
|
* A backup schedule — the N:M "entry" that binds one cron cadence to a
|
|
10541
10624
|
* SET of destination locations. Supersedes the per-location cron on
|
|
@@ -10583,7 +10666,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
10583
10666
|
* retention (manual runs).
|
|
10584
10667
|
*/
|
|
10585
10668
|
retentionCount: number().int().min(1).max(1e3).optional()
|
|
10586
|
-
}).optional(),
|
|
10669
|
+
}).optional(), BackupTriggerResultSchema, {
|
|
10670
|
+
kind: "mutation",
|
|
10671
|
+
auth: "admin"
|
|
10672
|
+
}), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
|
|
10587
10673
|
kind: "mutation",
|
|
10588
10674
|
auth: "admin"
|
|
10589
10675
|
}), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -11349,6 +11435,14 @@ method(object({
|
|
|
11349
11435
|
}), object({ success: literal(true) }), {
|
|
11350
11436
|
kind: "mutation",
|
|
11351
11437
|
auth: "admin"
|
|
11438
|
+
}), method(object({ deviceId: number().int().nonnegative() }), object({
|
|
11439
|
+
derivedStreamsDeleted: array(string()).readonly(),
|
|
11440
|
+
assignmentsPurged: boolean(),
|
|
11441
|
+
probeSnapshotsDropped: number().int().nonnegative(),
|
|
11442
|
+
rtspTokenRowsDeleted: number().int().nonnegative()
|
|
11443
|
+
}), {
|
|
11444
|
+
kind: "mutation",
|
|
11445
|
+
auth: "admin"
|
|
11352
11446
|
}), method(object({
|
|
11353
11447
|
deviceId: number(),
|
|
11354
11448
|
/** Absent = the LOWEST assigned profile — a notification attachment is
|
|
@@ -33217,6 +33311,12 @@ Object.freeze({
|
|
|
33217
33311
|
addonId: null,
|
|
33218
33312
|
access: "create"
|
|
33219
33313
|
},
|
|
33314
|
+
"backup.cancel": {
|
|
33315
|
+
capName: "backup",
|
|
33316
|
+
capScope: "system",
|
|
33317
|
+
addonId: null,
|
|
33318
|
+
access: "create"
|
|
33319
|
+
},
|
|
33220
33320
|
"backup.delete": {
|
|
33221
33321
|
capName: "backup",
|
|
33222
33322
|
capScope: "system",
|
|
@@ -33259,6 +33359,12 @@ Object.freeze({
|
|
|
33259
33359
|
addonId: null,
|
|
33260
33360
|
access: "view"
|
|
33261
33361
|
},
|
|
33362
|
+
"backup.listRuns": {
|
|
33363
|
+
capName: "backup",
|
|
33364
|
+
capScope: "system",
|
|
33365
|
+
addonId: null,
|
|
33366
|
+
access: "view"
|
|
33367
|
+
},
|
|
33262
33368
|
"backup.listSchedules": {
|
|
33263
33369
|
capName: "backup",
|
|
33264
33370
|
capScope: "system",
|
|
@@ -37825,6 +37931,12 @@ Object.freeze({
|
|
|
37825
37931
|
addonId: null,
|
|
37826
37932
|
access: "create"
|
|
37827
37933
|
},
|
|
37934
|
+
"streamBroker.forgetDeviceHardware": {
|
|
37935
|
+
capName: "stream-broker",
|
|
37936
|
+
capScope: "system",
|
|
37937
|
+
addonId: null,
|
|
37938
|
+
access: "delete"
|
|
37939
|
+
},
|
|
37828
37940
|
"streamBroker.getAllRtspEntries": {
|
|
37829
37941
|
capName: "stream-broker",
|
|
37830
37942
|
capScope: "system",
|
|
@@ -40283,6 +40395,11 @@ Object.freeze({
|
|
|
40283
40395
|
form: "single",
|
|
40284
40396
|
optional: false
|
|
40285
40397
|
}],
|
|
40398
|
+
"streamBroker.forgetDeviceHardware": [{
|
|
40399
|
+
name: "deviceId",
|
|
40400
|
+
form: "single",
|
|
40401
|
+
optional: false
|
|
40402
|
+
}],
|
|
40286
40403
|
"streamBroker.getDeviceAudioMute": [{
|
|
40287
40404
|
name: "deviceId",
|
|
40288
40405
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -10537,6 +10537,89 @@ var LocationStatSchema = object({
|
|
|
10537
10537
|
fileCount: number(),
|
|
10538
10538
|
present: boolean()
|
|
10539
10539
|
});
|
|
10540
|
+
/** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
|
|
10541
|
+
var BackupRunStateSchema = _enum([
|
|
10542
|
+
"queued",
|
|
10543
|
+
"running",
|
|
10544
|
+
"succeeded",
|
|
10545
|
+
"failed",
|
|
10546
|
+
"cancelled"
|
|
10547
|
+
]);
|
|
10548
|
+
/**
|
|
10549
|
+
* Where a running backup currently is. `queued` before it starts,
|
|
10550
|
+
* `building` while the tar.gz is being staged, `uploading` during the
|
|
10551
|
+
* per-destination fan-out, `done` once terminal.
|
|
10552
|
+
*/
|
|
10553
|
+
var BackupRunPhaseSchema = _enum([
|
|
10554
|
+
"queued",
|
|
10555
|
+
"building",
|
|
10556
|
+
"uploading",
|
|
10557
|
+
"done"
|
|
10558
|
+
]);
|
|
10559
|
+
/**
|
|
10560
|
+
* Observable state of one backup run — readable WHILE it runs via
|
|
10561
|
+
* `backup.listRuns`. This is what makes the execution queue and
|
|
10562
|
+
* `backup.cancel` usable: the 2026-09-04 incident (two concurrent
|
|
10563
|
+
* multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
|
|
10564
|
+
* diagnosable with `du` because nothing reported that runs existed or
|
|
10565
|
+
* how large the staged archive had grown.
|
|
10566
|
+
*/
|
|
10567
|
+
var BackupRunSchema = object({
|
|
10568
|
+
/** Stable run id — the handle `backup.cancel` takes. */
|
|
10569
|
+
id: string(),
|
|
10570
|
+
state: BackupRunStateSchema,
|
|
10571
|
+
phase: BackupRunPhaseSchema,
|
|
10572
|
+
/**
|
|
10573
|
+
* Resolved destination location ids. Empty while queued (targets are
|
|
10574
|
+
* resolved when the run starts, against the then-current policies).
|
|
10575
|
+
*/
|
|
10576
|
+
destinationIds: array(string()).readonly(),
|
|
10577
|
+
label: string().optional(),
|
|
10578
|
+
/** ms-epoch when the run was submitted (trigger call / schedule fire). */
|
|
10579
|
+
requestedAt: number(),
|
|
10580
|
+
/** ms-epoch when the run left the queue and started building. */
|
|
10581
|
+
startedAt: number().optional(),
|
|
10582
|
+
/** ms-epoch when the run reached a terminal state. */
|
|
10583
|
+
finishedAt: number().optional(),
|
|
10584
|
+
/** Compressed bytes of the staging archive written so far. */
|
|
10585
|
+
stagedBytes: number(),
|
|
10586
|
+
/** Final staged archive size, once the build phase completes. */
|
|
10587
|
+
archiveSizeBytes: number().optional(),
|
|
10588
|
+
/** Bytes pushed to the destination currently uploading. */
|
|
10589
|
+
uploadedBytes: number(),
|
|
10590
|
+
/** Destinations where the archive fully landed (uploaded + indexed). */
|
|
10591
|
+
completedDestinationIds: array(string()).readonly(),
|
|
10592
|
+
/** Destinations that failed during the fan-out. */
|
|
10593
|
+
failedDestinationIds: array(string()).readonly(),
|
|
10594
|
+
/** Failure message when `state === 'failed'`. */
|
|
10595
|
+
error: string().optional(),
|
|
10596
|
+
/**
|
|
10597
|
+
* 1-based place in the execution queue — 1 = runs next. Present only
|
|
10598
|
+
* while `state === 'queued'`. Stamped by the orchestrator from the
|
|
10599
|
+
* queue's OWN pending order, never derived from timestamps, so the
|
|
10600
|
+
* UI cannot show an order the executor will not honour.
|
|
10601
|
+
*/
|
|
10602
|
+
queuePosition: number().int().min(1).optional()
|
|
10603
|
+
});
|
|
10604
|
+
/**
|
|
10605
|
+
* Result of `backup.trigger`. The call still resolves when the run
|
|
10606
|
+
* terminates (compat with schedule-driven runs and the admin UI), but
|
|
10607
|
+
* it now names the run and says whether it had to WAIT: a trigger that
|
|
10608
|
+
* arrives while another run is in flight is enqueued (or joined onto
|
|
10609
|
+
* an identical already-queued run), never started concurrently.
|
|
10610
|
+
*/
|
|
10611
|
+
var BackupTriggerResultSchema = object({
|
|
10612
|
+
/** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
|
|
10613
|
+
runId: string(),
|
|
10614
|
+
/** True when the run waited behind an in-flight run instead of starting immediately. */
|
|
10615
|
+
queued: boolean(),
|
|
10616
|
+
/** True when this trigger was coalesced onto an identical already-queued run. */
|
|
10617
|
+
joined: boolean(),
|
|
10618
|
+
/** True when the run was cancelled before completing every destination. */
|
|
10619
|
+
cancelled: boolean(),
|
|
10620
|
+
/** One entry per destination the archive landed at (partial on cancel). */
|
|
10621
|
+
entries: array(BackupEntrySchema).readonly()
|
|
10622
|
+
});
|
|
10540
10623
|
/**
|
|
10541
10624
|
* A backup schedule — the N:M "entry" that binds one cron cadence to a
|
|
10542
10625
|
* SET of destination locations. Supersedes the per-location cron on
|
|
@@ -10584,7 +10667,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
10584
10667
|
* retention (manual runs).
|
|
10585
10668
|
*/
|
|
10586
10669
|
retentionCount: number().int().min(1).max(1e3).optional()
|
|
10587
|
-
}).optional(),
|
|
10670
|
+
}).optional(), BackupTriggerResultSchema, {
|
|
10671
|
+
kind: "mutation",
|
|
10672
|
+
auth: "admin"
|
|
10673
|
+
}), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
|
|
10588
10674
|
kind: "mutation",
|
|
10589
10675
|
auth: "admin"
|
|
10590
10676
|
}), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -11350,6 +11436,14 @@ method(object({
|
|
|
11350
11436
|
}), object({ success: literal(true) }), {
|
|
11351
11437
|
kind: "mutation",
|
|
11352
11438
|
auth: "admin"
|
|
11439
|
+
}), method(object({ deviceId: number().int().nonnegative() }), object({
|
|
11440
|
+
derivedStreamsDeleted: array(string()).readonly(),
|
|
11441
|
+
assignmentsPurged: boolean(),
|
|
11442
|
+
probeSnapshotsDropped: number().int().nonnegative(),
|
|
11443
|
+
rtspTokenRowsDeleted: number().int().nonnegative()
|
|
11444
|
+
}), {
|
|
11445
|
+
kind: "mutation",
|
|
11446
|
+
auth: "admin"
|
|
11353
11447
|
}), method(object({
|
|
11354
11448
|
deviceId: number(),
|
|
11355
11449
|
/** Absent = the LOWEST assigned profile — a notification attachment is
|
|
@@ -33218,6 +33312,12 @@ Object.freeze({
|
|
|
33218
33312
|
addonId: null,
|
|
33219
33313
|
access: "create"
|
|
33220
33314
|
},
|
|
33315
|
+
"backup.cancel": {
|
|
33316
|
+
capName: "backup",
|
|
33317
|
+
capScope: "system",
|
|
33318
|
+
addonId: null,
|
|
33319
|
+
access: "create"
|
|
33320
|
+
},
|
|
33221
33321
|
"backup.delete": {
|
|
33222
33322
|
capName: "backup",
|
|
33223
33323
|
capScope: "system",
|
|
@@ -33260,6 +33360,12 @@ Object.freeze({
|
|
|
33260
33360
|
addonId: null,
|
|
33261
33361
|
access: "view"
|
|
33262
33362
|
},
|
|
33363
|
+
"backup.listRuns": {
|
|
33364
|
+
capName: "backup",
|
|
33365
|
+
capScope: "system",
|
|
33366
|
+
addonId: null,
|
|
33367
|
+
access: "view"
|
|
33368
|
+
},
|
|
33263
33369
|
"backup.listSchedules": {
|
|
33264
33370
|
capName: "backup",
|
|
33265
33371
|
capScope: "system",
|
|
@@ -37826,6 +37932,12 @@ Object.freeze({
|
|
|
37826
37932
|
addonId: null,
|
|
37827
37933
|
access: "create"
|
|
37828
37934
|
},
|
|
37935
|
+
"streamBroker.forgetDeviceHardware": {
|
|
37936
|
+
capName: "stream-broker",
|
|
37937
|
+
capScope: "system",
|
|
37938
|
+
addonId: null,
|
|
37939
|
+
access: "delete"
|
|
37940
|
+
},
|
|
37829
37941
|
"streamBroker.getAllRtspEntries": {
|
|
37830
37942
|
capName: "stream-broker",
|
|
37831
37943
|
capScope: "system",
|
|
@@ -40284,6 +40396,11 @@ Object.freeze({
|
|
|
40284
40396
|
form: "single",
|
|
40285
40397
|
optional: false
|
|
40286
40398
|
}],
|
|
40399
|
+
"streamBroker.forgetDeviceHardware": [{
|
|
40400
|
+
name: "deviceId",
|
|
40401
|
+
form: "single",
|
|
40402
|
+
optional: false
|
|
40403
|
+
}],
|
|
40287
40404
|
"streamBroker.getDeviceAudioMute": [{
|
|
40288
40405
|
name: "deviceId",
|
|
40289
40406
|
form: "single",
|
package/package.json
CHANGED