Skip to content

Commit 7baa76a

Browse files
committed
DHW control functions
1 parent 908d43d commit 7baa76a

File tree

5 files changed

+25
-3
lines changed

5 files changed

+25
-3
lines changed

examples/OpenThermMaster_Demo/OpenThermMaster_Demo.ino

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,15 @@ void loop()
6666
ot.setBoilerTemperature(64);
6767

6868
//Get Boiler Temperature
69-
float temperature = ot.getBoilerTemperature();
70-
Serial.println("Boiler temperature is " + String(temperature) + " degrees C");
69+
float ch_temperature = ot.getBoilerTemperature();
70+
Serial.println("CH temperature is " + String(ch_temperature) + " degrees C");
71+
72+
//Set DHW setpoint to 40 degrees C
73+
ot.setDHWSetpoint(40);
74+
75+
//Get DHW Temperature
76+
float dhw_temperature = ot.getDHWTemperature();
77+
Serial.println("DHW temperature is " + String(dhw_temperature) + " degrees C");
7178

7279
Serial.println();
7380
delay(1000);

keywords.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ doSomething KEYWORD2
3030
setBoilerStatus KEYWORD2
3131
setBoilerTemperature KEYWORD2
3232
getBoilerTemperature KEYWORD2
33+
setDHWSetpoint KEYWORD2
34+
getDHWTemperature KEYWORD2
3335

3436
#######################################
3537
# Instances (KEYWORD2)

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=OpenTherm Library
2-
version=1.1.2
2+
version=1.1.3
33
author=Ihor Melnyk <ihor.melnyk@gmail.com>
44
maintainer=Ihor Melnyk <ihor.melnyk@gmail.com>
55
sentence=OpenTherm Library for HVAC system control communication using Arduino and ESP8266 hardware.

src/OpenTherm.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,17 @@ float OpenTherm::getReturnTemperature() {
377377
return isValidResponse(response) ? getFloat(response) : 0;
378378
}
379379

380+
bool OpenTherm::setDHWSetpoint(float temperature) {
381+
unsigned int data = temperatureToData(temperature);
382+
unsigned long response = sendRequest(buildRequest(OpenThermMessageType::WRITE_DATA, OpenThermMessageID::TdhwSet, data));
383+
return isValidResponse(response);
384+
}
385+
386+
float OpenTherm::getDHWTemperature() {
387+
unsigned long response = sendRequest(buildRequest(OpenThermMessageType::READ_DATA, OpenThermMessageID::Tdhw, 0));
388+
return isValidResponse(response) ? getFloat(response) : 0;
389+
}
390+
380391
float OpenTherm::getModulation() {
381392
unsigned long response = sendRequest(buildRequest(OpenThermRequestType::READ, OpenThermMessageID::RelModLevel, 0));
382393
return isValidResponse(response) ? getFloat(response) : 0;

src/OpenTherm.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ class OpenTherm
157157
bool setBoilerTemperature(float temperature);
158158
float getBoilerTemperature();
159159
float getReturnTemperature();
160+
bool setDHWSetpoint(float temperature);
161+
float getDHWTemperature();
160162
float getModulation();
161163
float getPressure();
162164
unsigned char getFault();

0 commit comments

Comments
 (0)