ESPHome 2026.9.0-dev
Loading...
Searching...
No Matches
tuya_water_heater.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome::tuya {
8
10 public:
11 void setup() override;
12 void dump_config() override;
13
14 void set_tuya_parent(Tuya *parent) { this->parent_ = parent; }
15
16 void set_switch_id(uint8_t switch_id) { this->switch_id_ = switch_id; }
17 void set_target_temperature_id(uint8_t target_temperature_id) {
18 this->target_temperature_id_ = target_temperature_id;
19 }
20 void set_current_temperature_id(uint8_t current_temperature_id) {
21 this->current_temperature_id_ = current_temperature_id;
22 }
23 void set_target_temperature_multiplier(float multiplier) { this->target_temperature_multiplier_ = multiplier; }
24 void set_current_temperature_multiplier(float multiplier) { this->current_temperature_multiplier_ = multiplier; }
25
26 void set_mode_id(uint8_t mode_id) { this->mode_id_ = mode_id; }
27 void set_eco_value(uint8_t value) { this->eco_value_ = value; }
28 void set_electric_value(uint8_t value) { this->electric_value_ = value; }
29 void set_performance_value(uint8_t value) { this->performance_value_ = value; }
30 void set_high_demand_value(uint8_t value) { this->high_demand_value_ = value; }
31 void set_heat_pump_value(uint8_t value) { this->heat_pump_value_ = value; }
32 void set_gas_value(uint8_t value) { this->gas_value_ = value; }
33
34 void set_supported_modes(const std::initializer_list<water_heater::WaterHeaterMode> &modes) {
35 this->supported_modes_ = modes;
36 }
37
39
40 protected:
41 void control(const water_heater::WaterHeaterCall &call) override;
43
46 bool mode_from_value_(uint8_t value, water_heater::WaterHeaterMode &mode) const;
48 bool value_from_mode_(water_heater::WaterHeaterMode mode, uint8_t &value) const;
49
50 Tuya *parent_{nullptr};
51 optional<uint8_t> switch_id_{};
52 optional<uint8_t> target_temperature_id_{};
53 optional<uint8_t> current_temperature_id_{};
54 optional<uint8_t> mode_id_{};
55 optional<uint8_t> eco_value_{};
56 optional<uint8_t> electric_value_{};
57 optional<uint8_t> performance_value_{};
58 optional<uint8_t> high_demand_value_{};
59 optional<uint8_t> heat_pump_value_{};
60 optional<uint8_t> gas_value_{};
65 optional<water_heater::WaterHeaterMode> last_reported_mode_{};
66 bool is_on_{false};
67
71};
72
73} // namespace esphome::tuya
BedjetMode mode
BedJet operating mode.
water_heater::WaterHeaterTraits traits() override
optional< uint8_t > target_temperature_id_
void set_target_temperature_id(uint8_t target_temperature_id)
optional< uint8_t > electric_value_
optional< uint8_t > performance_value_
optional< water_heater::WaterHeaterMode > last_reported_mode_
Last non-OFF mode reported by the mode datapoint, applied when the heater turns on.
void set_current_temperature_multiplier(float multiplier)
void control(const water_heater::WaterHeaterCall &call) override
void set_switch_id(uint8_t switch_id)
void set_supported_modes(const std::initializer_list< water_heater::WaterHeaterMode > &modes)
void set_mode_id(uint8_t mode_id)
void set_performance_value(uint8_t value)
void set_high_demand_value(uint8_t value)
void set_current_temperature_id(uint8_t current_temperature_id)
optional< uint8_t > high_demand_value_
water_heater::WaterHeaterModeMask supported_modes_
void set_electric_value(uint8_t value)
bool value_from_mode_(water_heater::WaterHeaterMode mode, uint8_t &value) const
Map a WaterHeaterMode to its configured Tuya enum value. Returns true when a mapping exists.
water_heater::WaterHeaterMode default_on_mode_() const
The mode to show when the heater is on but no mode datapoint value is known yet: the last reported mo...
water_heater::WaterHeaterCallInternal make_call() override
bool mode_from_value_(uint8_t value, water_heater::WaterHeaterMode &mode) const
Map a Tuya mode datapoint enum value to a WaterHeaterMode.
optional< uint8_t > heat_pump_value_
optional< uint8_t > current_temperature_id_
void set_heat_pump_value(uint8_t value)
void set_target_temperature_multiplier(float multiplier)