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