ESPHome 2025.5.0
Loading...
Searching...
No Matches
opentherm.h File Reference

Go to the source code of this file.

Data Structures

struct  esphome::opentherm::OpenthermData
 Structure to hold Opentherm data packet content. More...
 
struct  esphome::opentherm::OpenThermError
 
class  esphome::opentherm::OpenTherm
 Opentherm static class that supports either listening or sending Opentherm data packets in the same time. More...
 

Namespaces

namespace  esphome
 Providing packet encoding functions for exchanging data with a remote host.
 
namespace  esphome::opentherm
 

Enumerations

enum  esphome::opentherm::OperationMode {
  esphome::opentherm::IDLE = 0 , esphome::opentherm::LISTEN = 1 , esphome::opentherm::READ = 2 , esphome::opentherm::RECEIVED = 3 ,
  esphome::opentherm::WRITE = 4 , esphome::opentherm::SENT = 5 , esphome::opentherm::ERROR_PROTOCOL = 8 , esphome::opentherm::ERROR_TIMEOUT = 9 ,
  esphome::opentherm::ERROR_TIMER = 10
}
 
enum  esphome::opentherm::ProtocolErrorType {
  esphome::opentherm::NO_ERROR = 0 , esphome::opentherm::NO_TRANSITION = 1 , esphome::opentherm::INVALID_STOP_BIT = 2 , esphome::opentherm::PARITY_ERROR = 3 ,
  esphome::opentherm::NO_CHANGE_TOO_LONG = 4
}
 
enum  esphome::opentherm::TimerErrorType {
  esphome::opentherm::NO_TIMER_ERROR = 0 , esphome::opentherm::SET_ALARM_VALUE_ERROR = 1 , esphome::opentherm::TIMER_START_ERROR = 2 , esphome::opentherm::TIMER_PAUSE_ERROR = 3 ,
  esphome::opentherm::SET_COUNTER_VALUE_ERROR = 4
}
 
enum  esphome::opentherm::MessageType {
  esphome::opentherm::READ_DATA = 0 , esphome::opentherm::READ_ACK = 4 , esphome::opentherm::WRITE_DATA = 1 , esphome::opentherm::WRITE_ACK = 5 ,
  esphome::opentherm::INVALID_DATA = 2 , esphome::opentherm::DATA_INVALID = 6 , esphome::opentherm::UNKNOWN_DATAID = 7
}
 
enum  esphome::opentherm::MessageId {
  esphome::opentherm::STATUS = 0 , esphome::opentherm::CH_SETPOINT = 1 , esphome::opentherm::CONTROLLER_CONFIG = 2 , esphome::opentherm::DEVICE_CONFIG = 3 ,
  esphome::opentherm::COMMAND_CODE = 4 , esphome::opentherm::FAULT_FLAGS = 5 , esphome::opentherm::REMOTE = 6 , esphome::opentherm::COOLING_CONTROL = 7 ,
  esphome::opentherm::CH2_SETPOINT = 8 , esphome::opentherm::CH_SETPOINT_OVERRIDE = 9 , esphome::opentherm::TSP_COUNT = 10 , esphome::opentherm::TSP_COMMAND = 11 ,
  esphome::opentherm::FHB_SIZE = 12 , esphome::opentherm::FHB_COMMAND = 13 , esphome::opentherm::MAX_MODULATION_LEVEL = 14 , esphome::opentherm::MAX_BOILER_CAPACITY = 15 ,
  esphome::opentherm::ROOM_SETPOINT = 16 , esphome::opentherm::MODULATION_LEVEL = 17 , esphome::opentherm::CH_WATER_PRESSURE = 18 , esphome::opentherm::DHW_FLOW_RATE = 19 ,
  esphome::opentherm::DAY_TIME = 20 , esphome::opentherm::DATE = 21 , esphome::opentherm::YEAR = 22 , esphome::opentherm::ROOM_SETPOINT_CH2 = 23 ,
  esphome::opentherm::ROOM_TEMP = 24 , esphome::opentherm::FEED_TEMP = 25 , esphome::opentherm::DHW_TEMP = 26 , esphome::opentherm::OUTSIDE_TEMP = 27 ,
  esphome::opentherm::RETURN_WATER_TEMP = 28 , esphome::opentherm::SOLAR_STORE_TEMP = 29 , esphome::opentherm::SOLAR_COLLECT_TEMP = 30 , esphome::opentherm::FEED_TEMP_CH2 = 31 ,
  esphome::opentherm::DHW2_TEMP = 32 , esphome::opentherm::EXHAUST_TEMP = 33 , esphome::opentherm::FAN_SPEED = 35 , esphome::opentherm::FLAME_CURRENT = 36 ,
  esphome::opentherm::ROOM_TEMP_CH2 = 37 , esphome::opentherm::REL_HUMIDITY = 38 , esphome::opentherm::DHW_BOUNDS = 48 , esphome::opentherm::CH_BOUNDS = 49 ,
  esphome::opentherm::OTC_CURVE_BOUNDS = 50 , esphome::opentherm::DHW_SETPOINT = 56 , esphome::opentherm::MAX_CH_SETPOINT = 57 , esphome::opentherm::OTC_CURVE_RATIO = 58 ,
  esphome::opentherm::HVAC_STATUS = 70 , esphome::opentherm::REL_VENT_SETPOINT = 71 , esphome::opentherm::DEVICE_VENT = 74 , esphome::opentherm::HVAC_VER_ID = 75 ,
  esphome::opentherm::REL_VENTILATION = 77 , esphome::opentherm::REL_HUMID_EXHAUST = 78 , esphome::opentherm::EXHAUST_CO2 = 79 , esphome::opentherm::SUPPLY_INLET_TEMP = 80 ,
  esphome::opentherm::SUPPLY_OUTLET_TEMP = 81 , esphome::opentherm::EXHAUST_INLET_TEMP = 82 , esphome::opentherm::EXHAUST_OUTLET_TEMP = 83 , esphome::opentherm::EXHAUST_FAN_SPEED = 84 ,
  esphome::opentherm::SUPPLY_FAN_SPEED = 85 , esphome::opentherm::REMOTE_VENTILATION_PARAM = 86 , esphome::opentherm::NOM_REL_VENTILATION = 87 , esphome::opentherm::HVAC_NUM_TSP = 88 ,
  esphome::opentherm::HVAC_IDX_TSP = 89 , esphome::opentherm::HVAC_FHB_SIZE = 90 , esphome::opentherm::HVAC_FHB_IDX = 91 , esphome::opentherm::RF_SIGNAL = 98 ,
  esphome::opentherm::DHW_MODE = 99 , esphome::opentherm::OVERRIDE_FUNC = 100 , esphome::opentherm::SOLAR_MODE_FLAGS = 101 , esphome::opentherm::SOLAR_ASF = 102 ,
  esphome::opentherm::SOLAR_VERSION_ID = 103 , esphome::opentherm::SOLAR_PRODUCT_ID = 104 , esphome::opentherm::SOLAR_NUM_TSP = 105 , esphome::opentherm::SOLAR_IDX_TSP = 106 ,
  esphome::opentherm::SOLAR_FHB_SIZE = 107 , esphome::opentherm::SOLAR_FHB_IDX = 108 , esphome::opentherm::SOLAR_STARTS = 109 , esphome::opentherm::SOLAR_HOURS = 110 ,
  esphome::opentherm::SOLAR_ENERGY = 111 , esphome::opentherm::SOLAR_TOTAL_ENERGY = 112 , esphome::opentherm::FAILED_BURNER_STARTS = 113 , esphome::opentherm::BURNER_FLAME_LOW = 114 ,
  esphome::opentherm::OEM_DIAGNOSTIC = 115 , esphome::opentherm::BURNER_STARTS = 116 , esphome::opentherm::CH_PUMP_STARTS = 117 , esphome::opentherm::DHW_PUMP_STARTS = 118 ,
  esphome::opentherm::DHW_BURNER_STARTS = 119 , esphome::opentherm::BURNER_HOURS = 120 , esphome::opentherm::CH_PUMP_HOURS = 121 , esphome::opentherm::DHW_PUMP_HOURS = 122 ,
  esphome::opentherm::DHW_BURNER_HOURS = 123 , esphome::opentherm::OT_VERSION_CONTROLLER = 124 , esphome::opentherm::OT_VERSION_DEVICE = 125 , esphome::opentherm::VERSION_CONTROLLER = 126 ,
  esphome::opentherm::VERSION_DEVICE = 127
}
 
enum  esphome::opentherm::BitPositions { esphome::opentherm::STOP_BIT = 33 }
 

Functions

template<class T >
constexpr T esphome::opentherm::read_bit (T value, uint8_t bit)
 
template<class T >
constexpr T esphome::opentherm::set_bit (T value, uint8_t bit)
 
template<class T >
constexpr T esphome::opentherm::clear_bit (T value, uint8_t bit)
 
template<class T >
constexpr T esphome::opentherm::write_bit (T value, uint8_t bit, uint8_t bit_value)