Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/presets #30454

Closed
wants to merge 102 commits into from
Closed
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
9eec4a2
first pass at XML for presets and schedules
drempelg Nov 7, 2023
bc52259
Merge branch 'project-chip:master' into feature/presets
drempelg Nov 7, 2023
4f81853
fix xml for codegen
drempelg Nov 7, 2023
b554ba3
Fixed a few more issues with the xml and used the zap gui tool to add…
drempelg Nov 8, 2023
d2a012c
Thermostat example app compiles now
drempelg Nov 8, 2023
66cbae2
Merge branch 'project-chip:master' into feature/presets
drempelg Nov 13, 2023
1c2907e
ran codegen
drempelg Nov 13, 2023
2a9c73a
Restyled by prettier-json
restyled-commits Nov 13, 2023
e539e2f
Added editor logic for presets and schedules commands.
drempelg Nov 14, 2023
8489932
Added setting the active preset/schedule command. Changed the editor to
drempelg Nov 14, 2023
2ba3a89
Added read support for the new list attributes
drempelg Nov 14, 2023
e354611
Added list writes for the two writable lists.
drempelg Nov 15, 2023
d80f5df
Merge branch 'project-chip:master' into feature/presets
drempelg Nov 15, 2023
4d3660d
started implementing a manager in the thermostat example app.
drempelg Nov 15, 2023
39a624c
Added validation for presets
drempelg Nov 17, 2023
a4baa77
Merge branch 'master' into feature/presets
drempelg Nov 18, 2023
41a542e
Fixed typo in XML, regenerated code. got most of the schedule
drempelg Nov 18, 2023
98fb82b
Merge branch 'master' into feature/presets
drempelg Nov 20, 2023
151ca40
New presets get a handle now
drempelg Nov 20, 2023
073e630
Merge branch 'master' into feature/presets
drempelg Nov 20, 2023
0edfa51
Made mods to the XML to match current version of spec.
drempelg Nov 21, 2023
1e09d3c
removed the using directive in the thermostat server header
drempelg Nov 21, 2023
3bf57a9
Fixed Temperature Hold policy bitmap definition.
drempelg Nov 21, 2023
7f6ea5e
Restyled by whitespace
restyled-commits Nov 21, 2023
036721a
Restyled by clang-format
restyled-commits Nov 21, 2023
667cb69
Fixed unitialized variable
drempelg Nov 21, 2023
011e23e
Make darwin build happy
drempelg Nov 22, 2023
6d9ffa4
foo
drempelg Nov 27, 2023
4bd98d4
XML only commit for 1.3 Thermostat spec changes. Cluster xml file
drempelg Nov 27, 2023
e1645ba
Fixed Types (going blind here since I'm not sure how to compile these)
drempelg Nov 27, 2023
135ce2d
Restyled by whitespace
restyled-commits Nov 27, 2023
39556b8
Restyled by clang-format
restyled-commits Nov 27, 2023
f84e0cc
manually adjust to the two's compliment since bad code gen was happening
drempelg Nov 27, 2023
bfc140a
fixed copypaste typo
drempelg Nov 27, 2023
259f45b
fixing esp build
drempelg Nov 27, 2023
4e76e34
didn't fix the build after all, reverted, and fixed another typo.
drempelg Nov 28, 2023
6e96a68
Think last commit fixed telink build, lets see if this fixes the rest
drempelg Nov 28, 2023
087be73
more blind changes using pull requests as a compiler...
drempelg Nov 28, 2023
aabebf5
switch is probably better
drempelg Nov 28, 2023
ad15e5f
would help if I used the right variable...
drempelg Nov 28, 2023
874a24f
more type safety to make it build (not doing all of it, since I can't
drempelg Nov 28, 2023
9c4be40
more type fixes
drempelg Nov 28, 2023
0b8ea58
and some more
drempelg Nov 28, 2023
e706f3c
and more
drempelg Nov 28, 2023
a17527b
last one?
drempelg Nov 28, 2023
3cdc17e
on to minimal...
drempelg Nov 28, 2023
7393dd6
regenerated with a new JRE, hopefully will pass the codegen check
drempelg Nov 28, 2023
de94361
Restyled by clang-format
restyled-commits Nov 28, 2023
67613e6
new xml, new regen.
drempelg Nov 28, 2023
94f4565
Merge branch 'master' into feature/presets-xml
drempelg Nov 28, 2023
c628e94
Merge branch 'master' into feature/presets-xml
drempelg Nov 29, 2023
fe50b76
apparently we need a reg after this merge :)
drempelg Nov 29, 2023
2a2cd03
Lets see if this is good enough to get through the chip-repl tests
drempelg Nov 29, 2023
1252807
Added the queued preset encoding
drempelg Nov 29, 2023
f59c140
Set a sane minimum value for LocalTemperatureCalibration
drempelg Nov 29, 2023
29f761e
Restyled by clang-format
restyled-commits Nov 29, 2023
f9cd237
Merge branch 'master' into feature/presets-xml
drempelg Nov 29, 2023
1c5bc94
turned off the new commands for now since the test suite can't handle
drempelg Nov 29, 2023
8b93263
passing all the TSTAT unit tests now locally, lets see if the remote
drempelg Nov 29, 2023
b219209
Fixing ameba target
drempelg Nov 30, 2023
d3ec9d7
Merge branch 'master' into feature/presets-xml
drempelg Dec 8, 2023
5c264fa
missed these in the merge
drempelg Dec 9, 2023
2892b06
After inspecting the bits of the xml that didn't conflict, found some
drempelg Dec 9, 2023
4c311d1
Revert this change back since it was decided in the great renaming to
drempelg Dec 9, 2023
0fe71a7
This should get us past the backward incompat test
drempelg Dec 11, 2023
474a51e
Merge branch 'master' into feature/presets-xml
drempelg Dec 11, 2023
1134093
Fix the bad merge I did using github directly
drempelg Dec 11, 2023
154ee2b
Merge branch 'master' into feature/presets-xml
drempelg Dec 11, 2023
bace8a4
Merge branch 'master' into feature/presets-xml
drempelg Dec 11, 2023
bbf0ec1
XML changes as requested
drempelg Dec 12, 2023
d57c654
Merge branch 'master' into feature/presets-xml
drempelg Dec 12, 2023
9859baa
Merge branch 'master' into feature/presets-xml
drempelg Dec 12, 2023
3950029
Blew away the zap generated dirs and regenerated again.
drempelg Dec 12, 2023
49479b0
missed changing the default response field here
drempelg Dec 12, 2023
3cc1427
Update src/app/clusters/thermostat-server/thermostat-server.cpp
drempelg Dec 13, 2023
c391e39
Update src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml
drempelg Dec 13, 2023
8c2abef
Fixed up the order of the commands and improved the comments.
drempelg Dec 13, 2023
a658907
Merge branch 'master' into feature/presets-xml
drempelg Dec 13, 2023
6ecc15b
Merge branch 'feature/presets-xml' into feature/presets
drempelg Dec 14, 2023
cb9611a
Builds, but not sure if correct at all at the moment. Will need to
drempelg Dec 14, 2023
339a5b4
Merge branch 'master' into feature/presets
drempelg Jan 8, 2024
09272f3
Merge branch 'master' into feature/presets
drempelg Jan 8, 2024
2470a7d
Moving Schedules Manager test impl to thermostat common and including it
drempelg Jan 9, 2024
0d8281c
Merge branch 'project-chip:master' into feature/presets
drempelg Jan 11, 2024
245b8fe
merged presets-xml into presets
drempelg Jan 11, 2024
81f10e0
Merge branch 'master' into feature/presets
drempelg Jan 17, 2024
a1ec85f
Committing work before merge
drempelg Jan 22, 2024
53c385b
Merge branch 'master' into feature/presets
drempelg Jan 22, 2024
a4d3060
Merge branch 'master' into feature/presets
drempelg Feb 7, 2024
613fb95
XML Change from new spec revision
drempelg Feb 12, 2024
a224248
Merge branch 'master' into feature/presets
drempelg Feb 12, 2024
405d5b0
Added the propsed xml changes, regeneerated and got things compiling
drempelg Feb 13, 2024
2750119
Merge branch 'master' into feature/presets
drempelg Feb 20, 2024
4ec1ed6
checking what I have for the merge.
drempelg Jul 24, 2024
31e1b05
Merge branch 'master' into feature/presets
drempelg Jul 25, 2024
551e396
Merge branch 'master' into feature/presets
drempelg Jul 25, 2024
bd643a3
refactoring and including the new atomic write stuff
drempelg Jul 29, 2024
b7ed98f
Merge branch 'master' into feature/presets
drempelg Jul 29, 2024
f794925
Refactored and compiling again.
drempelg Jul 30, 2024
77e4042
Got transitions appending compiling.
drempelg Jul 31, 2024
c08a13b
Added checking to see if the session is allowed to write.
drempelg Aug 1, 2024
e2b887e
updating what with have I have...since shenanigans...
drempelg Aug 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -3530,6 +3530,16 @@ server cluster PumpConfigurationAndControl = 512 {

/** An interface for configuring and controlling the functionality of a thermostat. */
server cluster Thermostat = 513 {
enum PresetScenarioEnum : enum8 {
kUnspecified = 0;
kOccupied = 1;
kUnoccupied = 2;
kSleep = 3;
kWake = 4;
kVacation = 5;
kUserDefined = 6;
}

enum SetpointAdjustMode : enum8 {
kHeat = 0;
kCool = 1;
Expand Down Expand Up @@ -3582,13 +3592,78 @@ server cluster Thermostat = 513 {
kSetback = 0x10;
kAutoMode = 0x20;
kLocalTemperatureNotExposed = 0x40;
kMatterScheduleConfiguration = 0x80;
kPresets = 0x100;
kSetpoints = 0x200;
kQueuedPresetsSupported = 0x400;
}

bitmap ModeForSequence : bitmap8 {
kHeatSetpointPresent = 0x1;
kCoolSetpointPresent = 0x2;
}

bitmap PresetTypeFeaturesBitmap : bitmap8 {
kAutomatic = 0x1;
kSupportsNames = 0x2;
}

bitmap ScheduleTypeFeaturesBitmap : bitmap8 {
kSupportsPresets = 0x1;
kSupportsSetpoints = 0x2;
kSupportsNames = 0x3;
kSupportsOff = 0x4;
}

bitmap TemperatureSetpointHoldPolicy : bitmap8 {
kHoldDurationElapsed = 0x1;
kHoldDurationElapsedOrPresetChanged = 0x2;
}

struct ScheduleTransitionStruct {
DayOfWeek dayOfWeek = 0;
int16u transitionTime = 1;
octet_string<16> presetHandle = 2;
ThermostatSystemMode systemMode = 3;
int16s coolingSetpoint = 4;
int16s heatingSetpoint = 5;
}

struct ScheduleStruct {
octet_string<16> sceduleHandle = 0;
ThermostatSystemMode systemMode = 1;
nullable char_string<64> name = 2;
octet_string<16> presetHandle = 3;
ScheduleTransitionStruct transitions[] = 4;
boolean builtIn = 5;
}

struct PresetStruct {
octet_string<16> presetHandle = 0;
PresetScenarioEnum presetScenario = 1;
nullable char_string<64> name = 2;
int16s coolingSetpoint = 3;
int16s heatingSetpoint = 4;
boolean builtIn = 5;
}

struct PresetTypeStruct {
PresetScenarioEnum presetScenario = 0;
int8u numberOfPresets = 1;
PresetTypeFeaturesBitmap presetTypeFeatures = 2;
}

struct QueuedPresetStruct {
octet_string<16> presetHandle = 0;
epoch_s transitionTimestamp = 1;
}

struct ScheduleTypeStruct {
ThermostatSystemMode systemMode = 0;
int8u numberOfSchedules = 1;
ScheduleTypeFeaturesBitmap scheduleTypeFeatures = 2;
}

struct ThermostatScheduleTransition {
int16u transitionTime = 0;
nullable int16s heatSetpoint = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2767,6 +2767,16 @@ server cluster PumpConfigurationAndControl = 512 {

/** An interface for configuring and controlling the functionality of a thermostat. */
server cluster Thermostat = 513 {
enum PresetScenarioEnum : enum8 {
kUnspecified = 0;
kOccupied = 1;
kUnoccupied = 2;
kSleep = 3;
kWake = 4;
kVacation = 5;
kUserDefined = 6;
}

enum SetpointAdjustMode : enum8 {
kHeat = 0;
kCool = 1;
Expand Down Expand Up @@ -2819,13 +2829,78 @@ server cluster Thermostat = 513 {
kSetback = 0x10;
kAutoMode = 0x20;
kLocalTemperatureNotExposed = 0x40;
kMatterScheduleConfiguration = 0x80;
kPresets = 0x100;
kSetpoints = 0x200;
kQueuedPresetsSupported = 0x400;
}

bitmap ModeForSequence : bitmap8 {
kHeatSetpointPresent = 0x1;
kCoolSetpointPresent = 0x2;
}

bitmap PresetTypeFeaturesBitmap : bitmap8 {
kAutomatic = 0x1;
kSupportsNames = 0x2;
}

bitmap ScheduleTypeFeaturesBitmap : bitmap8 {
kSupportsPresets = 0x1;
kSupportsSetpoints = 0x2;
kSupportsNames = 0x3;
kSupportsOff = 0x4;
}

bitmap TemperatureSetpointHoldPolicy : bitmap8 {
kHoldDurationElapsed = 0x1;
kHoldDurationElapsedOrPresetChanged = 0x2;
}

struct ScheduleTransitionStruct {
DayOfWeek dayOfWeek = 0;
int16u transitionTime = 1;
octet_string<16> presetHandle = 2;
ThermostatSystemMode systemMode = 3;
int16s coolingSetpoint = 4;
int16s heatingSetpoint = 5;
}

struct ScheduleStruct {
octet_string<16> sceduleHandle = 0;
ThermostatSystemMode systemMode = 1;
nullable char_string<64> name = 2;
octet_string<16> presetHandle = 3;
ScheduleTransitionStruct transitions[] = 4;
boolean builtIn = 5;
}

struct PresetStruct {
octet_string<16> presetHandle = 0;
PresetScenarioEnum presetScenario = 1;
nullable char_string<64> name = 2;
int16s coolingSetpoint = 3;
int16s heatingSetpoint = 4;
boolean builtIn = 5;
}

struct PresetTypeStruct {
PresetScenarioEnum presetScenario = 0;
int8u numberOfPresets = 1;
PresetTypeFeaturesBitmap presetTypeFeatures = 2;
}

struct QueuedPresetStruct {
octet_string<16> presetHandle = 0;
epoch_s transitionTimestamp = 1;
}

struct ScheduleTypeStruct {
ThermostatSystemMode systemMode = 0;
int8u numberOfSchedules = 1;
ScheduleTypeFeaturesBitmap scheduleTypeFeatures = 2;
}

struct ThermostatScheduleTransition {
int16u transitionTime = 0;
nullable int16s heatSetpoint = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1028,6 +1028,16 @@ server cluster ActivatedCarbonFilterMonitoring = 114 {

/** An interface for configuring and controlling the functionality of a thermostat. */
server cluster Thermostat = 513 {
enum PresetScenarioEnum : enum8 {
kUnspecified = 0;
kOccupied = 1;
kUnoccupied = 2;
kSleep = 3;
kWake = 4;
kVacation = 5;
kUserDefined = 6;
}

enum SetpointAdjustMode : enum8 {
kHeat = 0;
kCool = 1;
Expand Down Expand Up @@ -1080,13 +1090,78 @@ server cluster Thermostat = 513 {
kSetback = 0x10;
kAutoMode = 0x20;
kLocalTemperatureNotExposed = 0x40;
kMatterScheduleConfiguration = 0x80;
kPresets = 0x100;
kSetpoints = 0x200;
kQueuedPresetsSupported = 0x400;
}

bitmap ModeForSequence : bitmap8 {
kHeatSetpointPresent = 0x1;
kCoolSetpointPresent = 0x2;
}

bitmap PresetTypeFeaturesBitmap : bitmap8 {
kAutomatic = 0x1;
kSupportsNames = 0x2;
}

bitmap ScheduleTypeFeaturesBitmap : bitmap8 {
kSupportsPresets = 0x1;
kSupportsSetpoints = 0x2;
kSupportsNames = 0x3;
kSupportsOff = 0x4;
}

bitmap TemperatureSetpointHoldPolicy : bitmap8 {
kHoldDurationElapsed = 0x1;
kHoldDurationElapsedOrPresetChanged = 0x2;
}

struct ScheduleTransitionStruct {
DayOfWeek dayOfWeek = 0;
int16u transitionTime = 1;
octet_string<16> presetHandle = 2;
ThermostatSystemMode systemMode = 3;
int16s coolingSetpoint = 4;
int16s heatingSetpoint = 5;
}

struct ScheduleStruct {
octet_string<16> sceduleHandle = 0;
ThermostatSystemMode systemMode = 1;
nullable char_string<64> name = 2;
octet_string<16> presetHandle = 3;
ScheduleTransitionStruct transitions[] = 4;
boolean builtIn = 5;
}

struct PresetStruct {
octet_string<16> presetHandle = 0;
PresetScenarioEnum presetScenario = 1;
nullable char_string<64> name = 2;
int16s coolingSetpoint = 3;
int16s heatingSetpoint = 4;
boolean builtIn = 5;
}

struct PresetTypeStruct {
PresetScenarioEnum presetScenario = 0;
int8u numberOfPresets = 1;
PresetTypeFeaturesBitmap presetTypeFeatures = 2;
}

struct QueuedPresetStruct {
octet_string<16> presetHandle = 0;
epoch_s transitionTimestamp = 1;
}

struct ScheduleTypeStruct {
ThermostatSystemMode systemMode = 0;
int8u numberOfSchedules = 1;
ScheduleTypeFeaturesBitmap scheduleTypeFeatures = 2;
}

struct ThermostatScheduleTransition {
int16u transitionTime = 0;
nullable int16s heatSetpoint = 1;
Expand Down
Loading