Commit 456096edddf77d7627f652ff790252b486493394
1 parent
6b9f6a53
Minor changes: float format and addded to inform boiler of room setpoint temperature
Showing
1 changed file
with
12 additions
and
4 deletions
examples/Basic_Thermostat/Basic_Thermostat.ino
| ... | ... | @@ -122,16 +122,16 @@ void loop() { |
| 122 | 122 | |
| 123 | 123 | |
| 124 | 124 | time_t timestamp = millis(); |
| 125 | - if(timestamp - previousTimestamp > 1000) { | |
| 125 | + if(timestamp - previousTimestamp >= 1000) { | |
| 126 | 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 | 129 | float dt = (timestamp - previousTimestamp) / 1000.0; // Time between measurements in seconds |
| 130 | 130 | float CHSetpoint = pid(ROOM_TEMPERATURE_SETPOINT, roomTemperature, previousTemperature, ierr, dt); |
| 131 | 131 | previousTimestamp = timestamp; |
| 132 | 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 | 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 | 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 | 181 | // Tell the boiler the current room temperature (optional?) |
| 174 | 182 | // This is done by writing this value to DATA-ID OpenTherm::WRITE_DATA_ID::ROOM_TEMPERATURE |
| 175 | 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 | 185 | } else { |
| 178 | 186 | Serial.println("Failed to set room temperature to sensor value"); |
| 179 | 187 | } | ... | ... |