@camstack/addon-export-alexa 1.1.7 → 1.1.8
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/export-alexa.addon.js +79 -14
- package/dist/export-alexa.addon.mjs +79 -14
- package/package.json +1 -1
|
@@ -9178,18 +9178,47 @@ object({
|
|
|
9178
9178
|
lastUpdated: number().nullable()
|
|
9179
9179
|
});
|
|
9180
9180
|
DeviceType.Image;
|
|
9181
|
+
/**
|
|
9182
|
+
* Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
|
|
9183
|
+
* with a mowing lifecycle plus a dock action.
|
|
9184
|
+
*
|
|
9185
|
+
* Activity follows HA's canonical lawn-mower lifecycle: `idle` /
|
|
9186
|
+
* `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
|
|
9187
|
+
* nullable — some mowers don't report a battery percentage.
|
|
9188
|
+
*
|
|
9189
|
+
* `startMowing` begins a mowing run, `pause` halts it in place, and
|
|
9190
|
+
* `dock` sends the mower back to its charging station.
|
|
9191
|
+
*/
|
|
9192
|
+
var LawnMowerActivitySchema = _enum([
|
|
9193
|
+
"idle",
|
|
9194
|
+
"mowing",
|
|
9195
|
+
"paused",
|
|
9196
|
+
"docked",
|
|
9197
|
+
"error"
|
|
9198
|
+
]);
|
|
9199
|
+
/** Severity of the current device/error code — info (status), warning, error. */
|
|
9200
|
+
var DeviceCodeSeveritySchema = _enum([
|
|
9201
|
+
"info",
|
|
9202
|
+
"warning",
|
|
9203
|
+
"error"
|
|
9204
|
+
]);
|
|
9181
9205
|
object({
|
|
9182
9206
|
/** Lifecycle activity of the mower. */
|
|
9183
|
-
activity:
|
|
9184
|
-
"idle",
|
|
9185
|
-
"mowing",
|
|
9186
|
-
"paused",
|
|
9187
|
-
"docked",
|
|
9188
|
-
"error"
|
|
9189
|
-
]),
|
|
9207
|
+
activity: LawnMowerActivitySchema,
|
|
9190
9208
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
9191
9209
|
* reading. */
|
|
9192
9210
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
9211
|
+
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
9212
|
+
* task is active / progress is unavailable. */
|
|
9213
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
9214
|
+
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
9215
|
+
* or null when unknown. */
|
|
9216
|
+
currentCode: number().nullable(),
|
|
9217
|
+
/** Human label for {@link currentCode}, or null when undecodable. */
|
|
9218
|
+
currentCodeLabel: string().nullable(),
|
|
9219
|
+
/** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
|
|
9220
|
+
* attention; `info` is normal status. */
|
|
9221
|
+
severity: DeviceCodeSeveritySchema,
|
|
9193
9222
|
/** Ms epoch when the slice was last updated. */
|
|
9194
9223
|
lastChangedAt: number()
|
|
9195
9224
|
});
|
|
@@ -10764,6 +10793,7 @@ var VacuumStateSchema = _enum([
|
|
|
10764
10793
|
"paused",
|
|
10765
10794
|
"returning",
|
|
10766
10795
|
"docked",
|
|
10796
|
+
"drying",
|
|
10767
10797
|
"error"
|
|
10768
10798
|
]);
|
|
10769
10799
|
/**
|
|
@@ -10802,6 +10832,12 @@ object({
|
|
|
10802
10832
|
detergent: TankStatusSchema.nullable(),
|
|
10803
10833
|
/** Dust bin. Null when the hardware has no dust bin. */
|
|
10804
10834
|
dustBin: TankStatusSchema.nullable(),
|
|
10835
|
+
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
10836
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
10837
|
+
/** Current error code (0 / null = no error). */
|
|
10838
|
+
errorCode: number().nullable(),
|
|
10839
|
+
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
10840
|
+
errorLabel: string().nullable(),
|
|
10805
10841
|
/** Ms epoch when the slice was last updated. */
|
|
10806
10842
|
lastChangedAt: number()
|
|
10807
10843
|
});
|
|
@@ -12270,17 +12306,32 @@ var ReleaseInputSchema = object({
|
|
|
12270
12306
|
* the parent cascades into every accessory. */
|
|
12271
12307
|
camDeviceId: number().int().nonnegative()
|
|
12272
12308
|
});
|
|
12273
|
-
var ResyncInputSchema = object({
|
|
12274
|
-
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12275
|
-
* source (integration/broker + native id) and re-aligns the device's
|
|
12276
|
-
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12277
|
-
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12278
|
-
camDeviceId: number().int().nonnegative()
|
|
12309
|
+
var ResyncInputSchema = object({
|
|
12310
|
+
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12311
|
+
* source (integration/broker + native id) and re-aligns the device's
|
|
12312
|
+
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12313
|
+
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12314
|
+
camDeviceId: number().int().nonnegative(),
|
|
12315
|
+
/** "Resync from zero" (#19). When true, the kernel PURGES every accessory
|
|
12316
|
+
* child of `camDeviceId` BEFORE the provider re-derives the device, so the
|
|
12317
|
+
* children are rebuilt fresh from source — correct names, coords, and units —
|
|
12318
|
+
* instead of being preserved by the incremental reconcile. Use to recover from
|
|
12319
|
+
* legacy generic/placeholder names that the normal name-precedence keeps frozen
|
|
12320
|
+
* (the operator's explicit reset). Push-driven integrations (no-op resync)
|
|
12321
|
+
* rebuild on their next snapshot; pull/command integrations rebuild in `resync`.
|
|
12322
|
+
* Operator edits on the PARENT (its name, layout, primary-child pick) survive —
|
|
12323
|
+
* only the children are torn down. Omitted/false ⇒ the normal incremental
|
|
12324
|
+
* re-sync that preserves children. */
|
|
12325
|
+
resetToSource: boolean().optional()
|
|
12326
|
+
});
|
|
12279
12327
|
var ResyncResultSchema = object({
|
|
12280
12328
|
/** True when the persisted spec actually changed (children may have been rebuilt). */
|
|
12281
12329
|
changed: boolean(),
|
|
12282
12330
|
/** Number of child devices rebuilt into a new class by this re-sync. */
|
|
12283
|
-
rebuiltChildren: number().int().nonnegative()
|
|
12331
|
+
rebuiltChildren: number().int().nonnegative(),
|
|
12332
|
+
/** Number of accessory children torn down by a `resetToSource` purge before the
|
|
12333
|
+
* provider re-derived the device. 0/absent for a normal incremental re-sync. */
|
|
12334
|
+
removedChildren: number().int().nonnegative().optional()
|
|
12284
12335
|
});
|
|
12285
12336
|
method(object({ integrationId: string() }), object({ filters: array(AdoptionFilterSchema) }), { auth: "admin" }), method(ListCandidatesInputSchema, ListCandidatesOutputSchema, { auth: "admin" }), method(GetCandidateInputSchema, DiscoveredChildDeviceSchema.nullable(), { auth: "admin" }), method(object({ integrationId: string() }), AdoptionStatusSchema, {
|
|
12286
12337
|
kind: "mutation",
|
|
@@ -14021,6 +14072,11 @@ var DeviceMetaSchema = object({
|
|
|
14021
14072
|
addonId: string(),
|
|
14022
14073
|
type: string(),
|
|
14023
14074
|
name: string(),
|
|
14075
|
+
/** True once an operator explicitly renamed the device via `setName`. Drives
|
|
14076
|
+
* reconcile name-precedence (preserve operator name vs adopt fresh provider
|
|
14077
|
+
* name). Absent ⇒ treated as user-named (PRESERVE) for legacy rows. See
|
|
14078
|
+
* `DeviceMeta.userNamed`. */
|
|
14079
|
+
userNamed: boolean().optional(),
|
|
14024
14080
|
location: string().nullable(),
|
|
14025
14081
|
disabled: boolean(),
|
|
14026
14082
|
parentDeviceId: number().nullable(),
|
|
@@ -14331,6 +14387,9 @@ method(object({
|
|
|
14331
14387
|
}), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
|
|
14332
14388
|
kind: "mutation",
|
|
14333
14389
|
auth: "admin"
|
|
14390
|
+
}), method(ResyncInputSchema, ResyncResultSchema, {
|
|
14391
|
+
kind: "mutation",
|
|
14392
|
+
auth: "admin"
|
|
14334
14393
|
}), method(object({
|
|
14335
14394
|
deviceId: number(),
|
|
14336
14395
|
key: string(),
|
|
@@ -18093,6 +18152,12 @@ Object.freeze({
|
|
|
18093
18152
|
addonId: null,
|
|
18094
18153
|
access: "create"
|
|
18095
18154
|
},
|
|
18155
|
+
"deviceManager.adoptionResync": {
|
|
18156
|
+
capName: "device-manager",
|
|
18157
|
+
capScope: "system",
|
|
18158
|
+
addonId: null,
|
|
18159
|
+
access: "create"
|
|
18160
|
+
},
|
|
18096
18161
|
"deviceManager.allocateDeviceId": {
|
|
18097
18162
|
capName: "device-manager",
|
|
18098
18163
|
capScope: "system",
|
|
@@ -9152,18 +9152,47 @@ object({
|
|
|
9152
9152
|
lastUpdated: number().nullable()
|
|
9153
9153
|
});
|
|
9154
9154
|
DeviceType.Image;
|
|
9155
|
+
/**
|
|
9156
|
+
* Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
|
|
9157
|
+
* with a mowing lifecycle plus a dock action.
|
|
9158
|
+
*
|
|
9159
|
+
* Activity follows HA's canonical lawn-mower lifecycle: `idle` /
|
|
9160
|
+
* `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
|
|
9161
|
+
* nullable — some mowers don't report a battery percentage.
|
|
9162
|
+
*
|
|
9163
|
+
* `startMowing` begins a mowing run, `pause` halts it in place, and
|
|
9164
|
+
* `dock` sends the mower back to its charging station.
|
|
9165
|
+
*/
|
|
9166
|
+
var LawnMowerActivitySchema = _enum([
|
|
9167
|
+
"idle",
|
|
9168
|
+
"mowing",
|
|
9169
|
+
"paused",
|
|
9170
|
+
"docked",
|
|
9171
|
+
"error"
|
|
9172
|
+
]);
|
|
9173
|
+
/** Severity of the current device/error code — info (status), warning, error. */
|
|
9174
|
+
var DeviceCodeSeveritySchema = _enum([
|
|
9175
|
+
"info",
|
|
9176
|
+
"warning",
|
|
9177
|
+
"error"
|
|
9178
|
+
]);
|
|
9155
9179
|
object({
|
|
9156
9180
|
/** Lifecycle activity of the mower. */
|
|
9157
|
-
activity:
|
|
9158
|
-
"idle",
|
|
9159
|
-
"mowing",
|
|
9160
|
-
"paused",
|
|
9161
|
-
"docked",
|
|
9162
|
-
"error"
|
|
9163
|
-
]),
|
|
9181
|
+
activity: LawnMowerActivitySchema,
|
|
9164
9182
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
9165
9183
|
* reading. */
|
|
9166
9184
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
9185
|
+
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
9186
|
+
* task is active / progress is unavailable. */
|
|
9187
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
9188
|
+
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
9189
|
+
* or null when unknown. */
|
|
9190
|
+
currentCode: number().nullable(),
|
|
9191
|
+
/** Human label for {@link currentCode}, or null when undecodable. */
|
|
9192
|
+
currentCodeLabel: string().nullable(),
|
|
9193
|
+
/** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
|
|
9194
|
+
* attention; `info` is normal status. */
|
|
9195
|
+
severity: DeviceCodeSeveritySchema,
|
|
9167
9196
|
/** Ms epoch when the slice was last updated. */
|
|
9168
9197
|
lastChangedAt: number()
|
|
9169
9198
|
});
|
|
@@ -10738,6 +10767,7 @@ var VacuumStateSchema = _enum([
|
|
|
10738
10767
|
"paused",
|
|
10739
10768
|
"returning",
|
|
10740
10769
|
"docked",
|
|
10770
|
+
"drying",
|
|
10741
10771
|
"error"
|
|
10742
10772
|
]);
|
|
10743
10773
|
/**
|
|
@@ -10776,6 +10806,12 @@ object({
|
|
|
10776
10806
|
detergent: TankStatusSchema.nullable(),
|
|
10777
10807
|
/** Dust bin. Null when the hardware has no dust bin. */
|
|
10778
10808
|
dustBin: TankStatusSchema.nullable(),
|
|
10809
|
+
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
10810
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
10811
|
+
/** Current error code (0 / null = no error). */
|
|
10812
|
+
errorCode: number().nullable(),
|
|
10813
|
+
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
10814
|
+
errorLabel: string().nullable(),
|
|
10779
10815
|
/** Ms epoch when the slice was last updated. */
|
|
10780
10816
|
lastChangedAt: number()
|
|
10781
10817
|
});
|
|
@@ -12244,17 +12280,32 @@ var ReleaseInputSchema = object({
|
|
|
12244
12280
|
* the parent cascades into every accessory. */
|
|
12245
12281
|
camDeviceId: number().int().nonnegative()
|
|
12246
12282
|
});
|
|
12247
|
-
var ResyncInputSchema = object({
|
|
12248
|
-
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12249
|
-
* source (integration/broker + native id) and re-aligns the device's
|
|
12250
|
-
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12251
|
-
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12252
|
-
camDeviceId: number().int().nonnegative()
|
|
12283
|
+
var ResyncInputSchema = object({
|
|
12284
|
+
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12285
|
+
* source (integration/broker + native id) and re-aligns the device's
|
|
12286
|
+
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12287
|
+
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12288
|
+
camDeviceId: number().int().nonnegative(),
|
|
12289
|
+
/** "Resync from zero" (#19). When true, the kernel PURGES every accessory
|
|
12290
|
+
* child of `camDeviceId` BEFORE the provider re-derives the device, so the
|
|
12291
|
+
* children are rebuilt fresh from source — correct names, coords, and units —
|
|
12292
|
+
* instead of being preserved by the incremental reconcile. Use to recover from
|
|
12293
|
+
* legacy generic/placeholder names that the normal name-precedence keeps frozen
|
|
12294
|
+
* (the operator's explicit reset). Push-driven integrations (no-op resync)
|
|
12295
|
+
* rebuild on their next snapshot; pull/command integrations rebuild in `resync`.
|
|
12296
|
+
* Operator edits on the PARENT (its name, layout, primary-child pick) survive —
|
|
12297
|
+
* only the children are torn down. Omitted/false ⇒ the normal incremental
|
|
12298
|
+
* re-sync that preserves children. */
|
|
12299
|
+
resetToSource: boolean().optional()
|
|
12300
|
+
});
|
|
12253
12301
|
var ResyncResultSchema = object({
|
|
12254
12302
|
/** True when the persisted spec actually changed (children may have been rebuilt). */
|
|
12255
12303
|
changed: boolean(),
|
|
12256
12304
|
/** Number of child devices rebuilt into a new class by this re-sync. */
|
|
12257
|
-
rebuiltChildren: number().int().nonnegative()
|
|
12305
|
+
rebuiltChildren: number().int().nonnegative(),
|
|
12306
|
+
/** Number of accessory children torn down by a `resetToSource` purge before the
|
|
12307
|
+
* provider re-derived the device. 0/absent for a normal incremental re-sync. */
|
|
12308
|
+
removedChildren: number().int().nonnegative().optional()
|
|
12258
12309
|
});
|
|
12259
12310
|
method(object({ integrationId: string() }), object({ filters: array(AdoptionFilterSchema) }), { auth: "admin" }), method(ListCandidatesInputSchema, ListCandidatesOutputSchema, { auth: "admin" }), method(GetCandidateInputSchema, DiscoveredChildDeviceSchema.nullable(), { auth: "admin" }), method(object({ integrationId: string() }), AdoptionStatusSchema, {
|
|
12260
12311
|
kind: "mutation",
|
|
@@ -13995,6 +14046,11 @@ var DeviceMetaSchema = object({
|
|
|
13995
14046
|
addonId: string(),
|
|
13996
14047
|
type: string(),
|
|
13997
14048
|
name: string(),
|
|
14049
|
+
/** True once an operator explicitly renamed the device via `setName`. Drives
|
|
14050
|
+
* reconcile name-precedence (preserve operator name vs adopt fresh provider
|
|
14051
|
+
* name). Absent ⇒ treated as user-named (PRESERVE) for legacy rows. See
|
|
14052
|
+
* `DeviceMeta.userNamed`. */
|
|
14053
|
+
userNamed: boolean().optional(),
|
|
13998
14054
|
location: string().nullable(),
|
|
13999
14055
|
disabled: boolean(),
|
|
14000
14056
|
parentDeviceId: number().nullable(),
|
|
@@ -14305,6 +14361,9 @@ method(object({
|
|
|
14305
14361
|
}), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
|
|
14306
14362
|
kind: "mutation",
|
|
14307
14363
|
auth: "admin"
|
|
14364
|
+
}), method(ResyncInputSchema, ResyncResultSchema, {
|
|
14365
|
+
kind: "mutation",
|
|
14366
|
+
auth: "admin"
|
|
14308
14367
|
}), method(object({
|
|
14309
14368
|
deviceId: number(),
|
|
14310
14369
|
key: string(),
|
|
@@ -18067,6 +18126,12 @@ Object.freeze({
|
|
|
18067
18126
|
addonId: null,
|
|
18068
18127
|
access: "create"
|
|
18069
18128
|
},
|
|
18129
|
+
"deviceManager.adoptionResync": {
|
|
18130
|
+
capName: "device-manager",
|
|
18131
|
+
capScope: "system",
|
|
18132
|
+
addonId: null,
|
|
18133
|
+
access: "create"
|
|
18134
|
+
},
|
|
18070
18135
|
"deviceManager.allocateDeviceId": {
|
|
18071
18136
|
capName: "device-manager",
|
|
18072
18137
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-export-alexa",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Alexa Smart Home Skill export — hub-side OAuth provider + directive handler. The companion AWS Lambda forwards Alexa directives to this addon's /addon/export-alexa/directive endpoint.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|