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,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 | } |