@kusinta/iot-schema 0.2.0-beta.3 → 0.2.0-beta.30
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/package.json +9 -1
- package/src/kusinta/iot/access/v1/acl_pb.d.ts +118 -2
- package/src/kusinta/iot/access/v1/acl_pb.js +20 -3
- package/src/kusinta/iot/access/v1/roles_pb.d.ts +119 -4
- package/src/kusinta/iot/access/v1/roles_pb.js +98 -5
- package/src/kusinta/iot/climate/v1/climate_pb.d.ts +726 -0
- package/src/kusinta/iot/climate/v1/climate_pb.js +142 -0
- package/src/kusinta/iot/common/v1/pairing_pb.d.ts +217 -0
- package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
- package/src/kusinta/iot/common/v1/types_pb.d.ts +175 -0
- package/src/kusinta/iot/common/v1/types_pb.js +70 -1
- package/src/kusinta/iot/connector/v1/connector_pb.d.ts +691 -2
- package/src/kusinta/iot/connector/v1/connector_pb.js +104 -13
- package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +44 -0
- package/src/kusinta/iot/device/v1/cluster_state_pb.js +1 -1
- package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +22 -2
- package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
- package/src/kusinta/iot/device/v1/device_event_pb.d.ts +87 -5
- package/src/kusinta/iot/device/v1/device_event_pb.js +1 -1
- package/src/kusinta/iot/device/v1/device_pb.d.ts +150 -6
- package/src/kusinta/iot/device/v1/device_pb.js +33 -2
- package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +26 -0
- package/src/kusinta/iot/device/v1/matter_options_pb.js +31 -4
- package/src/kusinta/iot/device/v1/properties_pb.d.ts +14 -0
- package/src/kusinta/iot/device/v1/properties_pb.js +1 -1
- package/src/kusinta/iot/device/v1/property_update_pb.d.ts +3 -2
- package/src/kusinta/iot/link/v1/link_pb.d.ts +438 -0
- package/src/kusinta/iot/link/v1/link_pb.js +121 -0
- package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +1219 -0
- package/src/kusinta/iot/reporting/v1/reporting_pb.js +238 -0
- package/src/kusinta/iot/reporting/v1/reporting_service_pb.d.ts +63 -0
- package/src/kusinta/iot/reporting/v1/reporting_service_pb.js +24 -0
- package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +361 -7
- package/src/kusinta/iot/signaling/v1/signaling_pb.js +68 -4
- package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
- package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
- package/src/kusinta/iot/space/v1/space_pb.d.ts +103 -2
- package/src/kusinta/iot/space/v1/space_pb.js +10 -1
- package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +162 -13
- package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +8 -1
- package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
- package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
- package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +25 -4
- package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +28 -6
- package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +45 -5
- package/src/kusinta/iot/webrtc/v1/app_token_pb.js +1 -1
- package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +14 -0
- package/src/kusinta/iot/webrtc/v1/command_pb.js +1 -1
- package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +179 -5
- package/src/kusinta/iot/webrtc/v1/device_state_pb.js +35 -6
- package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +520 -3
- package/src/kusinta/iot/webrtc/v1/envelope_pb.js +65 -3
- package/src/kusinta/iot/webrtc/v1/invite_pb.d.ts +496 -0
- package/src/kusinta/iot/webrtc/v1/invite_pb.js +108 -0
- package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +977 -12
- package/src/kusinta/iot/webrtc/v1/management_pb.js +132 -5
- package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +327 -0
- package/src/kusinta/iot/webrtc/v1/members_pb.js +78 -0
- package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +66 -4
- package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +10 -2
|
@@ -6,6 +6,8 @@ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
|
6
6
|
import type { Message } from "@bufbuild/protobuf";
|
|
7
7
|
import type { DeviceId, GatewayId, SpaceId, TenantId, UserId } from "../../identity/v1/identity_pb.js";
|
|
8
8
|
import type { SpaceType } from "../../common/v1/types_pb.js";
|
|
9
|
+
import type { MembershipRelation } from "../../access/v1/roles_pb.js";
|
|
10
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Describes the file kusinta/iot/space/v1/space.proto.
|
|
@@ -51,19 +53,27 @@ export declare type Space = Message<"kusinta.iot.space.v1.Space"> & {
|
|
|
51
53
|
parentSpaceId?: SpaceId | undefined;
|
|
52
54
|
|
|
53
55
|
/**
|
|
56
|
+
* Filtered to the spaces the caller reaches, as device_ids is.
|
|
57
|
+
*
|
|
54
58
|
* @generated from field: repeated kusinta.iot.identity.v1.SpaceId sub_space_ids = 7;
|
|
55
59
|
*/
|
|
56
60
|
subSpaceIds: SpaceId[];
|
|
57
61
|
|
|
58
62
|
/**
|
|
63
|
+
* Filtered to the devices the caller may see (see webrtc.v1.SpaceTree): for service, no
|
|
64
|
+
* device a resident owns.
|
|
65
|
+
*
|
|
59
66
|
* @generated from field: repeated kusinta.iot.identity.v1.DeviceId device_ids = 8;
|
|
60
67
|
*/
|
|
61
68
|
deviceIds: DeviceId[];
|
|
62
69
|
|
|
63
70
|
/**
|
|
64
|
-
*
|
|
71
|
+
* Superseded by members, which can say that more than one person lives in an apartment,
|
|
72
|
+
* and how each member stands to the space. A gateway leaves it unset, so a client that
|
|
73
|
+
* still reads it sees no resident anywhere; read members instead.
|
|
65
74
|
*
|
|
66
|
-
* @generated from field: kusinta.iot.identity.v1.UserId resident_user_id = 9;
|
|
75
|
+
* @generated from field: kusinta.iot.identity.v1.UserId resident_user_id = 9 [deprecated = true];
|
|
76
|
+
* @deprecated
|
|
67
77
|
*/
|
|
68
78
|
residentUserId?: UserId | undefined;
|
|
69
79
|
|
|
@@ -76,6 +86,49 @@ export declare type Space = Message<"kusinta.iot.space.v1.Space"> & {
|
|
|
76
86
|
* @generated from field: kusinta.iot.identity.v1.GatewayId gateway_id = 11;
|
|
77
87
|
*/
|
|
78
88
|
gatewayId?: GatewayId | undefined;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* An IANA time zone name, e.g. "Europe/Stockholm". Written on the building — the
|
|
92
|
+
* top-level space. When listing, a gateway fills it on every space with the effective
|
|
93
|
+
* value, inherited from the nearest ancestor that has one, so every listed space
|
|
94
|
+
* carries it. Empty means unknown, not UTC.
|
|
95
|
+
*
|
|
96
|
+
* @generated from field: string time_zone = 12;
|
|
97
|
+
*/
|
|
98
|
+
timeZone: string;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Who is filed directly on this space, and how each stands to it. Members of a space
|
|
102
|
+
* above it are listed there, not here.
|
|
103
|
+
*
|
|
104
|
+
* Filled according to who asks, since a membership list says who lives where:
|
|
105
|
+
*
|
|
106
|
+
* * a caller holding ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN who reaches the space
|
|
107
|
+
* sees every member save as below, in a home they see as service too, as the
|
|
108
|
+
* members change;
|
|
109
|
+
* * a resident of an apartment sees every member filed on it or on its rooms — who they
|
|
110
|
+
* live with, and anyone filed on their home as service, since being filed on a home
|
|
111
|
+
* is an act on it its residents should see. Service reach from a building or floor
|
|
112
|
+
* above is not listed; webrtc.v1.PrivacyDisclosure tells them what kinds of party
|
|
113
|
+
* hold it, and who, without saying where anyone lives;
|
|
114
|
+
* * anyone else sees none, residents of a building or floor included.
|
|
115
|
+
*
|
|
116
|
+
* Whoever it is listed to, a member who is staff (access.v1.Role, STAFF) and lives in a
|
|
117
|
+
* home has that RESIDENT membership left out for every caller who does not live in that
|
|
118
|
+
* home, a property owner and an administrator included: a staff member's residency is
|
|
119
|
+
* told only to its household. Their SERVICE memberships are listed as any member's.
|
|
120
|
+
*
|
|
121
|
+
* @generated from field: repeated kusinta.iot.space.v1.SpaceMember members = 13;
|
|
122
|
+
*/
|
|
123
|
+
members: SpaceMember[];
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Set when members are not listed to this caller, so that an empty list is not read as
|
|
127
|
+
* nobody being filed here.
|
|
128
|
+
*
|
|
129
|
+
* @generated from field: bool members_withheld = 14;
|
|
130
|
+
*/
|
|
131
|
+
membersWithheld: boolean;
|
|
79
132
|
};
|
|
80
133
|
|
|
81
134
|
/**
|
|
@@ -84,3 +137,51 @@ export declare type Space = Message<"kusinta.iot.space.v1.Space"> & {
|
|
|
84
137
|
*/
|
|
85
138
|
export declare const SpaceSchema: GenMessage<Space>;
|
|
86
139
|
|
|
140
|
+
/**
|
|
141
|
+
* One membership of a space.
|
|
142
|
+
*
|
|
143
|
+
* @generated from message kusinta.iot.space.v1.SpaceMember
|
|
144
|
+
*/
|
|
145
|
+
export declare type SpaceMember = Message<"kusinta.iot.space.v1.SpaceMember"> & {
|
|
146
|
+
/**
|
|
147
|
+
* @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
|
|
148
|
+
*/
|
|
149
|
+
userId?: UserId | undefined;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 2;
|
|
153
|
+
*/
|
|
154
|
+
relation: MembershipRelation;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* The name the member gave, self-chosen and not verified, so the app shows it as the name
|
|
158
|
+
* they gave rather than as an identity. Given to a caller who is a resident of the
|
|
159
|
+
* apartment the member is filed on, or on one of its rooms: the people they live with,
|
|
160
|
+
* and anyone filed on their home as service, whom webrtc.v1.PrivacyDisclosure already
|
|
161
|
+
* names to them. Given also, for a member who is staff (access.v1.Role, STAFF), to a
|
|
162
|
+
* caller holding ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, as webrtc.v1.MemberDetail.name
|
|
163
|
+
* names them. Empty for every other caller — service, residents of any other home, and a
|
|
164
|
+
* property owner or an administrator for a member who is not staff — and for a member
|
|
165
|
+
* whose name the gateway has not learnt. A caller given names reads an empty one as not
|
|
166
|
+
* known; anyone else is given none. Residents are named only to their own home.
|
|
167
|
+
*
|
|
168
|
+
* @generated from field: string name = 3;
|
|
169
|
+
*/
|
|
170
|
+
name: string;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* As webrtc.v1.MemberSpace.since: the start of the day, in the building's time zone, on
|
|
174
|
+
* which this membership began; for a resident, the current unbroken residency. Never finer
|
|
175
|
+
* than a day. Unset where the gateway holds no record of it.
|
|
176
|
+
*
|
|
177
|
+
* @generated from field: google.protobuf.Timestamp since = 4;
|
|
178
|
+
*/
|
|
179
|
+
since?: Timestamp | undefined;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Describes the message kusinta.iot.space.v1.SpaceMember.
|
|
184
|
+
* Use `create(SpaceMemberSchema)` to create a new message.
|
|
185
|
+
*/
|
|
186
|
+
export declare const SpaceMemberSchema: GenMessage<SpaceMember>;
|
|
187
|
+
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
5
5
|
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
7
|
+
import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
|
|
6
8
|
import { file_kusinta_iot_common_v1_types } from "../../common/v1/types_pb.js";
|
|
7
9
|
import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
|
|
8
10
|
|
|
@@ -10,7 +12,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
|
|
|
10
12
|
* Describes the file kusinta/iot/space/v1/space.proto.
|
|
11
13
|
*/
|
|
12
14
|
export const file_kusinta_iot_space_v1_space = /*@__PURE__*/
|
|
13
|
-
fileDesc("
|
|
15
|
+
fileDesc("CiBrdXNpbnRhL2lvdC9zcGFjZS92MS9zcGFjZS5wcm90bxIUa3VzaW50YS5pb3Quc3BhY2UudjEi3AQKBVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI0CgpzcGFjZV90eXBlGAIgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEg0KBWZsb29yGAUgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgGIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNwoNc3ViX3NwYWNlX2lkcxgHIAMoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoKZGV2aWNlX2lkcxgIIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KEHJlc2lkZW50X3VzZXJfaWQYCSABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWRCAhgBEjQKCXRlbmFudF9pZBgKIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlRlbmFudElkEjYKCmdhdGV3YXlfaWQYCyABKAsyIi5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5HYXRld2F5SWQSEQoJdGltZV96b25lGAwgASgJEjIKB21lbWJlcnMYDSADKAsyIS5rdXNpbnRhLmlvdC5zcGFjZS52MS5TcGFjZU1lbWJlchIYChBtZW1iZXJzX3dpdGhoZWxkGA4gASgIIrUBCgtTcGFjZU1lbWJlchIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjsKCHJlbGF0aW9uGAIgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbhIMCgRuYW1lGAMgASgJEikKBXNpbmNlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity]);
|
|
14
16
|
|
|
15
17
|
/**
|
|
16
18
|
* Describes the message kusinta.iot.space.v1.Space.
|
|
@@ -19,3 +21,10 @@ export const file_kusinta_iot_space_v1_space = /*@__PURE__*/
|
|
|
19
21
|
export const SpaceSchema = /*@__PURE__*/
|
|
20
22
|
messageDesc(file_kusinta_iot_space_v1_space, 0);
|
|
21
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Describes the message kusinta.iot.space.v1.SpaceMember.
|
|
26
|
+
* Use `create(SpaceMemberSchema)` to create a new message.
|
|
27
|
+
*/
|
|
28
|
+
export const SpaceMemberSchema = /*@__PURE__*/
|
|
29
|
+
messageDesc(file_kusinta_iot_space_v1_space, 1);
|
|
30
|
+
|
|
@@ -43,6 +43,11 @@ export declare const HomematicDeviceIdentitySchema: GenMessage<HomematicDeviceId
|
|
|
43
43
|
* HomeMatic thermostat parameters with no Matter equivalent, carried on the same endpoint
|
|
44
44
|
* as that thermostat's Matter properties rather than instead of them.
|
|
45
45
|
*
|
|
46
|
+
* "No Matter equivalent" is the entry test, and it is the one to apply before adding a
|
|
47
|
+
* field here. Valve position failed it: LEVEL is Thermostat/PIHeatingDemand, and it lived
|
|
48
|
+
* here for a while under the claim that Matter had nothing for it. It is now
|
|
49
|
+
* device.v1.ThermostatProperties.pi_heating_demand, and field 6 is burned.
|
|
50
|
+
*
|
|
46
51
|
* Battery state is deliberately NOT here. LOW_BAT and OPERATING_VOLTAGE are Matter's
|
|
47
52
|
* PowerSource cluster, which every battery device from every technology needs, so they
|
|
48
53
|
* belong on a Power Source endpoint. See device/v1/properties.proto.
|
|
@@ -52,6 +57,9 @@ export declare const HomematicDeviceIdentitySchema: GenMessage<HomematicDeviceId
|
|
|
52
57
|
* false means not boosting, control_mode 0 is an HmIP ControlMode value. Absent means never
|
|
53
58
|
* reported; present means a reading, including zero.
|
|
54
59
|
*
|
|
60
|
+
* Enum parameters cross the wire as the CCU's own index, not as a type this schema defines,
|
|
61
|
+
* so each one lists its values in its comment. The order is the CCU's; do not renumber it.
|
|
62
|
+
*
|
|
55
63
|
* Add new fields at the next available number — never reuse a removed one.
|
|
56
64
|
*
|
|
57
65
|
* @generated from message kusinta.iot.vendor.homematic.v1.HmThermostatProps
|
|
@@ -63,13 +71,18 @@ export declare type HmThermostatProps = Message<"kusinta.iot.vendor.homematic.v1
|
|
|
63
71
|
boostMode?: boolean | undefined;
|
|
64
72
|
|
|
65
73
|
/**
|
|
66
|
-
*
|
|
74
|
+
* Seconds remaining, 0-2048 — the CCU counts boost in whole seconds, not minutes.
|
|
75
|
+
* Default boost is 5 min (300), maximum 30 min (1800).
|
|
67
76
|
*
|
|
68
|
-
* @generated from field: optional
|
|
77
|
+
* @generated from field: optional uint32 boost_time_remaining = 2;
|
|
69
78
|
*/
|
|
70
|
-
|
|
79
|
+
boostTimeRemaining?: number | undefined;
|
|
71
80
|
|
|
72
81
|
/**
|
|
82
|
+
* Write-only on the CCU: it accepts a ControlMode and never reports one back. Carried
|
|
83
|
+
* here for a future write path, not as a reading — a connector that emits it as a
|
|
84
|
+
* PropertyUpdate is sending a value the device never gave. 0-3.
|
|
85
|
+
*
|
|
73
86
|
* @generated from field: optional uint32 control_mode = 3;
|
|
74
87
|
*/
|
|
75
88
|
controlMode?: number | undefined;
|
|
@@ -80,28 +93,58 @@ export declare type HmThermostatProps = Message<"kusinta.iot.vendor.homematic.v1
|
|
|
80
93
|
frostProtection?: boolean | undefined;
|
|
81
94
|
|
|
82
95
|
/**
|
|
83
|
-
*
|
|
84
|
-
*/
|
|
85
|
-
currentProfilePeriod?: number | undefined;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Valve position, 0.0-1.0 — how far the radiator valve is actually open. The reading
|
|
89
|
-
* this extension exists for: it has no Matter equivalent, and it is what an automatic
|
|
90
|
-
* or learned control strategy needs.
|
|
96
|
+
* Party mode active. A boolean, whatever the old field name suggested.
|
|
91
97
|
*
|
|
92
|
-
* @generated from field: optional
|
|
98
|
+
* @generated from field: optional bool party_mode = 5;
|
|
93
99
|
*/
|
|
94
|
-
|
|
100
|
+
partyMode?: boolean | undefined;
|
|
95
101
|
|
|
96
102
|
/**
|
|
103
|
+
* CLOSED = 0, OPEN = 1
|
|
104
|
+
*
|
|
97
105
|
* @generated from field: optional uint32 window_state = 7;
|
|
98
106
|
*/
|
|
99
107
|
windowState?: number | undefined;
|
|
100
108
|
|
|
101
109
|
/**
|
|
110
|
+
* Valve fault and adaption state, nine CCU-defined values. Radiator valves only — a wall
|
|
111
|
+
* thermostat drives no valve and never reports it.
|
|
112
|
+
*
|
|
102
113
|
* @generated from field: optional uint32 valve_state = 8;
|
|
103
114
|
*/
|
|
104
115
|
valveState?: number | undefined;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Which schedule the thermostat is following: AUTO = 0, MANU = 1, AWAY = 2, plus a
|
|
119
|
+
* fourth CCU value. NOT webrtc.v1.SetpointAdjustMode, which names which setpoint a
|
|
120
|
+
* command targets — a different enum over a different set of concepts.
|
|
121
|
+
*
|
|
122
|
+
* @generated from field: optional uint32 set_point_mode = 9;
|
|
123
|
+
*/
|
|
124
|
+
setPointMode?: number | undefined;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The active weekly profile: 1-3 on a radiator valve, 1-6 on a wall thermostat. The
|
|
128
|
+
* upper bound is the device's, not the protocol's.
|
|
129
|
+
*
|
|
130
|
+
* @generated from field: optional uint32 active_profile = 10;
|
|
131
|
+
*/
|
|
132
|
+
activeProfile?: number | undefined;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Whether the measured temperature is usable: NORMAL = 0, UNKNOWN = 1, OVERFLOW = 2,
|
|
136
|
+
* UNDERFLOW = 3. A reading beside ACTUAL_TEMPERATURE, not a substitute for it.
|
|
137
|
+
*
|
|
138
|
+
* @generated from field: optional uint32 actual_temperature_status = 11;
|
|
139
|
+
*/
|
|
140
|
+
actualTemperatureStatus?: number | undefined;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Valve adaption run: writing true starts the valve's stroke calibration.
|
|
144
|
+
*
|
|
145
|
+
* @generated from field: optional bool valve_adaption = 12;
|
|
146
|
+
*/
|
|
147
|
+
valveAdaption?: boolean | undefined;
|
|
105
148
|
};
|
|
106
149
|
|
|
107
150
|
/**
|
|
@@ -110,3 +153,109 @@ export declare type HmThermostatProps = Message<"kusinta.iot.vendor.homematic.v1
|
|
|
110
153
|
*/
|
|
111
154
|
export declare const HmThermostatPropsSchema: GenMessage<HmThermostatProps>;
|
|
112
155
|
|
|
156
|
+
/**
|
|
157
|
+
* The maintenance channel every HomeMatic device carries — device health and radio state,
|
|
158
|
+
* not what the device measures or controls.
|
|
159
|
+
*
|
|
160
|
+
* It is device-agnostic: a radiator valve, a wall thermostat and a switch actuator all
|
|
161
|
+
* report the same core set on the same channel, which is why this is one message rather
|
|
162
|
+
* than a per-device-type one. Which of these a given device actually has is model-
|
|
163
|
+
* dependent, and stated per device in device.v1.Endpoint.vendor_attribute_names — SABOTAGE
|
|
164
|
+
* especially, where "no tamper detected" and "cannot detect tamper" must not render alike.
|
|
165
|
+
*
|
|
166
|
+
* Not a Matter endpoint of its own: the maintenance channel is channel 0 upstream, and
|
|
167
|
+
* Matter reserves endpoint 0 for the root node. A connector puts these readings on the
|
|
168
|
+
* endpoint whose Matter properties they belong beside — the Power Source endpoint, whose
|
|
169
|
+
* battery attributes are derived from this same channel's LOW_BAT and OPERATING_VOLTAGE.
|
|
170
|
+
*
|
|
171
|
+
* LOW_BAT, OPERATING_VOLTAGE and OPERATING_VOLTAGE_LEVEL are deliberately absent: they are
|
|
172
|
+
* Matter's PowerSource cluster, and PowerSourceProperties carries them. Only the derived
|
|
173
|
+
* Matter value has a home there, so the raw OPERATING_VOLTAGE_STATUS enum is kept here.
|
|
174
|
+
*
|
|
175
|
+
* Every field is `optional`, for the reason HmThermostatProps gives: ERROR_CODE 0 is "no
|
|
176
|
+
* error", a reading, and SABOTAGE false is a safety claim.
|
|
177
|
+
*
|
|
178
|
+
* @generated from message kusinta.iot.vendor.homematic.v1.HmMaintenanceProps
|
|
179
|
+
*/
|
|
180
|
+
export declare type HmMaintenanceProps = Message<"kusinta.iot.vendor.homematic.v1.HmMaintenanceProps"> & {
|
|
181
|
+
/**
|
|
182
|
+
* Device-defined fault code, 0-255, where 0 is no error. Present only on models that
|
|
183
|
+
* have one.
|
|
184
|
+
*
|
|
185
|
+
* @generated from field: optional uint32 error_code = 1;
|
|
186
|
+
*/
|
|
187
|
+
errorCode?: number | undefined;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Tamper detection: true means the device reports having been removed or opened. Present
|
|
191
|
+
* only on models with the hardware for it.
|
|
192
|
+
*
|
|
193
|
+
* @generated from field: optional bool sabotage = 2;
|
|
194
|
+
*/
|
|
195
|
+
sabotage?: boolean | undefined;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Received signal strength in dBm, -128 to 127, as this device measures it.
|
|
199
|
+
*
|
|
200
|
+
* sint32, not uint32: these are negative in normal operation, and an unsigned field would
|
|
201
|
+
* carry -72 dBm as 4294967224.
|
|
202
|
+
*
|
|
203
|
+
* @generated from field: optional sint32 rssi_device = 3;
|
|
204
|
+
*/
|
|
205
|
+
rssiDevice?: number | undefined;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* The same measurement made at the other end of the link, as reported back.
|
|
209
|
+
*
|
|
210
|
+
* @generated from field: optional sint32 rssi_peer = 4;
|
|
211
|
+
*/
|
|
212
|
+
rssiPeer?: number | undefined;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Supply state as the CCU reports it: NORMAL = 0, UNKNOWN = 1, OVERFLOW = 2,
|
|
216
|
+
* EXTERNAL = 3. The raw enum; PowerSourceProperties.status carries the Matter
|
|
217
|
+
* PowerSourceStatusEnum value derived from it, and the two are not interchangeable.
|
|
218
|
+
*
|
|
219
|
+
* @generated from field: optional uint32 operating_voltage_status = 5;
|
|
220
|
+
*/
|
|
221
|
+
operatingVoltageStatus?: number | undefined;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* True when the gateway has lost contact with the device. Reachability as the upstream
|
|
225
|
+
* system sees it, which is not the same claim as device.v1.Device.last_seen — that is
|
|
226
|
+
* when the gateway last had evidence of the device, observed one hop further out.
|
|
227
|
+
*
|
|
228
|
+
* @generated from field: optional bool unreach = 6;
|
|
229
|
+
*/
|
|
230
|
+
unreach?: boolean | undefined;
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* True while a configuration change is queued for a device that has not yet woken to
|
|
234
|
+
* take it. A battery device can sit here for its whole report interval.
|
|
235
|
+
*
|
|
236
|
+
* @generated from field: optional bool config_pending = 7;
|
|
237
|
+
*/
|
|
238
|
+
configPending?: boolean | undefined;
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* True while the device has spent its share of the radio band's transmit budget and
|
|
242
|
+
* must wait before sending again. The 868 MHz band permits roughly one percent duty
|
|
243
|
+
* cycle, and it regenerates at about that rate per half minute.
|
|
244
|
+
*
|
|
245
|
+
* Worth carrying rather than leaving to the connector, because a spent budget is
|
|
246
|
+
* indistinguishable from a working device that simply has nothing to say: it stays
|
|
247
|
+
* reachable, reports no error, and silently drops what it was asked to do. Anything
|
|
248
|
+
* that writes on a schedule needs to be able to see this before it concludes a device
|
|
249
|
+
* is ignoring it.
|
|
250
|
+
*
|
|
251
|
+
* @generated from field: optional bool duty_cycle = 8;
|
|
252
|
+
*/
|
|
253
|
+
dutyCycle?: boolean | undefined;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Describes the message kusinta.iot.vendor.homematic.v1.HmMaintenanceProps.
|
|
258
|
+
* Use `create(HmMaintenancePropsSchema)` to create a new message.
|
|
259
|
+
*/
|
|
260
|
+
export declare const HmMaintenancePropsSchema: GenMessage<HmMaintenanceProps>;
|
|
261
|
+
|
|
@@ -9,7 +9,7 @@ import { file_kusinta_iot_vendor_v1_vendor_options } from "../../v1/vendor_optio
|
|
|
9
9
|
* Describes the file kusinta/iot/vendor/homematic/v1/homematic.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_kusinta_iot_vendor_homematic_v1_homematic = /*@__PURE__*/
|
|
12
|
-
fileDesc("
|
|
12
|
+
fileDesc("Ci9rdXNpbnRhL2lvdC92ZW5kb3IvaG9tZW1hdGljL3YxL2hvbWVtYXRpYy5wcm90bxIfa3VzaW50YS5pb3QudmVuZG9yLmhvbWVtYXRpYy52MSI4ChdIb21lbWF0aWNEZXZpY2VJZGVudGl0eRIPCgdhZGRyZXNzGAEgASgJEgwKBHR5cGUYAiABKAki/wYKEUhtVGhlcm1vc3RhdFByb3BzEisKCmJvb3N0X21vZGUYASABKAhCEqK1GApCT09TVF9NT0RF0LUYBkgAiAEBEjUKFGJvb3N0X3RpbWVfcmVtYWluaW5nGAIgASgNQhKitRgKQk9PU1RfVElNRdC1GAVIAYgBARIvCgxjb250cm9sX21vZGUYAyABKA1CFKK1GAxDT05UUk9MX01PREXQtRgCSAKIAQESNwoQZnJvc3RfcHJvdGVjdGlvbhgEIAEoCEIYorUYEEZST1NUX1BST1RFQ1RJT07QtRgFSAOIAQESKwoKcGFydHlfbW9kZRgFIAEoCEISorUYClBBUlRZX01PREXQtRgFSASIAQESLwoMd2luZG93X3N0YXRlGAcgASgNQhSitRgMV0lORE9XX1NUQVRF0LUYB0gFiAEBEi0KC3ZhbHZlX3N0YXRlGAggASgNQhOitRgLVkFMVkVfU1RBVEXQtRgFSAaIAQESMwoOc2V0X3BvaW50X21vZGUYCSABKA1CFqK1GA5TRVRfUE9JTlRfTU9ERdC1GAdIB4gBARIzCg5hY3RpdmVfcHJvZmlsZRgKIAEoDUIWorUYDkFDVElWRV9QUk9GSUxF0LUYB0gIiAEBEkkKGWFjdHVhbF90ZW1wZXJhdHVyZV9zdGF0dXMYCyABKA1CIaK1GBlBQ1RVQUxfVEVNUEVSQVRVUkVfU1RBVFVT0LUYBUgJiAEBEjMKDnZhbHZlX2FkYXB0aW9uGAwgASgIQhaitRgOVkFMVkVfQURBUFRJT07QtRgHSAqIAQE6GKq1GBRob21lbWF0aWMudGhlcm1vc3RhdEINCgtfYm9vc3RfbW9kZUIXChVfYm9vc3RfdGltZV9yZW1haW5pbmdCDwoNX2NvbnRyb2xfbW9kZUITChFfZnJvc3RfcHJvdGVjdGlvbkINCgtfcGFydHlfbW9kZUIPCg1fd2luZG93X3N0YXRlQg4KDF92YWx2ZV9zdGF0ZUIRCg9fc2V0X3BvaW50X21vZGVCEQoPX2FjdGl2ZV9wcm9maWxlQhwKGl9hY3R1YWxfdGVtcGVyYXR1cmVfc3RhdHVzQhEKD192YWx2ZV9hZGFwdGlvbkoECAYQB1IFbGV2ZWxSFmN1cnJlbnRfcHJvZmlsZV9wZXJpb2RSEWJvb3N0X3RpbWVfcGVyaW9kIrYEChJIbU1haW50ZW5hbmNlUHJvcHMSKwoKZXJyb3JfY29kZRgBIAEoDUISorUYCkVSUk9SX0NPREXQtRgFSACIAQESJwoIc2Fib3RhZ2UYAiABKAhCEKK1GAhTQUJPVEFHRdC1GAVIAYgBARItCgtyc3NpX2RldmljZRgDIAEoEUITorUYC1JTU0lfREVWSUNF0LUYBUgCiAEBEikKCXJzc2lfcGVlchgEIAEoEUIRorUYCVJTU0lfUEVFUtC1GAVIA4gBARJHChhvcGVyYXRpbmdfdm9sdGFnZV9zdGF0dXMYBSABKA1CIKK1GBhPUEVSQVRJTkdfVk9MVEFHRV9TVEFUVVPQtRgFSASIAQESJQoHdW5yZWFjaBgGIAEoCEIPorUYB1VOUkVBQ0jQtRgFSAWIAQESMwoOY29uZmlnX3BlbmRpbmcYByABKAhCFqK1GA5DT05GSUdfUEVORElOR9C1GAVIBogBARIrCgpkdXR5X2N5Y2xlGAggASgIQhKitRgKRFVUWV9DWUNMRdC1GAVIB4gBAToZqrUYFWhvbWVtYXRpYy5tYWludGVuYW5jZUINCgtfZXJyb3JfY29kZUILCglfc2Fib3RhZ2VCDgoMX3Jzc2lfZGV2aWNlQgwKCl9yc3NpX3BlZXJCGwoZX29wZXJhdGluZ192b2x0YWdlX3N0YXR1c0IKCghfdW5yZWFjaEIRCg9fY29uZmlnX3BlbmRpbmdCDQoLX2R1dHlfY3ljbGVCAkgBYgZwcm90bzM", [file_kusinta_iot_vendor_v1_vendor_options]);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Describes the message kusinta.iot.vendor.homematic.v1.HomematicDeviceIdentity.
|
|
@@ -25,3 +25,10 @@ export const HomematicDeviceIdentitySchema = /*@__PURE__*/
|
|
|
25
25
|
export const HmThermostatPropsSchema = /*@__PURE__*/
|
|
26
26
|
messageDesc(file_kusinta_iot_vendor_homematic_v1_homematic, 1);
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Describes the message kusinta.iot.vendor.homematic.v1.HmMaintenanceProps.
|
|
30
|
+
* Use `create(HmMaintenancePropsSchema)` to create a new message.
|
|
31
|
+
*/
|
|
32
|
+
export const HmMaintenancePropsSchema = /*@__PURE__*/
|
|
33
|
+
messageDesc(file_kusinta_iot_vendor_homematic_v1_homematic, 2);
|
|
34
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
|
|
2
|
+
// @generated from file kusinta/iot/vendor/lorawan/v1/lorawan.proto (package kusinta.iot.vendor.lorawan.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Describes the file kusinta/iot/vendor/lorawan/v1/lorawan.proto.
|
|
10
|
+
*/
|
|
11
|
+
export declare const file_kusinta_iot_vendor_lorawan_v1_lorawan: GenFile;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* What a LoRaWAN network server needs to admit a device, carried in the `lorawan`
|
|
15
|
+
* arm of webrtc.v1.ProvisionDevice.credentials. A provisioning arm per technology,
|
|
16
|
+
* not a flat set of fields shared across them, so the next technology to be
|
|
17
|
+
* provisioned does not turn a message into a bag of optionals named after this one.
|
|
18
|
+
*
|
|
19
|
+
* These are onboarding credentials, not device readings: this message is never an
|
|
20
|
+
* Endpoint vendor extension and carries no vendor_extension option, unlike the
|
|
21
|
+
* vendor.homematic.v1 property messages.
|
|
22
|
+
*
|
|
23
|
+
* @generated from message kusinta.iot.vendor.lorawan.v1.LorawanProvisioning
|
|
24
|
+
*/
|
|
25
|
+
export declare type LorawanProvisioning = Message<"kusinta.iot.vendor.lorawan.v1.LorawanProvisioning"> & {
|
|
26
|
+
/**
|
|
27
|
+
* The device's globally unique identifier, sixteen hex characters as printed on
|
|
28
|
+
* the label. This is also what the device is claimed by — the connector derives
|
|
29
|
+
* the device id from it and reports it as DeviceDescriptor.serial_number — so a
|
|
30
|
+
* device can be claimed by its label before it has ever joined.
|
|
31
|
+
*
|
|
32
|
+
* @generated from field: string dev_eui = 1;
|
|
33
|
+
*/
|
|
34
|
+
devEui: string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The application root key: the secret every session key is derived from, thirty-
|
|
38
|
+
* two hex characters. Not an identifier, and handled unlike every other field
|
|
39
|
+
* here — carried only over the authenticated app-to-gateway leg, held in the
|
|
40
|
+
* secret store where a key is generated or kept, never logged, never persisted
|
|
41
|
+
* beyond the write that registers the device, and never echoed back in any
|
|
42
|
+
* listing.
|
|
43
|
+
*
|
|
44
|
+
* It is on the wire at all because the first supported devices leave no choice:
|
|
45
|
+
* their key is fixed in the factory and printed on the label, so a network server
|
|
46
|
+
* cannot generate one and have the device adopt it. A device that can be
|
|
47
|
+
* reprogrammed with a server-generated key would leave this empty and have the
|
|
48
|
+
* registry mint it instead.
|
|
49
|
+
*
|
|
50
|
+
* @generated from field: string app_key = 2;
|
|
51
|
+
*/
|
|
52
|
+
appKey: string;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The join identifier (JoinEUI/AppEUI), sixteen hex characters. Optional: many
|
|
56
|
+
* deployments accept the default a device ships with, and only a network server
|
|
57
|
+
* that pins it needs the value stated here.
|
|
58
|
+
*
|
|
59
|
+
* @generated from field: optional string join_eui = 3;
|
|
60
|
+
*/
|
|
61
|
+
joinEui?: string | undefined;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Describes the message kusinta.iot.vendor.lorawan.v1.LorawanProvisioning.
|
|
66
|
+
* Use `create(LorawanProvisioningSchema)` to create a new message.
|
|
67
|
+
*/
|
|
68
|
+
export declare const LorawanProvisioningSchema: GenMessage<LorawanProvisioning>;
|
|
69
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
|
|
2
|
+
// @generated from file kusinta/iot/vendor/lorawan/v1/lorawan.proto (package kusinta.iot.vendor.lorawan.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Describes the file kusinta/iot/vendor/lorawan/v1/lorawan.proto.
|
|
9
|
+
*/
|
|
10
|
+
export const file_kusinta_iot_vendor_lorawan_v1_lorawan = /*@__PURE__*/
|
|
11
|
+
fileDesc("CitrdXNpbnRhL2lvdC92ZW5kb3IvbG9yYXdhbi92MS9sb3Jhd2FuLnByb3RvEh1rdXNpbnRhLmlvdC52ZW5kb3IubG9yYXdhbi52MSJbChNMb3Jhd2FuUHJvdmlzaW9uaW5nEg8KB2Rldl9ldWkYASABKAkSDwoHYXBwX2tleRgCIAEoCRIVCghqb2luX2V1aRgDIAEoCUgAiAEBQgsKCV9qb2luX2V1aUICSAFiBnByb3RvMw");
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Describes the message kusinta.iot.vendor.lorawan.v1.LorawanProvisioning.
|
|
15
|
+
* Use `create(LorawanProvisioningSchema)` to create a new message.
|
|
16
|
+
*/
|
|
17
|
+
export const LorawanProvisioningSchema = /*@__PURE__*/
|
|
18
|
+
messageDesc(file_kusinta_iot_vendor_lorawan_v1_lorawan, 0);
|
|
19
|
+
|
|
@@ -26,14 +26,35 @@ export declare const file_kusinta_iot_vendor_v1_vendor_options: GenFile;
|
|
|
26
26
|
*/
|
|
27
27
|
export declare const vendor_attribute: GenExtension<FieldOptions, string>;
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* What this vendor parameter supports, as the same bitmask device/v1/matter_options.proto
|
|
31
|
+
* defines: READ = 1, WRITE = 2, REPORT = 4.
|
|
32
|
+
*
|
|
33
|
+
* One mask across both branches on purpose. Bit 4 is Matter's reportable quality and, for
|
|
34
|
+
* HomeMatic, the parameter's EVENT bit — the same fact under two names, so a consumer
|
|
35
|
+
* deciding whether to draw a control or a reading asks one question either way.
|
|
36
|
+
*
|
|
37
|
+
* Where the value comes from is the difference. The Matter side reads its mask off the
|
|
38
|
+
* specification; a vendor parameter has no spec to defer to, so this is the upstream
|
|
39
|
+
* system's own answer about its own parameter — for HomeMatic, the OPERATIONS value the
|
|
40
|
+
* CCU reports in getParamsetDescription().
|
|
41
|
+
*
|
|
42
|
+
* Not permission, and not the implemented set: see matter_attribute_capabilities for both
|
|
43
|
+
* distinctions. The vendor mirror of the implemented set is
|
|
44
|
+
* device.v1.Endpoint.vendor_attribute_names.
|
|
45
|
+
*
|
|
46
|
+
* @generated from extension: uint32 vendor_attribute_capabilities = 50010;
|
|
47
|
+
*/
|
|
48
|
+
export declare const vendor_attribute_capabilities: GenExtension<FieldOptions, number>;
|
|
49
|
+
|
|
29
50
|
/**
|
|
30
51
|
* The stable key identifying a vendor extension message, e.g. "homematic.thermostat".
|
|
31
52
|
* Matches device.v1.PropertyUpdate.vendor_extension byte for byte, and is what selects
|
|
32
|
-
* the Endpoint.vendor_properties case.
|
|
53
|
+
* the Endpoint.vendor_properties case — or Endpoint.radio_link, for "kusinta.radio".
|
|
33
54
|
*
|
|
34
|
-
* One key per message carried in Endpoint.vendor_properties, so the vendor
|
|
35
|
-
* resolution rule is the same shape as the Matter branch: pick a message
|
|
36
|
-
* option, then one field by a field option. Nothing nests.
|
|
55
|
+
* One key per message carried in Endpoint.vendor_properties or radio_link, so the vendor
|
|
56
|
+
* branch of the resolution rule is the same shape as the Matter branch: pick a message
|
|
57
|
+
* by a message option, then one field by a field option. Nothing nests.
|
|
37
58
|
*
|
|
38
59
|
* Form: "<vendor>.<what the message models>", lower_snake_case on both sides —
|
|
39
60
|
* "homematic.thermostat", and a humidity one would be "homematic.humidity_sensor". The
|
|
@@ -9,7 +9,7 @@ import { file_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt";
|
|
|
9
9
|
* Describes the file kusinta/iot/vendor/v1/vendor_options.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_kusinta_iot_vendor_v1_vendor_options = /*@__PURE__*/
|
|
12
|
-
fileDesc("
|
|
12
|
+
fileDesc("CiprdXNpbnRhL2lvdC92ZW5kb3IvdjEvdmVuZG9yX29wdGlvbnMucHJvdG8SFWt1c2ludGEuaW90LnZlbmRvci52MTpKChB2ZW5kb3JfYXR0cmlidXRlEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjUhgMgASgJUg92ZW5kb3JBdHRyaWJ1dGU6YwoddmVuZG9yX2F0dHJpYnV0ZV9jYXBhYmlsaXRpZXMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGNqGAyABKA1SG3ZlbmRvckF0dHJpYnV0ZUNhcGFiaWxpdGllczpMChB2ZW5kb3JfZXh0ZW5zaW9uEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNWGAyABKAlSD3ZlbmRvckV4dGVuc2lvbmIGcHJvdG8z", [file_google_protobuf_descriptor]);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* The vendor parameter this field carries, in the vendor's own spelling — e.g.
|
|
@@ -28,14 +28,36 @@ export const file_kusinta_iot_vendor_v1_vendor_options = /*@__PURE__*/
|
|
|
28
28
|
export const vendor_attribute = /*@__PURE__*/
|
|
29
29
|
extDesc(file_kusinta_iot_vendor_v1_vendor_options, 0);
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* What this vendor parameter supports, as the same bitmask device/v1/matter_options.proto
|
|
33
|
+
* defines: READ = 1, WRITE = 2, REPORT = 4.
|
|
34
|
+
*
|
|
35
|
+
* One mask across both branches on purpose. Bit 4 is Matter's reportable quality and, for
|
|
36
|
+
* HomeMatic, the parameter's EVENT bit — the same fact under two names, so a consumer
|
|
37
|
+
* deciding whether to draw a control or a reading asks one question either way.
|
|
38
|
+
*
|
|
39
|
+
* Where the value comes from is the difference. The Matter side reads its mask off the
|
|
40
|
+
* specification; a vendor parameter has no spec to defer to, so this is the upstream
|
|
41
|
+
* system's own answer about its own parameter — for HomeMatic, the OPERATIONS value the
|
|
42
|
+
* CCU reports in getParamsetDescription().
|
|
43
|
+
*
|
|
44
|
+
* Not permission, and not the implemented set: see matter_attribute_capabilities for both
|
|
45
|
+
* distinctions. The vendor mirror of the implemented set is
|
|
46
|
+
* device.v1.Endpoint.vendor_attribute_names.
|
|
47
|
+
*
|
|
48
|
+
* @generated from extension: uint32 vendor_attribute_capabilities = 50010;
|
|
49
|
+
*/
|
|
50
|
+
export const vendor_attribute_capabilities = /*@__PURE__*/
|
|
51
|
+
extDesc(file_kusinta_iot_vendor_v1_vendor_options, 1);
|
|
52
|
+
|
|
31
53
|
/**
|
|
32
54
|
* The stable key identifying a vendor extension message, e.g. "homematic.thermostat".
|
|
33
55
|
* Matches device.v1.PropertyUpdate.vendor_extension byte for byte, and is what selects
|
|
34
|
-
* the Endpoint.vendor_properties case.
|
|
56
|
+
* the Endpoint.vendor_properties case — or Endpoint.radio_link, for "kusinta.radio".
|
|
35
57
|
*
|
|
36
|
-
* One key per message carried in Endpoint.vendor_properties, so the vendor
|
|
37
|
-
* resolution rule is the same shape as the Matter branch: pick a message
|
|
38
|
-
* option, then one field by a field option. Nothing nests.
|
|
58
|
+
* One key per message carried in Endpoint.vendor_properties or radio_link, so the vendor
|
|
59
|
+
* branch of the resolution rule is the same shape as the Matter branch: pick a message
|
|
60
|
+
* by a message option, then one field by a field option. Nothing nests.
|
|
39
61
|
*
|
|
40
62
|
* Form: "<vendor>.<what the message models>", lower_snake_case on both sides —
|
|
41
63
|
* "homematic.thermostat", and a humidity one would be "homematic.humidity_sensor". The
|
|
@@ -49,5 +71,5 @@ export const vendor_attribute = /*@__PURE__*/
|
|
|
49
71
|
* @generated from extension: string vendor_extension = 50005;
|
|
50
72
|
*/
|
|
51
73
|
export const vendor_extension = /*@__PURE__*/
|
|
52
|
-
extDesc(file_kusinta_iot_vendor_v1_vendor_options,
|
|
74
|
+
extDesc(file_kusinta_iot_vendor_v1_vendor_options, 2);
|
|
53
75
|
|