@camstack/addon-provider-homematic 1.2.136 → 1.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 +368 -10
- package/dist/addon.mjs +368 -10
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5547,7 +5547,7 @@ var ZodIssueCode = {
|
|
|
5547
5547
|
var ZodFirstPartyTypeKind;
|
|
5548
5548
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5549
5549
|
//#endregion
|
|
5550
|
-
//#region ../types/dist/sleep-
|
|
5550
|
+
//#region ../types/dist/sleep-BegKjwUu.mjs
|
|
5551
5551
|
/**
|
|
5552
5552
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5553
5553
|
* window to float samples (D455).
|
|
@@ -8766,7 +8766,7 @@ object({
|
|
|
8766
8766
|
params: record(string(), union([string(), number()])).optional()
|
|
8767
8767
|
});
|
|
8768
8768
|
//#endregion
|
|
8769
|
-
//#region ../types/dist/err-msg
|
|
8769
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8770
8770
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8771
8771
|
DeviceType["Camera"] = "camera";
|
|
8772
8772
|
DeviceType["Hub"] = "hub";
|
|
@@ -8858,6 +8858,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8858
8858
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8859
8859
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8860
8860
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8861
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8862
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8863
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8864
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8861
8865
|
return DeviceType;
|
|
8862
8866
|
}({});
|
|
8863
8867
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -9115,7 +9119,7 @@ function errMsg(err) {
|
|
|
9115
9119
|
return String(err);
|
|
9116
9120
|
}
|
|
9117
9121
|
//#endregion
|
|
9118
|
-
//#region ../types/dist/composition-
|
|
9122
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
9119
9123
|
/**
|
|
9120
9124
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9121
9125
|
*
|
|
@@ -13501,8 +13505,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13501
13505
|
"info",
|
|
13502
13506
|
"success",
|
|
13503
13507
|
"warning",
|
|
13504
|
-
"error"
|
|
13508
|
+
"error",
|
|
13509
|
+
"critical"
|
|
13505
13510
|
]);
|
|
13511
|
+
var AlertActionSchema = object({
|
|
13512
|
+
label: string(),
|
|
13513
|
+
href: string().optional()
|
|
13514
|
+
});
|
|
13506
13515
|
var AlertStatusSchema = _enum([
|
|
13507
13516
|
"active",
|
|
13508
13517
|
"in-progress",
|
|
@@ -13520,6 +13529,7 @@ var AlertSchema = object({
|
|
|
13520
13529
|
severity: AlertSeveritySchema,
|
|
13521
13530
|
title: string(),
|
|
13522
13531
|
message: string(),
|
|
13532
|
+
action: AlertActionSchema.optional(),
|
|
13523
13533
|
status: AlertStatusSchema,
|
|
13524
13534
|
progress: number().optional(),
|
|
13525
13535
|
read: boolean(),
|
|
@@ -18043,7 +18053,11 @@ var deviceDiscoveryCapability = {
|
|
|
18043
18053
|
};
|
|
18044
18054
|
/**
|
|
18045
18055
|
* `device-adoption` — generic discovery + adoption surface,
|
|
18046
|
-
* system-scoped
|
|
18056
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
18057
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
18058
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
18059
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
18060
|
+
* successor to `ha-discovery`:
|
|
18047
18061
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
18048
18062
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
18049
18063
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -18208,7 +18222,7 @@ var ResyncResultSchema = object({
|
|
|
18208
18222
|
var deviceAdoptionCapability = {
|
|
18209
18223
|
name: "device-adoption",
|
|
18210
18224
|
scope: "system",
|
|
18211
|
-
mode: "
|
|
18225
|
+
mode: "collection",
|
|
18212
18226
|
status: {
|
|
18213
18227
|
schema: AdoptionStatusSchema,
|
|
18214
18228
|
kind: "poll"
|
|
@@ -54240,7 +54254,8 @@ var batteryCapability = {
|
|
|
54240
54254
|
DeviceType.Button,
|
|
54241
54255
|
DeviceType.Switch,
|
|
54242
54256
|
DeviceType.PetFeeder,
|
|
54243
|
-
DeviceType.Container
|
|
54257
|
+
DeviceType.Container,
|
|
54258
|
+
DeviceType.Thermostat
|
|
54244
54259
|
],
|
|
54245
54260
|
methods: {
|
|
54246
54261
|
/**
|
|
@@ -55713,6 +55728,161 @@ onStatusChanged: { data: object({
|
|
|
55713
55728
|
* whether persisting is worth a SQLite commit. */
|
|
55714
55729
|
volatileStateFields: ["lastChangedAt"]
|
|
55715
55730
|
};
|
|
55731
|
+
/**
|
|
55732
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55733
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55734
|
+
*
|
|
55735
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55736
|
+
* by any integration that exposes the same program / option surface.
|
|
55737
|
+
*
|
|
55738
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55739
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55740
|
+
*/
|
|
55741
|
+
var DishwasherStateSchema = _enum([
|
|
55742
|
+
"idle",
|
|
55743
|
+
"running",
|
|
55744
|
+
"paused",
|
|
55745
|
+
"finished",
|
|
55746
|
+
"error",
|
|
55747
|
+
"unavailable"
|
|
55748
|
+
]);
|
|
55749
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55750
|
+
"ok",
|
|
55751
|
+
"low",
|
|
55752
|
+
"empty"
|
|
55753
|
+
]);
|
|
55754
|
+
var DishwasherStatusSchema = object({
|
|
55755
|
+
state: DishwasherStateSchema,
|
|
55756
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55757
|
+
program: string().nullable(),
|
|
55758
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55759
|
+
availablePrograms: array(string()),
|
|
55760
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55761
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55762
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55763
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55764
|
+
/** True when the door is reported open. */
|
|
55765
|
+
doorOpen: boolean(),
|
|
55766
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55767
|
+
remoteStartAllowed: boolean(),
|
|
55768
|
+
/** Main power / switched-on state. */
|
|
55769
|
+
powerOn: boolean(),
|
|
55770
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55771
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55772
|
+
halfLoad: boolean(),
|
|
55773
|
+
hygienePlus: boolean(),
|
|
55774
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55775
|
+
extraDry: boolean(),
|
|
55776
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55777
|
+
intensiveZone: boolean(),
|
|
55778
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55779
|
+
varioSpeedPlus: boolean(),
|
|
55780
|
+
/** Child lock (controls disabled on the appliance). */
|
|
55781
|
+
childLock: boolean(),
|
|
55782
|
+
errorCode: number().nullable(),
|
|
55783
|
+
errorLabel: string().nullable(),
|
|
55784
|
+
lastFetchedAt: number()
|
|
55785
|
+
});
|
|
55786
|
+
var dishwasherCapability = {
|
|
55787
|
+
name: "dishwasher",
|
|
55788
|
+
scope: "device",
|
|
55789
|
+
deviceNative: true,
|
|
55790
|
+
mode: "singleton",
|
|
55791
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55792
|
+
methods: {
|
|
55793
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55794
|
+
kind: "mutation",
|
|
55795
|
+
auth: "protected"
|
|
55796
|
+
}),
|
|
55797
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55798
|
+
kind: "mutation",
|
|
55799
|
+
auth: "protected"
|
|
55800
|
+
}),
|
|
55801
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55802
|
+
kind: "mutation",
|
|
55803
|
+
auth: "protected"
|
|
55804
|
+
}),
|
|
55805
|
+
setProgram: method(object({
|
|
55806
|
+
deviceId: number().int().nonnegative(),
|
|
55807
|
+
program: string().min(1)
|
|
55808
|
+
}), _void(), {
|
|
55809
|
+
kind: "mutation",
|
|
55810
|
+
auth: "protected"
|
|
55811
|
+
}),
|
|
55812
|
+
setPower: method(object({
|
|
55813
|
+
deviceId: number().int().nonnegative(),
|
|
55814
|
+
on: boolean()
|
|
55815
|
+
}), _void(), {
|
|
55816
|
+
kind: "mutation",
|
|
55817
|
+
auth: "protected"
|
|
55818
|
+
}),
|
|
55819
|
+
setHalfLoad: method(object({
|
|
55820
|
+
deviceId: number().int().nonnegative(),
|
|
55821
|
+
on: boolean()
|
|
55822
|
+
}), _void(), {
|
|
55823
|
+
kind: "mutation",
|
|
55824
|
+
auth: "protected"
|
|
55825
|
+
}),
|
|
55826
|
+
setHygienePlus: method(object({
|
|
55827
|
+
deviceId: number().int().nonnegative(),
|
|
55828
|
+
on: boolean()
|
|
55829
|
+
}), _void(), {
|
|
55830
|
+
kind: "mutation",
|
|
55831
|
+
auth: "protected"
|
|
55832
|
+
}),
|
|
55833
|
+
setExtraDry: method(object({
|
|
55834
|
+
deviceId: number().int().nonnegative(),
|
|
55835
|
+
on: boolean()
|
|
55836
|
+
}), _void(), {
|
|
55837
|
+
kind: "mutation",
|
|
55838
|
+
auth: "protected"
|
|
55839
|
+
}),
|
|
55840
|
+
setIntensiveZone: method(object({
|
|
55841
|
+
deviceId: number().int().nonnegative(),
|
|
55842
|
+
on: boolean()
|
|
55843
|
+
}), _void(), {
|
|
55844
|
+
kind: "mutation",
|
|
55845
|
+
auth: "protected"
|
|
55846
|
+
}),
|
|
55847
|
+
setVarioSpeedPlus: method(object({
|
|
55848
|
+
deviceId: number().int().nonnegative(),
|
|
55849
|
+
on: boolean()
|
|
55850
|
+
}), _void(), {
|
|
55851
|
+
kind: "mutation",
|
|
55852
|
+
auth: "protected"
|
|
55853
|
+
}),
|
|
55854
|
+
setChildLock: method(object({
|
|
55855
|
+
deviceId: number().int().nonnegative(),
|
|
55856
|
+
on: boolean()
|
|
55857
|
+
}), _void(), {
|
|
55858
|
+
kind: "mutation",
|
|
55859
|
+
auth: "protected"
|
|
55860
|
+
}),
|
|
55861
|
+
setOption: method(object({
|
|
55862
|
+
deviceId: number().int().nonnegative(),
|
|
55863
|
+
key: string().min(1),
|
|
55864
|
+
value: union([
|
|
55865
|
+
boolean(),
|
|
55866
|
+
string(),
|
|
55867
|
+
number()
|
|
55868
|
+
])
|
|
55869
|
+
}), _void(), {
|
|
55870
|
+
kind: "mutation",
|
|
55871
|
+
auth: "protected"
|
|
55872
|
+
})
|
|
55873
|
+
},
|
|
55874
|
+
status: {
|
|
55875
|
+
schema: DishwasherStatusSchema,
|
|
55876
|
+
kind: "poll"
|
|
55877
|
+
},
|
|
55878
|
+
runtimeState: DishwasherStatusSchema,
|
|
55879
|
+
durability: "session",
|
|
55880
|
+
history: { fields: { progressPercent: {
|
|
55881
|
+
kind: "gauge",
|
|
55882
|
+
unit: "%",
|
|
55883
|
+
deadband: 2
|
|
55884
|
+
} } }
|
|
55885
|
+
};
|
|
55716
55886
|
var DoorbellStatusSchema = object({
|
|
55717
55887
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55718
55888
|
lastPressedAt: number().nullable(),
|
|
@@ -56515,6 +56685,32 @@ var gasCapability = {
|
|
|
56515
56685
|
* whether persisting is worth a SQLite commit. */
|
|
56516
56686
|
volatileStateFields: ["lastChangedAt"]
|
|
56517
56687
|
};
|
|
56688
|
+
var HeatingValveStatusSchema = object({
|
|
56689
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56690
|
+
position: number().min(0).max(100).nullable(),
|
|
56691
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56692
|
+
lastFetchedAt: number()
|
|
56693
|
+
});
|
|
56694
|
+
var heatingValveCapability = {
|
|
56695
|
+
name: "heating-valve",
|
|
56696
|
+
scope: "device",
|
|
56697
|
+
deviceNative: true,
|
|
56698
|
+
mode: "singleton",
|
|
56699
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56700
|
+
methods: {},
|
|
56701
|
+
status: {
|
|
56702
|
+
schema: HeatingValveStatusSchema,
|
|
56703
|
+
kind: "push"
|
|
56704
|
+
},
|
|
56705
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56706
|
+
durability: "session",
|
|
56707
|
+
history: { fields: { position: {
|
|
56708
|
+
kind: "gauge",
|
|
56709
|
+
unit: "%",
|
|
56710
|
+
deadband: 1
|
|
56711
|
+
} } },
|
|
56712
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56713
|
+
};
|
|
56518
56714
|
/**
|
|
56519
56715
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56520
56716
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65935,6 +66131,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65935
66131
|
dayNight: dayNightCapability,
|
|
65936
66132
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65937
66133
|
deviceStatus: deviceStatusCapability,
|
|
66134
|
+
dishwasher: dishwasherCapability,
|
|
65938
66135
|
doorbell: doorbellCapability,
|
|
65939
66136
|
enumSensor: enumSensorCapability,
|
|
65940
66137
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65942,6 +66139,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65942
66139
|
featureProbe: featureProbeCapability,
|
|
65943
66140
|
flood: floodCapability,
|
|
65944
66141
|
gas: gasCapability,
|
|
66142
|
+
heatingValve: heatingValveCapability,
|
|
65945
66143
|
humidifier: humidifierCapability,
|
|
65946
66144
|
humiditySensor: humiditySensorCapability,
|
|
65947
66145
|
image: imageCapability,
|
|
@@ -66667,6 +66865,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66667
66865
|
provider: this
|
|
66668
66866
|
}];
|
|
66669
66867
|
}
|
|
66868
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
66869
|
+
providerRegistrationsFromSuper(result) {
|
|
66870
|
+
if (Array.isArray(result)) return result;
|
|
66871
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
66872
|
+
return [];
|
|
66873
|
+
}
|
|
66670
66874
|
async onShutdown() {
|
|
66671
66875
|
this._restoreShuttingDown = true;
|
|
66672
66876
|
this.cancelRestoreRetries();
|
|
@@ -67193,7 +67397,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
67193
67397
|
return toDeviceSummary(device, this.addonId);
|
|
67194
67398
|
}
|
|
67195
67399
|
};
|
|
67196
|
-
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;
|
|
67400
|
+
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;
|
|
67197
67401
|
new Set(Object.values(DeviceType));
|
|
67198
67402
|
Object.freeze({
|
|
67199
67403
|
"accessories.getStatus": {
|
|
@@ -69614,6 +69818,84 @@ Object.freeze({
|
|
|
69614
69818
|
addonId: null,
|
|
69615
69819
|
access: "view"
|
|
69616
69820
|
},
|
|
69821
|
+
"dishwasher.getStatus": {
|
|
69822
|
+
capName: "dishwasher",
|
|
69823
|
+
capScope: "device",
|
|
69824
|
+
addonId: null,
|
|
69825
|
+
access: "view"
|
|
69826
|
+
},
|
|
69827
|
+
"dishwasher.pause": {
|
|
69828
|
+
capName: "dishwasher",
|
|
69829
|
+
capScope: "device",
|
|
69830
|
+
addonId: null,
|
|
69831
|
+
access: "create"
|
|
69832
|
+
},
|
|
69833
|
+
"dishwasher.setChildLock": {
|
|
69834
|
+
capName: "dishwasher",
|
|
69835
|
+
capScope: "device",
|
|
69836
|
+
addonId: null,
|
|
69837
|
+
access: "create"
|
|
69838
|
+
},
|
|
69839
|
+
"dishwasher.setExtraDry": {
|
|
69840
|
+
capName: "dishwasher",
|
|
69841
|
+
capScope: "device",
|
|
69842
|
+
addonId: null,
|
|
69843
|
+
access: "create"
|
|
69844
|
+
},
|
|
69845
|
+
"dishwasher.setHalfLoad": {
|
|
69846
|
+
capName: "dishwasher",
|
|
69847
|
+
capScope: "device",
|
|
69848
|
+
addonId: null,
|
|
69849
|
+
access: "create"
|
|
69850
|
+
},
|
|
69851
|
+
"dishwasher.setHygienePlus": {
|
|
69852
|
+
capName: "dishwasher",
|
|
69853
|
+
capScope: "device",
|
|
69854
|
+
addonId: null,
|
|
69855
|
+
access: "create"
|
|
69856
|
+
},
|
|
69857
|
+
"dishwasher.setIntensiveZone": {
|
|
69858
|
+
capName: "dishwasher",
|
|
69859
|
+
capScope: "device",
|
|
69860
|
+
addonId: null,
|
|
69861
|
+
access: "create"
|
|
69862
|
+
},
|
|
69863
|
+
"dishwasher.setOption": {
|
|
69864
|
+
capName: "dishwasher",
|
|
69865
|
+
capScope: "device",
|
|
69866
|
+
addonId: null,
|
|
69867
|
+
access: "create"
|
|
69868
|
+
},
|
|
69869
|
+
"dishwasher.setPower": {
|
|
69870
|
+
capName: "dishwasher",
|
|
69871
|
+
capScope: "device",
|
|
69872
|
+
addonId: null,
|
|
69873
|
+
access: "create"
|
|
69874
|
+
},
|
|
69875
|
+
"dishwasher.setProgram": {
|
|
69876
|
+
capName: "dishwasher",
|
|
69877
|
+
capScope: "device",
|
|
69878
|
+
addonId: null,
|
|
69879
|
+
access: "create"
|
|
69880
|
+
},
|
|
69881
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69882
|
+
capName: "dishwasher",
|
|
69883
|
+
capScope: "device",
|
|
69884
|
+
addonId: null,
|
|
69885
|
+
access: "create"
|
|
69886
|
+
},
|
|
69887
|
+
"dishwasher.start": {
|
|
69888
|
+
capName: "dishwasher",
|
|
69889
|
+
capScope: "device",
|
|
69890
|
+
addonId: null,
|
|
69891
|
+
access: "create"
|
|
69892
|
+
},
|
|
69893
|
+
"dishwasher.stop": {
|
|
69894
|
+
capName: "dishwasher",
|
|
69895
|
+
capScope: "device",
|
|
69896
|
+
addonId: null,
|
|
69897
|
+
access: "create"
|
|
69898
|
+
},
|
|
69617
69899
|
"doorbell.getStatus": {
|
|
69618
69900
|
capName: "doorbell",
|
|
69619
69901
|
capScope: "device",
|
|
@@ -69824,6 +70106,12 @@ Object.freeze({
|
|
|
69824
70106
|
addonId: null,
|
|
69825
70107
|
access: "view"
|
|
69826
70108
|
},
|
|
70109
|
+
"heatingValve.getStatus": {
|
|
70110
|
+
capName: "heating-valve",
|
|
70111
|
+
capScope: "device",
|
|
70112
|
+
addonId: null,
|
|
70113
|
+
access: "view"
|
|
70114
|
+
},
|
|
69827
70115
|
"humidifier.getStatus": {
|
|
69828
70116
|
capName: "humidifier",
|
|
69829
70117
|
capScope: "device",
|
|
@@ -75411,7 +75699,7 @@ Object.freeze({
|
|
|
75411
75699
|
access: "create"
|
|
75412
75700
|
}
|
|
75413
75701
|
});
|
|
75414
|
-
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;
|
|
75702
|
+
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;
|
|
75415
75703
|
DeviceFeature.BatteryOperated;
|
|
75416
75704
|
Object.freeze({
|
|
75417
75705
|
"accessories.getStatus": [{
|
|
@@ -76235,6 +76523,71 @@ Object.freeze({
|
|
|
76235
76523
|
form: "single",
|
|
76236
76524
|
optional: false
|
|
76237
76525
|
}],
|
|
76526
|
+
"dishwasher.getStatus": [{
|
|
76527
|
+
name: "deviceId",
|
|
76528
|
+
form: "single",
|
|
76529
|
+
optional: false
|
|
76530
|
+
}],
|
|
76531
|
+
"dishwasher.pause": [{
|
|
76532
|
+
name: "deviceId",
|
|
76533
|
+
form: "single",
|
|
76534
|
+
optional: false
|
|
76535
|
+
}],
|
|
76536
|
+
"dishwasher.setChildLock": [{
|
|
76537
|
+
name: "deviceId",
|
|
76538
|
+
form: "single",
|
|
76539
|
+
optional: false
|
|
76540
|
+
}],
|
|
76541
|
+
"dishwasher.setExtraDry": [{
|
|
76542
|
+
name: "deviceId",
|
|
76543
|
+
form: "single",
|
|
76544
|
+
optional: false
|
|
76545
|
+
}],
|
|
76546
|
+
"dishwasher.setHalfLoad": [{
|
|
76547
|
+
name: "deviceId",
|
|
76548
|
+
form: "single",
|
|
76549
|
+
optional: false
|
|
76550
|
+
}],
|
|
76551
|
+
"dishwasher.setHygienePlus": [{
|
|
76552
|
+
name: "deviceId",
|
|
76553
|
+
form: "single",
|
|
76554
|
+
optional: false
|
|
76555
|
+
}],
|
|
76556
|
+
"dishwasher.setIntensiveZone": [{
|
|
76557
|
+
name: "deviceId",
|
|
76558
|
+
form: "single",
|
|
76559
|
+
optional: false
|
|
76560
|
+
}],
|
|
76561
|
+
"dishwasher.setOption": [{
|
|
76562
|
+
name: "deviceId",
|
|
76563
|
+
form: "single",
|
|
76564
|
+
optional: false
|
|
76565
|
+
}],
|
|
76566
|
+
"dishwasher.setPower": [{
|
|
76567
|
+
name: "deviceId",
|
|
76568
|
+
form: "single",
|
|
76569
|
+
optional: false
|
|
76570
|
+
}],
|
|
76571
|
+
"dishwasher.setProgram": [{
|
|
76572
|
+
name: "deviceId",
|
|
76573
|
+
form: "single",
|
|
76574
|
+
optional: false
|
|
76575
|
+
}],
|
|
76576
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
76577
|
+
name: "deviceId",
|
|
76578
|
+
form: "single",
|
|
76579
|
+
optional: false
|
|
76580
|
+
}],
|
|
76581
|
+
"dishwasher.start": [{
|
|
76582
|
+
name: "deviceId",
|
|
76583
|
+
form: "single",
|
|
76584
|
+
optional: false
|
|
76585
|
+
}],
|
|
76586
|
+
"dishwasher.stop": [{
|
|
76587
|
+
name: "deviceId",
|
|
76588
|
+
form: "single",
|
|
76589
|
+
optional: false
|
|
76590
|
+
}],
|
|
76238
76591
|
"doorbell.getStatus": [{
|
|
76239
76592
|
name: "deviceId",
|
|
76240
76593
|
form: "single",
|
|
@@ -76304,6 +76657,11 @@ Object.freeze({
|
|
|
76304
76657
|
form: "single",
|
|
76305
76658
|
optional: false
|
|
76306
76659
|
}],
|
|
76660
|
+
"heatingValve.getStatus": [{
|
|
76661
|
+
name: "deviceId",
|
|
76662
|
+
form: "single",
|
|
76663
|
+
optional: false
|
|
76664
|
+
}],
|
|
76307
76665
|
"humidifier.getStatus": [{
|
|
76308
76666
|
name: "deviceId",
|
|
76309
76667
|
form: "single",
|
|
@@ -105315,7 +105673,7 @@ var HomematicProviderAddon = class extends BaseDeviceProvider {
|
|
|
105315
105673
|
super({ ...DEFAULTS });
|
|
105316
105674
|
}
|
|
105317
105675
|
async onInitialize() {
|
|
105318
|
-
const regs = await super.onInitialize();
|
|
105676
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
105319
105677
|
const migrated = migrateLegacyConfig(await this.resolveGlobalStore());
|
|
105320
105678
|
if (this.brokersDiffer(migrated.brokers, this.config.brokers)) await this.updateGlobalSettings({ brokers: migrated.brokers });
|
|
105321
105679
|
const records = this.ctx.records;
|
package/dist/addon.mjs
CHANGED
|
@@ -5548,7 +5548,7 @@ var ZodIssueCode = {
|
|
|
5548
5548
|
var ZodFirstPartyTypeKind;
|
|
5549
5549
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5550
5550
|
//#endregion
|
|
5551
|
-
//#region ../types/dist/sleep-
|
|
5551
|
+
//#region ../types/dist/sleep-BegKjwUu.mjs
|
|
5552
5552
|
/**
|
|
5553
5553
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5554
5554
|
* window to float samples (D455).
|
|
@@ -8767,7 +8767,7 @@ object({
|
|
|
8767
8767
|
params: record(string(), union([string(), number()])).optional()
|
|
8768
8768
|
});
|
|
8769
8769
|
//#endregion
|
|
8770
|
-
//#region ../types/dist/err-msg
|
|
8770
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8771
8771
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8772
8772
|
DeviceType["Camera"] = "camera";
|
|
8773
8773
|
DeviceType["Hub"] = "hub";
|
|
@@ -8859,6 +8859,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8859
8859
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8860
8860
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8861
8861
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8862
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8863
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8864
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8865
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8862
8866
|
return DeviceType;
|
|
8863
8867
|
}({});
|
|
8864
8868
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -9116,7 +9120,7 @@ function errMsg(err) {
|
|
|
9116
9120
|
return String(err);
|
|
9117
9121
|
}
|
|
9118
9122
|
//#endregion
|
|
9119
|
-
//#region ../types/dist/composition-
|
|
9123
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
9120
9124
|
/**
|
|
9121
9125
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9122
9126
|
*
|
|
@@ -13502,8 +13506,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13502
13506
|
"info",
|
|
13503
13507
|
"success",
|
|
13504
13508
|
"warning",
|
|
13505
|
-
"error"
|
|
13509
|
+
"error",
|
|
13510
|
+
"critical"
|
|
13506
13511
|
]);
|
|
13512
|
+
var AlertActionSchema = object({
|
|
13513
|
+
label: string(),
|
|
13514
|
+
href: string().optional()
|
|
13515
|
+
});
|
|
13507
13516
|
var AlertStatusSchema = _enum([
|
|
13508
13517
|
"active",
|
|
13509
13518
|
"in-progress",
|
|
@@ -13521,6 +13530,7 @@ var AlertSchema = object({
|
|
|
13521
13530
|
severity: AlertSeveritySchema,
|
|
13522
13531
|
title: string(),
|
|
13523
13532
|
message: string(),
|
|
13533
|
+
action: AlertActionSchema.optional(),
|
|
13524
13534
|
status: AlertStatusSchema,
|
|
13525
13535
|
progress: number().optional(),
|
|
13526
13536
|
read: boolean(),
|
|
@@ -18044,7 +18054,11 @@ var deviceDiscoveryCapability = {
|
|
|
18044
18054
|
};
|
|
18045
18055
|
/**
|
|
18046
18056
|
* `device-adoption` — generic discovery + adoption surface,
|
|
18047
|
-
* system-scoped
|
|
18057
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
18058
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
18059
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
18060
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
18061
|
+
* successor to `ha-discovery`:
|
|
18048
18062
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
18049
18063
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
18050
18064
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -18209,7 +18223,7 @@ var ResyncResultSchema = object({
|
|
|
18209
18223
|
var deviceAdoptionCapability = {
|
|
18210
18224
|
name: "device-adoption",
|
|
18211
18225
|
scope: "system",
|
|
18212
|
-
mode: "
|
|
18226
|
+
mode: "collection",
|
|
18213
18227
|
status: {
|
|
18214
18228
|
schema: AdoptionStatusSchema,
|
|
18215
18229
|
kind: "poll"
|
|
@@ -54241,7 +54255,8 @@ var batteryCapability = {
|
|
|
54241
54255
|
DeviceType.Button,
|
|
54242
54256
|
DeviceType.Switch,
|
|
54243
54257
|
DeviceType.PetFeeder,
|
|
54244
|
-
DeviceType.Container
|
|
54258
|
+
DeviceType.Container,
|
|
54259
|
+
DeviceType.Thermostat
|
|
54245
54260
|
],
|
|
54246
54261
|
methods: {
|
|
54247
54262
|
/**
|
|
@@ -55714,6 +55729,161 @@ onStatusChanged: { data: object({
|
|
|
55714
55729
|
* whether persisting is worth a SQLite commit. */
|
|
55715
55730
|
volatileStateFields: ["lastChangedAt"]
|
|
55716
55731
|
};
|
|
55732
|
+
/**
|
|
55733
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55734
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55735
|
+
*
|
|
55736
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55737
|
+
* by any integration that exposes the same program / option surface.
|
|
55738
|
+
*
|
|
55739
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55740
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55741
|
+
*/
|
|
55742
|
+
var DishwasherStateSchema = _enum([
|
|
55743
|
+
"idle",
|
|
55744
|
+
"running",
|
|
55745
|
+
"paused",
|
|
55746
|
+
"finished",
|
|
55747
|
+
"error",
|
|
55748
|
+
"unavailable"
|
|
55749
|
+
]);
|
|
55750
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55751
|
+
"ok",
|
|
55752
|
+
"low",
|
|
55753
|
+
"empty"
|
|
55754
|
+
]);
|
|
55755
|
+
var DishwasherStatusSchema = object({
|
|
55756
|
+
state: DishwasherStateSchema,
|
|
55757
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55758
|
+
program: string().nullable(),
|
|
55759
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55760
|
+
availablePrograms: array(string()),
|
|
55761
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55762
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55763
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55764
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55765
|
+
/** True when the door is reported open. */
|
|
55766
|
+
doorOpen: boolean(),
|
|
55767
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55768
|
+
remoteStartAllowed: boolean(),
|
|
55769
|
+
/** Main power / switched-on state. */
|
|
55770
|
+
powerOn: boolean(),
|
|
55771
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55772
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55773
|
+
halfLoad: boolean(),
|
|
55774
|
+
hygienePlus: boolean(),
|
|
55775
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55776
|
+
extraDry: boolean(),
|
|
55777
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55778
|
+
intensiveZone: boolean(),
|
|
55779
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55780
|
+
varioSpeedPlus: boolean(),
|
|
55781
|
+
/** Child lock (controls disabled on the appliance). */
|
|
55782
|
+
childLock: boolean(),
|
|
55783
|
+
errorCode: number().nullable(),
|
|
55784
|
+
errorLabel: string().nullable(),
|
|
55785
|
+
lastFetchedAt: number()
|
|
55786
|
+
});
|
|
55787
|
+
var dishwasherCapability = {
|
|
55788
|
+
name: "dishwasher",
|
|
55789
|
+
scope: "device",
|
|
55790
|
+
deviceNative: true,
|
|
55791
|
+
mode: "singleton",
|
|
55792
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55793
|
+
methods: {
|
|
55794
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55795
|
+
kind: "mutation",
|
|
55796
|
+
auth: "protected"
|
|
55797
|
+
}),
|
|
55798
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55799
|
+
kind: "mutation",
|
|
55800
|
+
auth: "protected"
|
|
55801
|
+
}),
|
|
55802
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55803
|
+
kind: "mutation",
|
|
55804
|
+
auth: "protected"
|
|
55805
|
+
}),
|
|
55806
|
+
setProgram: method(object({
|
|
55807
|
+
deviceId: number().int().nonnegative(),
|
|
55808
|
+
program: string().min(1)
|
|
55809
|
+
}), _void(), {
|
|
55810
|
+
kind: "mutation",
|
|
55811
|
+
auth: "protected"
|
|
55812
|
+
}),
|
|
55813
|
+
setPower: method(object({
|
|
55814
|
+
deviceId: number().int().nonnegative(),
|
|
55815
|
+
on: boolean()
|
|
55816
|
+
}), _void(), {
|
|
55817
|
+
kind: "mutation",
|
|
55818
|
+
auth: "protected"
|
|
55819
|
+
}),
|
|
55820
|
+
setHalfLoad: method(object({
|
|
55821
|
+
deviceId: number().int().nonnegative(),
|
|
55822
|
+
on: boolean()
|
|
55823
|
+
}), _void(), {
|
|
55824
|
+
kind: "mutation",
|
|
55825
|
+
auth: "protected"
|
|
55826
|
+
}),
|
|
55827
|
+
setHygienePlus: method(object({
|
|
55828
|
+
deviceId: number().int().nonnegative(),
|
|
55829
|
+
on: boolean()
|
|
55830
|
+
}), _void(), {
|
|
55831
|
+
kind: "mutation",
|
|
55832
|
+
auth: "protected"
|
|
55833
|
+
}),
|
|
55834
|
+
setExtraDry: method(object({
|
|
55835
|
+
deviceId: number().int().nonnegative(),
|
|
55836
|
+
on: boolean()
|
|
55837
|
+
}), _void(), {
|
|
55838
|
+
kind: "mutation",
|
|
55839
|
+
auth: "protected"
|
|
55840
|
+
}),
|
|
55841
|
+
setIntensiveZone: method(object({
|
|
55842
|
+
deviceId: number().int().nonnegative(),
|
|
55843
|
+
on: boolean()
|
|
55844
|
+
}), _void(), {
|
|
55845
|
+
kind: "mutation",
|
|
55846
|
+
auth: "protected"
|
|
55847
|
+
}),
|
|
55848
|
+
setVarioSpeedPlus: method(object({
|
|
55849
|
+
deviceId: number().int().nonnegative(),
|
|
55850
|
+
on: boolean()
|
|
55851
|
+
}), _void(), {
|
|
55852
|
+
kind: "mutation",
|
|
55853
|
+
auth: "protected"
|
|
55854
|
+
}),
|
|
55855
|
+
setChildLock: method(object({
|
|
55856
|
+
deviceId: number().int().nonnegative(),
|
|
55857
|
+
on: boolean()
|
|
55858
|
+
}), _void(), {
|
|
55859
|
+
kind: "mutation",
|
|
55860
|
+
auth: "protected"
|
|
55861
|
+
}),
|
|
55862
|
+
setOption: method(object({
|
|
55863
|
+
deviceId: number().int().nonnegative(),
|
|
55864
|
+
key: string().min(1),
|
|
55865
|
+
value: union([
|
|
55866
|
+
boolean(),
|
|
55867
|
+
string(),
|
|
55868
|
+
number()
|
|
55869
|
+
])
|
|
55870
|
+
}), _void(), {
|
|
55871
|
+
kind: "mutation",
|
|
55872
|
+
auth: "protected"
|
|
55873
|
+
})
|
|
55874
|
+
},
|
|
55875
|
+
status: {
|
|
55876
|
+
schema: DishwasherStatusSchema,
|
|
55877
|
+
kind: "poll"
|
|
55878
|
+
},
|
|
55879
|
+
runtimeState: DishwasherStatusSchema,
|
|
55880
|
+
durability: "session",
|
|
55881
|
+
history: { fields: { progressPercent: {
|
|
55882
|
+
kind: "gauge",
|
|
55883
|
+
unit: "%",
|
|
55884
|
+
deadband: 2
|
|
55885
|
+
} } }
|
|
55886
|
+
};
|
|
55717
55887
|
var DoorbellStatusSchema = object({
|
|
55718
55888
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55719
55889
|
lastPressedAt: number().nullable(),
|
|
@@ -56516,6 +56686,32 @@ var gasCapability = {
|
|
|
56516
56686
|
* whether persisting is worth a SQLite commit. */
|
|
56517
56687
|
volatileStateFields: ["lastChangedAt"]
|
|
56518
56688
|
};
|
|
56689
|
+
var HeatingValveStatusSchema = object({
|
|
56690
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56691
|
+
position: number().min(0).max(100).nullable(),
|
|
56692
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56693
|
+
lastFetchedAt: number()
|
|
56694
|
+
});
|
|
56695
|
+
var heatingValveCapability = {
|
|
56696
|
+
name: "heating-valve",
|
|
56697
|
+
scope: "device",
|
|
56698
|
+
deviceNative: true,
|
|
56699
|
+
mode: "singleton",
|
|
56700
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56701
|
+
methods: {},
|
|
56702
|
+
status: {
|
|
56703
|
+
schema: HeatingValveStatusSchema,
|
|
56704
|
+
kind: "push"
|
|
56705
|
+
},
|
|
56706
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56707
|
+
durability: "session",
|
|
56708
|
+
history: { fields: { position: {
|
|
56709
|
+
kind: "gauge",
|
|
56710
|
+
unit: "%",
|
|
56711
|
+
deadband: 1
|
|
56712
|
+
} } },
|
|
56713
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56714
|
+
};
|
|
56519
56715
|
/**
|
|
56520
56716
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56521
56717
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65936,6 +66132,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65936
66132
|
dayNight: dayNightCapability,
|
|
65937
66133
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65938
66134
|
deviceStatus: deviceStatusCapability,
|
|
66135
|
+
dishwasher: dishwasherCapability,
|
|
65939
66136
|
doorbell: doorbellCapability,
|
|
65940
66137
|
enumSensor: enumSensorCapability,
|
|
65941
66138
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65943,6 +66140,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65943
66140
|
featureProbe: featureProbeCapability,
|
|
65944
66141
|
flood: floodCapability,
|
|
65945
66142
|
gas: gasCapability,
|
|
66143
|
+
heatingValve: heatingValveCapability,
|
|
65946
66144
|
humidifier: humidifierCapability,
|
|
65947
66145
|
humiditySensor: humiditySensorCapability,
|
|
65948
66146
|
image: imageCapability,
|
|
@@ -66668,6 +66866,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66668
66866
|
provider: this
|
|
66669
66867
|
}];
|
|
66670
66868
|
}
|
|
66869
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
66870
|
+
providerRegistrationsFromSuper(result) {
|
|
66871
|
+
if (Array.isArray(result)) return result;
|
|
66872
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
66873
|
+
return [];
|
|
66874
|
+
}
|
|
66671
66875
|
async onShutdown() {
|
|
66672
66876
|
this._restoreShuttingDown = true;
|
|
66673
66877
|
this.cancelRestoreRetries();
|
|
@@ -67194,7 +67398,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
67194
67398
|
return toDeviceSummary(device, this.addonId);
|
|
67195
67399
|
}
|
|
67196
67400
|
};
|
|
67197
|
-
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;
|
|
67401
|
+
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;
|
|
67198
67402
|
new Set(Object.values(DeviceType));
|
|
67199
67403
|
Object.freeze({
|
|
67200
67404
|
"accessories.getStatus": {
|
|
@@ -69615,6 +69819,84 @@ Object.freeze({
|
|
|
69615
69819
|
addonId: null,
|
|
69616
69820
|
access: "view"
|
|
69617
69821
|
},
|
|
69822
|
+
"dishwasher.getStatus": {
|
|
69823
|
+
capName: "dishwasher",
|
|
69824
|
+
capScope: "device",
|
|
69825
|
+
addonId: null,
|
|
69826
|
+
access: "view"
|
|
69827
|
+
},
|
|
69828
|
+
"dishwasher.pause": {
|
|
69829
|
+
capName: "dishwasher",
|
|
69830
|
+
capScope: "device",
|
|
69831
|
+
addonId: null,
|
|
69832
|
+
access: "create"
|
|
69833
|
+
},
|
|
69834
|
+
"dishwasher.setChildLock": {
|
|
69835
|
+
capName: "dishwasher",
|
|
69836
|
+
capScope: "device",
|
|
69837
|
+
addonId: null,
|
|
69838
|
+
access: "create"
|
|
69839
|
+
},
|
|
69840
|
+
"dishwasher.setExtraDry": {
|
|
69841
|
+
capName: "dishwasher",
|
|
69842
|
+
capScope: "device",
|
|
69843
|
+
addonId: null,
|
|
69844
|
+
access: "create"
|
|
69845
|
+
},
|
|
69846
|
+
"dishwasher.setHalfLoad": {
|
|
69847
|
+
capName: "dishwasher",
|
|
69848
|
+
capScope: "device",
|
|
69849
|
+
addonId: null,
|
|
69850
|
+
access: "create"
|
|
69851
|
+
},
|
|
69852
|
+
"dishwasher.setHygienePlus": {
|
|
69853
|
+
capName: "dishwasher",
|
|
69854
|
+
capScope: "device",
|
|
69855
|
+
addonId: null,
|
|
69856
|
+
access: "create"
|
|
69857
|
+
},
|
|
69858
|
+
"dishwasher.setIntensiveZone": {
|
|
69859
|
+
capName: "dishwasher",
|
|
69860
|
+
capScope: "device",
|
|
69861
|
+
addonId: null,
|
|
69862
|
+
access: "create"
|
|
69863
|
+
},
|
|
69864
|
+
"dishwasher.setOption": {
|
|
69865
|
+
capName: "dishwasher",
|
|
69866
|
+
capScope: "device",
|
|
69867
|
+
addonId: null,
|
|
69868
|
+
access: "create"
|
|
69869
|
+
},
|
|
69870
|
+
"dishwasher.setPower": {
|
|
69871
|
+
capName: "dishwasher",
|
|
69872
|
+
capScope: "device",
|
|
69873
|
+
addonId: null,
|
|
69874
|
+
access: "create"
|
|
69875
|
+
},
|
|
69876
|
+
"dishwasher.setProgram": {
|
|
69877
|
+
capName: "dishwasher",
|
|
69878
|
+
capScope: "device",
|
|
69879
|
+
addonId: null,
|
|
69880
|
+
access: "create"
|
|
69881
|
+
},
|
|
69882
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69883
|
+
capName: "dishwasher",
|
|
69884
|
+
capScope: "device",
|
|
69885
|
+
addonId: null,
|
|
69886
|
+
access: "create"
|
|
69887
|
+
},
|
|
69888
|
+
"dishwasher.start": {
|
|
69889
|
+
capName: "dishwasher",
|
|
69890
|
+
capScope: "device",
|
|
69891
|
+
addonId: null,
|
|
69892
|
+
access: "create"
|
|
69893
|
+
},
|
|
69894
|
+
"dishwasher.stop": {
|
|
69895
|
+
capName: "dishwasher",
|
|
69896
|
+
capScope: "device",
|
|
69897
|
+
addonId: null,
|
|
69898
|
+
access: "create"
|
|
69899
|
+
},
|
|
69618
69900
|
"doorbell.getStatus": {
|
|
69619
69901
|
capName: "doorbell",
|
|
69620
69902
|
capScope: "device",
|
|
@@ -69825,6 +70107,12 @@ Object.freeze({
|
|
|
69825
70107
|
addonId: null,
|
|
69826
70108
|
access: "view"
|
|
69827
70109
|
},
|
|
70110
|
+
"heatingValve.getStatus": {
|
|
70111
|
+
capName: "heating-valve",
|
|
70112
|
+
capScope: "device",
|
|
70113
|
+
addonId: null,
|
|
70114
|
+
access: "view"
|
|
70115
|
+
},
|
|
69828
70116
|
"humidifier.getStatus": {
|
|
69829
70117
|
capName: "humidifier",
|
|
69830
70118
|
capScope: "device",
|
|
@@ -75412,7 +75700,7 @@ Object.freeze({
|
|
|
75412
75700
|
access: "create"
|
|
75413
75701
|
}
|
|
75414
75702
|
});
|
|
75415
|
-
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;
|
|
75703
|
+
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;
|
|
75416
75704
|
DeviceFeature.BatteryOperated;
|
|
75417
75705
|
Object.freeze({
|
|
75418
75706
|
"accessories.getStatus": [{
|
|
@@ -76236,6 +76524,71 @@ Object.freeze({
|
|
|
76236
76524
|
form: "single",
|
|
76237
76525
|
optional: false
|
|
76238
76526
|
}],
|
|
76527
|
+
"dishwasher.getStatus": [{
|
|
76528
|
+
name: "deviceId",
|
|
76529
|
+
form: "single",
|
|
76530
|
+
optional: false
|
|
76531
|
+
}],
|
|
76532
|
+
"dishwasher.pause": [{
|
|
76533
|
+
name: "deviceId",
|
|
76534
|
+
form: "single",
|
|
76535
|
+
optional: false
|
|
76536
|
+
}],
|
|
76537
|
+
"dishwasher.setChildLock": [{
|
|
76538
|
+
name: "deviceId",
|
|
76539
|
+
form: "single",
|
|
76540
|
+
optional: false
|
|
76541
|
+
}],
|
|
76542
|
+
"dishwasher.setExtraDry": [{
|
|
76543
|
+
name: "deviceId",
|
|
76544
|
+
form: "single",
|
|
76545
|
+
optional: false
|
|
76546
|
+
}],
|
|
76547
|
+
"dishwasher.setHalfLoad": [{
|
|
76548
|
+
name: "deviceId",
|
|
76549
|
+
form: "single",
|
|
76550
|
+
optional: false
|
|
76551
|
+
}],
|
|
76552
|
+
"dishwasher.setHygienePlus": [{
|
|
76553
|
+
name: "deviceId",
|
|
76554
|
+
form: "single",
|
|
76555
|
+
optional: false
|
|
76556
|
+
}],
|
|
76557
|
+
"dishwasher.setIntensiveZone": [{
|
|
76558
|
+
name: "deviceId",
|
|
76559
|
+
form: "single",
|
|
76560
|
+
optional: false
|
|
76561
|
+
}],
|
|
76562
|
+
"dishwasher.setOption": [{
|
|
76563
|
+
name: "deviceId",
|
|
76564
|
+
form: "single",
|
|
76565
|
+
optional: false
|
|
76566
|
+
}],
|
|
76567
|
+
"dishwasher.setPower": [{
|
|
76568
|
+
name: "deviceId",
|
|
76569
|
+
form: "single",
|
|
76570
|
+
optional: false
|
|
76571
|
+
}],
|
|
76572
|
+
"dishwasher.setProgram": [{
|
|
76573
|
+
name: "deviceId",
|
|
76574
|
+
form: "single",
|
|
76575
|
+
optional: false
|
|
76576
|
+
}],
|
|
76577
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
76578
|
+
name: "deviceId",
|
|
76579
|
+
form: "single",
|
|
76580
|
+
optional: false
|
|
76581
|
+
}],
|
|
76582
|
+
"dishwasher.start": [{
|
|
76583
|
+
name: "deviceId",
|
|
76584
|
+
form: "single",
|
|
76585
|
+
optional: false
|
|
76586
|
+
}],
|
|
76587
|
+
"dishwasher.stop": [{
|
|
76588
|
+
name: "deviceId",
|
|
76589
|
+
form: "single",
|
|
76590
|
+
optional: false
|
|
76591
|
+
}],
|
|
76239
76592
|
"doorbell.getStatus": [{
|
|
76240
76593
|
name: "deviceId",
|
|
76241
76594
|
form: "single",
|
|
@@ -76305,6 +76658,11 @@ Object.freeze({
|
|
|
76305
76658
|
form: "single",
|
|
76306
76659
|
optional: false
|
|
76307
76660
|
}],
|
|
76661
|
+
"heatingValve.getStatus": [{
|
|
76662
|
+
name: "deviceId",
|
|
76663
|
+
form: "single",
|
|
76664
|
+
optional: false
|
|
76665
|
+
}],
|
|
76308
76666
|
"humidifier.getStatus": [{
|
|
76309
76667
|
name: "deviceId",
|
|
76310
76668
|
form: "single",
|
|
@@ -105316,7 +105674,7 @@ var HomematicProviderAddon = class extends BaseDeviceProvider {
|
|
|
105316
105674
|
super({ ...DEFAULTS });
|
|
105317
105675
|
}
|
|
105318
105676
|
async onInitialize() {
|
|
105319
|
-
const regs = await super.onInitialize();
|
|
105677
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
105320
105678
|
const migrated = migrateLegacyConfig(await this.resolveGlobalStore());
|
|
105321
105679
|
if (this.brokersDiffer(migrated.brokers, this.config.brokers)) await this.updateGlobalSettings({ brokers: migrated.brokers });
|
|
105322
105680
|
const records = this.ctx.records;
|
package/package.json
CHANGED