Commit bcf05dfed65c172f07f4906bad9f0a8535c57ce8
1 parent
2ef2e0f7
Minor textual changes in README.md
Showing
1 changed file
with
23 additions
and
7 deletions
README.md
| @@ -10,9 +10,9 @@ To connect the boiler, you will need an [OpenTherm controller](https://www.tindi | @@ -10,9 +10,9 @@ To connect the boiler, you will need an [OpenTherm controller](https://www.tindi | ||
| 10 | ## Installation | 10 | ## Installation |
| 11 | - Download the library from [GitHub](https://github.com/Jeroen88/EasyOpenTherm/archive/refs/heads/main.zip) | 11 | - Download the library from [GitHub](https://github.com/Jeroen88/EasyOpenTherm/archive/refs/heads/main.zip) |
| 12 | - Install the library named EasyOpenTherm-main.zip using the Arduino IDE library manager | 12 | - Install the library named EasyOpenTherm-main.zip using the Arduino IDE library manager |
| 13 | -- Connect the pins marked 'OT' of the [OpenTherm controller](https://www.tindie.com/products/jeroen88) with two wires to the boiler. You can use the existing wires from your current thermostat. The order of the wires is not important, they are interchangable | 13 | +- Connect the pins marked 'OT' of the [OpenTherm controller](https://www.tindie.com/products/jeroen88) with two wires to the boiler. You can use the existing wires from your current thermostat. The order of the wires is not important, they are interchangeable |
| 14 | - Connect the pins marked '3v3' and 'GND' to the ESP32 pins '3v3; and 'GND' | 14 | - Connect the pins marked '3v3' and 'GND' to the ESP32 pins '3v3; and 'GND' |
| 15 | -- Connect the pin marked 'RxD' to a pin supporting OUTPUT of the ESP32 and the pin marked 'TxD'to a pin supporting interrupts. The pins you use should be defined in the program (see below) | 15 | +- Connect the pin marked 'RxD' to a pin supporting OUTPUT of the ESP32 and the pin marked 'TxD' to a pin supporting interrupts. The pins you use should be defined in the program (see below) |
| 16 | 16 | ||
| 17 | ## Usage | 17 | ## Usage |
| 18 | ```cpp | 18 | ```cpp |
| @@ -23,12 +23,12 @@ Select two free GPIO pins, one to send data to the boiler and one to receive dat | @@ -23,12 +23,12 @@ Select two free GPIO pins, one to send data to the boiler and one to receive dat | ||
| 23 | #define OT_RX_PIN (34) | 23 | #define OT_RX_PIN (34) |
| 24 | #define OT_TX_PIN (17) | 24 | #define OT_TX_PIN (17) |
| 25 | ``` | 25 | ``` |
| 26 | -In this case GPIO34 is used for receiving and GPIO17 is used for sending data. Note that the Rx pin is connected to the TxD pin of the [OpenTherm controller](https://www.tindie.com/products/jeroen88) and vice versa! | 26 | +In this case GPIO34 is used for receiving and GPIO17 is used for sending data. Note that the *Rx* pin is connected to the *TxD* pin of the [OpenTherm controller](https://www.tindie.com/products/jeroen88) and vice versa! |
| 27 | Create an OpenTherm class instance | 27 | Create an OpenTherm class instance |
| 28 | ```cpp | 28 | ```cpp |
| 29 | OpenTherm thermostat(OT_RX_PIN, OT_TX_PIN); | 29 | OpenTherm thermostat(OT_RX_PIN, OT_TX_PIN); |
| 30 | ``` | 30 | ``` |
| 31 | -Make sure that only one instance of this object is alive at a time. So make it global or ```static``` like in the examples | 31 | +Make sure that only one instance of this object is alive at a time. So make it global or ```static``` like in the examples. |
| 32 | Start communicating with the boiler (or HVAC) e.g. request activation of the services of the boiler and request it's status flags | 32 | Start communicating with the boiler (or HVAC) e.g. request activation of the services of the boiler and request it's status flags |
| 33 | ```cpp | 33 | ```cpp |
| 34 | uint8_t primaryFlags = uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_DHW_ENABLE) | uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_CH_ENABLE) | uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_COOLING_ENABLE) | uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_OTC_ENABLE); | 34 | uint8_t primaryFlags = uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_DHW_ENABLE) | uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_CH_ENABLE) | uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_COOLING_ENABLE) | uint8_t(OpenTherm::STATUS_FLAGS::PRIMARY_OTC_ENABLE); |
| @@ -36,7 +36,7 @@ uint8_t statusFlags; | @@ -36,7 +36,7 @@ uint8_t statusFlags; | ||
| 36 | thermostat.status(primaryFlags, statusFlags); | 36 | thermostat.status(primaryFlags, statusFlags); |
| 37 | ``` | 37 | ``` |
| 38 | This command will return _true_ on success and _false_ otherwise | 38 | This command will return _true_ on success and _false_ otherwise |
| 39 | -All other interaction with the boiler is done using ```read()```, ```write()``` or ```readWrite()``` functions, e.g. | 39 | +All other interaction with the boiler is done using the ```read()```, ```write()``` or ```readWrite()``` functions, e.g. |
| 40 | ```cpp | 40 | ```cpp |
| 41 | thermostat.write(OpenTherm::WRITE_DATA_ID::CONTROL_SETPOINT_CH, CH_SETPOINT) | 41 | thermostat.write(OpenTherm::WRITE_DATA_ID::CONTROL_SETPOINT_CH, CH_SETPOINT) |
| 42 | ``` | 42 | ``` |
| @@ -46,8 +46,24 @@ All these functions take an OpenTherm DATA-ID as _first_ parameter. The DATA-ID | @@ -46,8 +46,24 @@ All these functions take an OpenTherm DATA-ID as _first_ parameter. The DATA-ID | ||
| 46 | - float marked as f8.8 (because actually it is a sint_16 / 256) | 46 | - float marked as f8.8 (because actually it is a sint_16 / 256) |
| 47 | - Two times a uint8_t marked as flag8, u8 or s8. If it is a flag the meaning of bits is defined in an enum class with a name inding in _FLAG, e.g. ```enum class STATUS_FLAGS``` | 47 | - Two times a uint8_t marked as flag8, u8 or s8. If it is a flag the meaning of bits is defined in an enum class with a name inding in _FLAG, e.g. ```enum class STATUS_FLAGS``` |
| 48 | 48 | ||
| 49 | +Remember: the thermostat is always the _primary_ device and the boiler always the _secondary_. | ||
| 50 | + | ||
| 51 | +## Glossary | ||
| 52 | +- _primary_: the device issuing the requests, in this context also called _thermostat_ | ||
| 53 | +- _secondary_: the device handling the requests and sending responses, also called _boiler_ or _HVAC_ | ||
| 54 | +- _CH_: Central Heating | ||
| 55 | +- _DHW_: Domestic Hot Water | ||
| 56 | +- _OTC_: Outside Temperature Compensation | ||
| 57 | +- _HVAC_: Heating, Ventilation and Air Conditioning | ||
| 58 | +- _setpoint_: the desired value of a parameter, e.g. the desired temperature of the temperature of the water of the boiler is called CH (Central Heating) setpoint | ||
| 59 | +- _on/off_: a non digital control mode switching the boiler on and off (by shortening the thermostat wires and opening them) | ||
| 60 | +- _ modulation_: a technique of lowering the flame when less power is needed | ||
| 61 | +- _flow_: water leaving the boiler | ||
| 62 | +- _return_: water returning to the boiler | ||
| 63 | + | ||
| 64 | + | ||
| 49 | ## License | 65 | ## License |
| 50 | -© 2022 Jeroen Döll, licensed under the [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.html) | 66 | +© 2022 Jeroen Döll, licensed under the [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.html). Enjoy using the library, feedback is wellcome! |
| 67 | + | ||
| 51 | 68 | ||
| 52 | 69 | ||
| 53 | -Remember: the thermostat is always the _primary_ device and the boiler always the _secondary_. |