@camstack/addon-provider-onvif 1.2.83 → 1.2.85
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 +129 -70
- package/dist/addon.mjs +129 -70
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -15891,16 +15891,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
15891
15891
|
code: string().min(1).optional()
|
|
15892
15892
|
}), _void(), {
|
|
15893
15893
|
kind: "mutation",
|
|
15894
|
-
auth: "
|
|
15894
|
+
auth: "protected"
|
|
15895
15895
|
}), method(object({
|
|
15896
15896
|
deviceId: number().int().nonnegative(),
|
|
15897
15897
|
code: string().min(1).optional()
|
|
15898
15898
|
}), _void(), {
|
|
15899
15899
|
kind: "mutation",
|
|
15900
|
-
auth: "
|
|
15900
|
+
auth: "protected"
|
|
15901
15901
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
15902
15902
|
kind: "mutation",
|
|
15903
|
-
auth: "
|
|
15903
|
+
auth: "protected"
|
|
15904
15904
|
});
|
|
15905
15905
|
/**
|
|
15906
15906
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23659,7 +23659,7 @@ DeviceType.Light, method(object({
|
|
|
23659
23659
|
percentage: number().min(0).max(100)
|
|
23660
23660
|
}), _void(), {
|
|
23661
23661
|
kind: "mutation",
|
|
23662
|
-
auth: "
|
|
23662
|
+
auth: "protected"
|
|
23663
23663
|
}), object({
|
|
23664
23664
|
deviceId: number(),
|
|
23665
23665
|
percentage: number().min(0).max(100),
|
|
@@ -23667,7 +23667,7 @@ DeviceType.Light, method(object({
|
|
|
23667
23667
|
});
|
|
23668
23668
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23669
23669
|
kind: "mutation",
|
|
23670
|
-
auth: "
|
|
23670
|
+
auth: "protected"
|
|
23671
23671
|
});
|
|
23672
23672
|
/**
|
|
23673
23673
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23826,50 +23826,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23826
23826
|
mode: HvacModeSchema
|
|
23827
23827
|
}), _void(), {
|
|
23828
23828
|
kind: "mutation",
|
|
23829
|
-
auth: "
|
|
23829
|
+
auth: "protected"
|
|
23830
23830
|
}), method(object({
|
|
23831
23831
|
deviceId: number().int().nonnegative(),
|
|
23832
23832
|
fanMode: string().min(1)
|
|
23833
23833
|
}), _void(), {
|
|
23834
23834
|
kind: "mutation",
|
|
23835
|
-
auth: "
|
|
23835
|
+
auth: "protected"
|
|
23836
23836
|
}), method(object({
|
|
23837
23837
|
deviceId: number().int().nonnegative(),
|
|
23838
23838
|
preset: string().min(1)
|
|
23839
23839
|
}), _void(), {
|
|
23840
23840
|
kind: "mutation",
|
|
23841
|
-
auth: "
|
|
23841
|
+
auth: "protected"
|
|
23842
23842
|
}), method(object({
|
|
23843
23843
|
deviceId: number().int().nonnegative(),
|
|
23844
23844
|
target: number()
|
|
23845
23845
|
}), _void(), {
|
|
23846
23846
|
kind: "mutation",
|
|
23847
|
-
auth: "
|
|
23847
|
+
auth: "protected"
|
|
23848
23848
|
}), method(object({
|
|
23849
23849
|
deviceId: number().int().nonnegative(),
|
|
23850
23850
|
targetLow: number(),
|
|
23851
23851
|
targetHigh: number()
|
|
23852
23852
|
}), _void(), {
|
|
23853
23853
|
kind: "mutation",
|
|
23854
|
-
auth: "
|
|
23854
|
+
auth: "protected"
|
|
23855
23855
|
}), method(object({
|
|
23856
23856
|
deviceId: number().int().nonnegative(),
|
|
23857
23857
|
targetHumidity: number().min(0).max(100)
|
|
23858
23858
|
}), _void(), {
|
|
23859
23859
|
kind: "mutation",
|
|
23860
|
-
auth: "
|
|
23860
|
+
auth: "protected"
|
|
23861
23861
|
}), method(object({
|
|
23862
23862
|
deviceId: number().int().nonnegative(),
|
|
23863
23863
|
on: boolean()
|
|
23864
23864
|
}), _void(), {
|
|
23865
23865
|
kind: "mutation",
|
|
23866
|
-
auth: "
|
|
23866
|
+
auth: "protected"
|
|
23867
23867
|
}), method(object({
|
|
23868
23868
|
deviceId: number().int().nonnegative(),
|
|
23869
23869
|
on: boolean()
|
|
23870
23870
|
}), _void(), {
|
|
23871
23871
|
kind: "mutation",
|
|
23872
|
-
auth: "
|
|
23872
|
+
auth: "protected"
|
|
23873
23873
|
});
|
|
23874
23874
|
/**
|
|
23875
23875
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -23944,7 +23944,7 @@ DeviceType.Light, method(object({
|
|
|
23944
23944
|
color: ColorInputSchema
|
|
23945
23945
|
}), _void(), {
|
|
23946
23946
|
kind: "mutation",
|
|
23947
|
-
auth: "
|
|
23947
|
+
auth: "protected"
|
|
23948
23948
|
}), object({
|
|
23949
23949
|
deviceId: number(),
|
|
23950
23950
|
mode: _enum([
|
|
@@ -24093,7 +24093,7 @@ DeviceType.Control, method(object({
|
|
|
24093
24093
|
control: ControlSetValueInputSchema
|
|
24094
24094
|
}), _void(), {
|
|
24095
24095
|
kind: "mutation",
|
|
24096
|
-
auth: "
|
|
24096
|
+
auth: "protected"
|
|
24097
24097
|
});
|
|
24098
24098
|
object({
|
|
24099
24099
|
/** Lifecycle state of the cover. */
|
|
@@ -24114,25 +24114,25 @@ object({
|
|
|
24114
24114
|
});
|
|
24115
24115
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24116
24116
|
kind: "mutation",
|
|
24117
|
-
auth: "
|
|
24117
|
+
auth: "protected"
|
|
24118
24118
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24119
24119
|
kind: "mutation",
|
|
24120
|
-
auth: "
|
|
24120
|
+
auth: "protected"
|
|
24121
24121
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24122
24122
|
kind: "mutation",
|
|
24123
|
-
auth: "
|
|
24123
|
+
auth: "protected"
|
|
24124
24124
|
}), method(object({
|
|
24125
24125
|
deviceId: number().int().nonnegative(),
|
|
24126
24126
|
position: number().min(0).max(100)
|
|
24127
24127
|
}), _void(), {
|
|
24128
24128
|
kind: "mutation",
|
|
24129
|
-
auth: "
|
|
24129
|
+
auth: "protected"
|
|
24130
24130
|
}), method(object({
|
|
24131
24131
|
deviceId: number().int().nonnegative(),
|
|
24132
24132
|
tiltPosition: number().min(0).max(100)
|
|
24133
24133
|
}), _void(), {
|
|
24134
24134
|
kind: "mutation",
|
|
24135
|
-
auth: "
|
|
24135
|
+
auth: "protected"
|
|
24136
24136
|
});
|
|
24137
24137
|
/**
|
|
24138
24138
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24337,6 +24337,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24337
24337
|
deviceId: number().int().optional(),
|
|
24338
24338
|
base64: string().optional()
|
|
24339
24339
|
});
|
|
24340
|
+
/**
|
|
24341
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24342
|
+
*
|
|
24343
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24344
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24345
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24346
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24347
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24348
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24349
|
+
*/
|
|
24350
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24351
|
+
sampleId: string(),
|
|
24352
|
+
enrolledAt: number().int(),
|
|
24353
|
+
deviceId: number().int().optional(),
|
|
24354
|
+
source: _enum(["detected", "photo"]),
|
|
24355
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24356
|
+
mediaKey: string().optional(),
|
|
24357
|
+
/**
|
|
24358
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24359
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24360
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24361
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24362
|
+
*/
|
|
24363
|
+
comparable: boolean(),
|
|
24364
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24365
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24366
|
+
selfMean: number().nullable(),
|
|
24367
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24368
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24369
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24370
|
+
bestForeign: object({
|
|
24371
|
+
identityId: string(),
|
|
24372
|
+
name: string(),
|
|
24373
|
+
score: number()
|
|
24374
|
+
}).optional(),
|
|
24375
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24376
|
+
suspicion: number()
|
|
24377
|
+
});
|
|
24378
|
+
var IdentitySampleAuditSchema = object({
|
|
24379
|
+
identityId: string(),
|
|
24380
|
+
name: string(),
|
|
24381
|
+
/** The cluster face model every comparison was made in. */
|
|
24382
|
+
modelId: string(),
|
|
24383
|
+
totalSamples: number().int(),
|
|
24384
|
+
comparableSamples: number().int(),
|
|
24385
|
+
flagged: number().int(),
|
|
24386
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24387
|
+
* only its current result. */
|
|
24388
|
+
flagThreshold: number(),
|
|
24389
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24390
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24391
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24392
|
+
});
|
|
24340
24393
|
var FaceInfoSchema = object({
|
|
24341
24394
|
faceId: string(),
|
|
24342
24395
|
deviceId: number().int(),
|
|
@@ -24488,7 +24541,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24488
24541
|
}), method(object({ id: string() }), _void(), {
|
|
24489
24542
|
kind: "mutation",
|
|
24490
24543
|
auth: "admin"
|
|
24491
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24544
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24492
24545
|
identityId: string(),
|
|
24493
24546
|
sampleId: string()
|
|
24494
24547
|
}), _void(), {
|
|
@@ -24674,25 +24727,25 @@ DeviceType.Fan, method(object({
|
|
|
24674
24727
|
percentage: number().min(0).max(100)
|
|
24675
24728
|
}), _void(), {
|
|
24676
24729
|
kind: "mutation",
|
|
24677
|
-
auth: "
|
|
24730
|
+
auth: "protected"
|
|
24678
24731
|
}), method(object({
|
|
24679
24732
|
deviceId: number().int().nonnegative(),
|
|
24680
24733
|
preset: string().min(1)
|
|
24681
24734
|
}), _void(), {
|
|
24682
24735
|
kind: "mutation",
|
|
24683
|
-
auth: "
|
|
24736
|
+
auth: "protected"
|
|
24684
24737
|
}), method(object({
|
|
24685
24738
|
deviceId: number().int().nonnegative(),
|
|
24686
24739
|
direction: FanDirectionSchema
|
|
24687
24740
|
}), _void(), {
|
|
24688
24741
|
kind: "mutation",
|
|
24689
|
-
auth: "
|
|
24742
|
+
auth: "protected"
|
|
24690
24743
|
}), method(object({
|
|
24691
24744
|
deviceId: number().int().nonnegative(),
|
|
24692
24745
|
oscillating: boolean()
|
|
24693
24746
|
}), _void(), {
|
|
24694
24747
|
kind: "mutation",
|
|
24695
|
-
auth: "
|
|
24748
|
+
auth: "protected"
|
|
24696
24749
|
});
|
|
24697
24750
|
/**
|
|
24698
24751
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24795,19 +24848,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24795
24848
|
on: boolean()
|
|
24796
24849
|
}), _void(), {
|
|
24797
24850
|
kind: "mutation",
|
|
24798
|
-
auth: "
|
|
24851
|
+
auth: "protected"
|
|
24799
24852
|
}), method(object({
|
|
24800
24853
|
deviceId: number().int().nonnegative(),
|
|
24801
24854
|
humidity: number().min(0).max(100)
|
|
24802
24855
|
}), _void(), {
|
|
24803
24856
|
kind: "mutation",
|
|
24804
|
-
auth: "
|
|
24857
|
+
auth: "protected"
|
|
24805
24858
|
}), method(object({
|
|
24806
24859
|
deviceId: number().int().nonnegative(),
|
|
24807
24860
|
mode: string().min(1)
|
|
24808
24861
|
}), _void(), {
|
|
24809
24862
|
kind: "mutation",
|
|
24810
|
-
auth: "
|
|
24863
|
+
auth: "protected"
|
|
24811
24864
|
});
|
|
24812
24865
|
object({
|
|
24813
24866
|
/** Current relative humidity, 0..100. */
|
|
@@ -25269,13 +25322,13 @@ object({
|
|
|
25269
25322
|
});
|
|
25270
25323
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25271
25324
|
kind: "mutation",
|
|
25272
|
-
auth: "
|
|
25325
|
+
auth: "protected"
|
|
25273
25326
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25274
25327
|
kind: "mutation",
|
|
25275
|
-
auth: "
|
|
25328
|
+
auth: "protected"
|
|
25276
25329
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25277
25330
|
kind: "mutation",
|
|
25278
|
-
auth: "
|
|
25331
|
+
auth: "protected"
|
|
25279
25332
|
});
|
|
25280
25333
|
/**
|
|
25281
25334
|
* local-network — hub-only singleton.
|
|
@@ -25535,16 +25588,16 @@ DeviceType.Lock, method(object({
|
|
|
25535
25588
|
code: string().min(1).optional()
|
|
25536
25589
|
}), _void(), {
|
|
25537
25590
|
kind: "mutation",
|
|
25538
|
-
auth: "
|
|
25591
|
+
auth: "protected"
|
|
25539
25592
|
}), method(object({
|
|
25540
25593
|
deviceId: number().int().nonnegative(),
|
|
25541
25594
|
code: string().min(1).optional()
|
|
25542
25595
|
}), _void(), {
|
|
25543
25596
|
kind: "mutation",
|
|
25544
|
-
auth: "
|
|
25597
|
+
auth: "protected"
|
|
25545
25598
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25546
25599
|
kind: "mutation",
|
|
25547
|
-
auth: "
|
|
25600
|
+
auth: "protected"
|
|
25548
25601
|
});
|
|
25549
25602
|
/**
|
|
25550
25603
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25618,55 +25671,55 @@ object({
|
|
|
25618
25671
|
});
|
|
25619
25672
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25620
25673
|
kind: "mutation",
|
|
25621
|
-
auth: "
|
|
25674
|
+
auth: "protected"
|
|
25622
25675
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25623
25676
|
kind: "mutation",
|
|
25624
|
-
auth: "
|
|
25677
|
+
auth: "protected"
|
|
25625
25678
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25626
25679
|
kind: "mutation",
|
|
25627
|
-
auth: "
|
|
25680
|
+
auth: "protected"
|
|
25628
25681
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25629
25682
|
kind: "mutation",
|
|
25630
|
-
auth: "
|
|
25683
|
+
auth: "protected"
|
|
25631
25684
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25632
25685
|
kind: "mutation",
|
|
25633
|
-
auth: "
|
|
25686
|
+
auth: "protected"
|
|
25634
25687
|
}), method(object({
|
|
25635
25688
|
deviceId: number().int().nonnegative(),
|
|
25636
25689
|
positionMs: number().int().nonnegative()
|
|
25637
25690
|
}), _void(), {
|
|
25638
25691
|
kind: "mutation",
|
|
25639
|
-
auth: "
|
|
25692
|
+
auth: "protected"
|
|
25640
25693
|
}), method(object({
|
|
25641
25694
|
deviceId: number().int().nonnegative(),
|
|
25642
25695
|
volumeLevel: number().min(0).max(100)
|
|
25643
25696
|
}), _void(), {
|
|
25644
25697
|
kind: "mutation",
|
|
25645
|
-
auth: "
|
|
25698
|
+
auth: "protected"
|
|
25646
25699
|
}), method(object({
|
|
25647
25700
|
deviceId: number().int().nonnegative(),
|
|
25648
25701
|
muted: boolean()
|
|
25649
25702
|
}), _void(), {
|
|
25650
25703
|
kind: "mutation",
|
|
25651
|
-
auth: "
|
|
25704
|
+
auth: "protected"
|
|
25652
25705
|
}), method(object({
|
|
25653
25706
|
deviceId: number().int().nonnegative(),
|
|
25654
25707
|
shuffle: boolean()
|
|
25655
25708
|
}), _void(), {
|
|
25656
25709
|
kind: "mutation",
|
|
25657
|
-
auth: "
|
|
25710
|
+
auth: "protected"
|
|
25658
25711
|
}), method(object({
|
|
25659
25712
|
deviceId: number().int().nonnegative(),
|
|
25660
25713
|
repeat: MediaPlayerRepeatSchema
|
|
25661
25714
|
}), _void(), {
|
|
25662
25715
|
kind: "mutation",
|
|
25663
|
-
auth: "
|
|
25716
|
+
auth: "protected"
|
|
25664
25717
|
}), method(object({
|
|
25665
25718
|
deviceId: number().int().nonnegative(),
|
|
25666
25719
|
source: string().min(1)
|
|
25667
25720
|
}), _void(), {
|
|
25668
25721
|
kind: "mutation",
|
|
25669
|
-
auth: "
|
|
25722
|
+
auth: "protected"
|
|
25670
25723
|
}), method(object({
|
|
25671
25724
|
deviceId: number().int().nonnegative(),
|
|
25672
25725
|
/** Media identifier / URL. */
|
|
@@ -25676,7 +25729,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25676
25729
|
mediaType: string().min(1)
|
|
25677
25730
|
}), _void(), {
|
|
25678
25731
|
kind: "mutation",
|
|
25679
|
-
auth: "
|
|
25732
|
+
auth: "protected"
|
|
25680
25733
|
});
|
|
25681
25734
|
/**
|
|
25682
25735
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26842,49 +26895,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26842
26895
|
hopper2: gramsPortion.optional()
|
|
26843
26896
|
}), _void(), {
|
|
26844
26897
|
kind: "mutation",
|
|
26845
|
-
auth: "
|
|
26898
|
+
auth: "protected"
|
|
26846
26899
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26847
26900
|
kind: "mutation",
|
|
26848
|
-
auth: "
|
|
26901
|
+
auth: "protected"
|
|
26849
26902
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26850
26903
|
kind: "mutation",
|
|
26851
|
-
auth: "
|
|
26904
|
+
auth: "protected"
|
|
26852
26905
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26853
26906
|
kind: "mutation",
|
|
26854
|
-
auth: "
|
|
26907
|
+
auth: "protected"
|
|
26855
26908
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26856
26909
|
kind: "mutation",
|
|
26857
|
-
auth: "
|
|
26910
|
+
auth: "protected"
|
|
26858
26911
|
}), method(object({
|
|
26859
26912
|
deviceId: number().int().nonnegative(),
|
|
26860
26913
|
soundId: number().int().nonnegative()
|
|
26861
26914
|
}), _void(), {
|
|
26862
26915
|
kind: "mutation",
|
|
26863
|
-
auth: "
|
|
26916
|
+
auth: "protected"
|
|
26864
26917
|
}), method(object({
|
|
26865
26918
|
deviceId: number().int().nonnegative(),
|
|
26866
26919
|
on: boolean()
|
|
26867
26920
|
}), _void(), {
|
|
26868
26921
|
kind: "mutation",
|
|
26869
|
-
auth: "
|
|
26922
|
+
auth: "protected"
|
|
26870
26923
|
}), method(object({
|
|
26871
26924
|
deviceId: number().int().nonnegative(),
|
|
26872
26925
|
on: boolean()
|
|
26873
26926
|
}), _void(), {
|
|
26874
26927
|
kind: "mutation",
|
|
26875
|
-
auth: "
|
|
26928
|
+
auth: "protected"
|
|
26876
26929
|
}), method(object({
|
|
26877
26930
|
deviceId: number().int().nonnegative(),
|
|
26878
26931
|
on: boolean()
|
|
26879
26932
|
}), _void(), {
|
|
26880
26933
|
kind: "mutation",
|
|
26881
|
-
auth: "
|
|
26934
|
+
auth: "protected"
|
|
26882
26935
|
}), method(object({
|
|
26883
26936
|
deviceId: number().int().nonnegative(),
|
|
26884
26937
|
level: number().int().nonnegative()
|
|
26885
26938
|
}), _void(), {
|
|
26886
26939
|
kind: "mutation",
|
|
26887
|
-
auth: "
|
|
26940
|
+
auth: "protected"
|
|
26888
26941
|
});
|
|
26889
26942
|
var VehicleSchema = object({
|
|
26890
26943
|
id: string(),
|
|
@@ -28713,7 +28766,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28713
28766
|
on: boolean()
|
|
28714
28767
|
}), _void(), {
|
|
28715
28768
|
kind: "mutation",
|
|
28716
|
-
auth: "
|
|
28769
|
+
auth: "protected"
|
|
28717
28770
|
}), object({
|
|
28718
28771
|
deviceId: number(),
|
|
28719
28772
|
on: boolean(),
|
|
@@ -29570,25 +29623,25 @@ object({
|
|
|
29570
29623
|
});
|
|
29571
29624
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29572
29625
|
kind: "mutation",
|
|
29573
|
-
auth: "
|
|
29626
|
+
auth: "protected"
|
|
29574
29627
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29575
29628
|
kind: "mutation",
|
|
29576
|
-
auth: "
|
|
29629
|
+
auth: "protected"
|
|
29577
29630
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29578
29631
|
kind: "mutation",
|
|
29579
|
-
auth: "
|
|
29632
|
+
auth: "protected"
|
|
29580
29633
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29581
29634
|
kind: "mutation",
|
|
29582
|
-
auth: "
|
|
29635
|
+
auth: "protected"
|
|
29583
29636
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29584
29637
|
kind: "mutation",
|
|
29585
|
-
auth: "
|
|
29638
|
+
auth: "protected"
|
|
29586
29639
|
}), method(object({
|
|
29587
29640
|
deviceId: number().int().nonnegative(),
|
|
29588
29641
|
speed: string().min(1)
|
|
29589
29642
|
}), _void(), {
|
|
29590
29643
|
kind: "mutation",
|
|
29591
|
-
auth: "
|
|
29644
|
+
auth: "protected"
|
|
29592
29645
|
});
|
|
29593
29646
|
object({
|
|
29594
29647
|
/** Lifecycle state of the valve. */
|
|
@@ -29607,19 +29660,19 @@ object({
|
|
|
29607
29660
|
});
|
|
29608
29661
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29609
29662
|
kind: "mutation",
|
|
29610
|
-
auth: "
|
|
29663
|
+
auth: "protected"
|
|
29611
29664
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29612
29665
|
kind: "mutation",
|
|
29613
|
-
auth: "
|
|
29666
|
+
auth: "protected"
|
|
29614
29667
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29615
29668
|
kind: "mutation",
|
|
29616
|
-
auth: "
|
|
29669
|
+
auth: "protected"
|
|
29617
29670
|
}), method(object({
|
|
29618
29671
|
deviceId: number().int().nonnegative(),
|
|
29619
29672
|
position: number().min(0).max(100)
|
|
29620
29673
|
}), _void(), {
|
|
29621
29674
|
kind: "mutation",
|
|
29622
|
-
auth: "
|
|
29675
|
+
auth: "protected"
|
|
29623
29676
|
});
|
|
29624
29677
|
object({
|
|
29625
29678
|
detected: boolean(),
|
|
@@ -29653,19 +29706,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29653
29706
|
temp: number().finite()
|
|
29654
29707
|
}), _void(), {
|
|
29655
29708
|
kind: "mutation",
|
|
29656
|
-
auth: "
|
|
29709
|
+
auth: "protected"
|
|
29657
29710
|
}), method(object({
|
|
29658
29711
|
deviceId: number().int().nonnegative(),
|
|
29659
29712
|
mode: string().min(1)
|
|
29660
29713
|
}), _void(), {
|
|
29661
29714
|
kind: "mutation",
|
|
29662
|
-
auth: "
|
|
29715
|
+
auth: "protected"
|
|
29663
29716
|
}), method(object({
|
|
29664
29717
|
deviceId: number().int().nonnegative(),
|
|
29665
29718
|
on: boolean()
|
|
29666
29719
|
}), _void(), {
|
|
29667
29720
|
kind: "mutation",
|
|
29668
|
-
auth: "
|
|
29721
|
+
auth: "protected"
|
|
29669
29722
|
});
|
|
29670
29723
|
object({
|
|
29671
29724
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -32583,6 +32636,12 @@ Object.freeze({
|
|
|
32583
32636
|
addonId: null,
|
|
32584
32637
|
access: "create"
|
|
32585
32638
|
},
|
|
32639
|
+
"faceGallery.auditIdentitySamples": {
|
|
32640
|
+
capName: "face-gallery",
|
|
32641
|
+
capScope: "system",
|
|
32642
|
+
addonId: null,
|
|
32643
|
+
access: "view"
|
|
32644
|
+
},
|
|
32586
32645
|
"faceGallery.createIdentity": {
|
|
32587
32646
|
capName: "face-gallery",
|
|
32588
32647
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -15892,16 +15892,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
15892
15892
|
code: string().min(1).optional()
|
|
15893
15893
|
}), _void(), {
|
|
15894
15894
|
kind: "mutation",
|
|
15895
|
-
auth: "
|
|
15895
|
+
auth: "protected"
|
|
15896
15896
|
}), method(object({
|
|
15897
15897
|
deviceId: number().int().nonnegative(),
|
|
15898
15898
|
code: string().min(1).optional()
|
|
15899
15899
|
}), _void(), {
|
|
15900
15900
|
kind: "mutation",
|
|
15901
|
-
auth: "
|
|
15901
|
+
auth: "protected"
|
|
15902
15902
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
15903
15903
|
kind: "mutation",
|
|
15904
|
-
auth: "
|
|
15904
|
+
auth: "protected"
|
|
15905
15905
|
});
|
|
15906
15906
|
/**
|
|
15907
15907
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23660,7 +23660,7 @@ DeviceType.Light, method(object({
|
|
|
23660
23660
|
percentage: number().min(0).max(100)
|
|
23661
23661
|
}), _void(), {
|
|
23662
23662
|
kind: "mutation",
|
|
23663
|
-
auth: "
|
|
23663
|
+
auth: "protected"
|
|
23664
23664
|
}), object({
|
|
23665
23665
|
deviceId: number(),
|
|
23666
23666
|
percentage: number().min(0).max(100),
|
|
@@ -23668,7 +23668,7 @@ DeviceType.Light, method(object({
|
|
|
23668
23668
|
});
|
|
23669
23669
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23670
23670
|
kind: "mutation",
|
|
23671
|
-
auth: "
|
|
23671
|
+
auth: "protected"
|
|
23672
23672
|
});
|
|
23673
23673
|
/**
|
|
23674
23674
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23827,50 +23827,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23827
23827
|
mode: HvacModeSchema
|
|
23828
23828
|
}), _void(), {
|
|
23829
23829
|
kind: "mutation",
|
|
23830
|
-
auth: "
|
|
23830
|
+
auth: "protected"
|
|
23831
23831
|
}), method(object({
|
|
23832
23832
|
deviceId: number().int().nonnegative(),
|
|
23833
23833
|
fanMode: string().min(1)
|
|
23834
23834
|
}), _void(), {
|
|
23835
23835
|
kind: "mutation",
|
|
23836
|
-
auth: "
|
|
23836
|
+
auth: "protected"
|
|
23837
23837
|
}), method(object({
|
|
23838
23838
|
deviceId: number().int().nonnegative(),
|
|
23839
23839
|
preset: string().min(1)
|
|
23840
23840
|
}), _void(), {
|
|
23841
23841
|
kind: "mutation",
|
|
23842
|
-
auth: "
|
|
23842
|
+
auth: "protected"
|
|
23843
23843
|
}), method(object({
|
|
23844
23844
|
deviceId: number().int().nonnegative(),
|
|
23845
23845
|
target: number()
|
|
23846
23846
|
}), _void(), {
|
|
23847
23847
|
kind: "mutation",
|
|
23848
|
-
auth: "
|
|
23848
|
+
auth: "protected"
|
|
23849
23849
|
}), method(object({
|
|
23850
23850
|
deviceId: number().int().nonnegative(),
|
|
23851
23851
|
targetLow: number(),
|
|
23852
23852
|
targetHigh: number()
|
|
23853
23853
|
}), _void(), {
|
|
23854
23854
|
kind: "mutation",
|
|
23855
|
-
auth: "
|
|
23855
|
+
auth: "protected"
|
|
23856
23856
|
}), method(object({
|
|
23857
23857
|
deviceId: number().int().nonnegative(),
|
|
23858
23858
|
targetHumidity: number().min(0).max(100)
|
|
23859
23859
|
}), _void(), {
|
|
23860
23860
|
kind: "mutation",
|
|
23861
|
-
auth: "
|
|
23861
|
+
auth: "protected"
|
|
23862
23862
|
}), method(object({
|
|
23863
23863
|
deviceId: number().int().nonnegative(),
|
|
23864
23864
|
on: boolean()
|
|
23865
23865
|
}), _void(), {
|
|
23866
23866
|
kind: "mutation",
|
|
23867
|
-
auth: "
|
|
23867
|
+
auth: "protected"
|
|
23868
23868
|
}), method(object({
|
|
23869
23869
|
deviceId: number().int().nonnegative(),
|
|
23870
23870
|
on: boolean()
|
|
23871
23871
|
}), _void(), {
|
|
23872
23872
|
kind: "mutation",
|
|
23873
|
-
auth: "
|
|
23873
|
+
auth: "protected"
|
|
23874
23874
|
});
|
|
23875
23875
|
/**
|
|
23876
23876
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -23945,7 +23945,7 @@ DeviceType.Light, method(object({
|
|
|
23945
23945
|
color: ColorInputSchema
|
|
23946
23946
|
}), _void(), {
|
|
23947
23947
|
kind: "mutation",
|
|
23948
|
-
auth: "
|
|
23948
|
+
auth: "protected"
|
|
23949
23949
|
}), object({
|
|
23950
23950
|
deviceId: number(),
|
|
23951
23951
|
mode: _enum([
|
|
@@ -24094,7 +24094,7 @@ DeviceType.Control, method(object({
|
|
|
24094
24094
|
control: ControlSetValueInputSchema
|
|
24095
24095
|
}), _void(), {
|
|
24096
24096
|
kind: "mutation",
|
|
24097
|
-
auth: "
|
|
24097
|
+
auth: "protected"
|
|
24098
24098
|
});
|
|
24099
24099
|
object({
|
|
24100
24100
|
/** Lifecycle state of the cover. */
|
|
@@ -24115,25 +24115,25 @@ object({
|
|
|
24115
24115
|
});
|
|
24116
24116
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24117
24117
|
kind: "mutation",
|
|
24118
|
-
auth: "
|
|
24118
|
+
auth: "protected"
|
|
24119
24119
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24120
24120
|
kind: "mutation",
|
|
24121
|
-
auth: "
|
|
24121
|
+
auth: "protected"
|
|
24122
24122
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
24123
24123
|
kind: "mutation",
|
|
24124
|
-
auth: "
|
|
24124
|
+
auth: "protected"
|
|
24125
24125
|
}), method(object({
|
|
24126
24126
|
deviceId: number().int().nonnegative(),
|
|
24127
24127
|
position: number().min(0).max(100)
|
|
24128
24128
|
}), _void(), {
|
|
24129
24129
|
kind: "mutation",
|
|
24130
|
-
auth: "
|
|
24130
|
+
auth: "protected"
|
|
24131
24131
|
}), method(object({
|
|
24132
24132
|
deviceId: number().int().nonnegative(),
|
|
24133
24133
|
tiltPosition: number().min(0).max(100)
|
|
24134
24134
|
}), _void(), {
|
|
24135
24135
|
kind: "mutation",
|
|
24136
|
-
auth: "
|
|
24136
|
+
auth: "protected"
|
|
24137
24137
|
});
|
|
24138
24138
|
/**
|
|
24139
24139
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24338,6 +24338,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24338
24338
|
deviceId: number().int().optional(),
|
|
24339
24339
|
base64: string().optional()
|
|
24340
24340
|
});
|
|
24341
|
+
/**
|
|
24342
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24343
|
+
*
|
|
24344
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24345
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24346
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24347
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24348
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24349
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24350
|
+
*/
|
|
24351
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24352
|
+
sampleId: string(),
|
|
24353
|
+
enrolledAt: number().int(),
|
|
24354
|
+
deviceId: number().int().optional(),
|
|
24355
|
+
source: _enum(["detected", "photo"]),
|
|
24356
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24357
|
+
mediaKey: string().optional(),
|
|
24358
|
+
/**
|
|
24359
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24360
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24361
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24362
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24363
|
+
*/
|
|
24364
|
+
comparable: boolean(),
|
|
24365
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24366
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24367
|
+
selfMean: number().nullable(),
|
|
24368
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24369
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24370
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24371
|
+
bestForeign: object({
|
|
24372
|
+
identityId: string(),
|
|
24373
|
+
name: string(),
|
|
24374
|
+
score: number()
|
|
24375
|
+
}).optional(),
|
|
24376
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24377
|
+
suspicion: number()
|
|
24378
|
+
});
|
|
24379
|
+
var IdentitySampleAuditSchema = object({
|
|
24380
|
+
identityId: string(),
|
|
24381
|
+
name: string(),
|
|
24382
|
+
/** The cluster face model every comparison was made in. */
|
|
24383
|
+
modelId: string(),
|
|
24384
|
+
totalSamples: number().int(),
|
|
24385
|
+
comparableSamples: number().int(),
|
|
24386
|
+
flagged: number().int(),
|
|
24387
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24388
|
+
* only its current result. */
|
|
24389
|
+
flagThreshold: number(),
|
|
24390
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24391
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24392
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24393
|
+
});
|
|
24341
24394
|
var FaceInfoSchema = object({
|
|
24342
24395
|
faceId: string(),
|
|
24343
24396
|
deviceId: number().int(),
|
|
@@ -24489,7 +24542,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24489
24542
|
}), method(object({ id: string() }), _void(), {
|
|
24490
24543
|
kind: "mutation",
|
|
24491
24544
|
auth: "admin"
|
|
24492
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24545
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24493
24546
|
identityId: string(),
|
|
24494
24547
|
sampleId: string()
|
|
24495
24548
|
}), _void(), {
|
|
@@ -24675,25 +24728,25 @@ DeviceType.Fan, method(object({
|
|
|
24675
24728
|
percentage: number().min(0).max(100)
|
|
24676
24729
|
}), _void(), {
|
|
24677
24730
|
kind: "mutation",
|
|
24678
|
-
auth: "
|
|
24731
|
+
auth: "protected"
|
|
24679
24732
|
}), method(object({
|
|
24680
24733
|
deviceId: number().int().nonnegative(),
|
|
24681
24734
|
preset: string().min(1)
|
|
24682
24735
|
}), _void(), {
|
|
24683
24736
|
kind: "mutation",
|
|
24684
|
-
auth: "
|
|
24737
|
+
auth: "protected"
|
|
24685
24738
|
}), method(object({
|
|
24686
24739
|
deviceId: number().int().nonnegative(),
|
|
24687
24740
|
direction: FanDirectionSchema
|
|
24688
24741
|
}), _void(), {
|
|
24689
24742
|
kind: "mutation",
|
|
24690
|
-
auth: "
|
|
24743
|
+
auth: "protected"
|
|
24691
24744
|
}), method(object({
|
|
24692
24745
|
deviceId: number().int().nonnegative(),
|
|
24693
24746
|
oscillating: boolean()
|
|
24694
24747
|
}), _void(), {
|
|
24695
24748
|
kind: "mutation",
|
|
24696
|
-
auth: "
|
|
24749
|
+
auth: "protected"
|
|
24697
24750
|
});
|
|
24698
24751
|
/**
|
|
24699
24752
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24796,19 +24849,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24796
24849
|
on: boolean()
|
|
24797
24850
|
}), _void(), {
|
|
24798
24851
|
kind: "mutation",
|
|
24799
|
-
auth: "
|
|
24852
|
+
auth: "protected"
|
|
24800
24853
|
}), method(object({
|
|
24801
24854
|
deviceId: number().int().nonnegative(),
|
|
24802
24855
|
humidity: number().min(0).max(100)
|
|
24803
24856
|
}), _void(), {
|
|
24804
24857
|
kind: "mutation",
|
|
24805
|
-
auth: "
|
|
24858
|
+
auth: "protected"
|
|
24806
24859
|
}), method(object({
|
|
24807
24860
|
deviceId: number().int().nonnegative(),
|
|
24808
24861
|
mode: string().min(1)
|
|
24809
24862
|
}), _void(), {
|
|
24810
24863
|
kind: "mutation",
|
|
24811
|
-
auth: "
|
|
24864
|
+
auth: "protected"
|
|
24812
24865
|
});
|
|
24813
24866
|
object({
|
|
24814
24867
|
/** Current relative humidity, 0..100. */
|
|
@@ -25270,13 +25323,13 @@ object({
|
|
|
25270
25323
|
});
|
|
25271
25324
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25272
25325
|
kind: "mutation",
|
|
25273
|
-
auth: "
|
|
25326
|
+
auth: "protected"
|
|
25274
25327
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25275
25328
|
kind: "mutation",
|
|
25276
|
-
auth: "
|
|
25329
|
+
auth: "protected"
|
|
25277
25330
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25278
25331
|
kind: "mutation",
|
|
25279
|
-
auth: "
|
|
25332
|
+
auth: "protected"
|
|
25280
25333
|
});
|
|
25281
25334
|
/**
|
|
25282
25335
|
* local-network — hub-only singleton.
|
|
@@ -25536,16 +25589,16 @@ DeviceType.Lock, method(object({
|
|
|
25536
25589
|
code: string().min(1).optional()
|
|
25537
25590
|
}), _void(), {
|
|
25538
25591
|
kind: "mutation",
|
|
25539
|
-
auth: "
|
|
25592
|
+
auth: "protected"
|
|
25540
25593
|
}), method(object({
|
|
25541
25594
|
deviceId: number().int().nonnegative(),
|
|
25542
25595
|
code: string().min(1).optional()
|
|
25543
25596
|
}), _void(), {
|
|
25544
25597
|
kind: "mutation",
|
|
25545
|
-
auth: "
|
|
25598
|
+
auth: "protected"
|
|
25546
25599
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25547
25600
|
kind: "mutation",
|
|
25548
|
-
auth: "
|
|
25601
|
+
auth: "protected"
|
|
25549
25602
|
});
|
|
25550
25603
|
/**
|
|
25551
25604
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25619,55 +25672,55 @@ object({
|
|
|
25619
25672
|
});
|
|
25620
25673
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25621
25674
|
kind: "mutation",
|
|
25622
|
-
auth: "
|
|
25675
|
+
auth: "protected"
|
|
25623
25676
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25624
25677
|
kind: "mutation",
|
|
25625
|
-
auth: "
|
|
25678
|
+
auth: "protected"
|
|
25626
25679
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25627
25680
|
kind: "mutation",
|
|
25628
|
-
auth: "
|
|
25681
|
+
auth: "protected"
|
|
25629
25682
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25630
25683
|
kind: "mutation",
|
|
25631
|
-
auth: "
|
|
25684
|
+
auth: "protected"
|
|
25632
25685
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25633
25686
|
kind: "mutation",
|
|
25634
|
-
auth: "
|
|
25687
|
+
auth: "protected"
|
|
25635
25688
|
}), method(object({
|
|
25636
25689
|
deviceId: number().int().nonnegative(),
|
|
25637
25690
|
positionMs: number().int().nonnegative()
|
|
25638
25691
|
}), _void(), {
|
|
25639
25692
|
kind: "mutation",
|
|
25640
|
-
auth: "
|
|
25693
|
+
auth: "protected"
|
|
25641
25694
|
}), method(object({
|
|
25642
25695
|
deviceId: number().int().nonnegative(),
|
|
25643
25696
|
volumeLevel: number().min(0).max(100)
|
|
25644
25697
|
}), _void(), {
|
|
25645
25698
|
kind: "mutation",
|
|
25646
|
-
auth: "
|
|
25699
|
+
auth: "protected"
|
|
25647
25700
|
}), method(object({
|
|
25648
25701
|
deviceId: number().int().nonnegative(),
|
|
25649
25702
|
muted: boolean()
|
|
25650
25703
|
}), _void(), {
|
|
25651
25704
|
kind: "mutation",
|
|
25652
|
-
auth: "
|
|
25705
|
+
auth: "protected"
|
|
25653
25706
|
}), method(object({
|
|
25654
25707
|
deviceId: number().int().nonnegative(),
|
|
25655
25708
|
shuffle: boolean()
|
|
25656
25709
|
}), _void(), {
|
|
25657
25710
|
kind: "mutation",
|
|
25658
|
-
auth: "
|
|
25711
|
+
auth: "protected"
|
|
25659
25712
|
}), method(object({
|
|
25660
25713
|
deviceId: number().int().nonnegative(),
|
|
25661
25714
|
repeat: MediaPlayerRepeatSchema
|
|
25662
25715
|
}), _void(), {
|
|
25663
25716
|
kind: "mutation",
|
|
25664
|
-
auth: "
|
|
25717
|
+
auth: "protected"
|
|
25665
25718
|
}), method(object({
|
|
25666
25719
|
deviceId: number().int().nonnegative(),
|
|
25667
25720
|
source: string().min(1)
|
|
25668
25721
|
}), _void(), {
|
|
25669
25722
|
kind: "mutation",
|
|
25670
|
-
auth: "
|
|
25723
|
+
auth: "protected"
|
|
25671
25724
|
}), method(object({
|
|
25672
25725
|
deviceId: number().int().nonnegative(),
|
|
25673
25726
|
/** Media identifier / URL. */
|
|
@@ -25677,7 +25730,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25677
25730
|
mediaType: string().min(1)
|
|
25678
25731
|
}), _void(), {
|
|
25679
25732
|
kind: "mutation",
|
|
25680
|
-
auth: "
|
|
25733
|
+
auth: "protected"
|
|
25681
25734
|
});
|
|
25682
25735
|
/**
|
|
25683
25736
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26843,49 +26896,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26843
26896
|
hopper2: gramsPortion.optional()
|
|
26844
26897
|
}), _void(), {
|
|
26845
26898
|
kind: "mutation",
|
|
26846
|
-
auth: "
|
|
26899
|
+
auth: "protected"
|
|
26847
26900
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26848
26901
|
kind: "mutation",
|
|
26849
|
-
auth: "
|
|
26902
|
+
auth: "protected"
|
|
26850
26903
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26851
26904
|
kind: "mutation",
|
|
26852
|
-
auth: "
|
|
26905
|
+
auth: "protected"
|
|
26853
26906
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26854
26907
|
kind: "mutation",
|
|
26855
|
-
auth: "
|
|
26908
|
+
auth: "protected"
|
|
26856
26909
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26857
26910
|
kind: "mutation",
|
|
26858
|
-
auth: "
|
|
26911
|
+
auth: "protected"
|
|
26859
26912
|
}), method(object({
|
|
26860
26913
|
deviceId: number().int().nonnegative(),
|
|
26861
26914
|
soundId: number().int().nonnegative()
|
|
26862
26915
|
}), _void(), {
|
|
26863
26916
|
kind: "mutation",
|
|
26864
|
-
auth: "
|
|
26917
|
+
auth: "protected"
|
|
26865
26918
|
}), method(object({
|
|
26866
26919
|
deviceId: number().int().nonnegative(),
|
|
26867
26920
|
on: boolean()
|
|
26868
26921
|
}), _void(), {
|
|
26869
26922
|
kind: "mutation",
|
|
26870
|
-
auth: "
|
|
26923
|
+
auth: "protected"
|
|
26871
26924
|
}), method(object({
|
|
26872
26925
|
deviceId: number().int().nonnegative(),
|
|
26873
26926
|
on: boolean()
|
|
26874
26927
|
}), _void(), {
|
|
26875
26928
|
kind: "mutation",
|
|
26876
|
-
auth: "
|
|
26929
|
+
auth: "protected"
|
|
26877
26930
|
}), method(object({
|
|
26878
26931
|
deviceId: number().int().nonnegative(),
|
|
26879
26932
|
on: boolean()
|
|
26880
26933
|
}), _void(), {
|
|
26881
26934
|
kind: "mutation",
|
|
26882
|
-
auth: "
|
|
26935
|
+
auth: "protected"
|
|
26883
26936
|
}), method(object({
|
|
26884
26937
|
deviceId: number().int().nonnegative(),
|
|
26885
26938
|
level: number().int().nonnegative()
|
|
26886
26939
|
}), _void(), {
|
|
26887
26940
|
kind: "mutation",
|
|
26888
|
-
auth: "
|
|
26941
|
+
auth: "protected"
|
|
26889
26942
|
});
|
|
26890
26943
|
var VehicleSchema = object({
|
|
26891
26944
|
id: string(),
|
|
@@ -28714,7 +28767,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28714
28767
|
on: boolean()
|
|
28715
28768
|
}), _void(), {
|
|
28716
28769
|
kind: "mutation",
|
|
28717
|
-
auth: "
|
|
28770
|
+
auth: "protected"
|
|
28718
28771
|
}), object({
|
|
28719
28772
|
deviceId: number(),
|
|
28720
28773
|
on: boolean(),
|
|
@@ -29571,25 +29624,25 @@ object({
|
|
|
29571
29624
|
});
|
|
29572
29625
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29573
29626
|
kind: "mutation",
|
|
29574
|
-
auth: "
|
|
29627
|
+
auth: "protected"
|
|
29575
29628
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29576
29629
|
kind: "mutation",
|
|
29577
|
-
auth: "
|
|
29630
|
+
auth: "protected"
|
|
29578
29631
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29579
29632
|
kind: "mutation",
|
|
29580
|
-
auth: "
|
|
29633
|
+
auth: "protected"
|
|
29581
29634
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29582
29635
|
kind: "mutation",
|
|
29583
|
-
auth: "
|
|
29636
|
+
auth: "protected"
|
|
29584
29637
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29585
29638
|
kind: "mutation",
|
|
29586
|
-
auth: "
|
|
29639
|
+
auth: "protected"
|
|
29587
29640
|
}), method(object({
|
|
29588
29641
|
deviceId: number().int().nonnegative(),
|
|
29589
29642
|
speed: string().min(1)
|
|
29590
29643
|
}), _void(), {
|
|
29591
29644
|
kind: "mutation",
|
|
29592
|
-
auth: "
|
|
29645
|
+
auth: "protected"
|
|
29593
29646
|
});
|
|
29594
29647
|
object({
|
|
29595
29648
|
/** Lifecycle state of the valve. */
|
|
@@ -29608,19 +29661,19 @@ object({
|
|
|
29608
29661
|
});
|
|
29609
29662
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29610
29663
|
kind: "mutation",
|
|
29611
|
-
auth: "
|
|
29664
|
+
auth: "protected"
|
|
29612
29665
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29613
29666
|
kind: "mutation",
|
|
29614
|
-
auth: "
|
|
29667
|
+
auth: "protected"
|
|
29615
29668
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29616
29669
|
kind: "mutation",
|
|
29617
|
-
auth: "
|
|
29670
|
+
auth: "protected"
|
|
29618
29671
|
}), method(object({
|
|
29619
29672
|
deviceId: number().int().nonnegative(),
|
|
29620
29673
|
position: number().min(0).max(100)
|
|
29621
29674
|
}), _void(), {
|
|
29622
29675
|
kind: "mutation",
|
|
29623
|
-
auth: "
|
|
29676
|
+
auth: "protected"
|
|
29624
29677
|
});
|
|
29625
29678
|
object({
|
|
29626
29679
|
detected: boolean(),
|
|
@@ -29654,19 +29707,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29654
29707
|
temp: number().finite()
|
|
29655
29708
|
}), _void(), {
|
|
29656
29709
|
kind: "mutation",
|
|
29657
|
-
auth: "
|
|
29710
|
+
auth: "protected"
|
|
29658
29711
|
}), method(object({
|
|
29659
29712
|
deviceId: number().int().nonnegative(),
|
|
29660
29713
|
mode: string().min(1)
|
|
29661
29714
|
}), _void(), {
|
|
29662
29715
|
kind: "mutation",
|
|
29663
|
-
auth: "
|
|
29716
|
+
auth: "protected"
|
|
29664
29717
|
}), method(object({
|
|
29665
29718
|
deviceId: number().int().nonnegative(),
|
|
29666
29719
|
on: boolean()
|
|
29667
29720
|
}), _void(), {
|
|
29668
29721
|
kind: "mutation",
|
|
29669
|
-
auth: "
|
|
29722
|
+
auth: "protected"
|
|
29670
29723
|
});
|
|
29671
29724
|
object({
|
|
29672
29725
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -32584,6 +32637,12 @@ Object.freeze({
|
|
|
32584
32637
|
addonId: null,
|
|
32585
32638
|
access: "create"
|
|
32586
32639
|
},
|
|
32640
|
+
"faceGallery.auditIdentitySamples": {
|
|
32641
|
+
capName: "face-gallery",
|
|
32642
|
+
capScope: "system",
|
|
32643
|
+
addonId: null,
|
|
32644
|
+
access: "view"
|
|
32645
|
+
},
|
|
32587
32646
|
"faceGallery.createIdentity": {
|
|
32588
32647
|
capName: "face-gallery",
|
|
32589
32648
|
capScope: "system",
|