Skip to content

Commit

Permalink
DHW control functions
Browse files Browse the repository at this point in the history
  • Loading branch information
ihormelnyk committed Jan 30, 2021
1 parent 908d43d commit 7baa76a
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 3 deletions.
11 changes: 9 additions & 2 deletions examples/OpenThermMaster_Demo/OpenThermMaster_Demo.ino
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,15 @@ void loop()
ot.setBoilerTemperature(64);

//Get Boiler Temperature
float temperature = ot.getBoilerTemperature();
Serial.println("Boiler temperature is " + String(temperature) + " degrees C");
float ch_temperature = ot.getBoilerTemperature();
Serial.println("CH temperature is " + String(ch_temperature) + " degrees C");

//Set DHW setpoint to 40 degrees C
ot.setDHWSetpoint(40);

//Get DHW Temperature
float dhw_temperature = ot.getDHWTemperature();
Serial.println("DHW temperature is " + String(dhw_temperature) + " degrees C");

Serial.println();
delay(1000);
Expand Down
2 changes: 2 additions & 0 deletions keywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ doSomething KEYWORD2
setBoilerStatus KEYWORD2
setBoilerTemperature KEYWORD2
getBoilerTemperature KEYWORD2
setDHWSetpoint KEYWORD2
getDHWTemperature KEYWORD2

#######################################
# Instances (KEYWORD2)
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=OpenTherm Library
version=1.1.2
version=1.1.3
author=Ihor Melnyk <[email protected]>
maintainer=Ihor Melnyk <[email protected]>
sentence=OpenTherm Library for HVAC system control communication using Arduino and ESP8266 hardware.
Expand Down
11 changes: 11 additions & 0 deletions src/OpenTherm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,17 @@ float OpenTherm::getReturnTemperature() {
return isValidResponse(response) ? getFloat(response) : 0;
}

bool OpenTherm::setDHWSetpoint(float temperature) {
unsigned int data = temperatureToData(temperature);
unsigned long response = sendRequest(buildRequest(OpenThermMessageType::WRITE_DATA, OpenThermMessageID::TdhwSet, data));
return isValidResponse(response);
}

float OpenTherm::getDHWTemperature() {
unsigned long response = sendRequest(buildRequest(OpenThermMessageType::READ_DATA, OpenThermMessageID::Tdhw, 0));
return isValidResponse(response) ? getFloat(response) : 0;
}

float OpenTherm::getModulation() {
unsigned long response = sendRequest(buildRequest(OpenThermRequestType::READ, OpenThermMessageID::RelModLevel, 0));
return isValidResponse(response) ? getFloat(response) : 0;
Expand Down
2 changes: 2 additions & 0 deletions src/OpenTherm.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ class OpenTherm
bool setBoilerTemperature(float temperature);
float getBoilerTemperature();
float getReturnTemperature();
bool setDHWSetpoint(float temperature);
float getDHWTemperature();
float getModulation();
float getPressure();
unsigned char getFault();
Expand Down

0 comments on commit 7baa76a

Please sign in to comment.