Allow updating pid control params (#1115)

This commit is contained in:
Carlos Gustavo Sarmiento
2020-07-13 15:30:17 -05:00
committed by GitHub
parent e6f42fa6f0
commit 351ecf9bd4
6 changed files with 92 additions and 0 deletions
@@ -15,6 +15,9 @@ PID_CLIMATE_SENSOR_TYPES = {
'DERIVATIVE': PIDClimateSensorType.PID_SENSOR_TYPE_DERIVATIVE,
'HEAT': PIDClimateSensorType.PID_SENSOR_TYPE_HEAT,
'COOL': PIDClimateSensorType.PID_SENSOR_TYPE_COOL,
'KP': PIDClimateSensorType.PID_SENSOR_TYPE_KP,
'KI': PIDClimateSensorType.PID_SENSOR_TYPE_KI,
'KD': PIDClimateSensorType.PID_SENSOR_TYPE_KD,
}
CONF_CLIMATE_ID = 'climate_id'
@@ -35,6 +35,18 @@ void PIDClimateSensor::update_from_parent_() {
case PID_SENSOR_TYPE_COOL:
value = clamp(-this->parent_->get_output_value(), 0.0f, 1.0f);
break;
case PID_SENSOR_TYPE_KP:
value = this->parent_->get_kp();
this->publish_state(value);
return;
case PID_SENSOR_TYPE_KI:
value = this->parent_->get_ki();
this->publish_state(value);
return;
case PID_SENSOR_TYPE_KD:
value = this->parent_->get_kd();
this->publish_state(value);
return;
default:
value = NAN;
break;
@@ -14,6 +14,9 @@ enum PIDClimateSensorType {
PID_SENSOR_TYPE_DERIVATIVE,
PID_SENSOR_TYPE_HEAT,
PID_SENSOR_TYPE_COOL,
PID_SENSOR_TYPE_KP,
PID_SENSOR_TYPE_KI,
PID_SENSOR_TYPE_KD,
};
class PIDClimateSensor : public sensor::Sensor, public Component {