diff --git a/components/esp_matter/esp_matter_attribute.cpp b/components/esp_matter/esp_matter_attribute.cpp index 63608902a..c8f842a66 100644 --- a/components/esp_matter/esp_matter_attribute.cpp +++ b/components/esp_matter/esp_matter_attribute.cpp @@ -1235,6 +1235,12 @@ attribute_t *create_local_temperature(cluster_t *cluster, nullable valu esp_matter_nullable_int16(value)); } +attribute_t *create_outdoor_temperature(cluster_t *cluster, nullable value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::OutdoorTemperature::Id, ATTRIBUTE_FLAG_NULLABLE, + esp_matter_nullable_int16(value)); +} + attribute_t *create_occupancy(cluster_t *cluster, uint8_t value) { return esp_matter::attribute::create(cluster, Thermostat::Attributes::Occupancy::Id, ATTRIBUTE_FLAG_NONE, @@ -1277,6 +1283,18 @@ attribute_t *create_pi_heating_demand(cluster_t *cluster, uint8_t value) esp_matter_uint8(value)); } +attribute_t *create_hvac_system_type_config(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::HVACSystemTypeConfiguration::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_bitmap8(value)); +} + +attribute_t *create_local_temperature_calibration(cluster_t *cluster, int8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::LocalTemperatureCalibration::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_int8(value)); +} + attribute_t *create_occupied_cooling_setpoint(cluster_t *cluster, int16_t value) { return esp_matter::attribute::create(cluster, Thermostat::Attributes::OccupiedCoolingSetpoint::Id, @@ -1331,6 +1349,12 @@ attribute_t *create_min_setpoint_dead_band(cluster_t *cluster, int8_t value) ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_int8(value)); } +attribute_t *create_remote_sensing(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::RemoteSensing::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_bitmap8(value)); +} + attribute_t *create_control_sequence_of_operation(cluster_t *cluster, uint8_t value, uint8_t min, uint8_t max) { attribute_t *attribute = @@ -1381,10 +1405,53 @@ attribute_t *create_number_of_daily_transitions(cluster_t *cluster, uint8_t valu ATTRIBUTE_FLAG_NONE, esp_matter_enum8(value)); } +attribute_t *create_temperature_setpoint_hold(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::TemperatureSetpointHold::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_enum8(value)); +} + +attribute_t *create_temperature_setpoint_hold_duration(cluster_t *cluster, nullable value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::TemperatureSetpointHoldDuration::Id, + ATTRIBUTE_FLAG_NULLABLE | ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, + esp_matter_nullable_uint16(value)); +} + +attribute_t *create_thermostat_programming_operation_mode(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ThermostatProgrammingOperationMode::Id, + ATTRIBUTE_FLAG_WRITABLE, esp_matter_bitmap8(value)); +} + +attribute_t *create_thermostat_running_state(cluster_t *cluster, uint16_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ThermostatRunningState::Id, + ATTRIBUTE_FLAG_NONE, esp_matter_bitmap16(value)); +} + +attribute_t *create_setpoint_change_source(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::SetpointChangeSource::Id, + ATTRIBUTE_FLAG_NONE, esp_matter_uint8(value)); +} + +attribute_t *create_setpoint_change_amount(cluster_t *cluster, nullable value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::SetpointChangeAmount::Id, + ATTRIBUTE_FLAG_NONE, esp_matter_nullable_int16(value)); +} + +attribute_t *create_setpoint_change_source_timestamp(cluster_t *cluster, uint16_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::SetpointChangeSourceTimestamp::Id, + ATTRIBUTE_FLAG_NONE, esp_matter_uint16(value)); +} + attribute_t *create_occupied_setback(cluster_t *cluster, nullable value) { return esp_matter::attribute::create(cluster, Thermostat::Attributes::OccupiedSetback::Id, - ATTRIBUTE_FLAG_NULLABLE | ATTRIBUTE_FLAG_NONVOLATILE, + ATTRIBUTE_FLAG_NULLABLE | ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_nullable_uint8(value)); } @@ -1403,7 +1470,7 @@ attribute_t *create_occupied_setback_max(cluster_t *cluster, nullable v attribute_t *create_unoccupied_setback(cluster_t *cluster, nullable value) { return esp_matter::attribute::create(cluster, Thermostat::Attributes::UnoccupiedSetback::Id, - ATTRIBUTE_FLAG_NULLABLE | ATTRIBUTE_FLAG_NONVOLATILE, + ATTRIBUTE_FLAG_NULLABLE | ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_nullable_uint8(value)); } @@ -1419,6 +1486,60 @@ attribute_t *create_unoccupied_setback_max(cluster_t *cluster, nullable ATTRIBUTE_FLAG_NULLABLE, esp_matter_nullable_uint8(value)); } +attribute_t *create_emergency_heat_delta(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::EmergencyHeatDelta::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint8(value)); +} + +attribute_t *create_ac_type(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACType::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint8(value)); +} + +attribute_t *create_ac_capacity(cluster_t *cluster, uint16_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACCapacity::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint16(value)); +} + +attribute_t *create_ac_refrigerant_type(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACRefrigerantType::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint8(value)); +} + +attribute_t *create_ac_compressor_type(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACCompressorType::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint8(value)); +} + +attribute_t *create_ac_error_code(cluster_t *cluster, uint32_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACErrorCode::Id, + ATTRIBUTE_FLAG_WRITABLE, esp_matter_bitmap32(value)); +} + +attribute_t *create_ac_louver_position(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACLouverPosition::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint8(value)); +} + +attribute_t *create_ac_coil_temperature(cluster_t *cluster, nullable value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACCoilTemperature::Id, + ATTRIBUTE_FLAG_NULLABLE, esp_matter_nullable_int16(value)); +} + +attribute_t *create_ac_capacity_format(cluster_t *cluster, uint8_t value) +{ + return esp_matter::attribute::create(cluster, Thermostat::Attributes::ACCapacityformat::Id, + ATTRIBUTE_FLAG_NONVOLATILE | ATTRIBUTE_FLAG_WRITABLE, esp_matter_uint8(value)); +} + } /* attribute */ } /* thermostat */ diff --git a/components/esp_matter/esp_matter_attribute.h b/components/esp_matter/esp_matter_attribute.h index 1645f9709..c01f4ab62 100644 --- a/components/esp_matter/esp_matter_attribute.h +++ b/components/esp_matter/esp_matter_attribute.h @@ -319,6 +319,7 @@ attribute_t *create_percent_current(cluster_t *cluster, uint8_t value); namespace thermostat { namespace attribute { attribute_t *create_local_temperature(cluster_t *cluster, nullable value); +attribute_t *create_outdoor_temperature(cluster_t *cluster, nullable value); attribute_t *create_occupancy(cluster_t *cluster, uint8_t value); attribute_t *create_abs_min_heat_setpoint_limit(cluster_t *cluster, int16_t value); attribute_t *create_abs_max_heat_setpoint_limit(cluster_t *cluster, int16_t value); @@ -326,6 +327,8 @@ attribute_t *create_abs_min_cool_setpoint_limit(cluster_t *cluster, int16_t valu attribute_t *create_abs_max_cool_setpoint_limit(cluster_t *cluster, int16_t value); attribute_t *create_pi_cooling_demand(cluster_t *cluster, uint8_t value); attribute_t *create_pi_heating_demand(cluster_t *cluster, uint8_t value); +attribute_t *create_hvac_system_type_config(cluster_t *cluster, uint8_t value); +attribute_t *create_local_temperature_calibration(cluster_t *cluster, int8_t value); attribute_t *create_occupied_cooling_setpoint(cluster_t *cluster, int16_t value); attribute_t *create_occupied_heating_setpoint(cluster_t *cluster, int16_t value); attribute_t *create_unoccupied_cooling_setpoint(cluster_t *cluster, int16_t value); @@ -335,18 +338,35 @@ attribute_t *create_max_heat_setpoint_limit(cluster_t *cluster, int16_t value); attribute_t *create_min_cool_setpoint_limit(cluster_t *cluster, int16_t value); attribute_t *create_max_cool_setpoint_limit(cluster_t *cluster, int16_t value); attribute_t *create_min_setpoint_dead_band(cluster_t *cluster, int8_t value); +attribute_t *create_remote_sensing(cluster_t *cluster, uint8_t value); attribute_t *create_control_sequence_of_operation(cluster_t *cluster, uint8_t value, uint8_t min, uint8_t max); attribute_t *create_system_mode(cluster_t *cluster, uint8_t value, uint8_t min, uint8_t max); attribute_t *create_thermostat_running_mode(cluster_t *cluster, uint8_t value); attribute_t *create_start_of_week(cluster_t *cluster, uint8_t value); attribute_t *create_number_of_weekly_transitions(cluster_t *cluster, uint8_t value); attribute_t *create_number_of_daily_transitions(cluster_t *cluster, uint8_t value); +attribute_t *create_temperature_setpoint_hold(cluster_t *cluster, uint8_t value); +attribute_t *create_temperature_setpoint_hold_duration(cluster_t *cluster, nullable value); +attribute_t *create_thermostat_programming_operation_mode(cluster_t *cluster, uint8_t value); +attribute_t *create_thermostat_running_state(cluster_t *cluster, uint16_t value); +attribute_t *create_setpoint_change_source(cluster_t *cluster, uint8_t value); +attribute_t *create_setpoint_change_amount(cluster_t *cluster, nullable value); +attribute_t *create_setpoint_change_source_timestamp(cluster_t *cluster, uint16_t value); attribute_t *create_occupied_setback(cluster_t *cluster, nullable value); attribute_t *create_occupied_setback_min(cluster_t *cluster, nullable value); attribute_t *create_occupied_setback_max(cluster_t *cluster, nullable value); attribute_t *create_unoccupied_setback(cluster_t *cluster, nullable value); attribute_t *create_unoccupied_setback_min(cluster_t *cluster, nullable value); attribute_t *create_unoccupied_setback_max(cluster_t *cluster, nullable value); +attribute_t *create_emergency_heat_delta(cluster_t *cluster, uint8_t value); +attribute_t *create_ac_type(cluster_t *cluster, uint8_t value); +attribute_t *create_ac_capacity(cluster_t *cluster, uint16_t value); +attribute_t *create_ac_refrigerant_type(cluster_t *cluster, uint8_t value); +attribute_t *create_ac_compressor_type(cluster_t *cluster, uint8_t value); +attribute_t *create_ac_error_code(cluster_t *cluster, uint32_t value); +attribute_t *create_ac_louver_position(cluster_t *cluster, uint8_t value); +attribute_t *create_ac_coil_temperature(cluster_t *cluster, nullable value); +attribute_t *create_ac_capacity_format(cluster_t *cluster, uint8_t value); } /* attribute */ } /* thermostat */