@@ -13,6 +13,8 @@ LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL);
1313using namespace chip ;
1414using namespace ::chip::DeviceLayer;
1515using namespace ::chip::app::Clusters;
16+ using namespace chip ::app::Clusters::Thermostat::Attributes;
17+ using namespace Protocols ::InteractionModel;
1618
1719constexpr EndpointId kThermostatEndpoint = 1 ;
1820
@@ -38,15 +40,20 @@ uint8_t ReturnRemainderValue(int16_t Value)
3840
3941CHIP_ERROR TemperatureManager::Init ()
4042{
43+ CHIP_ERROR err = CHIP_NO_ERROR;
44+
4145 PlatformMgr ().LockChipStack ();
42- Thermostat::Attributes::LocalTemperature::Get (kThermostatEndpoint , mLocalTempCelsius );
43- Thermostat::Attributes::OutdoorTemperature::Get (kThermostatEndpoint , mOutdoorTempCelsius );
44- Thermostat::Attributes::OccupiedCoolingSetpoint::Get (kThermostatEndpoint , &mCoolingCelsiusSetPoint );
45- Thermostat::Attributes::OccupiedHeatingSetpoint::Get (kThermostatEndpoint , &mHeatingCelsiusSetPoint );
46- Thermostat::Attributes::SystemMode::Get (kThermostatEndpoint , &mThermMode );
46+
47+ VerifyOrExit (Status::Success == LocalTemperature::Get (kThermostatEndpoint , mLocalTempCelsius ), err = CHIP_IM_GLOBAL_STATUS (Failure));
48+ VerifyOrExit (Status::Success == OutdoorTemperature::Get (kThermostatEndpoint , mOutdoorTempCelsius ), err = CHIP_IM_GLOBAL_STATUS (Failure));
49+ VerifyOrExit (Status::Success == OccupiedCoolingSetpoint::Get (kThermostatEndpoint , &mCoolingCelsiusSetPoint ), err = CHIP_IM_GLOBAL_STATUS (Failure));
50+ VerifyOrExit (Status::Success == OccupiedHeatingSetpoint::Get (kThermostatEndpoint , &mHeatingCelsiusSetPoint ), err = CHIP_IM_GLOBAL_STATUS (Failure));
51+ VerifyOrExit (Status::Success == SystemMode::Get (kThermostatEndpoint , &mThermMode ), err = CHIP_IM_GLOBAL_STATUS (Failure));
52+
53+ exit:
4754 PlatformMgr ().UnlockChipStack ();
4855
49- return CHIP_NO_ERROR ;
56+ return err ;
5057}
5158
5259void TemperatureManager::LogThermostatStatus ()
@@ -76,31 +83,35 @@ void TemperatureManager::LogThermostatStatus()
7683void TemperatureManager::AttributeChangeHandler (EndpointId endpointId, AttributeId attributeId, uint8_t *value,
7784 uint16_t size)
7885{
86+ Status status;
87+
7988 switch (attributeId) {
80- case Thermostat::Attributes::LocalTemperature::Id: {
81- Thermostat::Attributes::LocalTemperature::Get (kThermostatEndpoint , mLocalTempCelsius );
89+ case LocalTemperature::Id: {
90+ status = LocalTemperature::Get (kThermostatEndpoint , mLocalTempCelsius );
91+ VerifyOrReturn (Status::Success == status, LOG_ERR (" Failed to get Thermostat LocalTemperature attribute" ));
8292 } break ;
8393
84- case Thermostat::Attributes::OutdoorTemperature::Id: {
85- Thermostat::Attributes::OutdoorTemperature::Get (kThermostatEndpoint , mOutdoorTempCelsius );
94+ case OutdoorTemperature::Id: {
95+ status = OutdoorTemperature::Get (kThermostatEndpoint , mOutdoorTempCelsius );
96+ VerifyOrReturn (Status::Success == status, LOG_ERR (" Failed to get Thermostat OutdoorTemperature attribute" ));
8697 } break ;
8798
88- case Thermostat::Attributes:: OccupiedCoolingSetpoint::Id: {
99+ case OccupiedCoolingSetpoint::Id: {
89100 mCoolingCelsiusSetPoint = *reinterpret_cast <int16_t *>(value);
90101 LOG_INF (" Cooling TEMP: %d" , mCoolingCelsiusSetPoint );
91102 } break ;
92103
93- case Thermostat::Attributes:: OccupiedHeatingSetpoint::Id: {
104+ case OccupiedHeatingSetpoint::Id: {
94105 mHeatingCelsiusSetPoint = *reinterpret_cast <int16_t *>(value);
95106 LOG_INF (" Heating TEMP %d" , mHeatingCelsiusSetPoint );
96107 } break ;
97108
98- case Thermostat::Attributes:: SystemMode::Id: {
109+ case SystemMode::Id: {
99110 mThermMode = static_cast <app::Clusters::Thermostat::SystemModeEnum>(*value);
100111 } break ;
101112
102113 default : {
103- LOG_INF (" Unhandled thermostat attribute %x" , attributeId);
114+ LOG_ERR (" Unhandled thermostat attribute %x" , attributeId);
104115 return ;
105116 } break ;
106117 }
0 commit comments