Commit 456096edddf77d7627f652ff790252b486493394

Authored by Jeroen88
1 parent 6b9f6a53

Minor changes: float format and addded to inform boiler of room setpoint temperature

examples/Basic_Thermostat/Basic_Thermostat.ino
@@ -122,16 +122,16 @@ void loop() { @@ -122,16 +122,16 @@ void loop() {
122 122
123 123
124 time_t timestamp = millis(); 124 time_t timestamp = millis();
125 - if(timestamp - previousTimestamp > 1000) { 125 + if(timestamp - previousTimestamp >= 1000) {
126 float roomTemperature = bme.readTemperature(); // Read the sensor to get the current room temperature 126 float roomTemperature = bme.readTemperature(); // Read the sensor to get the current room temperature
127 - Serial.printf("Room temperature is %.02f *C, room temperature setpoint is %.02f *C\n", roomTemperature, ROOM_TEMPERATURE_SETPOINT); 127 + Serial.printf("Room temperature is %.01f *C, room temperature setpoint is %.01f *C\n", roomTemperature, ROOM_TEMPERATURE_SETPOINT);
128 128
129 float dt = (timestamp - previousTimestamp) / 1000.0; // Time between measurements in seconds 129 float dt = (timestamp - previousTimestamp) / 1000.0; // Time between measurements in seconds
130 float CHSetpoint = pid(ROOM_TEMPERATURE_SETPOINT, roomTemperature, previousTemperature, ierr, dt); 130 float CHSetpoint = pid(ROOM_TEMPERATURE_SETPOINT, roomTemperature, previousTemperature, ierr, dt);
131 previousTimestamp = timestamp; 131 previousTimestamp = timestamp;
132 previousTemperature = roomTemperature; 132 previousTemperature = roomTemperature;
133 133
134 - Serial.printf("New CH setpoint computed by PID is %.02f\n", CHSetpoint); 134 + Serial.printf("New CH setpoint computed by PID is %.01f\n", CHSetpoint);
135 135
136 136
137 // First try to connect to the boiler to read it's capabilities. The boiler returns an 8 bit slaveFlags and each bit has a meaning. The bits are defined in enum class OpenTherm::CONFIGURATION_FLAGS 137 // First try to connect to the boiler to read it's capabilities. The boiler returns an 8 bit slaveFlags and each bit has a meaning. The bits are defined in enum class OpenTherm::CONFIGURATION_FLAGS
@@ -170,10 +170,18 @@ void loop() { @@ -170,10 +170,18 @@ void loop() {
170 Serial.printf("Failed to set CH temperature setpoint to %.01f *C\n", CHSetpoint); 170 Serial.printf("Failed to set CH temperature setpoint to %.01f *C\n", CHSetpoint);
171 } 171 }
172 172
  173 + // Tell the boiler the desired room temperature (room temperature setpoint, optional?)
  174 + // This is done by writing this value to DATA-ID OpenTherm::WRITE_DATA_ID::ROOM_TEMPERATURE_SETPOINT
  175 + if(master.write(OpenTherm::WRITE_DATA_ID::ROOM_SETPOINT, ROOM_TEMPERATURE_SETPOINT)) {
  176 + Serial.printf("Room temperature setpoint set to %.01f *C\n", ROOM_TEMPERATURE_SETPOINT);
  177 + } else {
  178 + Serial.println("Failed to set room temperature setpoint");
  179 + }
  180 +
173 // Tell the boiler the current room temperature (optional?) 181 // Tell the boiler the current room temperature (optional?)
174 // This is done by writing this value to DATA-ID OpenTherm::WRITE_DATA_ID::ROOM_TEMPERATURE 182 // This is done by writing this value to DATA-ID OpenTherm::WRITE_DATA_ID::ROOM_TEMPERATURE
175 if(thermostat.write(OpenTherm::WRITE_DATA_ID::ROOM_TEMPERATURE, roomTemperature)) { 183 if(thermostat.write(OpenTherm::WRITE_DATA_ID::ROOM_TEMPERATURE, roomTemperature)) {
176 - Serial.printf("Room temperature set to %.02f *C\n", roomTemperature); 184 + Serial.printf("Room temperature set to %.01f *C\n", roomTemperature);
177 } else { 185 } else {
178 Serial.println("Failed to set room temperature to sensor value"); 186 Serial.println("Failed to set room temperature to sensor value");
179 } 187 }