@matter/node 0.16.0-alpha.0-20251027-17770fb28 → 0.16.0-alpha.0-20251030-e9ca79f93
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/cjs/behavior/Behavior.d.ts +1 -0
- package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
- package/dist/cjs/behavior/Behavior.js +5 -0
- package/dist/cjs/behavior/Behavior.js.map +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.d.ts +4 -5
- package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.js +6 -2
- package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/cjs/behavior/state/managed/ManagedReference.d.ts +3 -2
- package/dist/cjs/behavior/state/managed/ManagedReference.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/ManagedReference.js +65 -20
- package/dist/cjs/behavior/state/managed/ManagedReference.js.map +1 -1
- package/dist/cjs/behavior/state/managed/values/ListManager.js +2 -1
- package/dist/cjs/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/cjs/behavior/state/managed/values/StructManager.js +9 -1
- package/dist/cjs/behavior/state/managed/values/StructManager.js.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.js +3 -3
- package/dist/cjs/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +3 -9
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/cjs/behaviors/service-area/ServiceAreaServer.js +2 -2
- package/dist/cjs/behaviors/service-area/ServiceAreaServer.js.map +1 -1
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.d.ts +58 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.d.ts.map +1 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js +306 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js.map +6 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.d.ts +33 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.d.ts.map +1 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.js +86 -0
- package/dist/cjs/behaviors/thermostat/AtomicWriteState.js.map +6 -0
- package/dist/cjs/behaviors/thermostat/ThermostatBehavior.d.ts +12 -0
- package/dist/cjs/behaviors/thermostat/ThermostatBehavior.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatInterface.d.ts +1 -0
- package/dist/cjs/behaviors/thermostat/ThermostatInterface.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts +894 -3
- package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js +1216 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js.map +2 -2
- package/dist/cjs/devices/water-heater.d.ts +24 -0
- package/dist/cjs/devices/water-heater.d.ts.map +1 -1
- package/dist/cjs/endpoint/Endpoint.d.ts +36 -2
- package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/cjs/endpoint/Endpoint.js +17 -14
- package/dist/cjs/endpoint/Endpoint.js.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointContainer.d.ts +1 -0
- package/dist/cjs/endpoint/properties/EndpointContainer.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointContainer.js +3 -0
- package/dist/cjs/endpoint/properties/EndpointContainer.js.map +1 -1
- package/dist/esm/behavior/Behavior.d.ts +1 -0
- package/dist/esm/behavior/Behavior.d.ts.map +1 -1
- package/dist/esm/behavior/Behavior.js +5 -0
- package/dist/esm/behavior/Behavior.js.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js +2 -2
- package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.d.ts +4 -5
- package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.js +7 -3
- package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/esm/behavior/state/managed/ManagedReference.d.ts +3 -2
- package/dist/esm/behavior/state/managed/ManagedReference.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/ManagedReference.js +66 -21
- package/dist/esm/behavior/state/managed/ManagedReference.js.map +1 -1
- package/dist/esm/behavior/state/managed/values/ListManager.js +2 -1
- package/dist/esm/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/esm/behavior/state/managed/values/StructManager.js +9 -1
- package/dist/esm/behavior/state/managed/values/StructManager.js.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.js +3 -3
- package/dist/esm/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +3 -9
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/esm/behaviors/service-area/ServiceAreaServer.js +2 -2
- package/dist/esm/behaviors/service-area/ServiceAreaServer.js.map +1 -1
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.d.ts +58 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.d.ts.map +1 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js +293 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js.map +6 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.d.ts +33 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.d.ts.map +1 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.js +66 -0
- package/dist/esm/behaviors/thermostat/AtomicWriteState.js.map +6 -0
- package/dist/esm/behaviors/thermostat/ThermostatBehavior.d.ts +12 -0
- package/dist/esm/behaviors/thermostat/ThermostatBehavior.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatInterface.d.ts +1 -0
- package/dist/esm/behaviors/thermostat/ThermostatInterface.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts +894 -3
- package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js +1225 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js.map +2 -2
- package/dist/esm/devices/water-heater.d.ts +24 -0
- package/dist/esm/devices/water-heater.d.ts.map +1 -1
- package/dist/esm/endpoint/Endpoint.d.ts +36 -2
- package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/esm/endpoint/Endpoint.js +17 -14
- package/dist/esm/endpoint/Endpoint.js.map +1 -1
- package/dist/esm/endpoint/properties/EndpointContainer.d.ts +1 -0
- package/dist/esm/endpoint/properties/EndpointContainer.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/EndpointContainer.js +3 -0
- package/dist/esm/endpoint/properties/EndpointContainer.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/Behavior.ts +10 -0
- package/src/behavior/internal/BehaviorBacking.ts +2 -2
- package/src/behavior/state/managed/Datasource.ts +14 -7
- package/src/behavior/state/managed/ManagedReference.ts +67 -19
- package/src/behavior/state/managed/values/ListManager.ts +1 -0
- package/src/behavior/state/managed/values/StructManager.ts +13 -3
- package/src/behaviors/access-control/AccessControlServer.ts +3 -7
- package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +5 -9
- package/src/behaviors/service-area/ServiceAreaServer.ts +2 -2
- package/src/behaviors/thermostat/AtomicWriteHandler.ts +412 -0
- package/src/behaviors/thermostat/AtomicWriteState.ts +91 -0
- package/src/behaviors/thermostat/ThermostatInterface.ts +2 -0
- package/src/behaviors/thermostat/ThermostatServer.ts +1487 -3
- package/src/endpoint/Endpoint.ts +61 -5
- package/src/endpoint/properties/EndpointContainer.ts +4 -0
|
@@ -3,14 +3,905 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
import {
|
|
6
|
+
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
7
|
+
import { ValueSupervisor } from "#behavior/supervision/ValueSupervisor.js";
|
|
8
|
+
import { Thermostat } from "#clusters/thermostat";
|
|
9
|
+
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
10
|
+
import { Observable } from "#general";
|
|
11
|
+
import { Val } from "#protocol";
|
|
12
|
+
import { ClusterType, TypeFromPartialBitSchema } from "#types";
|
|
13
|
+
declare const ThermostatBehaviorLogicBase: import("../../index.js").ClusterBehavior.Type<import("#types").ClusterComposer.WithFeatures<ClusterType.Of<{
|
|
14
|
+
readonly id: 513;
|
|
15
|
+
readonly name: "Thermostat";
|
|
16
|
+
readonly revision: 9;
|
|
17
|
+
readonly features: {
|
|
18
|
+
readonly heating: import("#types").BitFlag;
|
|
19
|
+
readonly cooling: import("#types").BitFlag;
|
|
20
|
+
readonly occupancy: import("#types").BitFlag;
|
|
21
|
+
readonly scheduleConfiguration: import("#types").BitFlag;
|
|
22
|
+
readonly setback: import("#types").BitFlag;
|
|
23
|
+
readonly autoMode: import("#types").BitFlag;
|
|
24
|
+
readonly localTemperatureNotExposed: import("#types").BitFlag;
|
|
25
|
+
readonly matterScheduleConfiguration: import("#types").BitFlag;
|
|
26
|
+
readonly presets: import("#types").BitFlag;
|
|
27
|
+
};
|
|
28
|
+
readonly attributes: {
|
|
29
|
+
readonly localTemperature: import("#types").Attribute<number | null, any>;
|
|
30
|
+
readonly outdoorTemperature: import("#types").OptionalAttribute<number | null, any>;
|
|
31
|
+
readonly hvacSystemTypeConfiguration: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
32
|
+
coolingStage: import("#types").BitField;
|
|
33
|
+
heatingStage: import("#types").BitField;
|
|
34
|
+
heatingIsHeatPump: import("#types").BitFlag;
|
|
35
|
+
heatingUsesFuel: import("#types").BitFlag;
|
|
36
|
+
}>, any>;
|
|
37
|
+
readonly remoteSensing: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
38
|
+
localTemperature: import("#types").BitFlag;
|
|
39
|
+
outdoorTemperature: import("#types").BitFlag;
|
|
40
|
+
occupancy: import("#types").BitFlag;
|
|
41
|
+
}>, any>;
|
|
42
|
+
readonly controlSequenceOfOperation: import("#types").WritableAttribute<Thermostat.ControlSequenceOfOperation, any>;
|
|
43
|
+
readonly systemMode: import("#types").WritableAttribute<Thermostat.SystemMode, any>;
|
|
44
|
+
readonly temperatureSetpointHold: import("#types").OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>;
|
|
45
|
+
readonly temperatureSetpointHoldDuration: import("#types").OptionalWritableAttribute<number | null, any>;
|
|
46
|
+
readonly thermostatProgrammingOperationMode: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
47
|
+
scheduleActive: import("#types").BitFlag;
|
|
48
|
+
autoRecovery: import("#types").BitFlag;
|
|
49
|
+
economy: import("#types").BitFlag;
|
|
50
|
+
}>, any>;
|
|
51
|
+
readonly thermostatRunningState: import("#types").OptionalAttribute<TypeFromPartialBitSchema<{
|
|
52
|
+
heat: import("#types").BitFlag;
|
|
53
|
+
cool: import("#types").BitFlag;
|
|
54
|
+
fan: import("#types").BitFlag;
|
|
55
|
+
heatStage2: import("#types").BitFlag;
|
|
56
|
+
coolStage2: import("#types").BitFlag;
|
|
57
|
+
fanStage2: import("#types").BitFlag;
|
|
58
|
+
fanStage3: import("#types").BitFlag;
|
|
59
|
+
}>, any>;
|
|
60
|
+
readonly setpointChangeSource: import("#types").OptionalAttribute<Thermostat.SetpointChangeSource, any>;
|
|
61
|
+
readonly setpointChangeAmount: import("#types").OptionalAttribute<number | null, any>;
|
|
62
|
+
readonly setpointChangeSourceTimestamp: import("#types").OptionalAttribute<number, any>;
|
|
63
|
+
readonly emergencyHeatDelta: import("#types").OptionalWritableAttribute<number, any>;
|
|
64
|
+
readonly acType: import("#types").OptionalWritableAttribute<Thermostat.AcType, any>;
|
|
65
|
+
readonly acCapacity: import("#types").OptionalWritableAttribute<number, any>;
|
|
66
|
+
readonly acRefrigerantType: import("#types").OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>;
|
|
67
|
+
readonly acCompressorType: import("#types").OptionalWritableAttribute<Thermostat.AcCompressorType, any>;
|
|
68
|
+
readonly acErrorCode: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
69
|
+
compressorFail: import("#types").BitFlag;
|
|
70
|
+
roomSensorFail: import("#types").BitFlag;
|
|
71
|
+
outdoorSensorFail: import("#types").BitFlag;
|
|
72
|
+
coilSensorFail: import("#types").BitFlag;
|
|
73
|
+
fanFail: import("#types").BitFlag;
|
|
74
|
+
}>, any>;
|
|
75
|
+
readonly acLouverPosition: import("#types").OptionalWritableAttribute<Thermostat.AcLouverPosition, any>;
|
|
76
|
+
readonly acCoilTemperature: import("#types").OptionalAttribute<number | null, any>;
|
|
77
|
+
readonly acCapacityFormat: import("#types").OptionalWritableAttribute<Thermostat.AcCapacityFormat, any>;
|
|
78
|
+
readonly setpointHoldExpiryTimestamp: import("#types").OptionalAttribute<number | null, any>;
|
|
79
|
+
};
|
|
80
|
+
readonly commands: {
|
|
81
|
+
readonly setpointRaiseLower: import("#types").Command<import("#types").TypeFromFields<{
|
|
82
|
+
mode: import("#types").FieldType<Thermostat.SetpointRaiseLowerMode>;
|
|
83
|
+
amount: import("#types").FieldType<number>;
|
|
84
|
+
}>, void, any>;
|
|
85
|
+
readonly atomicRequest: import("#types").Command<import("#types").TypeFromFields<{
|
|
86
|
+
requestType: import("#types").FieldType<Thermostat.RequestType>;
|
|
87
|
+
attributeRequests: import("#types").FieldType<import("#types").AttributeId[]>;
|
|
88
|
+
timeout: import("#types").OptionalFieldType<number>;
|
|
89
|
+
}>, import("#types").TypeFromFields<{
|
|
90
|
+
statusCode: import("#types").FieldType<import("#types").Status>;
|
|
91
|
+
attributeStatus: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
92
|
+
attributeId: import("#types").FieldType<import("#types").AttributeId>;
|
|
93
|
+
statusCode: import("#types").FieldType<import("#types").Status>;
|
|
94
|
+
}>[]>;
|
|
95
|
+
timeout: import("#types").OptionalFieldType<number>;
|
|
96
|
+
}>, any>;
|
|
97
|
+
};
|
|
98
|
+
readonly extensions: readonly [{
|
|
99
|
+
readonly flags: {
|
|
100
|
+
readonly occupancy: true;
|
|
101
|
+
};
|
|
102
|
+
readonly component: {
|
|
103
|
+
readonly attributes: {
|
|
104
|
+
readonly occupancy: import("#types").Attribute<TypeFromPartialBitSchema<{
|
|
105
|
+
occupied: import("#types").BitFlag;
|
|
106
|
+
}>, any>;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
}, {
|
|
110
|
+
readonly flags: {
|
|
111
|
+
readonly heating: true;
|
|
112
|
+
};
|
|
113
|
+
readonly component: {
|
|
114
|
+
readonly attributes: {
|
|
115
|
+
readonly absMinHeatSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
116
|
+
readonly absMaxHeatSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
117
|
+
readonly piHeatingDemand: import("#types").OptionalAttribute<number, any>;
|
|
118
|
+
readonly occupiedHeatingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
119
|
+
readonly minHeatSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
120
|
+
readonly maxHeatSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
}, {
|
|
124
|
+
readonly flags: {
|
|
125
|
+
readonly cooling: true;
|
|
126
|
+
};
|
|
127
|
+
readonly component: {
|
|
128
|
+
readonly attributes: {
|
|
129
|
+
readonly absMinCoolSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
130
|
+
readonly absMaxCoolSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
131
|
+
readonly piCoolingDemand: import("#types").OptionalAttribute<number, any>;
|
|
132
|
+
readonly occupiedCoolingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
133
|
+
readonly minCoolSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
134
|
+
readonly maxCoolSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
}, {
|
|
138
|
+
readonly flags: {
|
|
139
|
+
readonly localTemperatureNotExposed: false;
|
|
140
|
+
};
|
|
141
|
+
readonly component: {
|
|
142
|
+
readonly attributes: {
|
|
143
|
+
readonly localTemperatureCalibration: import("#types").OptionalWritableAttribute<number, any>;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
}, {
|
|
147
|
+
readonly flags: {
|
|
148
|
+
readonly cooling: true;
|
|
149
|
+
readonly occupancy: true;
|
|
150
|
+
};
|
|
151
|
+
readonly component: {
|
|
152
|
+
readonly attributes: {
|
|
153
|
+
readonly unoccupiedCoolingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
}, {
|
|
157
|
+
readonly flags: {
|
|
158
|
+
readonly heating: true;
|
|
159
|
+
readonly occupancy: true;
|
|
160
|
+
};
|
|
161
|
+
readonly component: {
|
|
162
|
+
readonly attributes: {
|
|
163
|
+
readonly unoccupiedHeatingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
}, {
|
|
167
|
+
readonly flags: {
|
|
168
|
+
readonly autoMode: true;
|
|
169
|
+
};
|
|
170
|
+
readonly component: {
|
|
171
|
+
readonly attributes: {
|
|
172
|
+
readonly minSetpointDeadBand: import("#types").WritableAttribute<number, any>;
|
|
173
|
+
readonly thermostatRunningMode: import("#types").OptionalAttribute<Thermostat.ThermostatRunningMode, any>;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
}, {
|
|
177
|
+
readonly flags: {
|
|
178
|
+
readonly scheduleConfiguration: true;
|
|
179
|
+
};
|
|
180
|
+
readonly component: {
|
|
181
|
+
readonly attributes: {
|
|
182
|
+
readonly startOfWeek: import("#types").FixedAttribute<Thermostat.StartOfWeek, any>;
|
|
183
|
+
readonly numberOfWeeklyTransitions: import("#types").FixedAttribute<number, any>;
|
|
184
|
+
readonly numberOfDailyTransitions: import("#types").FixedAttribute<number, any>;
|
|
185
|
+
};
|
|
186
|
+
readonly commands: {
|
|
187
|
+
readonly setWeeklySchedule: import("#types").Command<import("#types").TypeFromFields<{
|
|
188
|
+
numberOfTransitionsForSequence: import("#types").FieldType<number>;
|
|
189
|
+
dayOfWeekForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
190
|
+
sunday: import("#types").BitFlag;
|
|
191
|
+
monday: import("#types").BitFlag;
|
|
192
|
+
tuesday: import("#types").BitFlag;
|
|
193
|
+
wednesday: import("#types").BitFlag;
|
|
194
|
+
thursday: import("#types").BitFlag;
|
|
195
|
+
friday: import("#types").BitFlag;
|
|
196
|
+
saturday: import("#types").BitFlag;
|
|
197
|
+
away: import("#types").BitFlag;
|
|
198
|
+
}>>;
|
|
199
|
+
modeForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
200
|
+
heatSetpointPresent: import("#types").BitFlag;
|
|
201
|
+
coolSetpointPresent: import("#types").BitFlag;
|
|
202
|
+
}>>;
|
|
203
|
+
transitions: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
204
|
+
transitionTime: import("#types").FieldType<number>;
|
|
205
|
+
heatSetpoint: import("#types").FieldType<number | null>;
|
|
206
|
+
coolSetpoint: import("#types").FieldType<number | null>;
|
|
207
|
+
}>[]>;
|
|
208
|
+
}>, void, any>;
|
|
209
|
+
readonly getWeeklySchedule: import("#types").Command<import("#types").TypeFromFields<{
|
|
210
|
+
daysToReturn: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
211
|
+
sunday: import("#types").BitFlag;
|
|
212
|
+
monday: import("#types").BitFlag;
|
|
213
|
+
tuesday: import("#types").BitFlag;
|
|
214
|
+
wednesday: import("#types").BitFlag;
|
|
215
|
+
thursday: import("#types").BitFlag;
|
|
216
|
+
friday: import("#types").BitFlag;
|
|
217
|
+
saturday: import("#types").BitFlag;
|
|
218
|
+
away: import("#types").BitFlag;
|
|
219
|
+
}>>;
|
|
220
|
+
modeToReturn: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
221
|
+
heatSetpointPresent: import("#types").BitFlag;
|
|
222
|
+
coolSetpointPresent: import("#types").BitFlag;
|
|
223
|
+
}>>;
|
|
224
|
+
}>, import("#types").TypeFromFields<{
|
|
225
|
+
numberOfTransitionsForSequence: import("#types").FieldType<number>;
|
|
226
|
+
dayOfWeekForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
227
|
+
sunday: import("#types").BitFlag;
|
|
228
|
+
monday: import("#types").BitFlag;
|
|
229
|
+
tuesday: import("#types").BitFlag;
|
|
230
|
+
wednesday: import("#types").BitFlag;
|
|
231
|
+
thursday: import("#types").BitFlag;
|
|
232
|
+
friday: import("#types").BitFlag;
|
|
233
|
+
saturday: import("#types").BitFlag;
|
|
234
|
+
away: import("#types").BitFlag;
|
|
235
|
+
}>>;
|
|
236
|
+
modeForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
237
|
+
heatSetpointPresent: import("#types").BitFlag;
|
|
238
|
+
coolSetpointPresent: import("#types").BitFlag;
|
|
239
|
+
}>>;
|
|
240
|
+
transitions: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
241
|
+
transitionTime: import("#types").FieldType<number>;
|
|
242
|
+
heatSetpoint: import("#types").FieldType<number | null>;
|
|
243
|
+
coolSetpoint: import("#types").FieldType<number | null>;
|
|
244
|
+
}>[]>;
|
|
245
|
+
}>, any>;
|
|
246
|
+
readonly clearWeeklySchedule: import("#types").Command<void, void, any>;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
}, {
|
|
250
|
+
readonly flags: {
|
|
251
|
+
readonly setback: true;
|
|
252
|
+
};
|
|
253
|
+
readonly component: {
|
|
254
|
+
readonly attributes: {
|
|
255
|
+
readonly occupiedSetback: import("#types").WritableAttribute<number | null, any>;
|
|
256
|
+
readonly occupiedSetbackMin: import("#types").FixedAttribute<number | null, any>;
|
|
257
|
+
readonly occupiedSetbackMax: import("#types").FixedAttribute<number | null, any>;
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
}, {
|
|
261
|
+
readonly flags: {
|
|
262
|
+
readonly setback: true;
|
|
263
|
+
readonly occupancy: true;
|
|
264
|
+
};
|
|
265
|
+
readonly component: {
|
|
266
|
+
readonly attributes: {
|
|
267
|
+
readonly unoccupiedSetback: import("#types").WritableAttribute<number | null, any>;
|
|
268
|
+
readonly unoccupiedSetbackMin: import("#types").FixedAttribute<number | null, any>;
|
|
269
|
+
readonly unoccupiedSetbackMax: import("#types").FixedAttribute<number | null, any>;
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
}, {
|
|
273
|
+
readonly flags: {
|
|
274
|
+
readonly presets: true;
|
|
275
|
+
};
|
|
276
|
+
readonly component: {
|
|
277
|
+
readonly attributes: {
|
|
278
|
+
readonly presetTypes: import("#types").FixedAttribute<import("#types").TypeFromFields<{
|
|
279
|
+
presetScenario: import("#types").FieldType<Thermostat.PresetScenario>;
|
|
280
|
+
numberOfPresets: import("#types").FieldType<number>;
|
|
281
|
+
presetTypeFeatures: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
282
|
+
automatic: import("#types").BitFlag;
|
|
283
|
+
supportsNames: import("#types").BitFlag;
|
|
284
|
+
}>>;
|
|
285
|
+
}>[], any>;
|
|
286
|
+
readonly numberOfPresets: import("#types").FixedAttribute<number, any>;
|
|
287
|
+
readonly activePresetHandle: import("#types").Attribute<AllowSharedBufferSource | null, any>;
|
|
288
|
+
readonly presets: import("#types").WritableAttribute<import("#types").TypeFromFields<{
|
|
289
|
+
presetHandle: import("#types").FieldType<AllowSharedBufferSource | null>;
|
|
290
|
+
presetScenario: import("#types").FieldType<Thermostat.PresetScenario>;
|
|
291
|
+
name: import("#types").OptionalFieldType<string | null>;
|
|
292
|
+
coolingSetpoint: import("#types").OptionalFieldType<number>;
|
|
293
|
+
heatingSetpoint: import("#types").OptionalFieldType<number>;
|
|
294
|
+
builtIn: import("#types").FieldType<boolean | null>;
|
|
295
|
+
}>[], any>;
|
|
296
|
+
};
|
|
297
|
+
readonly commands: {
|
|
298
|
+
readonly setActivePresetRequest: import("#types").Command<import("#types").TypeFromFields<{
|
|
299
|
+
presetHandle: import("#types").FieldType<AllowSharedBufferSource | null>;
|
|
300
|
+
}>, void, any>;
|
|
301
|
+
};
|
|
302
|
+
};
|
|
303
|
+
}, {
|
|
304
|
+
readonly flags: {
|
|
305
|
+
readonly matterScheduleConfiguration: true;
|
|
306
|
+
};
|
|
307
|
+
readonly component: {
|
|
308
|
+
readonly attributes: {
|
|
309
|
+
readonly scheduleTypes: import("#types").FixedAttribute<import("#types").TypeFromFields<{
|
|
310
|
+
systemMode: import("#types").FieldType<Thermostat.SystemMode>;
|
|
311
|
+
numberOfSchedules: import("#types").FieldType<number>;
|
|
312
|
+
scheduleTypeFeatures: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
313
|
+
supportsPresets: import("#types").BitFlag;
|
|
314
|
+
supportsSetpoints: import("#types").BitFlag;
|
|
315
|
+
supportsNames: import("#types").BitFlag;
|
|
316
|
+
supportsOff: import("#types").BitFlag;
|
|
317
|
+
}>>;
|
|
318
|
+
}>[], any>;
|
|
319
|
+
readonly numberOfSchedules: import("#types").FixedAttribute<number, any>;
|
|
320
|
+
readonly numberOfScheduleTransitions: import("#types").FixedAttribute<number, any>;
|
|
321
|
+
readonly numberOfScheduleTransitionPerDay: import("#types").FixedAttribute<number | null, any>;
|
|
322
|
+
readonly activeScheduleHandle: import("#types").Attribute<AllowSharedBufferSource | null, any>;
|
|
323
|
+
readonly schedules: import("#types").WritableAttribute<import("#types").TypeFromFields<{
|
|
324
|
+
scheduleHandle: import("#types").FieldType<AllowSharedBufferSource | null>;
|
|
325
|
+
systemMode: import("#types").FieldType<Thermostat.SystemMode>;
|
|
326
|
+
name: import("#types").OptionalFieldType<string>;
|
|
327
|
+
presetHandle: import("#types").OptionalFieldType<AllowSharedBufferSource>;
|
|
328
|
+
transitions: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
329
|
+
dayOfWeek: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
330
|
+
sunday: import("#types").BitFlag;
|
|
331
|
+
monday: import("#types").BitFlag;
|
|
332
|
+
tuesday: import("#types").BitFlag;
|
|
333
|
+
wednesday: import("#types").BitFlag;
|
|
334
|
+
thursday: import("#types").BitFlag;
|
|
335
|
+
friday: import("#types").BitFlag;
|
|
336
|
+
saturday: import("#types").BitFlag;
|
|
337
|
+
away: import("#types").BitFlag;
|
|
338
|
+
}>>;
|
|
339
|
+
transitionTime: import("#types").FieldType<number>;
|
|
340
|
+
presetHandle: import("#types").OptionalFieldType<AllowSharedBufferSource>;
|
|
341
|
+
systemMode: import("#types").OptionalFieldType<Thermostat.SystemMode>;
|
|
342
|
+
coolingSetpoint: import("#types").OptionalFieldType<number>;
|
|
343
|
+
heatingSetpoint: import("#types").OptionalFieldType<number>;
|
|
344
|
+
}>[]>;
|
|
345
|
+
builtIn: import("#types").FieldType<boolean | null>;
|
|
346
|
+
}>[], any>;
|
|
347
|
+
};
|
|
348
|
+
readonly commands: {
|
|
349
|
+
readonly setActiveScheduleRequest: import("#types").Command<import("#types").TypeFromFields<{
|
|
350
|
+
scheduleHandle: import("#types").FieldType<AllowSharedBufferSource>;
|
|
351
|
+
}>, void, any>;
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
}, {
|
|
355
|
+
readonly flags: {
|
|
356
|
+
readonly autoMode: true;
|
|
357
|
+
readonly heating: false;
|
|
358
|
+
};
|
|
359
|
+
readonly component: false;
|
|
360
|
+
}, {
|
|
361
|
+
readonly flags: {
|
|
362
|
+
readonly autoMode: true;
|
|
363
|
+
readonly cooling: false;
|
|
364
|
+
};
|
|
365
|
+
readonly component: false;
|
|
366
|
+
}, {
|
|
367
|
+
readonly flags: {
|
|
368
|
+
readonly heating: false;
|
|
369
|
+
readonly cooling: false;
|
|
370
|
+
};
|
|
371
|
+
readonly component: false;
|
|
372
|
+
}];
|
|
373
|
+
}>, readonly [Thermostat.Feature.Heating, Thermostat.Feature.Cooling, Thermostat.Feature.Occupancy, Thermostat.Feature.AutoMode, Thermostat.Feature.Presets]>, import("./ThermostatBehavior.js").ThermostatBehaviorConstructor, import("./ThermostatInterface.js").ThermostatInterface>;
|
|
8
374
|
/**
|
|
9
375
|
* This is the default server implementation of {@link ThermostatBehavior}.
|
|
10
376
|
*
|
|
11
377
|
* The Matter specification requires the Thermostat cluster to support features we do not enable by default. You should
|
|
12
378
|
* use {@link ThermostatServer.with} to specialize the class for the features your implementation supports.
|
|
379
|
+
* We implement all features beside the following:
|
|
380
|
+
* * MatterScheduleConfiguration: This feature is provisional.
|
|
381
|
+
* * ScheduleConfiguration: This feature is deprecated and not allowed to be enabled.
|
|
382
|
+
* * Setback: This feature is considered deprecated.
|
|
383
|
+
* * The use of the "setpointHoldExpiryTimestamp" attribute is currently not supported.
|
|
384
|
+
*
|
|
385
|
+
* This implementation mainly provides all validation and base logic required by the Matter specification.
|
|
386
|
+
* It implements some thermostat logic, partially beyond Matter specification definition, notably:
|
|
387
|
+
* * Adjust the setpoints when a preset is activated
|
|
388
|
+
* If this behavior is not desired, you can override the setActivePresetRequest method but should call
|
|
389
|
+
* handleSetActivePresetRequest() to ensure compliance with the specification.
|
|
390
|
+
*
|
|
391
|
+
* The implementation also adds enhanced system mode logic that can be enabled by setting the state field
|
|
392
|
+
* useAutomaticModeManagement to true. When enabled, the thermostat will:
|
|
393
|
+
* * Adjust the thermostat running mode when in Auto system mode and the Setback feature is also supported
|
|
394
|
+
* * Determine the system mode and/or running mode based on temperature changes
|
|
395
|
+
*
|
|
396
|
+
* For local temperature or occupancy values we check if there is a local cluster available on the same endpoint and use
|
|
397
|
+
* them, alternatively raw measurements can be set in the states externalMeasuredIndoorTemperature and
|
|
398
|
+
* externallyMeasuredOccupancy. The OutdoorTemperature can be set directly on the attribute if supported.
|
|
399
|
+
* The RemoteSensing attribute need to be set correctly as needed by the developer to identify the measurement source.
|
|
400
|
+
*
|
|
401
|
+
* The following custom events are provided:
|
|
402
|
+
* * calibratedTemperature$Changed: Emitted when the measured local temperature changes including any calibration applied. This event is mainly useful when the localTemperatureNotExposed feature is used.
|
|
403
|
+
*
|
|
404
|
+
* Important note: To access the current local temperature (including all calibrations applied) please use
|
|
405
|
+
* this.internal.localTemperature because the localTemperature attribute in state might be null depending on the
|
|
406
|
+
* configured features.
|
|
407
|
+
*
|
|
408
|
+
* TODO: Currently the general purpose "atomic write" Matter feature is only implemented in this specific cluster because
|
|
409
|
+
* only used here so far. Also see information in AtomicWriteHandler.ts.
|
|
13
410
|
*/
|
|
14
|
-
export declare class
|
|
411
|
+
export declare class ThermostatBaseServer extends ThermostatBehaviorLogicBase {
|
|
412
|
+
#private;
|
|
413
|
+
protected internal: ThermostatBaseServer.Internal;
|
|
414
|
+
state: ThermostatBaseServer.State;
|
|
415
|
+
events: ThermostatBaseServer.Events;
|
|
416
|
+
static readonly schema: import("#model").Schema;
|
|
417
|
+
initialize(): Promise<void>;
|
|
418
|
+
/**
|
|
419
|
+
* The default implementation of the SetpointRaiseLower command. It handles all validation and setpoint adjustments
|
|
420
|
+
* required by the Matter specification. This method only changes the Occupied setpoints.
|
|
421
|
+
*/
|
|
422
|
+
setpointRaiseLower({ mode, amount }: Thermostat.SetpointRaiseLowerRequest): void;
|
|
423
|
+
/**
|
|
424
|
+
* Performs basic validation and sets the active preset handle when valid.
|
|
425
|
+
* This fulfills the basic requirements of the SetActivePresetRequest matter command. Use this method if you need
|
|
426
|
+
* to override setActivePresetRequest to ensure compliance.
|
|
427
|
+
*/
|
|
428
|
+
protected handleSetActivePresetRequest({ presetHandle }: Thermostat.SetActivePresetRequest): Thermostat.Preset | undefined;
|
|
429
|
+
/**
|
|
430
|
+
* This default implementation of the SetActivePresetRequest command handler sets the active preset and
|
|
431
|
+
* (additionally to specification requirements!) adjusts the occupied setpoints to the preset values if defined.
|
|
432
|
+
*
|
|
433
|
+
* If you do not want this behavior, you can override this method but should call handleSetActivePresetRequest to
|
|
434
|
+
* ensure compliance with the specification.
|
|
435
|
+
*/
|
|
436
|
+
setActivePresetRequest({ presetHandle }: Thermostat.SetActivePresetRequest): void;
|
|
437
|
+
/**
|
|
438
|
+
* Whether the thermostat is currently considered occupied
|
|
439
|
+
* Uses the occupancy state if the feature is supported, otherwise always true
|
|
440
|
+
*/
|
|
441
|
+
protected get occupied(): boolean;
|
|
442
|
+
/** The current heating setpoint depending on occupancy */
|
|
443
|
+
protected get heatingSetpoint(): number;
|
|
444
|
+
/** The current cooling setpoint depending on occupancy */
|
|
445
|
+
protected get coolingSetpoint(): number;
|
|
446
|
+
/** Whether heating is allowed in the current ControlSequenceOfOperation and features */
|
|
447
|
+
protected get heatingAllowed(): boolean;
|
|
448
|
+
/** Whether cooling is allowed in the current ControlSequenceOfOperation and features */
|
|
449
|
+
protected get coolingAllowed(): boolean;
|
|
450
|
+
/**
|
|
451
|
+
* Adjust the running mode of the thermostat based on the new system mode when the thermostatRunningMode is supported
|
|
452
|
+
*/
|
|
453
|
+
protected adjustRunningMode(newState: Thermostat.ThermostatRunningMode): void;
|
|
454
|
+
/**
|
|
455
|
+
* The current mode the thermostat is considered to be in based on local temperature and setpoints
|
|
456
|
+
*/
|
|
457
|
+
protected get temperatureConsideration(): "belowTarget" | "onTarget" | "aboveTarget" | undefined;
|
|
458
|
+
get heatSetpointMinimum(): number;
|
|
459
|
+
get heatSetpointMaximum(): number;
|
|
460
|
+
get coolSetpointMinimum(): number;
|
|
461
|
+
get coolSetpointMaximum(): number;
|
|
462
|
+
get setpointDeadBand(): number;
|
|
463
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
464
|
+
/** Implementation of the atomic request handling */
|
|
465
|
+
atomicRequest(request: Thermostat.AtomicRequest): Promise<Thermostat.AtomicResponse>;
|
|
466
|
+
}
|
|
467
|
+
export declare namespace ThermostatBaseServer {
|
|
468
|
+
class State extends ThermostatBehaviorLogicBase.State {
|
|
469
|
+
/**
|
|
470
|
+
* Otherwise measured temperature in Matter format as uint16 with a factor of 100. A calibration offset is applied
|
|
471
|
+
* additionally from localTemperatureCalibration if set.
|
|
472
|
+
* Use this if you have an external temperature sensor that should be used for thermostat control instead of a
|
|
473
|
+
* local temperature measurement cluster.
|
|
474
|
+
*/
|
|
475
|
+
externalMeasuredIndoorTemperature?: number;
|
|
476
|
+
/**
|
|
477
|
+
* Otherwise measured occupancy as boolean.
|
|
478
|
+
* Use this if you have an external occupancy sensor that should be used for thermostat control instead of a
|
|
479
|
+
* internal occupancy sensing cluster.
|
|
480
|
+
*/
|
|
481
|
+
externallyMeasuredOccupancy?: boolean;
|
|
482
|
+
/**
|
|
483
|
+
* Use to enable the automatic mode management, implemented by this standard implementation. This is beyond
|
|
484
|
+
* Matter specification! It reacts to temperature changes to adjust system running mode automatically. It also
|
|
485
|
+
* requires the Auto feature to be enabled and the ThermostatRunningMode attribute to be present.
|
|
486
|
+
*/
|
|
487
|
+
useAutomaticModeManagement: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* Persisted presets stored in the device, needed because the original "presets" is a virtual property
|
|
490
|
+
*/
|
|
491
|
+
persistedPresets?: Thermostat.Preset[];
|
|
492
|
+
/**
|
|
493
|
+
* Implementation of the needed Preset attribute logic for Atomic Write handling.
|
|
494
|
+
*/
|
|
495
|
+
[Val.properties](endpoint: Endpoint, session: ValueSupervisor.Session): {};
|
|
496
|
+
}
|
|
497
|
+
class Events extends ThermostatBehaviorLogicBase.Events {
|
|
498
|
+
externalMeasuredIndoorTemperature$Changed: Observable<[value: number, oldValue: number, context: ActionContext], void>;
|
|
499
|
+
externallyMeasuredOccupancy$Changed: Observable<[value: boolean, oldValue: boolean, context: ActionContext], void>;
|
|
500
|
+
persistedPresets$Changed: Observable<[value: Thermostat.Preset[], oldValue: Thermostat.Preset[], context: ActionContext], void>;
|
|
501
|
+
persistedPresets$Changing: Observable<[value: Thermostat.Preset[], oldValue: Thermostat.Preset[], context: ActionContext], void>;
|
|
502
|
+
/**
|
|
503
|
+
* Custom event emitted when the calibrated temperature changes.
|
|
504
|
+
*/
|
|
505
|
+
calibratedTemperature$Changed: Observable<[value: number | null, oldValue: number | null, context: ActionContext], void>;
|
|
506
|
+
/**
|
|
507
|
+
* Custom event emitted when the Presets attribute is "virtually" changing as part of an atomic write operation.
|
|
508
|
+
* Info: The events is currently needed to be a pure Observable to get errors thrown in the event handler be
|
|
509
|
+
* reported back to the emitter.
|
|
510
|
+
*/
|
|
511
|
+
presets$AtomicChanging: Observable<[value: Thermostat.Preset[], oldValue: Thermostat.Preset[], context: ActionContext], void>;
|
|
512
|
+
/**
|
|
513
|
+
* Custom event emitted when the Presets attribute has "virtually" changed as part of an atomic write operation.
|
|
514
|
+
* Info: The events is currently needed to be a pure Observable to get errors thrown in the event handler be
|
|
515
|
+
* reported back to the emitter.
|
|
516
|
+
*/
|
|
517
|
+
presets$AtomicChanged: Observable<[value: Thermostat.Preset[], oldValue: Thermostat.Preset[], context: ActionContext], void>;
|
|
518
|
+
/**
|
|
519
|
+
* Custom event emitted to inform the behavior implementation of an update of the PersistedPresets attribute.
|
|
520
|
+
*/
|
|
521
|
+
updatePresets: Observable<[value: Thermostat.Preset[]], void>;
|
|
522
|
+
}
|
|
523
|
+
class Internal {
|
|
524
|
+
/**
|
|
525
|
+
* Local temperature in Matter format as uint16 with a factor of 100. It is the same value as the one reported
|
|
526
|
+
* in the localTemperature Attribute, but also present when the LocalTemperatureNotExposed feature is enabled.
|
|
527
|
+
* Means all logic and calculations are always done with this value.
|
|
528
|
+
* The value will be updated on initialization and when the localTemperature Attribute changes.
|
|
529
|
+
*/
|
|
530
|
+
localTemperature: number | null;
|
|
531
|
+
/**
|
|
532
|
+
* Storing fixed value internally to ensure it can not be modified.
|
|
533
|
+
* This value will be initialized when the behavior is initialized and is static afterward.
|
|
534
|
+
*/
|
|
535
|
+
minSetpointDeadBand: number;
|
|
536
|
+
/**
|
|
537
|
+
* Storing fixed value internally to ensure it can not be modified.
|
|
538
|
+
* This value will be initialized when the behavior is initialized and is static afterward.
|
|
539
|
+
*/
|
|
540
|
+
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
declare const ThermostatServer_base: import("../../index.js").ClusterBehavior.Type<ClusterType.Of<{
|
|
544
|
+
readonly id: 513;
|
|
545
|
+
readonly name: "Thermostat";
|
|
546
|
+
readonly revision: 9;
|
|
547
|
+
readonly features: {
|
|
548
|
+
readonly heating: import("#types").BitFlag;
|
|
549
|
+
readonly cooling: import("#types").BitFlag;
|
|
550
|
+
readonly occupancy: import("#types").BitFlag;
|
|
551
|
+
readonly scheduleConfiguration: import("#types").BitFlag;
|
|
552
|
+
readonly setback: import("#types").BitFlag;
|
|
553
|
+
readonly autoMode: import("#types").BitFlag;
|
|
554
|
+
readonly localTemperatureNotExposed: import("#types").BitFlag;
|
|
555
|
+
readonly matterScheduleConfiguration: import("#types").BitFlag;
|
|
556
|
+
readonly presets: import("#types").BitFlag;
|
|
557
|
+
};
|
|
558
|
+
readonly attributes: {
|
|
559
|
+
readonly localTemperature: import("#types").Attribute<number | null, any>;
|
|
560
|
+
readonly outdoorTemperature: import("#types").OptionalAttribute<number | null, any>;
|
|
561
|
+
readonly hvacSystemTypeConfiguration: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
562
|
+
coolingStage: import("#types").BitField;
|
|
563
|
+
heatingStage: import("#types").BitField;
|
|
564
|
+
heatingIsHeatPump: import("#types").BitFlag;
|
|
565
|
+
heatingUsesFuel: import("#types").BitFlag;
|
|
566
|
+
}>, any>;
|
|
567
|
+
readonly remoteSensing: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
568
|
+
localTemperature: import("#types").BitFlag;
|
|
569
|
+
outdoorTemperature: import("#types").BitFlag;
|
|
570
|
+
occupancy: import("#types").BitFlag;
|
|
571
|
+
}>, any>;
|
|
572
|
+
readonly controlSequenceOfOperation: import("#types").WritableAttribute<Thermostat.ControlSequenceOfOperation, any>;
|
|
573
|
+
readonly systemMode: import("#types").WritableAttribute<Thermostat.SystemMode, any>;
|
|
574
|
+
readonly temperatureSetpointHold: import("#types").OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>;
|
|
575
|
+
readonly temperatureSetpointHoldDuration: import("#types").OptionalWritableAttribute<number | null, any>;
|
|
576
|
+
readonly thermostatProgrammingOperationMode: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
577
|
+
scheduleActive: import("#types").BitFlag;
|
|
578
|
+
autoRecovery: import("#types").BitFlag;
|
|
579
|
+
economy: import("#types").BitFlag;
|
|
580
|
+
}>, any>;
|
|
581
|
+
readonly thermostatRunningState: import("#types").OptionalAttribute<TypeFromPartialBitSchema<{
|
|
582
|
+
heat: import("#types").BitFlag;
|
|
583
|
+
cool: import("#types").BitFlag;
|
|
584
|
+
fan: import("#types").BitFlag;
|
|
585
|
+
heatStage2: import("#types").BitFlag;
|
|
586
|
+
coolStage2: import("#types").BitFlag;
|
|
587
|
+
fanStage2: import("#types").BitFlag;
|
|
588
|
+
fanStage3: import("#types").BitFlag;
|
|
589
|
+
}>, any>;
|
|
590
|
+
readonly setpointChangeSource: import("#types").OptionalAttribute<Thermostat.SetpointChangeSource, any>;
|
|
591
|
+
readonly setpointChangeAmount: import("#types").OptionalAttribute<number | null, any>;
|
|
592
|
+
readonly setpointChangeSourceTimestamp: import("#types").OptionalAttribute<number, any>;
|
|
593
|
+
readonly emergencyHeatDelta: import("#types").OptionalWritableAttribute<number, any>;
|
|
594
|
+
readonly acType: import("#types").OptionalWritableAttribute<Thermostat.AcType, any>;
|
|
595
|
+
readonly acCapacity: import("#types").OptionalWritableAttribute<number, any>;
|
|
596
|
+
readonly acRefrigerantType: import("#types").OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>;
|
|
597
|
+
readonly acCompressorType: import("#types").OptionalWritableAttribute<Thermostat.AcCompressorType, any>;
|
|
598
|
+
readonly acErrorCode: import("#types").OptionalWritableAttribute<TypeFromPartialBitSchema<{
|
|
599
|
+
compressorFail: import("#types").BitFlag;
|
|
600
|
+
roomSensorFail: import("#types").BitFlag;
|
|
601
|
+
outdoorSensorFail: import("#types").BitFlag;
|
|
602
|
+
coilSensorFail: import("#types").BitFlag;
|
|
603
|
+
fanFail: import("#types").BitFlag;
|
|
604
|
+
}>, any>;
|
|
605
|
+
readonly acLouverPosition: import("#types").OptionalWritableAttribute<Thermostat.AcLouverPosition, any>;
|
|
606
|
+
readonly acCoilTemperature: import("#types").OptionalAttribute<number | null, any>;
|
|
607
|
+
readonly acCapacityFormat: import("#types").OptionalWritableAttribute<Thermostat.AcCapacityFormat, any>;
|
|
608
|
+
readonly setpointHoldExpiryTimestamp: import("#types").OptionalAttribute<number | null, any>;
|
|
609
|
+
};
|
|
610
|
+
readonly commands: {
|
|
611
|
+
readonly setpointRaiseLower: import("#types").Command<import("#types").TypeFromFields<{
|
|
612
|
+
mode: import("#types").FieldType<Thermostat.SetpointRaiseLowerMode>;
|
|
613
|
+
amount: import("#types").FieldType<number>;
|
|
614
|
+
}>, void, any>;
|
|
615
|
+
readonly atomicRequest: import("#types").Command<import("#types").TypeFromFields<{
|
|
616
|
+
requestType: import("#types").FieldType<Thermostat.RequestType>;
|
|
617
|
+
attributeRequests: import("#types").FieldType<import("#types").AttributeId[]>;
|
|
618
|
+
timeout: import("#types").OptionalFieldType<number>;
|
|
619
|
+
}>, import("#types").TypeFromFields<{
|
|
620
|
+
statusCode: import("#types").FieldType<import("#types").Status>;
|
|
621
|
+
attributeStatus: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
622
|
+
attributeId: import("#types").FieldType<import("#types").AttributeId>;
|
|
623
|
+
statusCode: import("#types").FieldType<import("#types").Status>;
|
|
624
|
+
}>[]>;
|
|
625
|
+
timeout: import("#types").OptionalFieldType<number>;
|
|
626
|
+
}>, any>;
|
|
627
|
+
};
|
|
628
|
+
readonly extensions: readonly [{
|
|
629
|
+
readonly flags: {
|
|
630
|
+
readonly occupancy: true;
|
|
631
|
+
};
|
|
632
|
+
readonly component: {
|
|
633
|
+
readonly attributes: {
|
|
634
|
+
readonly occupancy: import("#types").Attribute<TypeFromPartialBitSchema<{
|
|
635
|
+
occupied: import("#types").BitFlag;
|
|
636
|
+
}>, any>;
|
|
637
|
+
};
|
|
638
|
+
};
|
|
639
|
+
}, {
|
|
640
|
+
readonly flags: {
|
|
641
|
+
readonly heating: true;
|
|
642
|
+
};
|
|
643
|
+
readonly component: {
|
|
644
|
+
readonly attributes: {
|
|
645
|
+
readonly absMinHeatSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
646
|
+
readonly absMaxHeatSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
647
|
+
readonly piHeatingDemand: import("#types").OptionalAttribute<number, any>;
|
|
648
|
+
readonly occupiedHeatingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
649
|
+
readonly minHeatSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
650
|
+
readonly maxHeatSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
651
|
+
};
|
|
652
|
+
};
|
|
653
|
+
}, {
|
|
654
|
+
readonly flags: {
|
|
655
|
+
readonly cooling: true;
|
|
656
|
+
};
|
|
657
|
+
readonly component: {
|
|
658
|
+
readonly attributes: {
|
|
659
|
+
readonly absMinCoolSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
660
|
+
readonly absMaxCoolSetpointLimit: import("#types").OptionalFixedAttribute<number, any>;
|
|
661
|
+
readonly piCoolingDemand: import("#types").OptionalAttribute<number, any>;
|
|
662
|
+
readonly occupiedCoolingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
663
|
+
readonly minCoolSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
664
|
+
readonly maxCoolSetpointLimit: import("#types").OptionalWritableAttribute<number, any>;
|
|
665
|
+
};
|
|
666
|
+
};
|
|
667
|
+
}, {
|
|
668
|
+
readonly flags: {
|
|
669
|
+
readonly localTemperatureNotExposed: false;
|
|
670
|
+
};
|
|
671
|
+
readonly component: {
|
|
672
|
+
readonly attributes: {
|
|
673
|
+
readonly localTemperatureCalibration: import("#types").OptionalWritableAttribute<number, any>;
|
|
674
|
+
};
|
|
675
|
+
};
|
|
676
|
+
}, {
|
|
677
|
+
readonly flags: {
|
|
678
|
+
readonly cooling: true;
|
|
679
|
+
readonly occupancy: true;
|
|
680
|
+
};
|
|
681
|
+
readonly component: {
|
|
682
|
+
readonly attributes: {
|
|
683
|
+
readonly unoccupiedCoolingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
684
|
+
};
|
|
685
|
+
};
|
|
686
|
+
}, {
|
|
687
|
+
readonly flags: {
|
|
688
|
+
readonly heating: true;
|
|
689
|
+
readonly occupancy: true;
|
|
690
|
+
};
|
|
691
|
+
readonly component: {
|
|
692
|
+
readonly attributes: {
|
|
693
|
+
readonly unoccupiedHeatingSetpoint: import("#types").WritableAttribute<number, any>;
|
|
694
|
+
};
|
|
695
|
+
};
|
|
696
|
+
}, {
|
|
697
|
+
readonly flags: {
|
|
698
|
+
readonly autoMode: true;
|
|
699
|
+
};
|
|
700
|
+
readonly component: {
|
|
701
|
+
readonly attributes: {
|
|
702
|
+
readonly minSetpointDeadBand: import("#types").WritableAttribute<number, any>;
|
|
703
|
+
readonly thermostatRunningMode: import("#types").OptionalAttribute<Thermostat.ThermostatRunningMode, any>;
|
|
704
|
+
};
|
|
705
|
+
};
|
|
706
|
+
}, {
|
|
707
|
+
readonly flags: {
|
|
708
|
+
readonly scheduleConfiguration: true;
|
|
709
|
+
};
|
|
710
|
+
readonly component: {
|
|
711
|
+
readonly attributes: {
|
|
712
|
+
readonly startOfWeek: import("#types").FixedAttribute<Thermostat.StartOfWeek, any>;
|
|
713
|
+
readonly numberOfWeeklyTransitions: import("#types").FixedAttribute<number, any>;
|
|
714
|
+
readonly numberOfDailyTransitions: import("#types").FixedAttribute<number, any>;
|
|
715
|
+
};
|
|
716
|
+
readonly commands: {
|
|
717
|
+
readonly setWeeklySchedule: import("#types").Command<import("#types").TypeFromFields<{
|
|
718
|
+
numberOfTransitionsForSequence: import("#types").FieldType<number>;
|
|
719
|
+
dayOfWeekForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
720
|
+
sunday: import("#types").BitFlag;
|
|
721
|
+
monday: import("#types").BitFlag;
|
|
722
|
+
tuesday: import("#types").BitFlag;
|
|
723
|
+
wednesday: import("#types").BitFlag;
|
|
724
|
+
thursday: import("#types").BitFlag;
|
|
725
|
+
friday: import("#types").BitFlag;
|
|
726
|
+
saturday: import("#types").BitFlag;
|
|
727
|
+
away: import("#types").BitFlag;
|
|
728
|
+
}>>;
|
|
729
|
+
modeForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
730
|
+
heatSetpointPresent: import("#types").BitFlag;
|
|
731
|
+
coolSetpointPresent: import("#types").BitFlag;
|
|
732
|
+
}>>;
|
|
733
|
+
transitions: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
734
|
+
transitionTime: import("#types").FieldType<number>;
|
|
735
|
+
heatSetpoint: import("#types").FieldType<number | null>;
|
|
736
|
+
coolSetpoint: import("#types").FieldType<number | null>;
|
|
737
|
+
}>[]>;
|
|
738
|
+
}>, void, any>;
|
|
739
|
+
readonly getWeeklySchedule: import("#types").Command<import("#types").TypeFromFields<{
|
|
740
|
+
daysToReturn: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
741
|
+
sunday: import("#types").BitFlag;
|
|
742
|
+
monday: import("#types").BitFlag;
|
|
743
|
+
tuesday: import("#types").BitFlag;
|
|
744
|
+
wednesday: import("#types").BitFlag;
|
|
745
|
+
thursday: import("#types").BitFlag;
|
|
746
|
+
friday: import("#types").BitFlag;
|
|
747
|
+
saturday: import("#types").BitFlag;
|
|
748
|
+
away: import("#types").BitFlag;
|
|
749
|
+
}>>;
|
|
750
|
+
modeToReturn: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
751
|
+
heatSetpointPresent: import("#types").BitFlag;
|
|
752
|
+
coolSetpointPresent: import("#types").BitFlag;
|
|
753
|
+
}>>;
|
|
754
|
+
}>, import("#types").TypeFromFields<{
|
|
755
|
+
numberOfTransitionsForSequence: import("#types").FieldType<number>;
|
|
756
|
+
dayOfWeekForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
757
|
+
sunday: import("#types").BitFlag;
|
|
758
|
+
monday: import("#types").BitFlag;
|
|
759
|
+
tuesday: import("#types").BitFlag;
|
|
760
|
+
wednesday: import("#types").BitFlag;
|
|
761
|
+
thursday: import("#types").BitFlag;
|
|
762
|
+
friday: import("#types").BitFlag;
|
|
763
|
+
saturday: import("#types").BitFlag;
|
|
764
|
+
away: import("#types").BitFlag;
|
|
765
|
+
}>>;
|
|
766
|
+
modeForSequence: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
767
|
+
heatSetpointPresent: import("#types").BitFlag;
|
|
768
|
+
coolSetpointPresent: import("#types").BitFlag;
|
|
769
|
+
}>>;
|
|
770
|
+
transitions: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
771
|
+
transitionTime: import("#types").FieldType<number>;
|
|
772
|
+
heatSetpoint: import("#types").FieldType<number | null>;
|
|
773
|
+
coolSetpoint: import("#types").FieldType<number | null>;
|
|
774
|
+
}>[]>;
|
|
775
|
+
}>, any>;
|
|
776
|
+
readonly clearWeeklySchedule: import("#types").Command<void, void, any>;
|
|
777
|
+
};
|
|
778
|
+
};
|
|
779
|
+
}, {
|
|
780
|
+
readonly flags: {
|
|
781
|
+
readonly setback: true;
|
|
782
|
+
};
|
|
783
|
+
readonly component: {
|
|
784
|
+
readonly attributes: {
|
|
785
|
+
readonly occupiedSetback: import("#types").WritableAttribute<number | null, any>;
|
|
786
|
+
readonly occupiedSetbackMin: import("#types").FixedAttribute<number | null, any>;
|
|
787
|
+
readonly occupiedSetbackMax: import("#types").FixedAttribute<number | null, any>;
|
|
788
|
+
};
|
|
789
|
+
};
|
|
790
|
+
}, {
|
|
791
|
+
readonly flags: {
|
|
792
|
+
readonly setback: true;
|
|
793
|
+
readonly occupancy: true;
|
|
794
|
+
};
|
|
795
|
+
readonly component: {
|
|
796
|
+
readonly attributes: {
|
|
797
|
+
readonly unoccupiedSetback: import("#types").WritableAttribute<number | null, any>;
|
|
798
|
+
readonly unoccupiedSetbackMin: import("#types").FixedAttribute<number | null, any>;
|
|
799
|
+
readonly unoccupiedSetbackMax: import("#types").FixedAttribute<number | null, any>;
|
|
800
|
+
};
|
|
801
|
+
};
|
|
802
|
+
}, {
|
|
803
|
+
readonly flags: {
|
|
804
|
+
readonly presets: true;
|
|
805
|
+
};
|
|
806
|
+
readonly component: {
|
|
807
|
+
readonly attributes: {
|
|
808
|
+
readonly presetTypes: import("#types").FixedAttribute<import("#types").TypeFromFields<{
|
|
809
|
+
presetScenario: import("#types").FieldType<Thermostat.PresetScenario>;
|
|
810
|
+
numberOfPresets: import("#types").FieldType<number>;
|
|
811
|
+
presetTypeFeatures: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
812
|
+
automatic: import("#types").BitFlag;
|
|
813
|
+
supportsNames: import("#types").BitFlag;
|
|
814
|
+
}>>;
|
|
815
|
+
}>[], any>;
|
|
816
|
+
readonly numberOfPresets: import("#types").FixedAttribute<number, any>;
|
|
817
|
+
readonly activePresetHandle: import("#types").Attribute<AllowSharedBufferSource | null, any>;
|
|
818
|
+
readonly presets: import("#types").WritableAttribute<import("#types").TypeFromFields<{
|
|
819
|
+
presetHandle: import("#types").FieldType<AllowSharedBufferSource | null>;
|
|
820
|
+
presetScenario: import("#types").FieldType<Thermostat.PresetScenario>;
|
|
821
|
+
name: import("#types").OptionalFieldType<string | null>;
|
|
822
|
+
coolingSetpoint: import("#types").OptionalFieldType<number>;
|
|
823
|
+
heatingSetpoint: import("#types").OptionalFieldType<number>;
|
|
824
|
+
builtIn: import("#types").FieldType<boolean | null>;
|
|
825
|
+
}>[], any>;
|
|
826
|
+
};
|
|
827
|
+
readonly commands: {
|
|
828
|
+
readonly setActivePresetRequest: import("#types").Command<import("#types").TypeFromFields<{
|
|
829
|
+
presetHandle: import("#types").FieldType<AllowSharedBufferSource | null>;
|
|
830
|
+
}>, void, any>;
|
|
831
|
+
};
|
|
832
|
+
};
|
|
833
|
+
}, {
|
|
834
|
+
readonly flags: {
|
|
835
|
+
readonly matterScheduleConfiguration: true;
|
|
836
|
+
};
|
|
837
|
+
readonly component: {
|
|
838
|
+
readonly attributes: {
|
|
839
|
+
readonly scheduleTypes: import("#types").FixedAttribute<import("#types").TypeFromFields<{
|
|
840
|
+
systemMode: import("#types").FieldType<Thermostat.SystemMode>;
|
|
841
|
+
numberOfSchedules: import("#types").FieldType<number>;
|
|
842
|
+
scheduleTypeFeatures: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
843
|
+
supportsPresets: import("#types").BitFlag;
|
|
844
|
+
supportsSetpoints: import("#types").BitFlag;
|
|
845
|
+
supportsNames: import("#types").BitFlag;
|
|
846
|
+
supportsOff: import("#types").BitFlag;
|
|
847
|
+
}>>;
|
|
848
|
+
}>[], any>;
|
|
849
|
+
readonly numberOfSchedules: import("#types").FixedAttribute<number, any>;
|
|
850
|
+
readonly numberOfScheduleTransitions: import("#types").FixedAttribute<number, any>;
|
|
851
|
+
readonly numberOfScheduleTransitionPerDay: import("#types").FixedAttribute<number | null, any>;
|
|
852
|
+
readonly activeScheduleHandle: import("#types").Attribute<AllowSharedBufferSource | null, any>;
|
|
853
|
+
readonly schedules: import("#types").WritableAttribute<import("#types").TypeFromFields<{
|
|
854
|
+
scheduleHandle: import("#types").FieldType<AllowSharedBufferSource | null>;
|
|
855
|
+
systemMode: import("#types").FieldType<Thermostat.SystemMode>;
|
|
856
|
+
name: import("#types").OptionalFieldType<string>;
|
|
857
|
+
presetHandle: import("#types").OptionalFieldType<AllowSharedBufferSource>;
|
|
858
|
+
transitions: import("#types").FieldType<import("#types").TypeFromFields<{
|
|
859
|
+
dayOfWeek: import("#types").FieldType<TypeFromPartialBitSchema<{
|
|
860
|
+
sunday: import("#types").BitFlag;
|
|
861
|
+
monday: import("#types").BitFlag;
|
|
862
|
+
tuesday: import("#types").BitFlag;
|
|
863
|
+
wednesday: import("#types").BitFlag;
|
|
864
|
+
thursday: import("#types").BitFlag;
|
|
865
|
+
friday: import("#types").BitFlag;
|
|
866
|
+
saturday: import("#types").BitFlag;
|
|
867
|
+
away: import("#types").BitFlag;
|
|
868
|
+
}>>;
|
|
869
|
+
transitionTime: import("#types").FieldType<number>;
|
|
870
|
+
presetHandle: import("#types").OptionalFieldType<AllowSharedBufferSource>;
|
|
871
|
+
systemMode: import("#types").OptionalFieldType<Thermostat.SystemMode>;
|
|
872
|
+
coolingSetpoint: import("#types").OptionalFieldType<number>;
|
|
873
|
+
heatingSetpoint: import("#types").OptionalFieldType<number>;
|
|
874
|
+
}>[]>;
|
|
875
|
+
builtIn: import("#types").FieldType<boolean | null>;
|
|
876
|
+
}>[], any>;
|
|
877
|
+
};
|
|
878
|
+
readonly commands: {
|
|
879
|
+
readonly setActiveScheduleRequest: import("#types").Command<import("#types").TypeFromFields<{
|
|
880
|
+
scheduleHandle: import("#types").FieldType<AllowSharedBufferSource>;
|
|
881
|
+
}>, void, any>;
|
|
882
|
+
};
|
|
883
|
+
};
|
|
884
|
+
}, {
|
|
885
|
+
readonly flags: {
|
|
886
|
+
readonly autoMode: true;
|
|
887
|
+
readonly heating: false;
|
|
888
|
+
};
|
|
889
|
+
readonly component: false;
|
|
890
|
+
}, {
|
|
891
|
+
readonly flags: {
|
|
892
|
+
readonly autoMode: true;
|
|
893
|
+
readonly cooling: false;
|
|
894
|
+
};
|
|
895
|
+
readonly component: false;
|
|
896
|
+
}, {
|
|
897
|
+
readonly flags: {
|
|
898
|
+
readonly heating: false;
|
|
899
|
+
readonly cooling: false;
|
|
900
|
+
};
|
|
901
|
+
readonly component: false;
|
|
902
|
+
}];
|
|
903
|
+
}>, typeof ThermostatBaseServer, import("./ThermostatInterface.js").ThermostatInterface>;
|
|
904
|
+
export declare class ThermostatServer extends ThermostatServer_base {
|
|
15
905
|
}
|
|
906
|
+
export {};
|
|
16
907
|
//# sourceMappingURL=ThermostatServer.d.ts.map
|