Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
proto_dhw.cpp File Reference

Pure codec for a domestic hot water heater: its family-0x00 registers and its target temperature. More...

#include "proto_dhw.h"
#include "proto_constants.h"
#include "proto_heating_profiles.h"
#include "proto_sizes.h"
Include dependency graph for proto_dhw.cpp:

Go to the source code of this file.

Namespaces

namespace  esphome
namespace  esphome::home_io_control

Functions

size_t esphome::home_io_control::encode_dhw_register_read (uint8_t index, uint8_t out[HEATING_PAYLOAD_MAX_SIZE])
 Encode a read of one family-0x00 register: 0C 60 00 <index>.
size_t esphome::home_io_control::encode_dhw_mode_write (uint8_t mode, uint8_t out[HEATING_PAYLOAD_MAX_SIZE])
 Encode a write of the operating mode: 0C 61 00 06 <mode>.
const DhwOperatingFeatureWire & esphome::home_io_control::dhw_operating_feature_wire (DhwOperatingFeature which)
 The wire facts of which: the one place each feature's FP15 bit, FP16 field and duration live.
size_t esphome::home_io_control::encode_dhw_duration_write (DhwOperatingFeature which, uint8_t out[HEATING_PAYLOAD_MAX_SIZE])
 Encode the duration write a start of which sends before its FP16 EXECUTE: 0C 61 00 00 01 for boost (DHW_BOOST_START_DURATION), 0C 61 00 05 FF for away (DHW_AWAY_UNTIL_TURNED_OFF).
bool esphome::home_io_control::encode_dhw_target (float celsius, uint16_t &main_parameter)
 Encode a target temperature as a main parameter over DHW_TARGET_MIN_C..DHW_TARGET_MAX_C.
bool esphome::home_io_control::decode_dhw_register_reply (const IoFrame &reply, uint8_t index, const uint8_t *&value, size_t &len)
 The value bytes of a reply to a family-0x00 register read.
bool esphome::home_io_control::decode_dhw_water_temperature (const uint8_t *value, size_t len, float &celsius)
 Water temperature from the value of register 0x0017: signed 16-bit big-endian tenths.
bool esphome::home_io_control::decode_dhw_mode (const uint8_t *value, size_t len, DhwMode &mode)
 Operating mode from the value of register 0x0006.
bool esphome::home_io_control::decode_dhw_heating_state (const uint8_t *value, size_t len, DhwHeatingState &state)
 What is heating, from the value of register 0x0021.
bool esphome::home_io_control::decode_dhw_energy_wh (const uint8_t *value, size_t len, uint32_t &wh)
 Energy since installation from the value of register 0x0004: unsigned 32-bit big-endian, Wh.
bool esphome::home_io_control::decode_dhw_duration (const uint8_t *value, size_t len, uint8_t &duration)
 A duration from the value of register 0x0000 or 0x0005: one byte.
bool esphome::home_io_control::decode_dhw_target (uint16_t main_parameter, float &celsius)
 Target temperature from a main parameter.
bool esphome::home_io_control::decode_dhw_status_target (const IoFrame &reply, float &celsius)
 Target temperature from a status reply (CMD_PRIVATE_RESP) of a domestic hot water heater.
bool esphome::home_io_control::decode_dhw_operating_status (const IoFrame &reply, DhwOperatingStatus &status)
 Capabilities and operating-mode state from the reply to the status read DHW_STATUS_FPI1 / DHW_STATUS_FPI2.

Detailed Description

Pure codec for a domestic hot water heater: its family-0x00 registers and its target temperature.

Definition in file proto_dhw.cpp.