@camstack/addon-provider-amcrest 0.2.137 → 0.2.138
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 +282 -8
- package/dist/addon.mjs +282 -8
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5441,7 +5441,7 @@ var ZodIssueCode = {
|
|
|
5441
5441
|
var ZodFirstPartyTypeKind;
|
|
5442
5442
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5443
5443
|
//#endregion
|
|
5444
|
-
//#region ../types/dist/sleep-
|
|
5444
|
+
//#region ../types/dist/sleep-BOjuyoPC.mjs
|
|
5445
5445
|
/**
|
|
5446
5446
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5447
5447
|
* window to float samples (D455).
|
|
@@ -8474,7 +8474,7 @@ function userError(code, params, englishFallback) {
|
|
|
8474
8474
|
return new CamstackError(code, params, englishFallback);
|
|
8475
8475
|
}
|
|
8476
8476
|
//#endregion
|
|
8477
|
-
//#region ../types/dist/err-msg
|
|
8477
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8478
8478
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8479
8479
|
DeviceType["Camera"] = "camera";
|
|
8480
8480
|
DeviceType["Hub"] = "hub";
|
|
@@ -8566,6 +8566,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8566
8566
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8567
8567
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8568
8568
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8569
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8570
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8571
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8572
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8569
8573
|
return DeviceType;
|
|
8570
8574
|
}({});
|
|
8571
8575
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8813,7 +8817,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8813
8817
|
return DeviceRole;
|
|
8814
8818
|
}({});
|
|
8815
8819
|
//#endregion
|
|
8816
|
-
//#region ../types/dist/composition-
|
|
8820
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8817
8821
|
/**
|
|
8818
8822
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8819
8823
|
*
|
|
@@ -13219,8 +13223,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13219
13223
|
"info",
|
|
13220
13224
|
"success",
|
|
13221
13225
|
"warning",
|
|
13222
|
-
"error"
|
|
13226
|
+
"error",
|
|
13227
|
+
"critical"
|
|
13223
13228
|
]);
|
|
13229
|
+
var AlertActionSchema = object({
|
|
13230
|
+
label: string(),
|
|
13231
|
+
href: string().optional()
|
|
13232
|
+
});
|
|
13224
13233
|
var AlertStatusSchema = _enum([
|
|
13225
13234
|
"active",
|
|
13226
13235
|
"in-progress",
|
|
@@ -13238,6 +13247,7 @@ var AlertSchema = object({
|
|
|
13238
13247
|
severity: AlertSeveritySchema,
|
|
13239
13248
|
title: string(),
|
|
13240
13249
|
message: string(),
|
|
13250
|
+
action: AlertActionSchema.optional(),
|
|
13241
13251
|
status: AlertStatusSchema,
|
|
13242
13252
|
progress: number().optional(),
|
|
13243
13253
|
read: boolean(),
|
|
@@ -54405,7 +54415,8 @@ var batteryCapability = {
|
|
|
54405
54415
|
DeviceType.Button,
|
|
54406
54416
|
DeviceType.Switch,
|
|
54407
54417
|
DeviceType.PetFeeder,
|
|
54408
|
-
DeviceType.Container
|
|
54418
|
+
DeviceType.Container,
|
|
54419
|
+
DeviceType.Thermostat
|
|
54409
54420
|
],
|
|
54410
54421
|
methods: {
|
|
54411
54422
|
/**
|
|
@@ -55878,6 +55889,125 @@ onStatusChanged: { data: object({
|
|
|
55878
55889
|
* whether persisting is worth a SQLite commit. */
|
|
55879
55890
|
volatileStateFields: ["lastChangedAt"]
|
|
55880
55891
|
};
|
|
55892
|
+
/**
|
|
55893
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55894
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55895
|
+
*
|
|
55896
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55897
|
+
* by any integration that exposes the same program / option surface.
|
|
55898
|
+
*
|
|
55899
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55900
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55901
|
+
*/
|
|
55902
|
+
var DishwasherStateSchema = _enum([
|
|
55903
|
+
"idle",
|
|
55904
|
+
"running",
|
|
55905
|
+
"paused",
|
|
55906
|
+
"finished",
|
|
55907
|
+
"error",
|
|
55908
|
+
"unavailable"
|
|
55909
|
+
]);
|
|
55910
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55911
|
+
"ok",
|
|
55912
|
+
"low",
|
|
55913
|
+
"empty"
|
|
55914
|
+
]);
|
|
55915
|
+
var DishwasherStatusSchema = object({
|
|
55916
|
+
state: DishwasherStateSchema,
|
|
55917
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55918
|
+
program: string().nullable(),
|
|
55919
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55920
|
+
availablePrograms: array(string()),
|
|
55921
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55922
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55923
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55924
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55925
|
+
/** True when the door is reported open. */
|
|
55926
|
+
doorOpen: boolean(),
|
|
55927
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55928
|
+
remoteStartAllowed: boolean(),
|
|
55929
|
+
/** Main power / switched-on state. */
|
|
55930
|
+
powerOn: boolean(),
|
|
55931
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55932
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55933
|
+
halfLoad: boolean(),
|
|
55934
|
+
hygienePlus: boolean(),
|
|
55935
|
+
errorCode: number().nullable(),
|
|
55936
|
+
errorLabel: string().nullable(),
|
|
55937
|
+
lastFetchedAt: number()
|
|
55938
|
+
});
|
|
55939
|
+
var dishwasherCapability = {
|
|
55940
|
+
name: "dishwasher",
|
|
55941
|
+
scope: "device",
|
|
55942
|
+
deviceNative: true,
|
|
55943
|
+
mode: "singleton",
|
|
55944
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55945
|
+
methods: {
|
|
55946
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55947
|
+
kind: "mutation",
|
|
55948
|
+
auth: "protected"
|
|
55949
|
+
}),
|
|
55950
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55951
|
+
kind: "mutation",
|
|
55952
|
+
auth: "protected"
|
|
55953
|
+
}),
|
|
55954
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55955
|
+
kind: "mutation",
|
|
55956
|
+
auth: "protected"
|
|
55957
|
+
}),
|
|
55958
|
+
setProgram: method(object({
|
|
55959
|
+
deviceId: number().int().nonnegative(),
|
|
55960
|
+
program: string().min(1)
|
|
55961
|
+
}), _void(), {
|
|
55962
|
+
kind: "mutation",
|
|
55963
|
+
auth: "protected"
|
|
55964
|
+
}),
|
|
55965
|
+
setPower: method(object({
|
|
55966
|
+
deviceId: number().int().nonnegative(),
|
|
55967
|
+
on: boolean()
|
|
55968
|
+
}), _void(), {
|
|
55969
|
+
kind: "mutation",
|
|
55970
|
+
auth: "protected"
|
|
55971
|
+
}),
|
|
55972
|
+
setHalfLoad: method(object({
|
|
55973
|
+
deviceId: number().int().nonnegative(),
|
|
55974
|
+
on: boolean()
|
|
55975
|
+
}), _void(), {
|
|
55976
|
+
kind: "mutation",
|
|
55977
|
+
auth: "protected"
|
|
55978
|
+
}),
|
|
55979
|
+
setHygienePlus: method(object({
|
|
55980
|
+
deviceId: number().int().nonnegative(),
|
|
55981
|
+
on: boolean()
|
|
55982
|
+
}), _void(), {
|
|
55983
|
+
kind: "mutation",
|
|
55984
|
+
auth: "protected"
|
|
55985
|
+
}),
|
|
55986
|
+
setOption: method(object({
|
|
55987
|
+
deviceId: number().int().nonnegative(),
|
|
55988
|
+
key: string().min(1),
|
|
55989
|
+
value: union([
|
|
55990
|
+
boolean(),
|
|
55991
|
+
string(),
|
|
55992
|
+
number()
|
|
55993
|
+
])
|
|
55994
|
+
}), _void(), {
|
|
55995
|
+
kind: "mutation",
|
|
55996
|
+
auth: "protected"
|
|
55997
|
+
})
|
|
55998
|
+
},
|
|
55999
|
+
status: {
|
|
56000
|
+
schema: DishwasherStatusSchema,
|
|
56001
|
+
kind: "poll"
|
|
56002
|
+
},
|
|
56003
|
+
runtimeState: DishwasherStatusSchema,
|
|
56004
|
+
durability: "session",
|
|
56005
|
+
history: { fields: { progressPercent: {
|
|
56006
|
+
kind: "gauge",
|
|
56007
|
+
unit: "%",
|
|
56008
|
+
deadband: 2
|
|
56009
|
+
} } }
|
|
56010
|
+
};
|
|
55881
56011
|
var DoorbellStatusSchema = object({
|
|
55882
56012
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55883
56013
|
lastPressedAt: number().nullable(),
|
|
@@ -56680,6 +56810,32 @@ var gasCapability = {
|
|
|
56680
56810
|
* whether persisting is worth a SQLite commit. */
|
|
56681
56811
|
volatileStateFields: ["lastChangedAt"]
|
|
56682
56812
|
};
|
|
56813
|
+
var HeatingValveStatusSchema = object({
|
|
56814
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56815
|
+
position: number().min(0).max(100).nullable(),
|
|
56816
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56817
|
+
lastFetchedAt: number()
|
|
56818
|
+
});
|
|
56819
|
+
var heatingValveCapability = {
|
|
56820
|
+
name: "heating-valve",
|
|
56821
|
+
scope: "device",
|
|
56822
|
+
deviceNative: true,
|
|
56823
|
+
mode: "singleton",
|
|
56824
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56825
|
+
methods: {},
|
|
56826
|
+
status: {
|
|
56827
|
+
schema: HeatingValveStatusSchema,
|
|
56828
|
+
kind: "push"
|
|
56829
|
+
},
|
|
56830
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56831
|
+
durability: "session",
|
|
56832
|
+
history: { fields: { position: {
|
|
56833
|
+
kind: "gauge",
|
|
56834
|
+
unit: "%",
|
|
56835
|
+
deadband: 1
|
|
56836
|
+
} } },
|
|
56837
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56838
|
+
};
|
|
56683
56839
|
/**
|
|
56684
56840
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56685
56841
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -66562,6 +66718,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
66562
66718
|
dayNight: dayNightCapability,
|
|
66563
66719
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
66564
66720
|
deviceStatus: deviceStatusCapability,
|
|
66721
|
+
dishwasher: dishwasherCapability,
|
|
66565
66722
|
doorbell: doorbellCapability,
|
|
66566
66723
|
enumSensor: enumSensorCapability,
|
|
66567
66724
|
eventEmitter: eventEmitterCapability,
|
|
@@ -66569,6 +66726,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
66569
66726
|
featureProbe: featureProbeCapability,
|
|
66570
66727
|
flood: floodCapability,
|
|
66571
66728
|
gas: gasCapability,
|
|
66729
|
+
heatingValve: heatingValveCapability,
|
|
66572
66730
|
humidifier: humidifierCapability,
|
|
66573
66731
|
humiditySensor: humiditySensorCapability,
|
|
66574
66732
|
image: imageCapability,
|
|
@@ -67294,6 +67452,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
67294
67452
|
provider: this
|
|
67295
67453
|
}];
|
|
67296
67454
|
}
|
|
67455
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
67456
|
+
providerRegistrationsFromSuper(result) {
|
|
67457
|
+
if (Array.isArray(result)) return result;
|
|
67458
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
67459
|
+
return [];
|
|
67460
|
+
}
|
|
67297
67461
|
async onShutdown() {
|
|
67298
67462
|
this._restoreShuttingDown = true;
|
|
67299
67463
|
this.cancelRestoreRetries();
|
|
@@ -67824,7 +67988,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
67824
67988
|
function widenDeviceConstructor(ctor) {
|
|
67825
67989
|
return ctor;
|
|
67826
67990
|
}
|
|
67827
|
-
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
67991
|
+
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
67828
67992
|
new Set(Object.values(DeviceType));
|
|
67829
67993
|
Object.freeze({
|
|
67830
67994
|
"accessories.getStatus": {
|
|
@@ -70245,6 +70409,60 @@ Object.freeze({
|
|
|
70245
70409
|
addonId: null,
|
|
70246
70410
|
access: "view"
|
|
70247
70411
|
},
|
|
70412
|
+
"dishwasher.getStatus": {
|
|
70413
|
+
capName: "dishwasher",
|
|
70414
|
+
capScope: "device",
|
|
70415
|
+
addonId: null,
|
|
70416
|
+
access: "view"
|
|
70417
|
+
},
|
|
70418
|
+
"dishwasher.pause": {
|
|
70419
|
+
capName: "dishwasher",
|
|
70420
|
+
capScope: "device",
|
|
70421
|
+
addonId: null,
|
|
70422
|
+
access: "create"
|
|
70423
|
+
},
|
|
70424
|
+
"dishwasher.setHalfLoad": {
|
|
70425
|
+
capName: "dishwasher",
|
|
70426
|
+
capScope: "device",
|
|
70427
|
+
addonId: null,
|
|
70428
|
+
access: "create"
|
|
70429
|
+
},
|
|
70430
|
+
"dishwasher.setHygienePlus": {
|
|
70431
|
+
capName: "dishwasher",
|
|
70432
|
+
capScope: "device",
|
|
70433
|
+
addonId: null,
|
|
70434
|
+
access: "create"
|
|
70435
|
+
},
|
|
70436
|
+
"dishwasher.setOption": {
|
|
70437
|
+
capName: "dishwasher",
|
|
70438
|
+
capScope: "device",
|
|
70439
|
+
addonId: null,
|
|
70440
|
+
access: "create"
|
|
70441
|
+
},
|
|
70442
|
+
"dishwasher.setPower": {
|
|
70443
|
+
capName: "dishwasher",
|
|
70444
|
+
capScope: "device",
|
|
70445
|
+
addonId: null,
|
|
70446
|
+
access: "create"
|
|
70447
|
+
},
|
|
70448
|
+
"dishwasher.setProgram": {
|
|
70449
|
+
capName: "dishwasher",
|
|
70450
|
+
capScope: "device",
|
|
70451
|
+
addonId: null,
|
|
70452
|
+
access: "create"
|
|
70453
|
+
},
|
|
70454
|
+
"dishwasher.start": {
|
|
70455
|
+
capName: "dishwasher",
|
|
70456
|
+
capScope: "device",
|
|
70457
|
+
addonId: null,
|
|
70458
|
+
access: "create"
|
|
70459
|
+
},
|
|
70460
|
+
"dishwasher.stop": {
|
|
70461
|
+
capName: "dishwasher",
|
|
70462
|
+
capScope: "device",
|
|
70463
|
+
addonId: null,
|
|
70464
|
+
access: "create"
|
|
70465
|
+
},
|
|
70248
70466
|
"doorbell.getStatus": {
|
|
70249
70467
|
capName: "doorbell",
|
|
70250
70468
|
capScope: "device",
|
|
@@ -70455,6 +70673,12 @@ Object.freeze({
|
|
|
70455
70673
|
addonId: null,
|
|
70456
70674
|
access: "view"
|
|
70457
70675
|
},
|
|
70676
|
+
"heatingValve.getStatus": {
|
|
70677
|
+
capName: "heating-valve",
|
|
70678
|
+
capScope: "device",
|
|
70679
|
+
addonId: null,
|
|
70680
|
+
access: "view"
|
|
70681
|
+
},
|
|
70458
70682
|
"humidifier.getStatus": {
|
|
70459
70683
|
capName: "humidifier",
|
|
70460
70684
|
capScope: "device",
|
|
@@ -76042,7 +76266,7 @@ Object.freeze({
|
|
|
76042
76266
|
access: "create"
|
|
76043
76267
|
}
|
|
76044
76268
|
});
|
|
76045
|
-
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;
|
|
76269
|
+
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.Dishwasher;
|
|
76046
76270
|
DeviceFeature.BatteryOperated;
|
|
76047
76271
|
/** Reject after `ms`; always clears its own timer. */
|
|
76048
76272
|
async function withTimeout$1(promise, ms, label) {
|
|
@@ -77072,6 +77296,51 @@ Object.freeze({
|
|
|
77072
77296
|
form: "single",
|
|
77073
77297
|
optional: false
|
|
77074
77298
|
}],
|
|
77299
|
+
"dishwasher.getStatus": [{
|
|
77300
|
+
name: "deviceId",
|
|
77301
|
+
form: "single",
|
|
77302
|
+
optional: false
|
|
77303
|
+
}],
|
|
77304
|
+
"dishwasher.pause": [{
|
|
77305
|
+
name: "deviceId",
|
|
77306
|
+
form: "single",
|
|
77307
|
+
optional: false
|
|
77308
|
+
}],
|
|
77309
|
+
"dishwasher.setHalfLoad": [{
|
|
77310
|
+
name: "deviceId",
|
|
77311
|
+
form: "single",
|
|
77312
|
+
optional: false
|
|
77313
|
+
}],
|
|
77314
|
+
"dishwasher.setHygienePlus": [{
|
|
77315
|
+
name: "deviceId",
|
|
77316
|
+
form: "single",
|
|
77317
|
+
optional: false
|
|
77318
|
+
}],
|
|
77319
|
+
"dishwasher.setOption": [{
|
|
77320
|
+
name: "deviceId",
|
|
77321
|
+
form: "single",
|
|
77322
|
+
optional: false
|
|
77323
|
+
}],
|
|
77324
|
+
"dishwasher.setPower": [{
|
|
77325
|
+
name: "deviceId",
|
|
77326
|
+
form: "single",
|
|
77327
|
+
optional: false
|
|
77328
|
+
}],
|
|
77329
|
+
"dishwasher.setProgram": [{
|
|
77330
|
+
name: "deviceId",
|
|
77331
|
+
form: "single",
|
|
77332
|
+
optional: false
|
|
77333
|
+
}],
|
|
77334
|
+
"dishwasher.start": [{
|
|
77335
|
+
name: "deviceId",
|
|
77336
|
+
form: "single",
|
|
77337
|
+
optional: false
|
|
77338
|
+
}],
|
|
77339
|
+
"dishwasher.stop": [{
|
|
77340
|
+
name: "deviceId",
|
|
77341
|
+
form: "single",
|
|
77342
|
+
optional: false
|
|
77343
|
+
}],
|
|
77075
77344
|
"doorbell.getStatus": [{
|
|
77076
77345
|
name: "deviceId",
|
|
77077
77346
|
form: "single",
|
|
@@ -77141,6 +77410,11 @@ Object.freeze({
|
|
|
77141
77410
|
form: "single",
|
|
77142
77411
|
optional: false
|
|
77143
77412
|
}],
|
|
77413
|
+
"heatingValve.getStatus": [{
|
|
77414
|
+
name: "deviceId",
|
|
77415
|
+
form: "single",
|
|
77416
|
+
optional: false
|
|
77417
|
+
}],
|
|
77144
77418
|
"humidifier.getStatus": [{
|
|
77145
77419
|
name: "deviceId",
|
|
77146
77420
|
form: "single",
|
|
@@ -96944,7 +97218,7 @@ var AmcrestProviderAddon = class extends BaseDeviceProvider {
|
|
|
96944
97218
|
throw new Error(`Amcrest: probe on ${host || "(unknown host)"} resolved neither mac nor host address — cannot persist a stable row key. Verify network reachability + credentials, then retry.`);
|
|
96945
97219
|
}
|
|
96946
97220
|
async onInitialize() {
|
|
96947
|
-
const regs = await super.onInitialize();
|
|
97221
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
96948
97222
|
this.clipService = createClipService({
|
|
96949
97223
|
dataDir: this.ctx.dataDir,
|
|
96950
97224
|
logger: this.ctx.logger,
|
package/dist/addon.mjs
CHANGED
|
@@ -5420,7 +5420,7 @@ var ZodIssueCode = {
|
|
|
5420
5420
|
var ZodFirstPartyTypeKind;
|
|
5421
5421
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5422
5422
|
//#endregion
|
|
5423
|
-
//#region ../types/dist/sleep-
|
|
5423
|
+
//#region ../types/dist/sleep-BOjuyoPC.mjs
|
|
5424
5424
|
/**
|
|
5425
5425
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5426
5426
|
* window to float samples (D455).
|
|
@@ -8453,7 +8453,7 @@ function userError(code, params, englishFallback) {
|
|
|
8453
8453
|
return new CamstackError(code, params, englishFallback);
|
|
8454
8454
|
}
|
|
8455
8455
|
//#endregion
|
|
8456
|
-
//#region ../types/dist/err-msg
|
|
8456
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8457
8457
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8458
8458
|
DeviceType["Camera"] = "camera";
|
|
8459
8459
|
DeviceType["Hub"] = "hub";
|
|
@@ -8545,6 +8545,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8545
8545
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8546
8546
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8547
8547
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8548
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8549
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8550
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8551
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8548
8552
|
return DeviceType;
|
|
8549
8553
|
}({});
|
|
8550
8554
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8792,7 +8796,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8792
8796
|
return DeviceRole;
|
|
8793
8797
|
}({});
|
|
8794
8798
|
//#endregion
|
|
8795
|
-
//#region ../types/dist/composition-
|
|
8799
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8796
8800
|
/**
|
|
8797
8801
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8798
8802
|
*
|
|
@@ -13198,8 +13202,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13198
13202
|
"info",
|
|
13199
13203
|
"success",
|
|
13200
13204
|
"warning",
|
|
13201
|
-
"error"
|
|
13205
|
+
"error",
|
|
13206
|
+
"critical"
|
|
13202
13207
|
]);
|
|
13208
|
+
var AlertActionSchema = object({
|
|
13209
|
+
label: string(),
|
|
13210
|
+
href: string().optional()
|
|
13211
|
+
});
|
|
13203
13212
|
var AlertStatusSchema = _enum([
|
|
13204
13213
|
"active",
|
|
13205
13214
|
"in-progress",
|
|
@@ -13217,6 +13226,7 @@ var AlertSchema = object({
|
|
|
13217
13226
|
severity: AlertSeveritySchema,
|
|
13218
13227
|
title: string(),
|
|
13219
13228
|
message: string(),
|
|
13229
|
+
action: AlertActionSchema.optional(),
|
|
13220
13230
|
status: AlertStatusSchema,
|
|
13221
13231
|
progress: number().optional(),
|
|
13222
13232
|
read: boolean(),
|
|
@@ -54384,7 +54394,8 @@ var batteryCapability = {
|
|
|
54384
54394
|
DeviceType.Button,
|
|
54385
54395
|
DeviceType.Switch,
|
|
54386
54396
|
DeviceType.PetFeeder,
|
|
54387
|
-
DeviceType.Container
|
|
54397
|
+
DeviceType.Container,
|
|
54398
|
+
DeviceType.Thermostat
|
|
54388
54399
|
],
|
|
54389
54400
|
methods: {
|
|
54390
54401
|
/**
|
|
@@ -55857,6 +55868,125 @@ onStatusChanged: { data: object({
|
|
|
55857
55868
|
* whether persisting is worth a SQLite commit. */
|
|
55858
55869
|
volatileStateFields: ["lastChangedAt"]
|
|
55859
55870
|
};
|
|
55871
|
+
/**
|
|
55872
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55873
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55874
|
+
*
|
|
55875
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55876
|
+
* by any integration that exposes the same program / option surface.
|
|
55877
|
+
*
|
|
55878
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55879
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55880
|
+
*/
|
|
55881
|
+
var DishwasherStateSchema = _enum([
|
|
55882
|
+
"idle",
|
|
55883
|
+
"running",
|
|
55884
|
+
"paused",
|
|
55885
|
+
"finished",
|
|
55886
|
+
"error",
|
|
55887
|
+
"unavailable"
|
|
55888
|
+
]);
|
|
55889
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55890
|
+
"ok",
|
|
55891
|
+
"low",
|
|
55892
|
+
"empty"
|
|
55893
|
+
]);
|
|
55894
|
+
var DishwasherStatusSchema = object({
|
|
55895
|
+
state: DishwasherStateSchema,
|
|
55896
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55897
|
+
program: string().nullable(),
|
|
55898
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55899
|
+
availablePrograms: array(string()),
|
|
55900
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55901
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55902
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55903
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55904
|
+
/** True when the door is reported open. */
|
|
55905
|
+
doorOpen: boolean(),
|
|
55906
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55907
|
+
remoteStartAllowed: boolean(),
|
|
55908
|
+
/** Main power / switched-on state. */
|
|
55909
|
+
powerOn: boolean(),
|
|
55910
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55911
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55912
|
+
halfLoad: boolean(),
|
|
55913
|
+
hygienePlus: boolean(),
|
|
55914
|
+
errorCode: number().nullable(),
|
|
55915
|
+
errorLabel: string().nullable(),
|
|
55916
|
+
lastFetchedAt: number()
|
|
55917
|
+
});
|
|
55918
|
+
var dishwasherCapability = {
|
|
55919
|
+
name: "dishwasher",
|
|
55920
|
+
scope: "device",
|
|
55921
|
+
deviceNative: true,
|
|
55922
|
+
mode: "singleton",
|
|
55923
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55924
|
+
methods: {
|
|
55925
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55926
|
+
kind: "mutation",
|
|
55927
|
+
auth: "protected"
|
|
55928
|
+
}),
|
|
55929
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55930
|
+
kind: "mutation",
|
|
55931
|
+
auth: "protected"
|
|
55932
|
+
}),
|
|
55933
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55934
|
+
kind: "mutation",
|
|
55935
|
+
auth: "protected"
|
|
55936
|
+
}),
|
|
55937
|
+
setProgram: method(object({
|
|
55938
|
+
deviceId: number().int().nonnegative(),
|
|
55939
|
+
program: string().min(1)
|
|
55940
|
+
}), _void(), {
|
|
55941
|
+
kind: "mutation",
|
|
55942
|
+
auth: "protected"
|
|
55943
|
+
}),
|
|
55944
|
+
setPower: method(object({
|
|
55945
|
+
deviceId: number().int().nonnegative(),
|
|
55946
|
+
on: boolean()
|
|
55947
|
+
}), _void(), {
|
|
55948
|
+
kind: "mutation",
|
|
55949
|
+
auth: "protected"
|
|
55950
|
+
}),
|
|
55951
|
+
setHalfLoad: method(object({
|
|
55952
|
+
deviceId: number().int().nonnegative(),
|
|
55953
|
+
on: boolean()
|
|
55954
|
+
}), _void(), {
|
|
55955
|
+
kind: "mutation",
|
|
55956
|
+
auth: "protected"
|
|
55957
|
+
}),
|
|
55958
|
+
setHygienePlus: method(object({
|
|
55959
|
+
deviceId: number().int().nonnegative(),
|
|
55960
|
+
on: boolean()
|
|
55961
|
+
}), _void(), {
|
|
55962
|
+
kind: "mutation",
|
|
55963
|
+
auth: "protected"
|
|
55964
|
+
}),
|
|
55965
|
+
setOption: method(object({
|
|
55966
|
+
deviceId: number().int().nonnegative(),
|
|
55967
|
+
key: string().min(1),
|
|
55968
|
+
value: union([
|
|
55969
|
+
boolean(),
|
|
55970
|
+
string(),
|
|
55971
|
+
number()
|
|
55972
|
+
])
|
|
55973
|
+
}), _void(), {
|
|
55974
|
+
kind: "mutation",
|
|
55975
|
+
auth: "protected"
|
|
55976
|
+
})
|
|
55977
|
+
},
|
|
55978
|
+
status: {
|
|
55979
|
+
schema: DishwasherStatusSchema,
|
|
55980
|
+
kind: "poll"
|
|
55981
|
+
},
|
|
55982
|
+
runtimeState: DishwasherStatusSchema,
|
|
55983
|
+
durability: "session",
|
|
55984
|
+
history: { fields: { progressPercent: {
|
|
55985
|
+
kind: "gauge",
|
|
55986
|
+
unit: "%",
|
|
55987
|
+
deadband: 2
|
|
55988
|
+
} } }
|
|
55989
|
+
};
|
|
55860
55990
|
var DoorbellStatusSchema = object({
|
|
55861
55991
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55862
55992
|
lastPressedAt: number().nullable(),
|
|
@@ -56659,6 +56789,32 @@ var gasCapability = {
|
|
|
56659
56789
|
* whether persisting is worth a SQLite commit. */
|
|
56660
56790
|
volatileStateFields: ["lastChangedAt"]
|
|
56661
56791
|
};
|
|
56792
|
+
var HeatingValveStatusSchema = object({
|
|
56793
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56794
|
+
position: number().min(0).max(100).nullable(),
|
|
56795
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56796
|
+
lastFetchedAt: number()
|
|
56797
|
+
});
|
|
56798
|
+
var heatingValveCapability = {
|
|
56799
|
+
name: "heating-valve",
|
|
56800
|
+
scope: "device",
|
|
56801
|
+
deviceNative: true,
|
|
56802
|
+
mode: "singleton",
|
|
56803
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56804
|
+
methods: {},
|
|
56805
|
+
status: {
|
|
56806
|
+
schema: HeatingValveStatusSchema,
|
|
56807
|
+
kind: "push"
|
|
56808
|
+
},
|
|
56809
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56810
|
+
durability: "session",
|
|
56811
|
+
history: { fields: { position: {
|
|
56812
|
+
kind: "gauge",
|
|
56813
|
+
unit: "%",
|
|
56814
|
+
deadband: 1
|
|
56815
|
+
} } },
|
|
56816
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56817
|
+
};
|
|
56662
56818
|
/**
|
|
56663
56819
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56664
56820
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -66541,6 +66697,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
66541
66697
|
dayNight: dayNightCapability,
|
|
66542
66698
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
66543
66699
|
deviceStatus: deviceStatusCapability,
|
|
66700
|
+
dishwasher: dishwasherCapability,
|
|
66544
66701
|
doorbell: doorbellCapability,
|
|
66545
66702
|
enumSensor: enumSensorCapability,
|
|
66546
66703
|
eventEmitter: eventEmitterCapability,
|
|
@@ -66548,6 +66705,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
66548
66705
|
featureProbe: featureProbeCapability,
|
|
66549
66706
|
flood: floodCapability,
|
|
66550
66707
|
gas: gasCapability,
|
|
66708
|
+
heatingValve: heatingValveCapability,
|
|
66551
66709
|
humidifier: humidifierCapability,
|
|
66552
66710
|
humiditySensor: humiditySensorCapability,
|
|
66553
66711
|
image: imageCapability,
|
|
@@ -67273,6 +67431,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
67273
67431
|
provider: this
|
|
67274
67432
|
}];
|
|
67275
67433
|
}
|
|
67434
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
67435
|
+
providerRegistrationsFromSuper(result) {
|
|
67436
|
+
if (Array.isArray(result)) return result;
|
|
67437
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
67438
|
+
return [];
|
|
67439
|
+
}
|
|
67276
67440
|
async onShutdown() {
|
|
67277
67441
|
this._restoreShuttingDown = true;
|
|
67278
67442
|
this.cancelRestoreRetries();
|
|
@@ -67803,7 +67967,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
67803
67967
|
function widenDeviceConstructor(ctor) {
|
|
67804
67968
|
return ctor;
|
|
67805
67969
|
}
|
|
67806
|
-
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
67970
|
+
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
67807
67971
|
new Set(Object.values(DeviceType));
|
|
67808
67972
|
Object.freeze({
|
|
67809
67973
|
"accessories.getStatus": {
|
|
@@ -70224,6 +70388,60 @@ Object.freeze({
|
|
|
70224
70388
|
addonId: null,
|
|
70225
70389
|
access: "view"
|
|
70226
70390
|
},
|
|
70391
|
+
"dishwasher.getStatus": {
|
|
70392
|
+
capName: "dishwasher",
|
|
70393
|
+
capScope: "device",
|
|
70394
|
+
addonId: null,
|
|
70395
|
+
access: "view"
|
|
70396
|
+
},
|
|
70397
|
+
"dishwasher.pause": {
|
|
70398
|
+
capName: "dishwasher",
|
|
70399
|
+
capScope: "device",
|
|
70400
|
+
addonId: null,
|
|
70401
|
+
access: "create"
|
|
70402
|
+
},
|
|
70403
|
+
"dishwasher.setHalfLoad": {
|
|
70404
|
+
capName: "dishwasher",
|
|
70405
|
+
capScope: "device",
|
|
70406
|
+
addonId: null,
|
|
70407
|
+
access: "create"
|
|
70408
|
+
},
|
|
70409
|
+
"dishwasher.setHygienePlus": {
|
|
70410
|
+
capName: "dishwasher",
|
|
70411
|
+
capScope: "device",
|
|
70412
|
+
addonId: null,
|
|
70413
|
+
access: "create"
|
|
70414
|
+
},
|
|
70415
|
+
"dishwasher.setOption": {
|
|
70416
|
+
capName: "dishwasher",
|
|
70417
|
+
capScope: "device",
|
|
70418
|
+
addonId: null,
|
|
70419
|
+
access: "create"
|
|
70420
|
+
},
|
|
70421
|
+
"dishwasher.setPower": {
|
|
70422
|
+
capName: "dishwasher",
|
|
70423
|
+
capScope: "device",
|
|
70424
|
+
addonId: null,
|
|
70425
|
+
access: "create"
|
|
70426
|
+
},
|
|
70427
|
+
"dishwasher.setProgram": {
|
|
70428
|
+
capName: "dishwasher",
|
|
70429
|
+
capScope: "device",
|
|
70430
|
+
addonId: null,
|
|
70431
|
+
access: "create"
|
|
70432
|
+
},
|
|
70433
|
+
"dishwasher.start": {
|
|
70434
|
+
capName: "dishwasher",
|
|
70435
|
+
capScope: "device",
|
|
70436
|
+
addonId: null,
|
|
70437
|
+
access: "create"
|
|
70438
|
+
},
|
|
70439
|
+
"dishwasher.stop": {
|
|
70440
|
+
capName: "dishwasher",
|
|
70441
|
+
capScope: "device",
|
|
70442
|
+
addonId: null,
|
|
70443
|
+
access: "create"
|
|
70444
|
+
},
|
|
70227
70445
|
"doorbell.getStatus": {
|
|
70228
70446
|
capName: "doorbell",
|
|
70229
70447
|
capScope: "device",
|
|
@@ -70434,6 +70652,12 @@ Object.freeze({
|
|
|
70434
70652
|
addonId: null,
|
|
70435
70653
|
access: "view"
|
|
70436
70654
|
},
|
|
70655
|
+
"heatingValve.getStatus": {
|
|
70656
|
+
capName: "heating-valve",
|
|
70657
|
+
capScope: "device",
|
|
70658
|
+
addonId: null,
|
|
70659
|
+
access: "view"
|
|
70660
|
+
},
|
|
70437
70661
|
"humidifier.getStatus": {
|
|
70438
70662
|
capName: "humidifier",
|
|
70439
70663
|
capScope: "device",
|
|
@@ -76021,7 +76245,7 @@ Object.freeze({
|
|
|
76021
76245
|
access: "create"
|
|
76022
76246
|
}
|
|
76023
76247
|
});
|
|
76024
|
-
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;
|
|
76248
|
+
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.Dishwasher;
|
|
76025
76249
|
DeviceFeature.BatteryOperated;
|
|
76026
76250
|
/** Reject after `ms`; always clears its own timer. */
|
|
76027
76251
|
async function withTimeout$1(promise, ms, label) {
|
|
@@ -77051,6 +77275,51 @@ Object.freeze({
|
|
|
77051
77275
|
form: "single",
|
|
77052
77276
|
optional: false
|
|
77053
77277
|
}],
|
|
77278
|
+
"dishwasher.getStatus": [{
|
|
77279
|
+
name: "deviceId",
|
|
77280
|
+
form: "single",
|
|
77281
|
+
optional: false
|
|
77282
|
+
}],
|
|
77283
|
+
"dishwasher.pause": [{
|
|
77284
|
+
name: "deviceId",
|
|
77285
|
+
form: "single",
|
|
77286
|
+
optional: false
|
|
77287
|
+
}],
|
|
77288
|
+
"dishwasher.setHalfLoad": [{
|
|
77289
|
+
name: "deviceId",
|
|
77290
|
+
form: "single",
|
|
77291
|
+
optional: false
|
|
77292
|
+
}],
|
|
77293
|
+
"dishwasher.setHygienePlus": [{
|
|
77294
|
+
name: "deviceId",
|
|
77295
|
+
form: "single",
|
|
77296
|
+
optional: false
|
|
77297
|
+
}],
|
|
77298
|
+
"dishwasher.setOption": [{
|
|
77299
|
+
name: "deviceId",
|
|
77300
|
+
form: "single",
|
|
77301
|
+
optional: false
|
|
77302
|
+
}],
|
|
77303
|
+
"dishwasher.setPower": [{
|
|
77304
|
+
name: "deviceId",
|
|
77305
|
+
form: "single",
|
|
77306
|
+
optional: false
|
|
77307
|
+
}],
|
|
77308
|
+
"dishwasher.setProgram": [{
|
|
77309
|
+
name: "deviceId",
|
|
77310
|
+
form: "single",
|
|
77311
|
+
optional: false
|
|
77312
|
+
}],
|
|
77313
|
+
"dishwasher.start": [{
|
|
77314
|
+
name: "deviceId",
|
|
77315
|
+
form: "single",
|
|
77316
|
+
optional: false
|
|
77317
|
+
}],
|
|
77318
|
+
"dishwasher.stop": [{
|
|
77319
|
+
name: "deviceId",
|
|
77320
|
+
form: "single",
|
|
77321
|
+
optional: false
|
|
77322
|
+
}],
|
|
77054
77323
|
"doorbell.getStatus": [{
|
|
77055
77324
|
name: "deviceId",
|
|
77056
77325
|
form: "single",
|
|
@@ -77120,6 +77389,11 @@ Object.freeze({
|
|
|
77120
77389
|
form: "single",
|
|
77121
77390
|
optional: false
|
|
77122
77391
|
}],
|
|
77392
|
+
"heatingValve.getStatus": [{
|
|
77393
|
+
name: "deviceId",
|
|
77394
|
+
form: "single",
|
|
77395
|
+
optional: false
|
|
77396
|
+
}],
|
|
77123
77397
|
"humidifier.getStatus": [{
|
|
77124
77398
|
name: "deviceId",
|
|
77125
77399
|
form: "single",
|
|
@@ -96923,7 +97197,7 @@ var AmcrestProviderAddon = class extends BaseDeviceProvider {
|
|
|
96923
97197
|
throw new Error(`Amcrest: probe on ${host || "(unknown host)"} resolved neither mac nor host address — cannot persist a stable row key. Verify network reachability + credentials, then retry.`);
|
|
96924
97198
|
}
|
|
96925
97199
|
async onInitialize() {
|
|
96926
|
-
const regs = await super.onInitialize();
|
|
97200
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
96927
97201
|
this.clipService = createClipService({
|
|
96928
97202
|
dataDir: this.ctx.dataDir,
|
|
96929
97203
|
logger: this.ctx.logger,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-amcrest",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.138",
|
|
4
4
|
"description": "Amcrest/Dahua camera device provider addon for CamStack — Dahua CGI over HTTP(S) with digest auth (snapshot, RTSP catalog, PTZ, image/day-night config)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|