@camstack/addon-provider-homeassistant 1.2.646 → 1.2.648
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/README.md +1 -1
- package/dist/addon.js +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/{ha-broker-source-gQYTcasw.js → ha-broker-source-Ba20mhmb.js} +361 -10
- package/dist/{ha-broker-source-DRIYmtMd.mjs → ha-broker-source-iLA_DsW8.mjs} +350 -11
- package/dist/ha-export/ha-export.addon.js +141 -60
- package/dist/ha-export/ha-export.addon.mjs +141 -60
- package/i18n/en.json +0 -2
- package/i18n/it.json +0 -2
- package/package.json +2 -2
|
@@ -5971,7 +5971,7 @@ var ZodIssueCode = {
|
|
|
5971
5971
|
var ZodFirstPartyTypeKind;
|
|
5972
5972
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5973
5973
|
//#endregion
|
|
5974
|
-
//#region ../types/dist/sleep-
|
|
5974
|
+
//#region ../types/dist/sleep-Bei295Bz.mjs
|
|
5975
5975
|
/**
|
|
5976
5976
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5977
5977
|
* window to float samples (D455).
|
|
@@ -6487,6 +6487,53 @@ function emitReadiness(bus, params) {
|
|
|
6487
6487
|
ts
|
|
6488
6488
|
}));
|
|
6489
6489
|
}
|
|
6490
|
+
/** Why a catalogue entry is not a runnable body of its declared kind. */
|
|
6491
|
+
var AddonMigrationDefinitionError = class extends Error {
|
|
6492
|
+
id;
|
|
6493
|
+
constructor(id, message) {
|
|
6494
|
+
super(`${id}: ${message}`);
|
|
6495
|
+
this.id = id;
|
|
6496
|
+
this.name = "AddonMigrationDefinitionError";
|
|
6497
|
+
}
|
|
6498
|
+
};
|
|
6499
|
+
/**
|
|
6500
|
+
* Bind a catalogue to the addon's ports. Throws {@link AddonMigrationDefinitionError} when
|
|
6501
|
+
* an entry's `bodyKind` does not match the body it carries, or is `sql` (a hub-only
|
|
6502
|
+
* body). A throwing body never escapes `execute`: it is reported as a failed result.
|
|
6503
|
+
*/
|
|
6504
|
+
function defineAddonMigrations(catalogue, ports) {
|
|
6505
|
+
return catalogue.map((entry) => {
|
|
6506
|
+
const { meta } = entry;
|
|
6507
|
+
if ("plan" in entry) {
|
|
6508
|
+
if (meta.bodyKind !== "plan") throw new AddonMigrationDefinitionError(meta.id, `carries a plan body but declares "${meta.bodyKind}"`);
|
|
6509
|
+
return {
|
|
6510
|
+
meta,
|
|
6511
|
+
execute: () => guarded(async () => ({
|
|
6512
|
+
kind: "plan",
|
|
6513
|
+
plan: await entry.plan(ports)
|
|
6514
|
+
}))
|
|
6515
|
+
};
|
|
6516
|
+
}
|
|
6517
|
+
if (meta.bodyKind !== "procedure") throw new AddonMigrationDefinitionError(meta.id, `carries a procedure body but declares "${meta.bodyKind}"`);
|
|
6518
|
+
return {
|
|
6519
|
+
meta,
|
|
6520
|
+
execute: () => guarded(async () => ({
|
|
6521
|
+
kind: "procedure",
|
|
6522
|
+
result: await entry.procedure(ports)
|
|
6523
|
+
}))
|
|
6524
|
+
};
|
|
6525
|
+
});
|
|
6526
|
+
}
|
|
6527
|
+
async function guarded(work) {
|
|
6528
|
+
try {
|
|
6529
|
+
return await work();
|
|
6530
|
+
} catch (err) {
|
|
6531
|
+
return {
|
|
6532
|
+
kind: "failed",
|
|
6533
|
+
error: errMsg(err)
|
|
6534
|
+
};
|
|
6535
|
+
}
|
|
6536
|
+
}
|
|
6490
6537
|
var NOT_RUN = {
|
|
6491
6538
|
declared: false,
|
|
6492
6539
|
snapshot: null,
|
|
@@ -9717,6 +9764,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9717
9764
|
"device-status",
|
|
9718
9765
|
"dishwasher",
|
|
9719
9766
|
"display-palette",
|
|
9767
|
+
"do-not-disturb",
|
|
9720
9768
|
"doorbell",
|
|
9721
9769
|
"embedding-encoder",
|
|
9722
9770
|
"enum-sensor",
|
|
@@ -10476,6 +10524,10 @@ Object.freeze({
|
|
|
10476
10524
|
"valueType": "string"
|
|
10477
10525
|
}
|
|
10478
10526
|
],
|
|
10527
|
+
"do-not-disturb": [{
|
|
10528
|
+
"path": "enabled",
|
|
10529
|
+
"valueType": "boolean"
|
|
10530
|
+
}],
|
|
10479
10531
|
"doorbell": [{
|
|
10480
10532
|
"path": "lastPressedAt",
|
|
10481
10533
|
"valueType": "number"
|
|
@@ -14118,6 +14170,16 @@ var MigrationPlanSchema = object({ edits: array(discriminatedUnion("op", [
|
|
|
14118
14170
|
precondition: PreconditionSchema
|
|
14119
14171
|
})
|
|
14120
14172
|
])) });
|
|
14173
|
+
/** `JSON.stringify` with object keys sorted, so equal values spell the same. */
|
|
14174
|
+
function canonicalJson(value) {
|
|
14175
|
+
if (Array.isArray(value)) return `[${value.map((item) => canonicalJson(item)).join(",")}]`;
|
|
14176
|
+
if (typeof value === "object" && value !== null) return `{${Object.entries(value).filter(([, item]) => item !== void 0).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([key, item]) => `${JSON.stringify(key)}:${canonicalJson(item)}`).join(",")}}`;
|
|
14177
|
+
return JSON.stringify(value) ?? "null";
|
|
14178
|
+
}
|
|
14179
|
+
/** The precondition string for a value a plan read (`null` when it read nothing). */
|
|
14180
|
+
function preconditionOf(value) {
|
|
14181
|
+
return canonicalJson(value ?? null);
|
|
14182
|
+
}
|
|
14121
14183
|
/**
|
|
14122
14184
|
* What a `procedure` body reports. `already-done` means the rerun observed the
|
|
14123
14185
|
* work finished (a crash between the work and the ledger row, or a manual fix)
|
|
@@ -16066,8 +16128,18 @@ var LogChannelDescriptorSchema = object({
|
|
|
16066
16128
|
* the operator narrows to one camera, sees nothing, and concludes the code
|
|
16067
16129
|
* path was never taken.
|
|
16068
16130
|
*/
|
|
16069
|
-
perDevice: boolean()
|
|
16070
|
-
|
|
16131
|
+
perDevice: boolean(),
|
|
16132
|
+
/**
|
|
16133
|
+
* What the channel is FOR, so the UI can list the channels an addon offers.
|
|
16134
|
+
*
|
|
16135
|
+
* - `diagnostic` (the default): a per-component diagnostic armed from the
|
|
16136
|
+
* Levels page, emitted at its declared level.
|
|
16137
|
+
* - `debug`: a `debug.<channel>` dump watched live for a short window
|
|
16138
|
+
* (`ctx.debug`). Always per-device, and its lines are denied by the log
|
|
16139
|
+
* ring unless somebody is watching that device.
|
|
16140
|
+
*/
|
|
16141
|
+
kind: _enum(["diagnostic", "debug"]).default("diagnostic")
|
|
16142
|
+
}).refine((d) => d.kind !== "debug" || d.name.startsWith("debug.") && d.perDevice, { message: "a debug channel is named debug.<channel> and is per-device" });
|
|
16071
16143
|
/**
|
|
16072
16144
|
* An armed window over one channel, as the document hands it to a mirror.
|
|
16073
16145
|
*
|
|
@@ -20042,6 +20114,33 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
20042
20114
|
}
|
|
20043
20115
|
]
|
|
20044
20116
|
},
|
|
20117
|
+
"do-not-disturb": {
|
|
20118
|
+
scope: "device",
|
|
20119
|
+
noun: t("Do not disturb", "Non disturbare"),
|
|
20120
|
+
actions: [{
|
|
20121
|
+
id: "dnd.on",
|
|
20122
|
+
method: "setEnabled",
|
|
20123
|
+
label: t("Do not disturb on", "Attiva Non disturbare"),
|
|
20124
|
+
phrase: t("Turn on Do not disturb on {device}", "Attiva Non disturbare su {device}"),
|
|
20125
|
+
icon: "bell-off",
|
|
20126
|
+
args: { enabled: true }
|
|
20127
|
+
}, {
|
|
20128
|
+
id: "dnd.off",
|
|
20129
|
+
method: "setEnabled",
|
|
20130
|
+
label: t("Do not disturb off", "Disattiva Non disturbare"),
|
|
20131
|
+
phrase: t("Turn off Do not disturb on {device}", "Disattiva Non disturbare su {device}"),
|
|
20132
|
+
icon: "bell",
|
|
20133
|
+
args: { enabled: false }
|
|
20134
|
+
}],
|
|
20135
|
+
state: [{
|
|
20136
|
+
kind: "boolean",
|
|
20137
|
+
field: "enabled",
|
|
20138
|
+
label: t("Do not disturb", "Non disturbare"),
|
|
20139
|
+
whenTrue: t("When Do not disturb turns on on {device}", "Quando {device} attiva Non disturbare"),
|
|
20140
|
+
whenFalse: t("When Do not disturb turns off on {device}", "Quando {device} disattiva Non disturbare"),
|
|
20141
|
+
icon: "bell-off"
|
|
20142
|
+
}]
|
|
20143
|
+
},
|
|
20045
20144
|
update: {
|
|
20046
20145
|
scope: "device",
|
|
20047
20146
|
noun: t("Firmware update", "Aggiornamento firmware"),
|
|
@@ -42252,14 +42351,16 @@ var DeviceIsLeafSchema = object({
|
|
|
42252
42351
|
});
|
|
42253
42352
|
/**
|
|
42254
42353
|
* True when the camera currently has a PARKED object matching `subjects` in at
|
|
42255
|
-
* least one of `zones
|
|
42354
|
+
* least one of `zones` (`minCount` of them, default one). Reads the zone-analytics snapshot through the same
|
|
42256
42355
|
* mirror as every other state leaf, so a dropped event never decides it (D49).
|
|
42257
42356
|
*/
|
|
42258
42357
|
var StationaryPresentLeafSchema = object({
|
|
42259
42358
|
kind: literal("stationary-present"),
|
|
42260
42359
|
deviceId: number().int().nonnegative(),
|
|
42261
42360
|
subjects: array(StationarySubjectSchema).min(1).optional(),
|
|
42262
|
-
zones: array(string().min(1)).min(1).optional()
|
|
42361
|
+
zones: array(string().min(1)).min(1).optional(),
|
|
42362
|
+
/** How many matching parked objects must be there; absent means one. */
|
|
42363
|
+
minCount: number().int().positive().optional()
|
|
42263
42364
|
});
|
|
42264
42365
|
/**
|
|
42265
42366
|
* The escape hatch: the bounded expression engine over named device bindings.
|
|
@@ -42771,6 +42872,28 @@ function convertLegacyRecipe(legacy) {
|
|
|
42771
42872
|
* it. The output type is always the new one.
|
|
42772
42873
|
*/
|
|
42773
42874
|
var AutomationRecipeSchema = union([CurrentAutomationRecipeSchema, LegacyAutomationRecipeSchema.transform(convertLegacyRecipe)]);
|
|
42875
|
+
var DETECTION_DESCRIPTIONS = {
|
|
42876
|
+
deviceId: "the camera that saw it",
|
|
42877
|
+
className: "what it saw",
|
|
42878
|
+
trackId: "the track",
|
|
42879
|
+
score: "how sure the detector was",
|
|
42880
|
+
label: "the label it matched (a name, a plate), empty when none"
|
|
42881
|
+
};
|
|
42882
|
+
var STATIONARY_DESCRIPTIONS = {
|
|
42883
|
+
deviceId: "the camera that saw it",
|
|
42884
|
+
className: "what it saw",
|
|
42885
|
+
zones: "the zones it is in",
|
|
42886
|
+
phase: "appeared or departed",
|
|
42887
|
+
entryId: "the stopped object"
|
|
42888
|
+
};
|
|
42889
|
+
function describe$1(descriptions) {
|
|
42890
|
+
return Object.entries(descriptions).map(([name, description]) => ({
|
|
42891
|
+
name,
|
|
42892
|
+
description
|
|
42893
|
+
}));
|
|
42894
|
+
}
|
|
42895
|
+
describe$1(DETECTION_DESCRIPTIONS);
|
|
42896
|
+
describe$1(STATIONARY_DESCRIPTIONS);
|
|
42774
42897
|
new Set(Object.values(COCO_TO_MACRO.mapping));
|
|
42775
42898
|
/**
|
|
42776
42899
|
* Schedulers (D983) — an entity that performs actions over the day.
|
|
@@ -51558,6 +51681,45 @@ var deviceProviderCapability = {
|
|
|
51558
51681
|
}
|
|
51559
51682
|
};
|
|
51560
51683
|
/**
|
|
51684
|
+
* What the passive listener of `local-network` saw on the wire, before any
|
|
51685
|
+
* provider classified it. Device-manager turns an observation into the hits
|
|
51686
|
+
* of the providers whose declared discovery modes it matches.
|
|
51687
|
+
*/
|
|
51688
|
+
var DiscoveryObservationSchema = discriminatedUnion("kind", [object({
|
|
51689
|
+
kind: literal("mdns"),
|
|
51690
|
+
/** Normalised DNS-SD service type, e.g. `_esphomelib._tcp`. */
|
|
51691
|
+
serviceType: string(),
|
|
51692
|
+
instance: string(),
|
|
51693
|
+
host: string(),
|
|
51694
|
+
/** The A record address when the announcement carried one. */
|
|
51695
|
+
address: string().nullable(),
|
|
51696
|
+
port: number().int(),
|
|
51697
|
+
txt: record(string(), string())
|
|
51698
|
+
}), object({
|
|
51699
|
+
kind: literal("ssdp"),
|
|
51700
|
+
/** Sender address of the datagram. */
|
|
51701
|
+
host: string(),
|
|
51702
|
+
port: number().int(),
|
|
51703
|
+
/** `NT` of a NOTIFY, `ST` of a search response. */
|
|
51704
|
+
target: string(),
|
|
51705
|
+
headers: record(string(), string())
|
|
51706
|
+
})]);
|
|
51707
|
+
object({
|
|
51708
|
+
addonId: string(),
|
|
51709
|
+
candidate: DiscoveryCandidateSchema,
|
|
51710
|
+
firstSeenAt: number(),
|
|
51711
|
+
lastSeenAt: number(),
|
|
51712
|
+
dismissed: boolean()
|
|
51713
|
+
});
|
|
51714
|
+
var DiscoveryProposalSchema = object({
|
|
51715
|
+
id: string(),
|
|
51716
|
+
addonId: string(),
|
|
51717
|
+
candidate: DiscoveryCandidateSchema,
|
|
51718
|
+
firstSeenAt: number(),
|
|
51719
|
+
lastSeenAt: number(),
|
|
51720
|
+
dismissed: boolean()
|
|
51721
|
+
});
|
|
51722
|
+
/**
|
|
51561
51723
|
* Device Manager capability — hub-side singleton that unifies device persistence,
|
|
51562
51724
|
* live registry access, and all management operations into a single tRPC surface.
|
|
51563
51725
|
*
|
|
@@ -52286,6 +52448,19 @@ method(object({
|
|
|
52286
52448
|
}), object({ candidates: array(DiscoveryCandidateSchema).readonly() }), {
|
|
52287
52449
|
kind: "mutation",
|
|
52288
52450
|
auth: "admin"
|
|
52451
|
+
}), method(object({}), object({ proposals: array(DiscoveryProposalSchema).readonly() }), { auth: "admin" }), method(object({ id: string() }), object({ dismissed: boolean() }), {
|
|
52452
|
+
kind: "mutation",
|
|
52453
|
+
auth: "admin"
|
|
52454
|
+
}), method(object({ observations: array(DiscoveryObservationSchema).max(512) }), object({ proposed: number().int() }), {
|
|
52455
|
+
kind: "mutation",
|
|
52456
|
+
auth: "admin"
|
|
52457
|
+
}), method(object({}), object({
|
|
52458
|
+
providers: number().int(),
|
|
52459
|
+
proposed: number().int()
|
|
52460
|
+
}), {
|
|
52461
|
+
kind: "mutation",
|
|
52462
|
+
auth: "admin",
|
|
52463
|
+
timeoutMs: 12e4
|
|
52289
52464
|
}), method(object({ addonId: string() }), object({ deviceType: _enum(DeviceType).nullable() }), { auth: "admin" }), method(object({ addonId: string() }), unknown(), { auth: "admin" }), method(object({
|
|
52290
52465
|
deviceId: number(),
|
|
52291
52466
|
key: string(),
|
|
@@ -53735,6 +53910,49 @@ method(_void(), paletteResultSchema, {
|
|
|
53735
53910
|
kind: "mutation",
|
|
53736
53911
|
auth: "admin"
|
|
53737
53912
|
});
|
|
53913
|
+
/**
|
|
53914
|
+
* do-not-disturb - whether a speaker or display holds back its own sounds
|
|
53915
|
+
* (announcements, notifications, alarms) until the operator lets it speak again.
|
|
53916
|
+
*
|
|
53917
|
+
* It is NOT part of `media-player`: a player is about what it plays and how
|
|
53918
|
+
* loud, while Do Not Disturb is a household switch the vendor keeps per device.
|
|
53919
|
+
* `enabled` is null when the vendor has not said (never a guess of `false`).
|
|
53920
|
+
*/
|
|
53921
|
+
var DoNotDisturbStatusSchema = object({
|
|
53922
|
+
/** True while Do Not Disturb is on; null when unknown. */
|
|
53923
|
+
enabled: boolean().nullable().meta({ label: "Do not disturb" }),
|
|
53924
|
+
/** Ms epoch of the last read or write that set `enabled`. */
|
|
53925
|
+
lastChangedAt: number()
|
|
53926
|
+
});
|
|
53927
|
+
var doNotDisturbCapability = {
|
|
53928
|
+
name: "do-not-disturb",
|
|
53929
|
+
scope: "device",
|
|
53930
|
+
deviceNative: true,
|
|
53931
|
+
mode: "singleton",
|
|
53932
|
+
deviceTypes: [DeviceType.MediaPlayer],
|
|
53933
|
+
methods: { setEnabled: method(object({
|
|
53934
|
+
deviceId: number().int(),
|
|
53935
|
+
enabled: boolean()
|
|
53936
|
+
}), _void(), {
|
|
53937
|
+
kind: "mutation",
|
|
53938
|
+
auth: "protected"
|
|
53939
|
+
}) },
|
|
53940
|
+
status: {
|
|
53941
|
+
schema: DoNotDisturbStatusSchema,
|
|
53942
|
+
kind: "push"
|
|
53943
|
+
},
|
|
53944
|
+
runtimeState: DoNotDisturbStatusSchema,
|
|
53945
|
+
/**
|
|
53946
|
+
* Runtime-state durability: **session** - the vendor owns the switch and the
|
|
53947
|
+
* device re-reads it on the next poll, so a restored value would only be stale.
|
|
53948
|
+
*
|
|
53949
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
53950
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
53951
|
+
*/
|
|
53952
|
+
durability: "session",
|
|
53953
|
+
/** History (D850): when Do Not Disturb was switched on and off. */
|
|
53954
|
+
history: { fields: { enabled: { kind: "boolean" } } }
|
|
53955
|
+
};
|
|
53738
53956
|
/** Pulse override: a rising edge advances `lastPressedAt` and the press count. */
|
|
53739
53957
|
var doorbellCustomize = {
|
|
53740
53958
|
version: 1,
|
|
@@ -56336,6 +56554,14 @@ var LlmGenerateBaseInputSchema = object({
|
|
|
56336
56554
|
topP: number().min(0).max(1).optional(),
|
|
56337
56555
|
/** Per-call override of the profile default (top-k sampling). */
|
|
56338
56556
|
topK: number().int().positive().optional(),
|
|
56557
|
+
/** Per-call override of `profile.reasoningEffort`. Sent only to a kind whose
|
|
56558
|
+
* descriptor offers the field; a kind that does not never sends it. */
|
|
56559
|
+
reasoningEffort: _enum([
|
|
56560
|
+
"off",
|
|
56561
|
+
"low",
|
|
56562
|
+
"medium",
|
|
56563
|
+
"high"
|
|
56564
|
+
]).optional(),
|
|
56339
56565
|
/** Per-call override of `profile.timeoutMs` — the total generation bound. */
|
|
56340
56566
|
timeoutMs: number().int().positive().optional(),
|
|
56341
56567
|
/** Per-call override; beats both the consumer table and the profile. */
|
|
@@ -56627,7 +56853,10 @@ var LlmProfileKindSchema = string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/, "a kind i
|
|
|
56627
56853
|
var LlmModelFeaturesSchema = object({
|
|
56628
56854
|
vision: boolean(),
|
|
56629
56855
|
tools: boolean(),
|
|
56630
|
-
streaming: boolean()
|
|
56856
|
+
streaming: boolean(),
|
|
56857
|
+
/** Whether the model thinks before it answers. `null` = the endpoint does not
|
|
56858
|
+
* say; an editor then still offers the switch (unknown is not "no"). */
|
|
56859
|
+
reasoning: boolean().nullable().optional()
|
|
56631
56860
|
});
|
|
56632
56861
|
/** One model a provider offers. `features` overrides the kind's defaults, per field. */
|
|
56633
56862
|
var LlmModelInfoSchema = object({
|
|
@@ -74837,9 +75066,17 @@ var ServerUpdateActionResultSchema = object({
|
|
|
74837
75066
|
*/
|
|
74838
75067
|
requiredAddonUpdates: array(RequiredAddonUpdateSchema).optional()
|
|
74839
75068
|
});
|
|
74840
|
-
var LaunchOverridesSchema = object({
|
|
74841
|
-
/** The persisted heap ceiling in MB, or `null` when none is set. */
|
|
74842
|
-
heapMb: number().int().nullable()
|
|
75069
|
+
var LaunchOverridesSchema = object({
|
|
75070
|
+
/** The persisted heap ceiling in MB, or `null` when none is set. */
|
|
75071
|
+
heapMb: number().int().nullable(),
|
|
75072
|
+
/** The persisted hub-main RSS budget in MB, or `null` when none is set. */
|
|
75073
|
+
rssBudgetMb: number().int().nullable()
|
|
75074
|
+
});
|
|
75075
|
+
var SetLaunchOverridesInputSchema = object({
|
|
75076
|
+
heapMb: number().int().min(512).max(65536).nullable(),
|
|
75077
|
+
/** Omitted keeps the stored budget; `null` clears it. */
|
|
75078
|
+
rssBudgetMb: number().int().min(512).max(65536).nullable().optional()
|
|
75079
|
+
});
|
|
74843
75080
|
var SetLaunchOverridesResultSchema = LaunchOverridesSchema.extend({
|
|
74844
75081
|
/** Always true: the override is read at launch, not by the running process. */
|
|
74845
75082
|
restartRequired: boolean() });
|
|
@@ -74868,7 +75105,7 @@ method(_void(), ServerPackageStatusSchema, { auth: "admin" }), method(_void(), S
|
|
|
74868
75105
|
}), method(_void(), ServerUpdateActionResultSchema, {
|
|
74869
75106
|
kind: "mutation",
|
|
74870
75107
|
auth: "admin"
|
|
74871
|
-
}), method(_void(), LaunchOverridesSchema, { auth: "admin" }), method(
|
|
75108
|
+
}), method(_void(), LaunchOverridesSchema, { auth: "admin" }), method(SetLaunchOverridesInputSchema, SetLaunchOverridesResultSchema, {
|
|
74872
75109
|
kind: "mutation",
|
|
74873
75110
|
auth: "admin"
|
|
74874
75111
|
});
|
|
@@ -76571,6 +76808,40 @@ var LoggingSettingsStateSchema = object({
|
|
|
76571
76808
|
opsLogRetentionDays: number().int().min(0),
|
|
76572
76809
|
persisted: boolean()
|
|
76573
76810
|
});
|
|
76811
|
+
/**
|
|
76812
|
+
* Debug WATCH — a short, per-device window over `debug.<channel>` lines.
|
|
76813
|
+
*
|
|
76814
|
+
* `start` opens (or re-arms) a 10 minute window; `rearm` extends a LIVE one
|
|
76815
|
+
* and never revives a lapsed one; `stop` closes it; `list` only reads. No
|
|
76816
|
+
* chain of re-arms outlives 60 minutes from the first start. The hub holds the
|
|
76817
|
+
* watches in memory and pushes the interest to every node, so a watch lapses
|
|
76818
|
+
* by itself and survives nothing — a restart is a stop.
|
|
76819
|
+
*/
|
|
76820
|
+
var DebugWatchInputSchema = object({
|
|
76821
|
+
action: _enum([
|
|
76822
|
+
"list",
|
|
76823
|
+
"start",
|
|
76824
|
+
"rearm",
|
|
76825
|
+
"stop"
|
|
76826
|
+
]),
|
|
76827
|
+
/** Full channel names, `debug.<channel>`, each declared with `kind: 'debug'`. */
|
|
76828
|
+
channels: array(string().min(1)).readonly().default([]),
|
|
76829
|
+
/** Numeric device ids. Required (non-empty) for `start`. */
|
|
76830
|
+
deviceIds: array(number().int()).readonly().default([])
|
|
76831
|
+
});
|
|
76832
|
+
var DebugWatchStateSchema = object({
|
|
76833
|
+
channel: string(),
|
|
76834
|
+
deviceIds: array(number().int()).readonly(),
|
|
76835
|
+
startedAtMs: number(),
|
|
76836
|
+
untilMs: number(),
|
|
76837
|
+
capAtMs: number()
|
|
76838
|
+
});
|
|
76839
|
+
var DebugWatchResultSchema = object({
|
|
76840
|
+
nowMs: number(),
|
|
76841
|
+
watches: array(DebugWatchStateSchema).readonly(),
|
|
76842
|
+
/** Channels a `rearm` found already lapsed: nothing was revived. */
|
|
76843
|
+
lapsed: array(string()).readonly()
|
|
76844
|
+
});
|
|
76574
76845
|
method(_void(), SystemInfoSchema), method(_void(), HealthStatusSchema), method(_void(), FeatureManifestSchema), method(_void(), array(NetworkAddressSchema).readonly()), method(_void(), unknown().nullable(), { auth: "admin" }), method(record(string(), unknown()), _null(), {
|
|
76575
76846
|
kind: "mutation",
|
|
76576
76847
|
auth: "admin"
|
|
@@ -76586,6 +76857,9 @@ method(_void(), SystemInfoSchema), method(_void(), HealthStatusSchema), method(_
|
|
|
76586
76857
|
}), method(_void(), RequestCensusStatusSchema, { auth: "admin" }), method(_void(), array(ReportedLoadContributionSchema).readonly(), { auth: "admin" }), method(_void(), array(ReportedFailureContributionSchema).readonly(), { auth: "admin" }), method(GetLoggingSettingsInputSchema, LoggingSettingsStateSchema, { auth: "admin" }), method(SetLoggingSettingsInputSchema, LoggingSettingsStateSchema, {
|
|
76587
76858
|
kind: "mutation",
|
|
76588
76859
|
auth: "admin"
|
|
76860
|
+
}), method(DebugWatchInputSchema, DebugWatchResultSchema, {
|
|
76861
|
+
kind: "mutation",
|
|
76862
|
+
auth: "admin"
|
|
76589
76863
|
});
|
|
76590
76864
|
/**
|
|
76591
76865
|
* Tamper / case-open detection sensor. Drives Home Assistant
|
|
@@ -80137,6 +80411,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
80137
80411
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
80138
80412
|
deviceStatus: deviceStatusCapability,
|
|
80139
80413
|
dishwasher: dishwasherCapability,
|
|
80414
|
+
doNotDisturb: doNotDisturbCapability,
|
|
80140
80415
|
doorbell: doorbellCapability,
|
|
80141
80416
|
enumSensor: enumSensorCapability,
|
|
80142
80417
|
eventEmitter: eventEmitterCapability,
|
|
@@ -83694,6 +83969,13 @@ Object.freeze({
|
|
|
83694
83969
|
access: "view",
|
|
83695
83970
|
role: "admin"
|
|
83696
83971
|
},
|
|
83972
|
+
"deviceManager.dismissDiscoveryProposal": {
|
|
83973
|
+
capName: "device-manager",
|
|
83974
|
+
capScope: "system",
|
|
83975
|
+
addonId: null,
|
|
83976
|
+
access: "create",
|
|
83977
|
+
role: "admin"
|
|
83978
|
+
},
|
|
83697
83979
|
"deviceManager.enable": {
|
|
83698
83980
|
capName: "device-manager",
|
|
83699
83981
|
capScope: "system",
|
|
@@ -83876,6 +84158,13 @@ Object.freeze({
|
|
|
83876
84158
|
access: "view",
|
|
83877
84159
|
role: "viewer"
|
|
83878
84160
|
},
|
|
84161
|
+
"deviceManager.listDiscoveryProposals": {
|
|
84162
|
+
capName: "device-manager",
|
|
84163
|
+
capScope: "system",
|
|
84164
|
+
addonId: null,
|
|
84165
|
+
access: "view",
|
|
84166
|
+
role: "admin"
|
|
84167
|
+
},
|
|
83879
84168
|
"deviceManager.listLocationDescriptions": {
|
|
83880
84169
|
capName: "device-manager",
|
|
83881
84170
|
capScope: "system",
|
|
@@ -84030,6 +84319,13 @@ Object.freeze({
|
|
|
84030
84319
|
access: "create",
|
|
84031
84320
|
role: "admin"
|
|
84032
84321
|
},
|
|
84322
|
+
"deviceManager.reportDiscoveryObservations": {
|
|
84323
|
+
capName: "device-manager",
|
|
84324
|
+
capScope: "system",
|
|
84325
|
+
addonId: null,
|
|
84326
|
+
access: "create",
|
|
84327
|
+
role: "admin"
|
|
84328
|
+
},
|
|
84033
84329
|
"deviceManager.runDeviceAction": {
|
|
84034
84330
|
capName: "device-manager",
|
|
84035
84331
|
capScope: "system",
|
|
@@ -84037,6 +84333,13 @@ Object.freeze({
|
|
|
84037
84333
|
access: "create",
|
|
84038
84334
|
role: "admin"
|
|
84039
84335
|
},
|
|
84336
|
+
"deviceManager.runDiscoverySweep": {
|
|
84337
|
+
capName: "device-manager",
|
|
84338
|
+
capScope: "system",
|
|
84339
|
+
addonId: null,
|
|
84340
|
+
access: "create",
|
|
84341
|
+
role: "admin"
|
|
84342
|
+
},
|
|
84040
84343
|
"deviceManager.setChildLayout": {
|
|
84041
84344
|
capName: "device-manager",
|
|
84042
84345
|
capScope: "system",
|
|
@@ -84590,6 +84893,20 @@ Object.freeze({
|
|
|
84590
84893
|
access: "create",
|
|
84591
84894
|
role: "admin"
|
|
84592
84895
|
},
|
|
84896
|
+
"doNotDisturb.getStatus": {
|
|
84897
|
+
capName: "do-not-disturb",
|
|
84898
|
+
capScope: "device",
|
|
84899
|
+
addonId: null,
|
|
84900
|
+
access: "view",
|
|
84901
|
+
role: "viewer"
|
|
84902
|
+
},
|
|
84903
|
+
"doNotDisturb.setEnabled": {
|
|
84904
|
+
capName: "do-not-disturb",
|
|
84905
|
+
capScope: "device",
|
|
84906
|
+
addonId: null,
|
|
84907
|
+
access: "create",
|
|
84908
|
+
role: "viewer"
|
|
84909
|
+
},
|
|
84593
84910
|
"doorbell.getStatus": {
|
|
84594
84911
|
capName: "doorbell",
|
|
84595
84912
|
capScope: "device",
|
|
@@ -90610,6 +90927,13 @@ Object.freeze({
|
|
|
90610
90927
|
access: "create",
|
|
90611
90928
|
role: "viewer"
|
|
90612
90929
|
},
|
|
90930
|
+
"system.debugWatch": {
|
|
90931
|
+
capName: "system",
|
|
90932
|
+
capScope: "system",
|
|
90933
|
+
addonId: null,
|
|
90934
|
+
access: "create",
|
|
90935
|
+
role: "admin"
|
|
90936
|
+
},
|
|
90613
90937
|
"system.detectSiteLocation": {
|
|
90614
90938
|
capName: "system",
|
|
90615
90939
|
capScope: "system",
|
|
@@ -92789,6 +93113,16 @@ Object.freeze({
|
|
|
92789
93113
|
form: "single",
|
|
92790
93114
|
optional: false
|
|
92791
93115
|
}],
|
|
93116
|
+
"doNotDisturb.getStatus": [{
|
|
93117
|
+
name: "deviceId",
|
|
93118
|
+
form: "single",
|
|
93119
|
+
optional: false
|
|
93120
|
+
}],
|
|
93121
|
+
"doNotDisturb.setEnabled": [{
|
|
93122
|
+
name: "deviceId",
|
|
93123
|
+
form: "single",
|
|
93124
|
+
optional: false
|
|
93125
|
+
}],
|
|
92792
93126
|
"doorbell.getStatus": [{
|
|
92793
93127
|
name: "deviceId",
|
|
92794
93128
|
form: "single",
|
|
@@ -94529,6 +94863,11 @@ Object.freeze({
|
|
|
94529
94863
|
form: "single",
|
|
94530
94864
|
optional: false
|
|
94531
94865
|
}],
|
|
94866
|
+
"system.debugWatch": [{
|
|
94867
|
+
name: "deviceIds",
|
|
94868
|
+
form: "array",
|
|
94869
|
+
optional: true
|
|
94870
|
+
}],
|
|
94532
94871
|
"tamper.getStatus": [{
|
|
94533
94872
|
name: "deviceId",
|
|
94534
94873
|
form: "single",
|
|
@@ -96695,4 +97034,4 @@ async function listHomeAssistantBrokers(query) {
|
|
|
96695
97034
|
return (await query({})).filter((broker) => broker.kind === HA_BROKER_KIND);
|
|
96696
97035
|
}
|
|
96697
97036
|
//#endregion
|
|
96698
|
-
export { humiditySensorCapability as $,
|
|
97037
|
+
export { humiditySensorCapability as $, discriminatedUnion as $t, brokerCapability as A, tamperCapability as At, consumableKindOf as B, BaseAddon as Bt, alarmPanelCapability as C, runningFromMediaPlayer as Ct, bestLocationMatch as D, sendToExportedTarget as Dt, batteryCapability as E, scriptRunnerCapability as Et, carbonMonoxideCapability as F, vacuumControlCapability as Ft, deviceAdoptionCapability as G, defineEntryKind as Gt, controlCapability as H, baseUnitOf as Ht, climateControlCapability as I, valveCapability as It, eventEmitterCapability as J, isReadingQuantity as Jt, deviceExportCapability as K, defineRecordKinds as Kt, colorCapability as L, vibrationCapability as Lt, buildDeviceAdminUrl as M, tryConvertDelta as Mt, buttonCapability as N, tryConvertUnit as Nt, binaryCapability as O, smokeCapability as Ot, calendarSourceCapability as P, updateCapability as Pt, humidifierCapability as Q, boolean as Qt, connectivityCapability as R, waterHeaterCapability as Rt, airQualitySensorCapability as S, runningFromLawnMower as St, automationControlCapability as T, runningStateCapability as Tt, coverCapability as U, createEvent as Ut, contactCapability as V, RecordSecretUnavailableError as Vt, deviceAdminLinkCapability as W, defineAddonMigrations as Wt, floodCapability as X, _enum as Xt, fanControlCapability as Y, nodePin as Yt, gasCapability as Z, array as Zt, PLUG_APPLIANCE_TYPES as _, pruneDeletedEntities as _t, BaseDevice as a, union as an, motionCapability as at, accessoriesCapability as b, resolveAttachmentUrls as bt, COCO_TO_MACRO as c, DeviceFeature as cn, notifierCapability as ct, ConsumableItemSchema as d, errMsg as dn, parseAdminBase as dt, literal as en, imageCapability as et, ConsumableStatusSchema as f, EventCategory as fn, powerMeterCapability as ft, MediaPlayerRepeatSchema as g, pressureSensorCapability as gt, HvacModeSchema as h, presenceCapability as ht, AlarmArmModeSchema as i, string as in, mediaPlayerCapability as it, buildAddonRouteProvider as j, temperatureSensorCapability as jt, brightnessCapability as k, switchCapability as kt, CameraSwitchIdSchema as l, DeviceRole as ln, numericSensorCapability as lt, FanDirectionSchema as m, prepareNotification as mt, HA_PROVIDER_ADDON_ID as n, object as nn, lawnMowerControlCapability as nt, BaseDeviceProvider as o, unknown as on, normalizeUnit as ot, EnumSensorDateTimeFormatSchema as p, preconditionOf as pt, enumSensorCapability as q, entryBody as qt, listHomeAssistantBrokers as r, record as rn, lockControlCapability as rt, CAMERA_SWITCH_ORDER as s, url as sn, notificationOutputCapability as st, HA_BROKER_KIND as t, number as tn, ingestReading as tt, ConsumableFormSchema as u, DeviceType as un, oauthIntegrationCapability as ut, RUNNING_STATE_COLD as v, publicEndpointReaderFrom as vt, ambientLightSensorCapability as w, runningFromVacuumState as wt, addonRoutesCapability as x, runExportedAction as xt, TargetSchema as y, quantityFromUnit as yt, consumableFormOf as z, weatherCapability as zt };
|