ESPHome
2026.11.0-dev
Loading...
Searching...
No Matches
esphome
components
duco
number
number.cpp
Go to the documentation of this file.
1
#include "
number.h
"
2
3
#include <cmath>
4
5
namespace
esphome::duco
{
6
7
static
constexpr
uint8_t PARAMETER_COMFORT_TEMPERATURE = 0x12;
8
static
constexpr
uint8_t GROUP_COMFORT_TEMPERATURE = 0x0a;
9
10
void
DucoComfortTemperature::update
() {
11
this->
parent_
->send(
this
, FUNCTION_PARAMETER, {0x00, PARAMETER_COMFORT_TEMPERATURE, GROUP_COMFORT_TEMPERATURE});
12
}
13
14
void
DucoComfortTemperature::receive_response
(
const
DucoMessage
&
message
) {
15
// Reads and writes get the same answer: one byte in tenths of a degree, below 10.0 is invalid
16
if
(
message
.size >= 4 &&
message
.data[3] >= 100)
17
this->
publish_state
(message.
data
[3] / 10.0f);
18
}
19
20
void
DucoComfortTemperature::control
(
float
value) {
21
const
auto
tenths =
static_cast<
uint8_t
>
(lroundf(value * 10.0f));
22
this->
parent_
->send(
this
, FUNCTION_PARAMETER,
23
{0x01, PARAMETER_COMFORT_TEMPERATURE, GROUP_COMFORT_TEMPERATURE, tenths, 0x00, 0x00, 0x00});
24
}
25
26
}
// namespace esphome::duco
esphome::Parented< Duco >::parent_
Duco * parent_
Definition
helpers.h:2084
esphome::duco::DucoComfortTemperature::update
void update() override
Definition
number.cpp:10
esphome::duco::DucoComfortTemperature::receive_response
void receive_response(const DucoMessage &message) override
Definition
number.cpp:14
esphome::duco::DucoComfortTemperature::control
void control(float value) override
Definition
number.cpp:20
esphome::number::Number::publish_state
void publish_state(float state)
Definition
number.cpp:20
message
const LogString * message
Definition
component.cpp:35
number.h
esphome::duco
Definition
duco.cpp:6
esphome::duco::DucoMessage
A received message; data points into the receive buffer and is valid only during the callback.
Definition
duco.h:22
esphome::duco::DucoMessage::data
const uint8_t * data
Definition
duco.h:24
Generated by
1.12.0