@camstack/addon-provider-homeassistant 1.2.641 → 1.2.642
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 +6 -0
- package/dist/addon.js +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/{ha-broker-source-D3_ZXq6l.js → ha-broker-source-B6xSmZ6H.js} +51 -4
- package/dist/{ha-broker-source-vytM8SXk.mjs → ha-broker-source-D9_yzN2c.mjs} +51 -4
- package/dist/ha-export/ha-export.addon.js +13 -3
- package/dist/ha-export/ha-export.addon.mjs +13 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.2.642] - 2026-10-31
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- A lock reporting door-open is published to Home Assistant as open.
|
|
15
|
+
|
|
10
16
|
## [1.2.641] - 2026-10-31
|
|
11
17
|
|
|
12
18
|
### Changed
|
package/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_ha_broker_source = require("./ha-broker-source-
|
|
2
|
+
const require_ha_broker_source = require("./ha-broker-source-B6xSmZ6H.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let node_zlib = require("node:zlib");
|
|
5
5
|
//#region src/ha-admin-link.ts
|
package/dist/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as humiditySensorCapability, $t as array, A as brokerCapability, At as temperatureSensorCapability, Bt as DeviceRole, C as alarmPanelCapability, Ct as runningFromVacuumState, D as bestLocationMatch, Dt as smokeCapability, E as batteryCapability, F as carbonMonoxideCapability, Ft as valveCapability, G as deviceAdoptionCapability, Gt as baseUnitOf, H as controlCapability, Ht as errMsg, I as climateControlCapability, It as vibrationCapability, J as eventEmitterCapability, Jt as defineRecordKinds, Kt as createEvent, L as colorCapability, Lt as waterHeaterCapability, M as buildDeviceAdminUrl, Mt as tryConvertUnit, N as buttonCapability, Nt as updateCapability, O as binaryCapability, Ot as switchCapability, P as calendarSourceCapability, Pt as vacuumControlCapability, Q as humidifierCapability, Qt as _enum, R as connectivityCapability, Rt as weatherCapability, S as airQualitySensorCapability, St as runningFromMediaPlayer, T as automationControlCapability, Tt as scriptRunnerCapability, U as coverCapability, V as contactCapability, Vt as DeviceType, W as deviceAdminLinkCapability, Wt as RecordSecretUnavailableError, X as floodCapability, Y as fanControlCapability, Yt as entryBody, Z as gasCapability, _t as publicEndpointReaderFrom, a as BaseDevice, an as record, at as motionCapability, b as accessoriesCapability, cn as unknown, ct as notifierCapability, dt as parseAdminBase, en as boolean, et as imageCapability, ft as powerMeterCapability, ht as pressureSensorCapability, in as object, it as mediaPlayerCapability, j as buildAddonRouteProvider, jt as tryConvertDelta, k as brightnessCapability, kt as tamperCapability, ln as url, lt as numericSensorCapability, mt as presenceCapability, nn as literal, nt as lawnMowerControlCapability, o as BaseDeviceProvider, on as string, ot as normalizeUnit, p as EnumSensorDateTimeFormatSchema, pt as prepareNotification, q as enumSensorCapability, qt as defineEntryKind, rn as number, rt as lockControlCapability, sn as union, st as notificationOutputCapability, t as HA_BROKER_KIND, tn as discriminatedUnion, tt as ingestReading, un as EventCategory, v as RUNNING_STATE_COLD, vt as quantityFromUnit, w as ambientLightSensorCapability, wt as runningStateCapability, x as addonRoutesCapability, xt as runningFromLawnMower, y as TargetSchema, yt as resolveAttachmentUrls, zt as DeviceFeature } from "./ha-broker-source-
|
|
1
|
+
import { $ as humiditySensorCapability, $t as array, A as brokerCapability, At as temperatureSensorCapability, Bt as DeviceRole, C as alarmPanelCapability, Ct as runningFromVacuumState, D as bestLocationMatch, Dt as smokeCapability, E as batteryCapability, F as carbonMonoxideCapability, Ft as valveCapability, G as deviceAdoptionCapability, Gt as baseUnitOf, H as controlCapability, Ht as errMsg, I as climateControlCapability, It as vibrationCapability, J as eventEmitterCapability, Jt as defineRecordKinds, Kt as createEvent, L as colorCapability, Lt as waterHeaterCapability, M as buildDeviceAdminUrl, Mt as tryConvertUnit, N as buttonCapability, Nt as updateCapability, O as binaryCapability, Ot as switchCapability, P as calendarSourceCapability, Pt as vacuumControlCapability, Q as humidifierCapability, Qt as _enum, R as connectivityCapability, Rt as weatherCapability, S as airQualitySensorCapability, St as runningFromMediaPlayer, T as automationControlCapability, Tt as scriptRunnerCapability, U as coverCapability, V as contactCapability, Vt as DeviceType, W as deviceAdminLinkCapability, Wt as RecordSecretUnavailableError, X as floodCapability, Y as fanControlCapability, Yt as entryBody, Z as gasCapability, _t as publicEndpointReaderFrom, a as BaseDevice, an as record, at as motionCapability, b as accessoriesCapability, cn as unknown, ct as notifierCapability, dt as parseAdminBase, en as boolean, et as imageCapability, ft as powerMeterCapability, ht as pressureSensorCapability, in as object, it as mediaPlayerCapability, j as buildAddonRouteProvider, jt as tryConvertDelta, k as brightnessCapability, kt as tamperCapability, ln as url, lt as numericSensorCapability, mt as presenceCapability, nn as literal, nt as lawnMowerControlCapability, o as BaseDeviceProvider, on as string, ot as normalizeUnit, p as EnumSensorDateTimeFormatSchema, pt as prepareNotification, q as enumSensorCapability, qt as defineEntryKind, rn as number, rt as lockControlCapability, sn as union, st as notificationOutputCapability, t as HA_BROKER_KIND, tn as discriminatedUnion, tt as ingestReading, un as EventCategory, v as RUNNING_STATE_COLD, vt as quantityFromUnit, w as ambientLightSensorCapability, wt as runningStateCapability, x as addonRoutesCapability, xt as runningFromLawnMower, y as TargetSchema, yt as resolveAttachmentUrls, zt as DeviceFeature } from "./ha-broker-source-D9_yzN2c.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
|
|
4
4
|
//#region src/ha-admin-link.ts
|
|
@@ -5588,7 +5588,7 @@ var ZodIssueCode = {
|
|
|
5588
5588
|
var ZodFirstPartyTypeKind;
|
|
5589
5589
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5590
5590
|
//#endregion
|
|
5591
|
-
//#region ../types/dist/sleep-
|
|
5591
|
+
//#region ../types/dist/sleep-SX9bkW3_.mjs
|
|
5592
5592
|
/**
|
|
5593
5593
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5594
5594
|
* window to float samples (D455).
|
|
@@ -10227,7 +10227,8 @@ Object.freeze({
|
|
|
10227
10227
|
"unlocked",
|
|
10228
10228
|
"locking",
|
|
10229
10229
|
"unlocking",
|
|
10230
|
-
"jammed"
|
|
10230
|
+
"jammed",
|
|
10231
|
+
"door-open"
|
|
10231
10232
|
]
|
|
10232
10233
|
}],
|
|
10233
10234
|
"media-player": [
|
|
@@ -16798,6 +16799,11 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
16798
16799
|
value: "jammed",
|
|
16799
16800
|
label: t("Jammed", "Inceppata"),
|
|
16800
16801
|
phrase: t("When {device} jams", "Quando {device} si inceppa")
|
|
16802
|
+
},
|
|
16803
|
+
{
|
|
16804
|
+
value: "door-open",
|
|
16805
|
+
label: t("Door open", "Porta aperta"),
|
|
16806
|
+
phrase: t("When the door of {device} opens", "Quando la porta di {device} si apre")
|
|
16801
16807
|
}
|
|
16802
16808
|
],
|
|
16803
16809
|
icon: "lock"
|
|
@@ -45822,6 +45828,7 @@ method(object({
|
|
|
45822
45828
|
kind: "mutation",
|
|
45823
45829
|
auth: "admin"
|
|
45824
45830
|
}), method(object({ blockIds: array(string()) }), object({ states: array(CompositionBlockStateSchema) }), { auth: "admin" });
|
|
45831
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Gateway, DeviceType.Camera, DeviceType.Lock, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
45825
45832
|
var NUMBER = {
|
|
45826
45833
|
kind: "fixed",
|
|
45827
45834
|
result: ["number"]
|
|
@@ -69241,6 +69248,8 @@ var IntegrationWithStateSchema = object({
|
|
|
69241
69248
|
name: string(),
|
|
69242
69249
|
enabled: boolean(),
|
|
69243
69250
|
info: record(string(), unknown()).readonly(),
|
|
69251
|
+
/** The discovery candidate this integration was set up from (D984). */
|
|
69252
|
+
originStableId: string().optional(),
|
|
69244
69253
|
createdAt: number(),
|
|
69245
69254
|
updatedAt: number(),
|
|
69246
69255
|
processState: string()
|
|
@@ -69251,6 +69260,8 @@ var IntegrationLiteSchema = object({
|
|
|
69251
69260
|
name: string(),
|
|
69252
69261
|
enabled: boolean(),
|
|
69253
69262
|
info: record(string(), unknown()).readonly(),
|
|
69263
|
+
/** The discovery candidate this integration was set up from (D984). */
|
|
69264
|
+
originStableId: string().optional(),
|
|
69254
69265
|
createdAt: number(),
|
|
69255
69266
|
updatedAt: number()
|
|
69256
69267
|
});
|
|
@@ -69348,6 +69359,8 @@ var CreateIntegrationInputSchema = object({
|
|
|
69348
69359
|
name: string(),
|
|
69349
69360
|
enabled: boolean().optional(),
|
|
69350
69361
|
info: record(string(), unknown()).optional(),
|
|
69362
|
+
/** `stableId` of the discovery candidate the form was seeded from (D984). */
|
|
69363
|
+
originStableId: string().optional(),
|
|
69351
69364
|
settings: record(string(), unknown()).optional(),
|
|
69352
69365
|
/** Keys of `settings` the form's schema declares secret (by type) — kept in
|
|
69353
69366
|
* the keychain, not the table (D787). */
|
|
@@ -70116,11 +70129,44 @@ var LockControlStatusSchema = object({
|
|
|
70116
70129
|
"unlocked",
|
|
70117
70130
|
"locking",
|
|
70118
70131
|
"unlocking",
|
|
70119
|
-
"jammed"
|
|
70132
|
+
"jammed",
|
|
70133
|
+
"door-open"
|
|
70120
70134
|
]),
|
|
70121
70135
|
/** Ms epoch when the slice was last updated. */
|
|
70122
70136
|
lastChangedAt: number()
|
|
70123
70137
|
});
|
|
70138
|
+
/**
|
|
70139
|
+
* "Door contact" Customize extension (D984): the ONE extension that replaces a
|
|
70140
|
+
* native field. `state` is listed in `overridable` for this target, so the
|
|
70141
|
+
* validator and the guard accept it and nothing else.
|
|
70142
|
+
*/
|
|
70143
|
+
var lockControlCustomize = {
|
|
70144
|
+
version: 1,
|
|
70145
|
+
overridable: [{
|
|
70146
|
+
path: "state",
|
|
70147
|
+
by: "door-contact"
|
|
70148
|
+
}],
|
|
70149
|
+
targets: [{
|
|
70150
|
+
id: "door-contact",
|
|
70151
|
+
cardinality: "scalar",
|
|
70152
|
+
vocabulary: {
|
|
70153
|
+
cap: "lock-control",
|
|
70154
|
+
stateField: "state"
|
|
70155
|
+
},
|
|
70156
|
+
deviceTypes: [DeviceType.Lock],
|
|
70157
|
+
apply: "replace",
|
|
70158
|
+
path: "state",
|
|
70159
|
+
override: {
|
|
70160
|
+
whenSourceTrue: "door-open",
|
|
70161
|
+
unlessNative: ["jammed"]
|
|
70162
|
+
},
|
|
70163
|
+
sources: [{
|
|
70164
|
+
kind: "binary",
|
|
70165
|
+
transforms: [{ kind: "identity" }]
|
|
70166
|
+
}],
|
|
70167
|
+
sourceReport: { status: "assignment-status" }
|
|
70168
|
+
}]
|
|
70169
|
+
};
|
|
70124
70170
|
var lockControlCapability = {
|
|
70125
70171
|
name: "lock-control",
|
|
70126
70172
|
scope: "device",
|
|
@@ -70166,6 +70212,7 @@ var lockControlCapability = {
|
|
|
70166
70212
|
* transitions.
|
|
70167
70213
|
*/
|
|
70168
70214
|
runtimeState: LockControlStatusSchema,
|
|
70215
|
+
customize: lockControlCustomize,
|
|
70169
70216
|
/**
|
|
70170
70217
|
* Runtime-state durability: **restored** — a lock left locked must still read locked.
|
|
70171
70218
|
*
|
|
@@ -78615,7 +78662,6 @@ function runningFromMediaPlayer(state, previous, fetchedAt, transitionAt) {
|
|
|
78615
78662
|
}
|
|
78616
78663
|
DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
|
|
78617
78664
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
78618
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Gateway, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
78619
78665
|
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
78620
78666
|
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
78621
78667
|
new Set(CAP_NAMES);
|
|
@@ -94446,6 +94492,7 @@ new Set([
|
|
|
94446
94492
|
"locking",
|
|
94447
94493
|
"unlocking",
|
|
94448
94494
|
"jammed",
|
|
94495
|
+
"door-open",
|
|
94449
94496
|
"on",
|
|
94450
94497
|
"off",
|
|
94451
94498
|
"home",
|
|
@@ -5587,7 +5587,7 @@ var ZodIssueCode = {
|
|
|
5587
5587
|
var ZodFirstPartyTypeKind;
|
|
5588
5588
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5589
5589
|
//#endregion
|
|
5590
|
-
//#region ../types/dist/sleep-
|
|
5590
|
+
//#region ../types/dist/sleep-SX9bkW3_.mjs
|
|
5591
5591
|
/**
|
|
5592
5592
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5593
5593
|
* window to float samples (D455).
|
|
@@ -10226,7 +10226,8 @@ Object.freeze({
|
|
|
10226
10226
|
"unlocked",
|
|
10227
10227
|
"locking",
|
|
10228
10228
|
"unlocking",
|
|
10229
|
-
"jammed"
|
|
10229
|
+
"jammed",
|
|
10230
|
+
"door-open"
|
|
10230
10231
|
]
|
|
10231
10232
|
}],
|
|
10232
10233
|
"media-player": [
|
|
@@ -16797,6 +16798,11 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
16797
16798
|
value: "jammed",
|
|
16798
16799
|
label: t("Jammed", "Inceppata"),
|
|
16799
16800
|
phrase: t("When {device} jams", "Quando {device} si inceppa")
|
|
16801
|
+
},
|
|
16802
|
+
{
|
|
16803
|
+
value: "door-open",
|
|
16804
|
+
label: t("Door open", "Porta aperta"),
|
|
16805
|
+
phrase: t("When the door of {device} opens", "Quando la porta di {device} si apre")
|
|
16800
16806
|
}
|
|
16801
16807
|
],
|
|
16802
16808
|
icon: "lock"
|
|
@@ -45821,6 +45827,7 @@ method(object({
|
|
|
45821
45827
|
kind: "mutation",
|
|
45822
45828
|
auth: "admin"
|
|
45823
45829
|
}), method(object({ blockIds: array(string()) }), object({ states: array(CompositionBlockStateSchema) }), { auth: "admin" });
|
|
45830
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Gateway, DeviceType.Camera, DeviceType.Lock, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
45824
45831
|
var NUMBER = {
|
|
45825
45832
|
kind: "fixed",
|
|
45826
45833
|
result: ["number"]
|
|
@@ -69240,6 +69247,8 @@ var IntegrationWithStateSchema = object({
|
|
|
69240
69247
|
name: string(),
|
|
69241
69248
|
enabled: boolean(),
|
|
69242
69249
|
info: record(string(), unknown()).readonly(),
|
|
69250
|
+
/** The discovery candidate this integration was set up from (D984). */
|
|
69251
|
+
originStableId: string().optional(),
|
|
69243
69252
|
createdAt: number(),
|
|
69244
69253
|
updatedAt: number(),
|
|
69245
69254
|
processState: string()
|
|
@@ -69250,6 +69259,8 @@ var IntegrationLiteSchema = object({
|
|
|
69250
69259
|
name: string(),
|
|
69251
69260
|
enabled: boolean(),
|
|
69252
69261
|
info: record(string(), unknown()).readonly(),
|
|
69262
|
+
/** The discovery candidate this integration was set up from (D984). */
|
|
69263
|
+
originStableId: string().optional(),
|
|
69253
69264
|
createdAt: number(),
|
|
69254
69265
|
updatedAt: number()
|
|
69255
69266
|
});
|
|
@@ -69347,6 +69358,8 @@ var CreateIntegrationInputSchema = object({
|
|
|
69347
69358
|
name: string(),
|
|
69348
69359
|
enabled: boolean().optional(),
|
|
69349
69360
|
info: record(string(), unknown()).optional(),
|
|
69361
|
+
/** `stableId` of the discovery candidate the form was seeded from (D984). */
|
|
69362
|
+
originStableId: string().optional(),
|
|
69350
69363
|
settings: record(string(), unknown()).optional(),
|
|
69351
69364
|
/** Keys of `settings` the form's schema declares secret (by type) — kept in
|
|
69352
69365
|
* the keychain, not the table (D787). */
|
|
@@ -70115,11 +70128,44 @@ var LockControlStatusSchema = object({
|
|
|
70115
70128
|
"unlocked",
|
|
70116
70129
|
"locking",
|
|
70117
70130
|
"unlocking",
|
|
70118
|
-
"jammed"
|
|
70131
|
+
"jammed",
|
|
70132
|
+
"door-open"
|
|
70119
70133
|
]),
|
|
70120
70134
|
/** Ms epoch when the slice was last updated. */
|
|
70121
70135
|
lastChangedAt: number()
|
|
70122
70136
|
});
|
|
70137
|
+
/**
|
|
70138
|
+
* "Door contact" Customize extension (D984): the ONE extension that replaces a
|
|
70139
|
+
* native field. `state` is listed in `overridable` for this target, so the
|
|
70140
|
+
* validator and the guard accept it and nothing else.
|
|
70141
|
+
*/
|
|
70142
|
+
var lockControlCustomize = {
|
|
70143
|
+
version: 1,
|
|
70144
|
+
overridable: [{
|
|
70145
|
+
path: "state",
|
|
70146
|
+
by: "door-contact"
|
|
70147
|
+
}],
|
|
70148
|
+
targets: [{
|
|
70149
|
+
id: "door-contact",
|
|
70150
|
+
cardinality: "scalar",
|
|
70151
|
+
vocabulary: {
|
|
70152
|
+
cap: "lock-control",
|
|
70153
|
+
stateField: "state"
|
|
70154
|
+
},
|
|
70155
|
+
deviceTypes: [DeviceType.Lock],
|
|
70156
|
+
apply: "replace",
|
|
70157
|
+
path: "state",
|
|
70158
|
+
override: {
|
|
70159
|
+
whenSourceTrue: "door-open",
|
|
70160
|
+
unlessNative: ["jammed"]
|
|
70161
|
+
},
|
|
70162
|
+
sources: [{
|
|
70163
|
+
kind: "binary",
|
|
70164
|
+
transforms: [{ kind: "identity" }]
|
|
70165
|
+
}],
|
|
70166
|
+
sourceReport: { status: "assignment-status" }
|
|
70167
|
+
}]
|
|
70168
|
+
};
|
|
70123
70169
|
var lockControlCapability = {
|
|
70124
70170
|
name: "lock-control",
|
|
70125
70171
|
scope: "device",
|
|
@@ -70165,6 +70211,7 @@ var lockControlCapability = {
|
|
|
70165
70211
|
* transitions.
|
|
70166
70212
|
*/
|
|
70167
70213
|
runtimeState: LockControlStatusSchema,
|
|
70214
|
+
customize: lockControlCustomize,
|
|
70168
70215
|
/**
|
|
70169
70216
|
* Runtime-state durability: **restored** — a lock left locked must still read locked.
|
|
70170
70217
|
*
|
|
@@ -78614,7 +78661,6 @@ function runningFromMediaPlayer(state, previous, fetchedAt, transitionAt) {
|
|
|
78614
78661
|
}
|
|
78615
78662
|
DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
|
|
78616
78663
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
78617
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Gateway, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
78618
78664
|
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
78619
78665
|
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
78620
78666
|
new Set(CAP_NAMES);
|
|
@@ -94445,6 +94491,7 @@ new Set([
|
|
|
94445
94491
|
"locking",
|
|
94446
94492
|
"unlocking",
|
|
94447
94493
|
"jammed",
|
|
94494
|
+
"door-open",
|
|
94448
94495
|
"on",
|
|
94449
94496
|
"off",
|
|
94450
94497
|
"home",
|
|
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
enumerable: true
|
|
25
25
|
}) : target, mod));
|
|
26
26
|
//#endregion
|
|
27
|
-
const require_ha_broker_source = require("../ha-broker-source-
|
|
27
|
+
const require_ha_broker_source = require("../ha-broker-source-B6xSmZ6H.js");
|
|
28
28
|
let node_crypto = require("node:crypto");
|
|
29
29
|
require("node:zlib");
|
|
30
30
|
let node_fs = require("node:fs");
|
|
@@ -1030,7 +1030,7 @@ var NATIVE_CAP_PLATFORMS = {
|
|
|
1030
1030
|
},
|
|
1031
1031
|
/**
|
|
1032
1032
|
* The reason this platform exists. `LockStateSchema` is
|
|
1033
|
-
* `locked | unlocked | locking | unlocking | jammed`, and every one of
|
|
1033
|
+
* `locked | unlocked | locking | unlocking | jammed | door-open`, and every one of
|
|
1034
1034
|
* those is a state Home Assistant's `lock` has — including the one a
|
|
1035
1035
|
* `switch` silently reports as "unlocked".
|
|
1036
1036
|
*
|
|
@@ -1047,7 +1047,17 @@ var NATIVE_CAP_PLATFORMS = {
|
|
|
1047
1047
|
controls: { open: {
|
|
1048
1048
|
from: "open",
|
|
1049
1049
|
commandOnly: true
|
|
1050
|
-
} }
|
|
1050
|
+
} },
|
|
1051
|
+
/**
|
|
1052
|
+
* `door-open` (D984: the linked door contact reads open) is no state of
|
|
1053
|
+
* Home Assistant's lock, but `open` is — the platform's own word for a
|
|
1054
|
+
* door standing open. The enum is rewritten on the way in, so the enum
|
|
1055
|
+
* sensor beside it keeps the cap's own value.
|
|
1056
|
+
*/
|
|
1057
|
+
constants: {
|
|
1058
|
+
state_open: "open",
|
|
1059
|
+
value_template: "{{ 'open' if value == 'door-open' else value }}"
|
|
1060
|
+
}
|
|
1051
1061
|
},
|
|
1052
1062
|
/**
|
|
1053
1063
|
* `AlarmStateSchema` IS Home Assistant's alarm vocabulary, and
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as array, B as consumableKindOf, Et as sendToExportedTarget, Gt as baseUnitOf, K as deviceExportCapability, Ut as BaseAddon, Xt as isReadingQuantity, Zt as nodePin, _ as PLUG_APPLIANCE_TYPES, bt as runExportedAction, c as COCO_TO_MACRO, cn as unknown, d as ConsumableItemSchema, f as ConsumableStatusSchema, g as MediaPlayerRepeatSchema, gt as pruneDeletedEntities, h as HvacModeSchema, i as AlarmArmModeSchema, in as object, j as buildAddonRouteProvider, l as CameraSwitchIdSchema, m as FanDirectionSchema, on as string, r as listHomeAssistantBrokers, s as CAMERA_SWITCH_ORDER, u as ConsumableFormSchema, un as EventCategory, ut as oauthIntegrationCapability, x as addonRoutesCapability, z as consumableFormOf } from "../ha-broker-source-
|
|
1
|
+
import { $t as array, B as consumableKindOf, Et as sendToExportedTarget, Gt as baseUnitOf, K as deviceExportCapability, Ut as BaseAddon, Xt as isReadingQuantity, Zt as nodePin, _ as PLUG_APPLIANCE_TYPES, bt as runExportedAction, c as COCO_TO_MACRO, cn as unknown, d as ConsumableItemSchema, f as ConsumableStatusSchema, g as MediaPlayerRepeatSchema, gt as pruneDeletedEntities, h as HvacModeSchema, i as AlarmArmModeSchema, in as object, j as buildAddonRouteProvider, l as CameraSwitchIdSchema, m as FanDirectionSchema, on as string, r as listHomeAssistantBrokers, s as CAMERA_SWITCH_ORDER, u as ConsumableFormSchema, un as EventCategory, ut as oauthIntegrationCapability, x as addonRoutesCapability, z as consumableFormOf } from "../ha-broker-source-D9_yzN2c.mjs";
|
|
2
2
|
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
3
3
|
import "node:zlib";
|
|
4
4
|
import "node:fs";
|
|
@@ -995,7 +995,7 @@ var NATIVE_CAP_PLATFORMS = {
|
|
|
995
995
|
},
|
|
996
996
|
/**
|
|
997
997
|
* The reason this platform exists. `LockStateSchema` is
|
|
998
|
-
* `locked | unlocked | locking | unlocking | jammed`, and every one of
|
|
998
|
+
* `locked | unlocked | locking | unlocking | jammed | door-open`, and every one of
|
|
999
999
|
* those is a state Home Assistant's `lock` has — including the one a
|
|
1000
1000
|
* `switch` silently reports as "unlocked".
|
|
1001
1001
|
*
|
|
@@ -1012,7 +1012,17 @@ var NATIVE_CAP_PLATFORMS = {
|
|
|
1012
1012
|
controls: { open: {
|
|
1013
1013
|
from: "open",
|
|
1014
1014
|
commandOnly: true
|
|
1015
|
-
} }
|
|
1015
|
+
} },
|
|
1016
|
+
/**
|
|
1017
|
+
* `door-open` (D984: the linked door contact reads open) is no state of
|
|
1018
|
+
* Home Assistant's lock, but `open` is — the platform's own word for a
|
|
1019
|
+
* door standing open. The enum is rewritten on the way in, so the enum
|
|
1020
|
+
* sensor beside it keeps the cap's own value.
|
|
1021
|
+
*/
|
|
1022
|
+
constants: {
|
|
1023
|
+
state_open: "open",
|
|
1024
|
+
value_template: "{{ 'open' if value == 'door-open' else value }}"
|
|
1025
|
+
}
|
|
1016
1026
|
},
|
|
1017
1027
|
/**
|
|
1018
1028
|
* `AlarmStateSchema` IS Home Assistant's alarm vocabulary, and
|