@camstack/addon-export-ha-mqtt 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-ha-mqtt.addon.js +79 -14
- package/dist/export-ha-mqtt.addon.mjs +79 -14
- package/package.json +1 -1
|
@@ -9008,18 +9008,47 @@ object({
|
|
|
9008
9008
|
lastUpdated: number$1().nullable()
|
|
9009
9009
|
});
|
|
9010
9010
|
DeviceType.Image;
|
|
9011
|
+
/**
|
|
9012
|
+
* Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
|
|
9013
|
+
* with a mowing lifecycle plus a dock action.
|
|
9014
|
+
*
|
|
9015
|
+
* Activity follows HA's canonical lawn-mower lifecycle: `idle` /
|
|
9016
|
+
* `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
|
|
9017
|
+
* nullable — some mowers don't report a battery percentage.
|
|
9018
|
+
*
|
|
9019
|
+
* `startMowing` begins a mowing run, `pause` halts it in place, and
|
|
9020
|
+
* `dock` sends the mower back to its charging station.
|
|
9021
|
+
*/
|
|
9022
|
+
var LawnMowerActivitySchema = _enum([
|
|
9023
|
+
"idle",
|
|
9024
|
+
"mowing",
|
|
9025
|
+
"paused",
|
|
9026
|
+
"docked",
|
|
9027
|
+
"error"
|
|
9028
|
+
]);
|
|
9029
|
+
/** Severity of the current device/error code — info (status), warning, error. */
|
|
9030
|
+
var DeviceCodeSeveritySchema = _enum([
|
|
9031
|
+
"info",
|
|
9032
|
+
"warning",
|
|
9033
|
+
"error"
|
|
9034
|
+
]);
|
|
9011
9035
|
object({
|
|
9012
9036
|
/** Lifecycle activity of the mower. */
|
|
9013
|
-
activity:
|
|
9014
|
-
"idle",
|
|
9015
|
-
"mowing",
|
|
9016
|
-
"paused",
|
|
9017
|
-
"docked",
|
|
9018
|
-
"error"
|
|
9019
|
-
]),
|
|
9037
|
+
activity: LawnMowerActivitySchema,
|
|
9020
9038
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
9021
9039
|
* reading. */
|
|
9022
9040
|
batteryLevel: number$1().min(0).max(100).nullable(),
|
|
9041
|
+
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
9042
|
+
* task is active / progress is unavailable. */
|
|
9043
|
+
progressPercent: number$1().min(0).max(100).nullable(),
|
|
9044
|
+
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
9045
|
+
* or null when unknown. */
|
|
9046
|
+
currentCode: number$1().nullable(),
|
|
9047
|
+
/** Human label for {@link currentCode}, or null when undecodable. */
|
|
9048
|
+
currentCodeLabel: string().nullable(),
|
|
9049
|
+
/** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
|
|
9050
|
+
* attention; `info` is normal status. */
|
|
9051
|
+
severity: DeviceCodeSeveritySchema,
|
|
9023
9052
|
/** Ms epoch when the slice was last updated. */
|
|
9024
9053
|
lastChangedAt: number$1()
|
|
9025
9054
|
});
|
|
@@ -10594,6 +10623,7 @@ var VacuumStateSchema = _enum([
|
|
|
10594
10623
|
"paused",
|
|
10595
10624
|
"returning",
|
|
10596
10625
|
"docked",
|
|
10626
|
+
"drying",
|
|
10597
10627
|
"error"
|
|
10598
10628
|
]);
|
|
10599
10629
|
/**
|
|
@@ -10632,6 +10662,12 @@ object({
|
|
|
10632
10662
|
detergent: TankStatusSchema.nullable(),
|
|
10633
10663
|
/** Dust bin. Null when the hardware has no dust bin. */
|
|
10634
10664
|
dustBin: TankStatusSchema.nullable(),
|
|
10665
|
+
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
10666
|
+
progressPercent: number$1().min(0).max(100).nullable(),
|
|
10667
|
+
/** Current error code (0 / null = no error). */
|
|
10668
|
+
errorCode: number$1().nullable(),
|
|
10669
|
+
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
10670
|
+
errorLabel: string().nullable(),
|
|
10635
10671
|
/** Ms epoch when the slice was last updated. */
|
|
10636
10672
|
lastChangedAt: number$1()
|
|
10637
10673
|
});
|
|
@@ -12073,17 +12109,32 @@ var ReleaseInputSchema = object({
|
|
|
12073
12109
|
* the parent cascades into every accessory. */
|
|
12074
12110
|
camDeviceId: number$1().int().nonnegative()
|
|
12075
12111
|
});
|
|
12076
|
-
var ResyncInputSchema = object({
|
|
12077
|
-
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12078
|
-
* source (integration/broker + native id) and re-aligns the device's
|
|
12079
|
-
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12080
|
-
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12081
|
-
camDeviceId: number$1().int().nonnegative()
|
|
12112
|
+
var ResyncInputSchema = object({
|
|
12113
|
+
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12114
|
+
* source (integration/broker + native id) and re-aligns the device's
|
|
12115
|
+
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12116
|
+
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12117
|
+
camDeviceId: number$1().int().nonnegative(),
|
|
12118
|
+
/** "Resync from zero" (#19). When true, the kernel PURGES every accessory
|
|
12119
|
+
* child of `camDeviceId` BEFORE the provider re-derives the device, so the
|
|
12120
|
+
* children are rebuilt fresh from source — correct names, coords, and units —
|
|
12121
|
+
* instead of being preserved by the incremental reconcile. Use to recover from
|
|
12122
|
+
* legacy generic/placeholder names that the normal name-precedence keeps frozen
|
|
12123
|
+
* (the operator's explicit reset). Push-driven integrations (no-op resync)
|
|
12124
|
+
* rebuild on their next snapshot; pull/command integrations rebuild in `resync`.
|
|
12125
|
+
* Operator edits on the PARENT (its name, layout, primary-child pick) survive —
|
|
12126
|
+
* only the children are torn down. Omitted/false ⇒ the normal incremental
|
|
12127
|
+
* re-sync that preserves children. */
|
|
12128
|
+
resetToSource: boolean().optional()
|
|
12129
|
+
});
|
|
12082
12130
|
var ResyncResultSchema = object({
|
|
12083
12131
|
/** True when the persisted spec actually changed (children may have been rebuilt). */
|
|
12084
12132
|
changed: boolean(),
|
|
12085
12133
|
/** Number of child devices rebuilt into a new class by this re-sync. */
|
|
12086
|
-
rebuiltChildren: number$1().int().nonnegative()
|
|
12134
|
+
rebuiltChildren: number$1().int().nonnegative(),
|
|
12135
|
+
/** Number of accessory children torn down by a `resetToSource` purge before the
|
|
12136
|
+
* provider re-derived the device. 0/absent for a normal incremental re-sync. */
|
|
12137
|
+
removedChildren: number$1().int().nonnegative().optional()
|
|
12087
12138
|
});
|
|
12088
12139
|
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, {
|
|
12089
12140
|
kind: "mutation",
|
|
@@ -13807,6 +13858,11 @@ var DeviceMetaSchema = object({
|
|
|
13807
13858
|
addonId: string(),
|
|
13808
13859
|
type: string(),
|
|
13809
13860
|
name: string(),
|
|
13861
|
+
/** True once an operator explicitly renamed the device via `setName`. Drives
|
|
13862
|
+
* reconcile name-precedence (preserve operator name vs adopt fresh provider
|
|
13863
|
+
* name). Absent ⇒ treated as user-named (PRESERVE) for legacy rows. See
|
|
13864
|
+
* `DeviceMeta.userNamed`. */
|
|
13865
|
+
userNamed: boolean().optional(),
|
|
13810
13866
|
location: string().nullable(),
|
|
13811
13867
|
disabled: boolean(),
|
|
13812
13868
|
parentDeviceId: number$1().nullable(),
|
|
@@ -14117,6 +14173,9 @@ method(object({
|
|
|
14117
14173
|
}), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
|
|
14118
14174
|
kind: "mutation",
|
|
14119
14175
|
auth: "admin"
|
|
14176
|
+
}), method(ResyncInputSchema, ResyncResultSchema, {
|
|
14177
|
+
kind: "mutation",
|
|
14178
|
+
auth: "admin"
|
|
14120
14179
|
}), method(object({
|
|
14121
14180
|
deviceId: number$1(),
|
|
14122
14181
|
key: string(),
|
|
@@ -17879,6 +17938,12 @@ Object.freeze({
|
|
|
17879
17938
|
addonId: null,
|
|
17880
17939
|
access: "create"
|
|
17881
17940
|
},
|
|
17941
|
+
"deviceManager.adoptionResync": {
|
|
17942
|
+
capName: "device-manager",
|
|
17943
|
+
capScope: "system",
|
|
17944
|
+
addonId: null,
|
|
17945
|
+
access: "create"
|
|
17946
|
+
},
|
|
17882
17947
|
"deviceManager.allocateDeviceId": {
|
|
17883
17948
|
capName: "device-manager",
|
|
17884
17949
|
capScope: "system",
|
|
@@ -9006,18 +9006,47 @@ object({
|
|
|
9006
9006
|
lastUpdated: number$1().nullable()
|
|
9007
9007
|
});
|
|
9008
9008
|
DeviceType.Image;
|
|
9009
|
+
/**
|
|
9010
|
+
* Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
|
|
9011
|
+
* with a mowing lifecycle plus a dock action.
|
|
9012
|
+
*
|
|
9013
|
+
* Activity follows HA's canonical lawn-mower lifecycle: `idle` /
|
|
9014
|
+
* `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
|
|
9015
|
+
* nullable — some mowers don't report a battery percentage.
|
|
9016
|
+
*
|
|
9017
|
+
* `startMowing` begins a mowing run, `pause` halts it in place, and
|
|
9018
|
+
* `dock` sends the mower back to its charging station.
|
|
9019
|
+
*/
|
|
9020
|
+
var LawnMowerActivitySchema = _enum([
|
|
9021
|
+
"idle",
|
|
9022
|
+
"mowing",
|
|
9023
|
+
"paused",
|
|
9024
|
+
"docked",
|
|
9025
|
+
"error"
|
|
9026
|
+
]);
|
|
9027
|
+
/** Severity of the current device/error code — info (status), warning, error. */
|
|
9028
|
+
var DeviceCodeSeveritySchema = _enum([
|
|
9029
|
+
"info",
|
|
9030
|
+
"warning",
|
|
9031
|
+
"error"
|
|
9032
|
+
]);
|
|
9009
9033
|
object({
|
|
9010
9034
|
/** Lifecycle activity of the mower. */
|
|
9011
|
-
activity:
|
|
9012
|
-
"idle",
|
|
9013
|
-
"mowing",
|
|
9014
|
-
"paused",
|
|
9015
|
-
"docked",
|
|
9016
|
-
"error"
|
|
9017
|
-
]),
|
|
9035
|
+
activity: LawnMowerActivitySchema,
|
|
9018
9036
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
9019
9037
|
* reading. */
|
|
9020
9038
|
batteryLevel: number$1().min(0).max(100).nullable(),
|
|
9039
|
+
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
9040
|
+
* task is active / progress is unavailable. */
|
|
9041
|
+
progressPercent: number$1().min(0).max(100).nullable(),
|
|
9042
|
+
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
9043
|
+
* or null when unknown. */
|
|
9044
|
+
currentCode: number$1().nullable(),
|
|
9045
|
+
/** Human label for {@link currentCode}, or null when undecodable. */
|
|
9046
|
+
currentCodeLabel: string().nullable(),
|
|
9047
|
+
/** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
|
|
9048
|
+
* attention; `info` is normal status. */
|
|
9049
|
+
severity: DeviceCodeSeveritySchema,
|
|
9021
9050
|
/** Ms epoch when the slice was last updated. */
|
|
9022
9051
|
lastChangedAt: number$1()
|
|
9023
9052
|
});
|
|
@@ -10592,6 +10621,7 @@ var VacuumStateSchema = _enum([
|
|
|
10592
10621
|
"paused",
|
|
10593
10622
|
"returning",
|
|
10594
10623
|
"docked",
|
|
10624
|
+
"drying",
|
|
10595
10625
|
"error"
|
|
10596
10626
|
]);
|
|
10597
10627
|
/**
|
|
@@ -10630,6 +10660,12 @@ object({
|
|
|
10630
10660
|
detergent: TankStatusSchema.nullable(),
|
|
10631
10661
|
/** Dust bin. Null when the hardware has no dust bin. */
|
|
10632
10662
|
dustBin: TankStatusSchema.nullable(),
|
|
10663
|
+
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
10664
|
+
progressPercent: number$1().min(0).max(100).nullable(),
|
|
10665
|
+
/** Current error code (0 / null = no error). */
|
|
10666
|
+
errorCode: number$1().nullable(),
|
|
10667
|
+
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
10668
|
+
errorLabel: string().nullable(),
|
|
10633
10669
|
/** Ms epoch when the slice was last updated. */
|
|
10634
10670
|
lastChangedAt: number$1()
|
|
10635
10671
|
});
|
|
@@ -12071,17 +12107,32 @@ var ReleaseInputSchema = object({
|
|
|
12071
12107
|
* the parent cascades into every accessory. */
|
|
12072
12108
|
camDeviceId: number$1().int().nonnegative()
|
|
12073
12109
|
});
|
|
12074
|
-
var ResyncInputSchema = object({
|
|
12075
|
-
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12076
|
-
* source (integration/broker + native id) and re-aligns the device's
|
|
12077
|
-
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12078
|
-
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12079
|
-
camDeviceId: number$1().int().nonnegative()
|
|
12110
|
+
var ResyncInputSchema = object({
|
|
12111
|
+
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12112
|
+
* source (integration/broker + native id) and re-aligns the device's
|
|
12113
|
+
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12114
|
+
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12115
|
+
camDeviceId: number$1().int().nonnegative(),
|
|
12116
|
+
/** "Resync from zero" (#19). When true, the kernel PURGES every accessory
|
|
12117
|
+
* child of `camDeviceId` BEFORE the provider re-derives the device, so the
|
|
12118
|
+
* children are rebuilt fresh from source — correct names, coords, and units —
|
|
12119
|
+
* instead of being preserved by the incremental reconcile. Use to recover from
|
|
12120
|
+
* legacy generic/placeholder names that the normal name-precedence keeps frozen
|
|
12121
|
+
* (the operator's explicit reset). Push-driven integrations (no-op resync)
|
|
12122
|
+
* rebuild on their next snapshot; pull/command integrations rebuild in `resync`.
|
|
12123
|
+
* Operator edits on the PARENT (its name, layout, primary-child pick) survive —
|
|
12124
|
+
* only the children are torn down. Omitted/false ⇒ the normal incremental
|
|
12125
|
+
* re-sync that preserves children. */
|
|
12126
|
+
resetToSource: boolean().optional()
|
|
12127
|
+
});
|
|
12080
12128
|
var ResyncResultSchema = object({
|
|
12081
12129
|
/** True when the persisted spec actually changed (children may have been rebuilt). */
|
|
12082
12130
|
changed: boolean(),
|
|
12083
12131
|
/** Number of child devices rebuilt into a new class by this re-sync. */
|
|
12084
|
-
rebuiltChildren: number$1().int().nonnegative()
|
|
12132
|
+
rebuiltChildren: number$1().int().nonnegative(),
|
|
12133
|
+
/** Number of accessory children torn down by a `resetToSource` purge before the
|
|
12134
|
+
* provider re-derived the device. 0/absent for a normal incremental re-sync. */
|
|
12135
|
+
removedChildren: number$1().int().nonnegative().optional()
|
|
12085
12136
|
});
|
|
12086
12137
|
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, {
|
|
12087
12138
|
kind: "mutation",
|
|
@@ -13805,6 +13856,11 @@ var DeviceMetaSchema = object({
|
|
|
13805
13856
|
addonId: string(),
|
|
13806
13857
|
type: string(),
|
|
13807
13858
|
name: string(),
|
|
13859
|
+
/** True once an operator explicitly renamed the device via `setName`. Drives
|
|
13860
|
+
* reconcile name-precedence (preserve operator name vs adopt fresh provider
|
|
13861
|
+
* name). Absent ⇒ treated as user-named (PRESERVE) for legacy rows. See
|
|
13862
|
+
* `DeviceMeta.userNamed`. */
|
|
13863
|
+
userNamed: boolean().optional(),
|
|
13808
13864
|
location: string().nullable(),
|
|
13809
13865
|
disabled: boolean(),
|
|
13810
13866
|
parentDeviceId: number$1().nullable(),
|
|
@@ -14115,6 +14171,9 @@ method(object({
|
|
|
14115
14171
|
}), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
|
|
14116
14172
|
kind: "mutation",
|
|
14117
14173
|
auth: "admin"
|
|
14174
|
+
}), method(ResyncInputSchema, ResyncResultSchema, {
|
|
14175
|
+
kind: "mutation",
|
|
14176
|
+
auth: "admin"
|
|
14118
14177
|
}), method(object({
|
|
14119
14178
|
deviceId: number$1(),
|
|
14120
14179
|
key: string(),
|
|
@@ -17877,6 +17936,12 @@ Object.freeze({
|
|
|
17877
17936
|
addonId: null,
|
|
17878
17937
|
access: "create"
|
|
17879
17938
|
},
|
|
17939
|
+
"deviceManager.adoptionResync": {
|
|
17940
|
+
capName: "device-manager",
|
|
17941
|
+
capScope: "system",
|
|
17942
|
+
addonId: null,
|
|
17943
|
+
access: "create"
|
|
17944
|
+
},
|
|
17880
17945
|
"deviceManager.allocateDeviceId": {
|
|
17881
17946
|
capName: "device-manager",
|
|
17882
17947
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-export-ha-mqtt",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "HomeAssistant MQTT discovery exporter for CamStack devices. Publishes discovery topics so HA auto-creates entities for exposed cameras/switches/intercoms/sensors.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|