@camstack/addon-mqtt-broker 1.2.84 → 1.2.86
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/mqtt-broker.addon.js +129 -70
- package/dist/mqtt-broker.addon.mjs +129 -70
- package/package.json +1 -1
|
@@ -15908,16 +15908,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
15908
15908
|
code: string().min(1).optional()
|
|
15909
15909
|
}), _void(), {
|
|
15910
15910
|
kind: "mutation",
|
|
15911
|
-
auth: "
|
|
15911
|
+
auth: "protected"
|
|
15912
15912
|
}), method(object({
|
|
15913
15913
|
deviceId: number().int().nonnegative(),
|
|
15914
15914
|
code: string().min(1).optional()
|
|
15915
15915
|
}), _void(), {
|
|
15916
15916
|
kind: "mutation",
|
|
15917
|
-
auth: "
|
|
15917
|
+
auth: "protected"
|
|
15918
15918
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
15919
15919
|
kind: "mutation",
|
|
15920
|
-
auth: "
|
|
15920
|
+
auth: "protected"
|
|
15921
15921
|
});
|
|
15922
15922
|
/**
|
|
15923
15923
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23572,7 +23572,7 @@ DeviceType.Light, method(object({
|
|
|
23572
23572
|
percentage: number().min(0).max(100)
|
|
23573
23573
|
}), _void(), {
|
|
23574
23574
|
kind: "mutation",
|
|
23575
|
-
auth: "
|
|
23575
|
+
auth: "protected"
|
|
23576
23576
|
}), object({
|
|
23577
23577
|
deviceId: number(),
|
|
23578
23578
|
percentage: number().min(0).max(100),
|
|
@@ -23580,7 +23580,7 @@ DeviceType.Light, method(object({
|
|
|
23580
23580
|
});
|
|
23581
23581
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23582
23582
|
kind: "mutation",
|
|
23583
|
-
auth: "
|
|
23583
|
+
auth: "protected"
|
|
23584
23584
|
});
|
|
23585
23585
|
/**
|
|
23586
23586
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23739,50 +23739,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23739
23739
|
mode: HvacModeSchema
|
|
23740
23740
|
}), _void(), {
|
|
23741
23741
|
kind: "mutation",
|
|
23742
|
-
auth: "
|
|
23742
|
+
auth: "protected"
|
|
23743
23743
|
}), method(object({
|
|
23744
23744
|
deviceId: number().int().nonnegative(),
|
|
23745
23745
|
fanMode: string().min(1)
|
|
23746
23746
|
}), _void(), {
|
|
23747
23747
|
kind: "mutation",
|
|
23748
|
-
auth: "
|
|
23748
|
+
auth: "protected"
|
|
23749
23749
|
}), method(object({
|
|
23750
23750
|
deviceId: number().int().nonnegative(),
|
|
23751
23751
|
preset: string().min(1)
|
|
23752
23752
|
}), _void(), {
|
|
23753
23753
|
kind: "mutation",
|
|
23754
|
-
auth: "
|
|
23754
|
+
auth: "protected"
|
|
23755
23755
|
}), method(object({
|
|
23756
23756
|
deviceId: number().int().nonnegative(),
|
|
23757
23757
|
target: number()
|
|
23758
23758
|
}), _void(), {
|
|
23759
23759
|
kind: "mutation",
|
|
23760
|
-
auth: "
|
|
23760
|
+
auth: "protected"
|
|
23761
23761
|
}), method(object({
|
|
23762
23762
|
deviceId: number().int().nonnegative(),
|
|
23763
23763
|
targetLow: number(),
|
|
23764
23764
|
targetHigh: number()
|
|
23765
23765
|
}), _void(), {
|
|
23766
23766
|
kind: "mutation",
|
|
23767
|
-
auth: "
|
|
23767
|
+
auth: "protected"
|
|
23768
23768
|
}), method(object({
|
|
23769
23769
|
deviceId: number().int().nonnegative(),
|
|
23770
23770
|
targetHumidity: number().min(0).max(100)
|
|
23771
23771
|
}), _void(), {
|
|
23772
23772
|
kind: "mutation",
|
|
23773
|
-
auth: "
|
|
23773
|
+
auth: "protected"
|
|
23774
23774
|
}), method(object({
|
|
23775
23775
|
deviceId: number().int().nonnegative(),
|
|
23776
23776
|
on: boolean()
|
|
23777
23777
|
}), _void(), {
|
|
23778
23778
|
kind: "mutation",
|
|
23779
|
-
auth: "
|
|
23779
|
+
auth: "protected"
|
|
23780
23780
|
}), method(object({
|
|
23781
23781
|
deviceId: number().int().nonnegative(),
|
|
23782
23782
|
on: boolean()
|
|
23783
23783
|
}), _void(), {
|
|
23784
23784
|
kind: "mutation",
|
|
23785
|
-
auth: "
|
|
23785
|
+
auth: "protected"
|
|
23786
23786
|
});
|
|
23787
23787
|
/**
|
|
23788
23788
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -23857,7 +23857,7 @@ DeviceType.Light, method(object({
|
|
|
23857
23857
|
color: ColorInputSchema
|
|
23858
23858
|
}), _void(), {
|
|
23859
23859
|
kind: "mutation",
|
|
23860
|
-
auth: "
|
|
23860
|
+
auth: "protected"
|
|
23861
23861
|
}), object({
|
|
23862
23862
|
deviceId: number(),
|
|
23863
23863
|
mode: _enum([
|
|
@@ -24006,7 +24006,7 @@ DeviceType.Control, method(object({
|
|
|
24006
24006
|
control: ControlSetValueInputSchema
|
|
24007
24007
|
}), _void(), {
|
|
24008
24008
|
kind: "mutation",
|
|
24009
|
-
auth: "
|
|
24009
|
+
auth: "protected"
|
|
24010
24010
|
});
|
|
24011
24011
|
object({
|
|
24012
24012
|
/** Lifecycle state of the cover. */
|
|
@@ -24027,25 +24027,25 @@ object({
|
|
|
24027
24027
|
});
|
|
24028
24028
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24029
24029
|
kind: "mutation",
|
|
24030
|
-
auth: "
|
|
24030
|
+
auth: "protected"
|
|
24031
24031
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24032
24032
|
kind: "mutation",
|
|
24033
|
-
auth: "
|
|
24033
|
+
auth: "protected"
|
|
24034
24034
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24035
24035
|
kind: "mutation",
|
|
24036
|
-
auth: "
|
|
24036
|
+
auth: "protected"
|
|
24037
24037
|
}), method(object({
|
|
24038
24038
|
deviceId: number().int().nonnegative(),
|
|
24039
24039
|
position: number().min(0).max(100)
|
|
24040
24040
|
}), _void(), {
|
|
24041
24041
|
kind: "mutation",
|
|
24042
|
-
auth: "
|
|
24042
|
+
auth: "protected"
|
|
24043
24043
|
}), method(object({
|
|
24044
24044
|
deviceId: number().int().nonnegative(),
|
|
24045
24045
|
tiltPosition: number().min(0).max(100)
|
|
24046
24046
|
}), _void(), {
|
|
24047
24047
|
kind: "mutation",
|
|
24048
|
-
auth: "
|
|
24048
|
+
auth: "protected"
|
|
24049
24049
|
});
|
|
24050
24050
|
/**
|
|
24051
24051
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24250,6 +24250,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24250
24250
|
deviceId: number().int().optional(),
|
|
24251
24251
|
base64: string().optional()
|
|
24252
24252
|
});
|
|
24253
|
+
/**
|
|
24254
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24255
|
+
*
|
|
24256
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24257
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24258
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24259
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24260
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24261
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24262
|
+
*/
|
|
24263
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24264
|
+
sampleId: string(),
|
|
24265
|
+
enrolledAt: number().int(),
|
|
24266
|
+
deviceId: number().int().optional(),
|
|
24267
|
+
source: _enum(["detected", "photo"]),
|
|
24268
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24269
|
+
mediaKey: string().optional(),
|
|
24270
|
+
/**
|
|
24271
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24272
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24273
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24274
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24275
|
+
*/
|
|
24276
|
+
comparable: boolean(),
|
|
24277
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24278
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24279
|
+
selfMean: number().nullable(),
|
|
24280
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24281
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24282
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24283
|
+
bestForeign: object({
|
|
24284
|
+
identityId: string(),
|
|
24285
|
+
name: string(),
|
|
24286
|
+
score: number()
|
|
24287
|
+
}).optional(),
|
|
24288
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24289
|
+
suspicion: number()
|
|
24290
|
+
});
|
|
24291
|
+
var IdentitySampleAuditSchema = object({
|
|
24292
|
+
identityId: string(),
|
|
24293
|
+
name: string(),
|
|
24294
|
+
/** The cluster face model every comparison was made in. */
|
|
24295
|
+
modelId: string(),
|
|
24296
|
+
totalSamples: number().int(),
|
|
24297
|
+
comparableSamples: number().int(),
|
|
24298
|
+
flagged: number().int(),
|
|
24299
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24300
|
+
* only its current result. */
|
|
24301
|
+
flagThreshold: number(),
|
|
24302
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24303
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24304
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24305
|
+
});
|
|
24253
24306
|
var FaceInfoSchema = object({
|
|
24254
24307
|
faceId: string(),
|
|
24255
24308
|
deviceId: number().int(),
|
|
@@ -24401,7 +24454,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24401
24454
|
}), method(object({ id: string() }), _void(), {
|
|
24402
24455
|
kind: "mutation",
|
|
24403
24456
|
auth: "admin"
|
|
24404
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24457
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24405
24458
|
identityId: string(),
|
|
24406
24459
|
sampleId: string()
|
|
24407
24460
|
}), _void(), {
|
|
@@ -24587,25 +24640,25 @@ DeviceType.Fan, method(object({
|
|
|
24587
24640
|
percentage: number().min(0).max(100)
|
|
24588
24641
|
}), _void(), {
|
|
24589
24642
|
kind: "mutation",
|
|
24590
|
-
auth: "
|
|
24643
|
+
auth: "protected"
|
|
24591
24644
|
}), method(object({
|
|
24592
24645
|
deviceId: number().int().nonnegative(),
|
|
24593
24646
|
preset: string().min(1)
|
|
24594
24647
|
}), _void(), {
|
|
24595
24648
|
kind: "mutation",
|
|
24596
|
-
auth: "
|
|
24649
|
+
auth: "protected"
|
|
24597
24650
|
}), method(object({
|
|
24598
24651
|
deviceId: number().int().nonnegative(),
|
|
24599
24652
|
direction: FanDirectionSchema
|
|
24600
24653
|
}), _void(), {
|
|
24601
24654
|
kind: "mutation",
|
|
24602
|
-
auth: "
|
|
24655
|
+
auth: "protected"
|
|
24603
24656
|
}), method(object({
|
|
24604
24657
|
deviceId: number().int().nonnegative(),
|
|
24605
24658
|
oscillating: boolean()
|
|
24606
24659
|
}), _void(), {
|
|
24607
24660
|
kind: "mutation",
|
|
24608
|
-
auth: "
|
|
24661
|
+
auth: "protected"
|
|
24609
24662
|
});
|
|
24610
24663
|
/**
|
|
24611
24664
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24708,19 +24761,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24708
24761
|
on: boolean()
|
|
24709
24762
|
}), _void(), {
|
|
24710
24763
|
kind: "mutation",
|
|
24711
|
-
auth: "
|
|
24764
|
+
auth: "protected"
|
|
24712
24765
|
}), method(object({
|
|
24713
24766
|
deviceId: number().int().nonnegative(),
|
|
24714
24767
|
humidity: number().min(0).max(100)
|
|
24715
24768
|
}), _void(), {
|
|
24716
24769
|
kind: "mutation",
|
|
24717
|
-
auth: "
|
|
24770
|
+
auth: "protected"
|
|
24718
24771
|
}), method(object({
|
|
24719
24772
|
deviceId: number().int().nonnegative(),
|
|
24720
24773
|
mode: string().min(1)
|
|
24721
24774
|
}), _void(), {
|
|
24722
24775
|
kind: "mutation",
|
|
24723
|
-
auth: "
|
|
24776
|
+
auth: "protected"
|
|
24724
24777
|
});
|
|
24725
24778
|
object({
|
|
24726
24779
|
/** Current relative humidity, 0..100. */
|
|
@@ -25182,13 +25235,13 @@ object({
|
|
|
25182
25235
|
});
|
|
25183
25236
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25184
25237
|
kind: "mutation",
|
|
25185
|
-
auth: "
|
|
25238
|
+
auth: "protected"
|
|
25186
25239
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25187
25240
|
kind: "mutation",
|
|
25188
|
-
auth: "
|
|
25241
|
+
auth: "protected"
|
|
25189
25242
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25190
25243
|
kind: "mutation",
|
|
25191
|
-
auth: "
|
|
25244
|
+
auth: "protected"
|
|
25192
25245
|
});
|
|
25193
25246
|
/**
|
|
25194
25247
|
* local-network — hub-only singleton.
|
|
@@ -25448,16 +25501,16 @@ DeviceType.Lock, method(object({
|
|
|
25448
25501
|
code: string().min(1).optional()
|
|
25449
25502
|
}), _void(), {
|
|
25450
25503
|
kind: "mutation",
|
|
25451
|
-
auth: "
|
|
25504
|
+
auth: "protected"
|
|
25452
25505
|
}), method(object({
|
|
25453
25506
|
deviceId: number().int().nonnegative(),
|
|
25454
25507
|
code: string().min(1).optional()
|
|
25455
25508
|
}), _void(), {
|
|
25456
25509
|
kind: "mutation",
|
|
25457
|
-
auth: "
|
|
25510
|
+
auth: "protected"
|
|
25458
25511
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25459
25512
|
kind: "mutation",
|
|
25460
|
-
auth: "
|
|
25513
|
+
auth: "protected"
|
|
25461
25514
|
});
|
|
25462
25515
|
/**
|
|
25463
25516
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25531,55 +25584,55 @@ object({
|
|
|
25531
25584
|
});
|
|
25532
25585
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25533
25586
|
kind: "mutation",
|
|
25534
|
-
auth: "
|
|
25587
|
+
auth: "protected"
|
|
25535
25588
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25536
25589
|
kind: "mutation",
|
|
25537
|
-
auth: "
|
|
25590
|
+
auth: "protected"
|
|
25538
25591
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25539
25592
|
kind: "mutation",
|
|
25540
|
-
auth: "
|
|
25593
|
+
auth: "protected"
|
|
25541
25594
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25542
25595
|
kind: "mutation",
|
|
25543
|
-
auth: "
|
|
25596
|
+
auth: "protected"
|
|
25544
25597
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25545
25598
|
kind: "mutation",
|
|
25546
|
-
auth: "
|
|
25599
|
+
auth: "protected"
|
|
25547
25600
|
}), method(object({
|
|
25548
25601
|
deviceId: number().int().nonnegative(),
|
|
25549
25602
|
positionMs: number().int().nonnegative()
|
|
25550
25603
|
}), _void(), {
|
|
25551
25604
|
kind: "mutation",
|
|
25552
|
-
auth: "
|
|
25605
|
+
auth: "protected"
|
|
25553
25606
|
}), method(object({
|
|
25554
25607
|
deviceId: number().int().nonnegative(),
|
|
25555
25608
|
volumeLevel: number().min(0).max(100)
|
|
25556
25609
|
}), _void(), {
|
|
25557
25610
|
kind: "mutation",
|
|
25558
|
-
auth: "
|
|
25611
|
+
auth: "protected"
|
|
25559
25612
|
}), method(object({
|
|
25560
25613
|
deviceId: number().int().nonnegative(),
|
|
25561
25614
|
muted: boolean()
|
|
25562
25615
|
}), _void(), {
|
|
25563
25616
|
kind: "mutation",
|
|
25564
|
-
auth: "
|
|
25617
|
+
auth: "protected"
|
|
25565
25618
|
}), method(object({
|
|
25566
25619
|
deviceId: number().int().nonnegative(),
|
|
25567
25620
|
shuffle: boolean()
|
|
25568
25621
|
}), _void(), {
|
|
25569
25622
|
kind: "mutation",
|
|
25570
|
-
auth: "
|
|
25623
|
+
auth: "protected"
|
|
25571
25624
|
}), method(object({
|
|
25572
25625
|
deviceId: number().int().nonnegative(),
|
|
25573
25626
|
repeat: MediaPlayerRepeatSchema
|
|
25574
25627
|
}), _void(), {
|
|
25575
25628
|
kind: "mutation",
|
|
25576
|
-
auth: "
|
|
25629
|
+
auth: "protected"
|
|
25577
25630
|
}), method(object({
|
|
25578
25631
|
deviceId: number().int().nonnegative(),
|
|
25579
25632
|
source: string().min(1)
|
|
25580
25633
|
}), _void(), {
|
|
25581
25634
|
kind: "mutation",
|
|
25582
|
-
auth: "
|
|
25635
|
+
auth: "protected"
|
|
25583
25636
|
}), method(object({
|
|
25584
25637
|
deviceId: number().int().nonnegative(),
|
|
25585
25638
|
/** Media identifier / URL. */
|
|
@@ -25589,7 +25642,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25589
25642
|
mediaType: string().min(1)
|
|
25590
25643
|
}), _void(), {
|
|
25591
25644
|
kind: "mutation",
|
|
25592
|
-
auth: "
|
|
25645
|
+
auth: "protected"
|
|
25593
25646
|
});
|
|
25594
25647
|
/**
|
|
25595
25648
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26755,49 +26808,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26755
26808
|
hopper2: gramsPortion.optional()
|
|
26756
26809
|
}), _void(), {
|
|
26757
26810
|
kind: "mutation",
|
|
26758
|
-
auth: "
|
|
26811
|
+
auth: "protected"
|
|
26759
26812
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26760
26813
|
kind: "mutation",
|
|
26761
|
-
auth: "
|
|
26814
|
+
auth: "protected"
|
|
26762
26815
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26763
26816
|
kind: "mutation",
|
|
26764
|
-
auth: "
|
|
26817
|
+
auth: "protected"
|
|
26765
26818
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26766
26819
|
kind: "mutation",
|
|
26767
|
-
auth: "
|
|
26820
|
+
auth: "protected"
|
|
26768
26821
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26769
26822
|
kind: "mutation",
|
|
26770
|
-
auth: "
|
|
26823
|
+
auth: "protected"
|
|
26771
26824
|
}), method(object({
|
|
26772
26825
|
deviceId: number().int().nonnegative(),
|
|
26773
26826
|
soundId: number().int().nonnegative()
|
|
26774
26827
|
}), _void(), {
|
|
26775
26828
|
kind: "mutation",
|
|
26776
|
-
auth: "
|
|
26829
|
+
auth: "protected"
|
|
26777
26830
|
}), method(object({
|
|
26778
26831
|
deviceId: number().int().nonnegative(),
|
|
26779
26832
|
on: boolean()
|
|
26780
26833
|
}), _void(), {
|
|
26781
26834
|
kind: "mutation",
|
|
26782
|
-
auth: "
|
|
26835
|
+
auth: "protected"
|
|
26783
26836
|
}), method(object({
|
|
26784
26837
|
deviceId: number().int().nonnegative(),
|
|
26785
26838
|
on: boolean()
|
|
26786
26839
|
}), _void(), {
|
|
26787
26840
|
kind: "mutation",
|
|
26788
|
-
auth: "
|
|
26841
|
+
auth: "protected"
|
|
26789
26842
|
}), method(object({
|
|
26790
26843
|
deviceId: number().int().nonnegative(),
|
|
26791
26844
|
on: boolean()
|
|
26792
26845
|
}), _void(), {
|
|
26793
26846
|
kind: "mutation",
|
|
26794
|
-
auth: "
|
|
26847
|
+
auth: "protected"
|
|
26795
26848
|
}), method(object({
|
|
26796
26849
|
deviceId: number().int().nonnegative(),
|
|
26797
26850
|
level: number().int().nonnegative()
|
|
26798
26851
|
}), _void(), {
|
|
26799
26852
|
kind: "mutation",
|
|
26800
|
-
auth: "
|
|
26853
|
+
auth: "protected"
|
|
26801
26854
|
});
|
|
26802
26855
|
var VehicleSchema = object({
|
|
26803
26856
|
id: string(),
|
|
@@ -28584,7 +28637,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28584
28637
|
on: boolean()
|
|
28585
28638
|
}), _void(), {
|
|
28586
28639
|
kind: "mutation",
|
|
28587
|
-
auth: "
|
|
28640
|
+
auth: "protected"
|
|
28588
28641
|
}), object({
|
|
28589
28642
|
deviceId: number(),
|
|
28590
28643
|
on: boolean(),
|
|
@@ -29441,25 +29494,25 @@ object({
|
|
|
29441
29494
|
});
|
|
29442
29495
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29443
29496
|
kind: "mutation",
|
|
29444
|
-
auth: "
|
|
29497
|
+
auth: "protected"
|
|
29445
29498
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29446
29499
|
kind: "mutation",
|
|
29447
|
-
auth: "
|
|
29500
|
+
auth: "protected"
|
|
29448
29501
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29449
29502
|
kind: "mutation",
|
|
29450
|
-
auth: "
|
|
29503
|
+
auth: "protected"
|
|
29451
29504
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29452
29505
|
kind: "mutation",
|
|
29453
|
-
auth: "
|
|
29506
|
+
auth: "protected"
|
|
29454
29507
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29455
29508
|
kind: "mutation",
|
|
29456
|
-
auth: "
|
|
29509
|
+
auth: "protected"
|
|
29457
29510
|
}), method(object({
|
|
29458
29511
|
deviceId: number().int().nonnegative(),
|
|
29459
29512
|
speed: string().min(1)
|
|
29460
29513
|
}), _void(), {
|
|
29461
29514
|
kind: "mutation",
|
|
29462
|
-
auth: "
|
|
29515
|
+
auth: "protected"
|
|
29463
29516
|
});
|
|
29464
29517
|
object({
|
|
29465
29518
|
/** Lifecycle state of the valve. */
|
|
@@ -29478,19 +29531,19 @@ object({
|
|
|
29478
29531
|
});
|
|
29479
29532
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29480
29533
|
kind: "mutation",
|
|
29481
|
-
auth: "
|
|
29534
|
+
auth: "protected"
|
|
29482
29535
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29483
29536
|
kind: "mutation",
|
|
29484
|
-
auth: "
|
|
29537
|
+
auth: "protected"
|
|
29485
29538
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29486
29539
|
kind: "mutation",
|
|
29487
|
-
auth: "
|
|
29540
|
+
auth: "protected"
|
|
29488
29541
|
}), method(object({
|
|
29489
29542
|
deviceId: number().int().nonnegative(),
|
|
29490
29543
|
position: number().min(0).max(100)
|
|
29491
29544
|
}), _void(), {
|
|
29492
29545
|
kind: "mutation",
|
|
29493
|
-
auth: "
|
|
29546
|
+
auth: "protected"
|
|
29494
29547
|
});
|
|
29495
29548
|
object({
|
|
29496
29549
|
detected: boolean(),
|
|
@@ -29524,19 +29577,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29524
29577
|
temp: number().finite()
|
|
29525
29578
|
}), _void(), {
|
|
29526
29579
|
kind: "mutation",
|
|
29527
|
-
auth: "
|
|
29580
|
+
auth: "protected"
|
|
29528
29581
|
}), method(object({
|
|
29529
29582
|
deviceId: number().int().nonnegative(),
|
|
29530
29583
|
mode: string().min(1)
|
|
29531
29584
|
}), _void(), {
|
|
29532
29585
|
kind: "mutation",
|
|
29533
|
-
auth: "
|
|
29586
|
+
auth: "protected"
|
|
29534
29587
|
}), method(object({
|
|
29535
29588
|
deviceId: number().int().nonnegative(),
|
|
29536
29589
|
on: boolean()
|
|
29537
29590
|
}), _void(), {
|
|
29538
29591
|
kind: "mutation",
|
|
29539
|
-
auth: "
|
|
29592
|
+
auth: "protected"
|
|
29540
29593
|
});
|
|
29541
29594
|
object({
|
|
29542
29595
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31628,6 +31681,12 @@ Object.freeze({
|
|
|
31628
31681
|
addonId: null,
|
|
31629
31682
|
access: "create"
|
|
31630
31683
|
},
|
|
31684
|
+
"faceGallery.auditIdentitySamples": {
|
|
31685
|
+
capName: "face-gallery",
|
|
31686
|
+
capScope: "system",
|
|
31687
|
+
addonId: null,
|
|
31688
|
+
access: "view"
|
|
31689
|
+
},
|
|
31631
31690
|
"faceGallery.createIdentity": {
|
|
31632
31691
|
capName: "face-gallery",
|
|
31633
31692
|
capScope: "system",
|
|
@@ -15903,16 +15903,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
15903
15903
|
code: string().min(1).optional()
|
|
15904
15904
|
}), _void(), {
|
|
15905
15905
|
kind: "mutation",
|
|
15906
|
-
auth: "
|
|
15906
|
+
auth: "protected"
|
|
15907
15907
|
}), method(object({
|
|
15908
15908
|
deviceId: number().int().nonnegative(),
|
|
15909
15909
|
code: string().min(1).optional()
|
|
15910
15910
|
}), _void(), {
|
|
15911
15911
|
kind: "mutation",
|
|
15912
|
-
auth: "
|
|
15912
|
+
auth: "protected"
|
|
15913
15913
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
15914
15914
|
kind: "mutation",
|
|
15915
|
-
auth: "
|
|
15915
|
+
auth: "protected"
|
|
15916
15916
|
});
|
|
15917
15917
|
/**
|
|
15918
15918
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23567,7 +23567,7 @@ DeviceType.Light, method(object({
|
|
|
23567
23567
|
percentage: number().min(0).max(100)
|
|
23568
23568
|
}), _void(), {
|
|
23569
23569
|
kind: "mutation",
|
|
23570
|
-
auth: "
|
|
23570
|
+
auth: "protected"
|
|
23571
23571
|
}), object({
|
|
23572
23572
|
deviceId: number(),
|
|
23573
23573
|
percentage: number().min(0).max(100),
|
|
@@ -23575,7 +23575,7 @@ DeviceType.Light, method(object({
|
|
|
23575
23575
|
});
|
|
23576
23576
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23577
23577
|
kind: "mutation",
|
|
23578
|
-
auth: "
|
|
23578
|
+
auth: "protected"
|
|
23579
23579
|
});
|
|
23580
23580
|
/**
|
|
23581
23581
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23734,50 +23734,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23734
23734
|
mode: HvacModeSchema
|
|
23735
23735
|
}), _void(), {
|
|
23736
23736
|
kind: "mutation",
|
|
23737
|
-
auth: "
|
|
23737
|
+
auth: "protected"
|
|
23738
23738
|
}), method(object({
|
|
23739
23739
|
deviceId: number().int().nonnegative(),
|
|
23740
23740
|
fanMode: string().min(1)
|
|
23741
23741
|
}), _void(), {
|
|
23742
23742
|
kind: "mutation",
|
|
23743
|
-
auth: "
|
|
23743
|
+
auth: "protected"
|
|
23744
23744
|
}), method(object({
|
|
23745
23745
|
deviceId: number().int().nonnegative(),
|
|
23746
23746
|
preset: string().min(1)
|
|
23747
23747
|
}), _void(), {
|
|
23748
23748
|
kind: "mutation",
|
|
23749
|
-
auth: "
|
|
23749
|
+
auth: "protected"
|
|
23750
23750
|
}), method(object({
|
|
23751
23751
|
deviceId: number().int().nonnegative(),
|
|
23752
23752
|
target: number()
|
|
23753
23753
|
}), _void(), {
|
|
23754
23754
|
kind: "mutation",
|
|
23755
|
-
auth: "
|
|
23755
|
+
auth: "protected"
|
|
23756
23756
|
}), method(object({
|
|
23757
23757
|
deviceId: number().int().nonnegative(),
|
|
23758
23758
|
targetLow: number(),
|
|
23759
23759
|
targetHigh: number()
|
|
23760
23760
|
}), _void(), {
|
|
23761
23761
|
kind: "mutation",
|
|
23762
|
-
auth: "
|
|
23762
|
+
auth: "protected"
|
|
23763
23763
|
}), method(object({
|
|
23764
23764
|
deviceId: number().int().nonnegative(),
|
|
23765
23765
|
targetHumidity: number().min(0).max(100)
|
|
23766
23766
|
}), _void(), {
|
|
23767
23767
|
kind: "mutation",
|
|
23768
|
-
auth: "
|
|
23768
|
+
auth: "protected"
|
|
23769
23769
|
}), method(object({
|
|
23770
23770
|
deviceId: number().int().nonnegative(),
|
|
23771
23771
|
on: boolean()
|
|
23772
23772
|
}), _void(), {
|
|
23773
23773
|
kind: "mutation",
|
|
23774
|
-
auth: "
|
|
23774
|
+
auth: "protected"
|
|
23775
23775
|
}), method(object({
|
|
23776
23776
|
deviceId: number().int().nonnegative(),
|
|
23777
23777
|
on: boolean()
|
|
23778
23778
|
}), _void(), {
|
|
23779
23779
|
kind: "mutation",
|
|
23780
|
-
auth: "
|
|
23780
|
+
auth: "protected"
|
|
23781
23781
|
});
|
|
23782
23782
|
/**
|
|
23783
23783
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -23852,7 +23852,7 @@ DeviceType.Light, method(object({
|
|
|
23852
23852
|
color: ColorInputSchema
|
|
23853
23853
|
}), _void(), {
|
|
23854
23854
|
kind: "mutation",
|
|
23855
|
-
auth: "
|
|
23855
|
+
auth: "protected"
|
|
23856
23856
|
}), object({
|
|
23857
23857
|
deviceId: number(),
|
|
23858
23858
|
mode: _enum([
|
|
@@ -24001,7 +24001,7 @@ DeviceType.Control, method(object({
|
|
|
24001
24001
|
control: ControlSetValueInputSchema
|
|
24002
24002
|
}), _void(), {
|
|
24003
24003
|
kind: "mutation",
|
|
24004
|
-
auth: "
|
|
24004
|
+
auth: "protected"
|
|
24005
24005
|
});
|
|
24006
24006
|
object({
|
|
24007
24007
|
/** Lifecycle state of the cover. */
|
|
@@ -24022,25 +24022,25 @@ object({
|
|
|
24022
24022
|
});
|
|
24023
24023
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24024
24024
|
kind: "mutation",
|
|
24025
|
-
auth: "
|
|
24025
|
+
auth: "protected"
|
|
24026
24026
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24027
24027
|
kind: "mutation",
|
|
24028
|
-
auth: "
|
|
24028
|
+
auth: "protected"
|
|
24029
24029
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24030
24030
|
kind: "mutation",
|
|
24031
|
-
auth: "
|
|
24031
|
+
auth: "protected"
|
|
24032
24032
|
}), method(object({
|
|
24033
24033
|
deviceId: number().int().nonnegative(),
|
|
24034
24034
|
position: number().min(0).max(100)
|
|
24035
24035
|
}), _void(), {
|
|
24036
24036
|
kind: "mutation",
|
|
24037
|
-
auth: "
|
|
24037
|
+
auth: "protected"
|
|
24038
24038
|
}), method(object({
|
|
24039
24039
|
deviceId: number().int().nonnegative(),
|
|
24040
24040
|
tiltPosition: number().min(0).max(100)
|
|
24041
24041
|
}), _void(), {
|
|
24042
24042
|
kind: "mutation",
|
|
24043
|
-
auth: "
|
|
24043
|
+
auth: "protected"
|
|
24044
24044
|
});
|
|
24045
24045
|
/**
|
|
24046
24046
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24245,6 +24245,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24245
24245
|
deviceId: number().int().optional(),
|
|
24246
24246
|
base64: string().optional()
|
|
24247
24247
|
});
|
|
24248
|
+
/**
|
|
24249
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24250
|
+
*
|
|
24251
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24252
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24253
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24254
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24255
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24256
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24257
|
+
*/
|
|
24258
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24259
|
+
sampleId: string(),
|
|
24260
|
+
enrolledAt: number().int(),
|
|
24261
|
+
deviceId: number().int().optional(),
|
|
24262
|
+
source: _enum(["detected", "photo"]),
|
|
24263
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24264
|
+
mediaKey: string().optional(),
|
|
24265
|
+
/**
|
|
24266
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24267
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24268
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24269
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24270
|
+
*/
|
|
24271
|
+
comparable: boolean(),
|
|
24272
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24273
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24274
|
+
selfMean: number().nullable(),
|
|
24275
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24276
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24277
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24278
|
+
bestForeign: object({
|
|
24279
|
+
identityId: string(),
|
|
24280
|
+
name: string(),
|
|
24281
|
+
score: number()
|
|
24282
|
+
}).optional(),
|
|
24283
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24284
|
+
suspicion: number()
|
|
24285
|
+
});
|
|
24286
|
+
var IdentitySampleAuditSchema = object({
|
|
24287
|
+
identityId: string(),
|
|
24288
|
+
name: string(),
|
|
24289
|
+
/** The cluster face model every comparison was made in. */
|
|
24290
|
+
modelId: string(),
|
|
24291
|
+
totalSamples: number().int(),
|
|
24292
|
+
comparableSamples: number().int(),
|
|
24293
|
+
flagged: number().int(),
|
|
24294
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24295
|
+
* only its current result. */
|
|
24296
|
+
flagThreshold: number(),
|
|
24297
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24298
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24299
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24300
|
+
});
|
|
24248
24301
|
var FaceInfoSchema = object({
|
|
24249
24302
|
faceId: string(),
|
|
24250
24303
|
deviceId: number().int(),
|
|
@@ -24396,7 +24449,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24396
24449
|
}), method(object({ id: string() }), _void(), {
|
|
24397
24450
|
kind: "mutation",
|
|
24398
24451
|
auth: "admin"
|
|
24399
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24452
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24400
24453
|
identityId: string(),
|
|
24401
24454
|
sampleId: string()
|
|
24402
24455
|
}), _void(), {
|
|
@@ -24582,25 +24635,25 @@ DeviceType.Fan, method(object({
|
|
|
24582
24635
|
percentage: number().min(0).max(100)
|
|
24583
24636
|
}), _void(), {
|
|
24584
24637
|
kind: "mutation",
|
|
24585
|
-
auth: "
|
|
24638
|
+
auth: "protected"
|
|
24586
24639
|
}), method(object({
|
|
24587
24640
|
deviceId: number().int().nonnegative(),
|
|
24588
24641
|
preset: string().min(1)
|
|
24589
24642
|
}), _void(), {
|
|
24590
24643
|
kind: "mutation",
|
|
24591
|
-
auth: "
|
|
24644
|
+
auth: "protected"
|
|
24592
24645
|
}), method(object({
|
|
24593
24646
|
deviceId: number().int().nonnegative(),
|
|
24594
24647
|
direction: FanDirectionSchema
|
|
24595
24648
|
}), _void(), {
|
|
24596
24649
|
kind: "mutation",
|
|
24597
|
-
auth: "
|
|
24650
|
+
auth: "protected"
|
|
24598
24651
|
}), method(object({
|
|
24599
24652
|
deviceId: number().int().nonnegative(),
|
|
24600
24653
|
oscillating: boolean()
|
|
24601
24654
|
}), _void(), {
|
|
24602
24655
|
kind: "mutation",
|
|
24603
|
-
auth: "
|
|
24656
|
+
auth: "protected"
|
|
24604
24657
|
});
|
|
24605
24658
|
/**
|
|
24606
24659
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24703,19 +24756,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24703
24756
|
on: boolean()
|
|
24704
24757
|
}), _void(), {
|
|
24705
24758
|
kind: "mutation",
|
|
24706
|
-
auth: "
|
|
24759
|
+
auth: "protected"
|
|
24707
24760
|
}), method(object({
|
|
24708
24761
|
deviceId: number().int().nonnegative(),
|
|
24709
24762
|
humidity: number().min(0).max(100)
|
|
24710
24763
|
}), _void(), {
|
|
24711
24764
|
kind: "mutation",
|
|
24712
|
-
auth: "
|
|
24765
|
+
auth: "protected"
|
|
24713
24766
|
}), method(object({
|
|
24714
24767
|
deviceId: number().int().nonnegative(),
|
|
24715
24768
|
mode: string().min(1)
|
|
24716
24769
|
}), _void(), {
|
|
24717
24770
|
kind: "mutation",
|
|
24718
|
-
auth: "
|
|
24771
|
+
auth: "protected"
|
|
24719
24772
|
});
|
|
24720
24773
|
object({
|
|
24721
24774
|
/** Current relative humidity, 0..100. */
|
|
@@ -25177,13 +25230,13 @@ object({
|
|
|
25177
25230
|
});
|
|
25178
25231
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25179
25232
|
kind: "mutation",
|
|
25180
|
-
auth: "
|
|
25233
|
+
auth: "protected"
|
|
25181
25234
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25182
25235
|
kind: "mutation",
|
|
25183
|
-
auth: "
|
|
25236
|
+
auth: "protected"
|
|
25184
25237
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25185
25238
|
kind: "mutation",
|
|
25186
|
-
auth: "
|
|
25239
|
+
auth: "protected"
|
|
25187
25240
|
});
|
|
25188
25241
|
/**
|
|
25189
25242
|
* local-network — hub-only singleton.
|
|
@@ -25443,16 +25496,16 @@ DeviceType.Lock, method(object({
|
|
|
25443
25496
|
code: string().min(1).optional()
|
|
25444
25497
|
}), _void(), {
|
|
25445
25498
|
kind: "mutation",
|
|
25446
|
-
auth: "
|
|
25499
|
+
auth: "protected"
|
|
25447
25500
|
}), method(object({
|
|
25448
25501
|
deviceId: number().int().nonnegative(),
|
|
25449
25502
|
code: string().min(1).optional()
|
|
25450
25503
|
}), _void(), {
|
|
25451
25504
|
kind: "mutation",
|
|
25452
|
-
auth: "
|
|
25505
|
+
auth: "protected"
|
|
25453
25506
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25454
25507
|
kind: "mutation",
|
|
25455
|
-
auth: "
|
|
25508
|
+
auth: "protected"
|
|
25456
25509
|
});
|
|
25457
25510
|
/**
|
|
25458
25511
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25526,55 +25579,55 @@ object({
|
|
|
25526
25579
|
});
|
|
25527
25580
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25528
25581
|
kind: "mutation",
|
|
25529
|
-
auth: "
|
|
25582
|
+
auth: "protected"
|
|
25530
25583
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25531
25584
|
kind: "mutation",
|
|
25532
|
-
auth: "
|
|
25585
|
+
auth: "protected"
|
|
25533
25586
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25534
25587
|
kind: "mutation",
|
|
25535
|
-
auth: "
|
|
25588
|
+
auth: "protected"
|
|
25536
25589
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25537
25590
|
kind: "mutation",
|
|
25538
|
-
auth: "
|
|
25591
|
+
auth: "protected"
|
|
25539
25592
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25540
25593
|
kind: "mutation",
|
|
25541
|
-
auth: "
|
|
25594
|
+
auth: "protected"
|
|
25542
25595
|
}), method(object({
|
|
25543
25596
|
deviceId: number().int().nonnegative(),
|
|
25544
25597
|
positionMs: number().int().nonnegative()
|
|
25545
25598
|
}), _void(), {
|
|
25546
25599
|
kind: "mutation",
|
|
25547
|
-
auth: "
|
|
25600
|
+
auth: "protected"
|
|
25548
25601
|
}), method(object({
|
|
25549
25602
|
deviceId: number().int().nonnegative(),
|
|
25550
25603
|
volumeLevel: number().min(0).max(100)
|
|
25551
25604
|
}), _void(), {
|
|
25552
25605
|
kind: "mutation",
|
|
25553
|
-
auth: "
|
|
25606
|
+
auth: "protected"
|
|
25554
25607
|
}), method(object({
|
|
25555
25608
|
deviceId: number().int().nonnegative(),
|
|
25556
25609
|
muted: boolean()
|
|
25557
25610
|
}), _void(), {
|
|
25558
25611
|
kind: "mutation",
|
|
25559
|
-
auth: "
|
|
25612
|
+
auth: "protected"
|
|
25560
25613
|
}), method(object({
|
|
25561
25614
|
deviceId: number().int().nonnegative(),
|
|
25562
25615
|
shuffle: boolean()
|
|
25563
25616
|
}), _void(), {
|
|
25564
25617
|
kind: "mutation",
|
|
25565
|
-
auth: "
|
|
25618
|
+
auth: "protected"
|
|
25566
25619
|
}), method(object({
|
|
25567
25620
|
deviceId: number().int().nonnegative(),
|
|
25568
25621
|
repeat: MediaPlayerRepeatSchema
|
|
25569
25622
|
}), _void(), {
|
|
25570
25623
|
kind: "mutation",
|
|
25571
|
-
auth: "
|
|
25624
|
+
auth: "protected"
|
|
25572
25625
|
}), method(object({
|
|
25573
25626
|
deviceId: number().int().nonnegative(),
|
|
25574
25627
|
source: string().min(1)
|
|
25575
25628
|
}), _void(), {
|
|
25576
25629
|
kind: "mutation",
|
|
25577
|
-
auth: "
|
|
25630
|
+
auth: "protected"
|
|
25578
25631
|
}), method(object({
|
|
25579
25632
|
deviceId: number().int().nonnegative(),
|
|
25580
25633
|
/** Media identifier / URL. */
|
|
@@ -25584,7 +25637,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25584
25637
|
mediaType: string().min(1)
|
|
25585
25638
|
}), _void(), {
|
|
25586
25639
|
kind: "mutation",
|
|
25587
|
-
auth: "
|
|
25640
|
+
auth: "protected"
|
|
25588
25641
|
});
|
|
25589
25642
|
/**
|
|
25590
25643
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26750,49 +26803,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26750
26803
|
hopper2: gramsPortion.optional()
|
|
26751
26804
|
}), _void(), {
|
|
26752
26805
|
kind: "mutation",
|
|
26753
|
-
auth: "
|
|
26806
|
+
auth: "protected"
|
|
26754
26807
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26755
26808
|
kind: "mutation",
|
|
26756
|
-
auth: "
|
|
26809
|
+
auth: "protected"
|
|
26757
26810
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26758
26811
|
kind: "mutation",
|
|
26759
|
-
auth: "
|
|
26812
|
+
auth: "protected"
|
|
26760
26813
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26761
26814
|
kind: "mutation",
|
|
26762
|
-
auth: "
|
|
26815
|
+
auth: "protected"
|
|
26763
26816
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26764
26817
|
kind: "mutation",
|
|
26765
|
-
auth: "
|
|
26818
|
+
auth: "protected"
|
|
26766
26819
|
}), method(object({
|
|
26767
26820
|
deviceId: number().int().nonnegative(),
|
|
26768
26821
|
soundId: number().int().nonnegative()
|
|
26769
26822
|
}), _void(), {
|
|
26770
26823
|
kind: "mutation",
|
|
26771
|
-
auth: "
|
|
26824
|
+
auth: "protected"
|
|
26772
26825
|
}), method(object({
|
|
26773
26826
|
deviceId: number().int().nonnegative(),
|
|
26774
26827
|
on: boolean()
|
|
26775
26828
|
}), _void(), {
|
|
26776
26829
|
kind: "mutation",
|
|
26777
|
-
auth: "
|
|
26830
|
+
auth: "protected"
|
|
26778
26831
|
}), method(object({
|
|
26779
26832
|
deviceId: number().int().nonnegative(),
|
|
26780
26833
|
on: boolean()
|
|
26781
26834
|
}), _void(), {
|
|
26782
26835
|
kind: "mutation",
|
|
26783
|
-
auth: "
|
|
26836
|
+
auth: "protected"
|
|
26784
26837
|
}), method(object({
|
|
26785
26838
|
deviceId: number().int().nonnegative(),
|
|
26786
26839
|
on: boolean()
|
|
26787
26840
|
}), _void(), {
|
|
26788
26841
|
kind: "mutation",
|
|
26789
|
-
auth: "
|
|
26842
|
+
auth: "protected"
|
|
26790
26843
|
}), method(object({
|
|
26791
26844
|
deviceId: number().int().nonnegative(),
|
|
26792
26845
|
level: number().int().nonnegative()
|
|
26793
26846
|
}), _void(), {
|
|
26794
26847
|
kind: "mutation",
|
|
26795
|
-
auth: "
|
|
26848
|
+
auth: "protected"
|
|
26796
26849
|
});
|
|
26797
26850
|
var VehicleSchema = object({
|
|
26798
26851
|
id: string(),
|
|
@@ -28579,7 +28632,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28579
28632
|
on: boolean()
|
|
28580
28633
|
}), _void(), {
|
|
28581
28634
|
kind: "mutation",
|
|
28582
|
-
auth: "
|
|
28635
|
+
auth: "protected"
|
|
28583
28636
|
}), object({
|
|
28584
28637
|
deviceId: number(),
|
|
28585
28638
|
on: boolean(),
|
|
@@ -29436,25 +29489,25 @@ object({
|
|
|
29436
29489
|
});
|
|
29437
29490
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29438
29491
|
kind: "mutation",
|
|
29439
|
-
auth: "
|
|
29492
|
+
auth: "protected"
|
|
29440
29493
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29441
29494
|
kind: "mutation",
|
|
29442
|
-
auth: "
|
|
29495
|
+
auth: "protected"
|
|
29443
29496
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29444
29497
|
kind: "mutation",
|
|
29445
|
-
auth: "
|
|
29498
|
+
auth: "protected"
|
|
29446
29499
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29447
29500
|
kind: "mutation",
|
|
29448
|
-
auth: "
|
|
29501
|
+
auth: "protected"
|
|
29449
29502
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29450
29503
|
kind: "mutation",
|
|
29451
|
-
auth: "
|
|
29504
|
+
auth: "protected"
|
|
29452
29505
|
}), method(object({
|
|
29453
29506
|
deviceId: number().int().nonnegative(),
|
|
29454
29507
|
speed: string().min(1)
|
|
29455
29508
|
}), _void(), {
|
|
29456
29509
|
kind: "mutation",
|
|
29457
|
-
auth: "
|
|
29510
|
+
auth: "protected"
|
|
29458
29511
|
});
|
|
29459
29512
|
object({
|
|
29460
29513
|
/** Lifecycle state of the valve. */
|
|
@@ -29473,19 +29526,19 @@ object({
|
|
|
29473
29526
|
});
|
|
29474
29527
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29475
29528
|
kind: "mutation",
|
|
29476
|
-
auth: "
|
|
29529
|
+
auth: "protected"
|
|
29477
29530
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29478
29531
|
kind: "mutation",
|
|
29479
|
-
auth: "
|
|
29532
|
+
auth: "protected"
|
|
29480
29533
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29481
29534
|
kind: "mutation",
|
|
29482
|
-
auth: "
|
|
29535
|
+
auth: "protected"
|
|
29483
29536
|
}), method(object({
|
|
29484
29537
|
deviceId: number().int().nonnegative(),
|
|
29485
29538
|
position: number().min(0).max(100)
|
|
29486
29539
|
}), _void(), {
|
|
29487
29540
|
kind: "mutation",
|
|
29488
|
-
auth: "
|
|
29541
|
+
auth: "protected"
|
|
29489
29542
|
});
|
|
29490
29543
|
object({
|
|
29491
29544
|
detected: boolean(),
|
|
@@ -29519,19 +29572,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29519
29572
|
temp: number().finite()
|
|
29520
29573
|
}), _void(), {
|
|
29521
29574
|
kind: "mutation",
|
|
29522
|
-
auth: "
|
|
29575
|
+
auth: "protected"
|
|
29523
29576
|
}), method(object({
|
|
29524
29577
|
deviceId: number().int().nonnegative(),
|
|
29525
29578
|
mode: string().min(1)
|
|
29526
29579
|
}), _void(), {
|
|
29527
29580
|
kind: "mutation",
|
|
29528
|
-
auth: "
|
|
29581
|
+
auth: "protected"
|
|
29529
29582
|
}), method(object({
|
|
29530
29583
|
deviceId: number().int().nonnegative(),
|
|
29531
29584
|
on: boolean()
|
|
29532
29585
|
}), _void(), {
|
|
29533
29586
|
kind: "mutation",
|
|
29534
|
-
auth: "
|
|
29587
|
+
auth: "protected"
|
|
29535
29588
|
});
|
|
29536
29589
|
object({
|
|
29537
29590
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31623,6 +31676,12 @@ Object.freeze({
|
|
|
31623
31676
|
addonId: null,
|
|
31624
31677
|
access: "create"
|
|
31625
31678
|
},
|
|
31679
|
+
"faceGallery.auditIdentitySamples": {
|
|
31680
|
+
capName: "face-gallery",
|
|
31681
|
+
capScope: "system",
|
|
31682
|
+
addonId: null,
|
|
31683
|
+
access: "view"
|
|
31684
|
+
},
|
|
31626
31685
|
"faceGallery.createIdentity": {
|
|
31627
31686
|
capName: "face-gallery",
|
|
31628
31687
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-mqtt-broker",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.86",
|
|
4
4
|
"description": "MQTT broker registry addon for CamStack — manages external broker entries + an optional embedded aedes broker. Consumers spin up their own `mqtt.js` clients via the `mqtt-broker` cap.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|