26template<
typename List>
inline bool vector_contains(
const List &vec,
const char *value,
size_t len) {
27 for (
const char *item : vec) {
28 if (strncmp(item, value,
len) == 0 && item[
len] ==
'\0')
34template<
typename List>
inline bool vector_contains(
const List &vec,
const char *value) {
39template<
typename List>
inline const char *
vector_find(
const List &vec,
const char *value,
size_t len) {
40 for (
const char *item : vec) {
41 if (strncmp(item, value,
len) == 0 && item[
len] ==
'\0')
213static_assert(std::is_trivially_copyable_v<ClimateTraits>,
"ClimateTraits is copied on every traits() call");
BedjetMode mode
BedJet operating mode.
constexpr bool empty() const
constexpr size_t count(ValueType value) const
Check if the set contains a specific value (std::set compatibility) Returns 1 if present,...
constexpr void insert(ValueType value)
Add a single value to the set (std::set compatibility)
constexpr void erase(ValueType value)
Remove a value from the set (std::set compatibility)
constexpr bool empty() const
Check if the set is empty.
ClimateDevice - This is the base class for all climate integrations.
const ClimateCustomModes & get_supported_custom_presets() const
Empty when the climate has no custom presets. Set them on the Climate entity.
void set_visual_max_temperature(float visual_max_temperature)
float visual_min_temperature_
void add_feature_flags(uint32_t feature_flags)
void add_supported_fan_mode(ClimateFanMode mode)
const ClimatePresetMask & get_supported_presets() const
float get_visual_min_humidity() const
const ClimateCustomModes & get_supported_custom_fan_modes() const
Empty when the climate has no custom fan modes. Set them on the Climate entity.
bool get_supports_swing_modes() const
const ClimateSwingModeMask & get_supported_swing_modes() const
void set_visual_temperature_step(float temperature_step)
void add_supported_preset(ClimatePreset preset)
void set_visual_target_temperature_step(float temperature_step)
float get_visual_current_temperature_step() const
void set_supported_presets(ClimatePresetMask presets)
void set_supported_swing_modes(ClimateSwingModeMask modes)
void set_visual_min_temperature(float visual_min_temperature)
bool get_supports_fan_modes() const
bool supports_mode(ClimateMode mode) const
int8_t get_target_temperature_accuracy_decimals() const
const ClimateFanModeMask & get_supported_fan_modes() const
float get_visual_target_temperature_step() const
void set_visual_min_humidity(float visual_min_humidity)
float visual_target_temperature_step_
void set_temperature_unit(TemperatureUnit unit)
bool supports_custom_preset(const std::string &custom_preset) const
void set_visual_current_temperature_step(float temperature_step)
bool supports_custom_fan_mode(const char *custom_fan_mode) const
float visual_max_humidity_
void set_supported_modes(ClimateModeMask modes)
climate::ClimateFanModeMask supported_fan_modes_
bool supports_custom_preset(const char *custom_preset) const
climate::ClimateSwingModeMask supported_swing_modes_
bool has_feature_flags(uint32_t feature_flags) const
float visual_min_humidity_
climate::ClimatePresetMask supported_presets_
int8_t get_current_temperature_accuracy_decimals() const
void set_visual_max_humidity(float visual_max_humidity)
void set_supported_custom_presets_(const ClimateCustomModes *presets)
float get_visual_max_humidity() const
bool supports_fan_mode(ClimateFanMode fan_mode) const
const ClimateCustomModes * supported_custom_fan_modes_
Owned by the Climate entity; get_traits() wires these pointers.
void add_supported_mode(ClimateMode mode)
void set_feature_flags(uint32_t feature_flags)
bool supports_custom_fan_mode(const std::string &custom_fan_mode) const
void set_swing_mode_support_(climate::ClimateSwingMode mode, bool supported)
void clear_feature_flags(uint32_t feature_flags)
climate::ClimateModeMask supported_modes_
bool supports_preset(ClimatePreset preset) const
void set_supported_fan_modes(ClimateFanModeMask modes)
TemperatureUnit temperature_unit_
void set_supported_custom_fan_modes_(const ClimateCustomModes *modes)
Set custom mode pointers (only Climate::get_traits() should call these).
void set_fan_mode_support_(climate::ClimateFanMode mode, bool supported)
TemperatureUnit get_temperature_unit() const
const ClimateModeMask & get_supported_modes() const
bool get_supports_presets() const
const ClimateCustomModes * supported_custom_presets_
float visual_current_temperature_step_
float get_visual_max_temperature() const
void add_supported_swing_mode(ClimateSwingMode mode)
uint32_t get_feature_flags() const
Get/set feature flags (see ClimateFeatures enum in climate_mode.h)
float visual_max_temperature_
bool supports_swing_mode(ClimateSwingMode swing_mode) const
void set_mode_support_(climate::ClimateMode mode, bool supported)
float get_visual_min_temperature() const
ClimateSwingMode swing_mode
ClimatePreset
Enum for all preset modes NOTE: If adding values, update ClimatePresetMask in climate_traits....
const char * vector_find(const List &vec, const char *value, size_t len)
ClimateSwingMode
Enum for all modes a climate swing can be in NOTE: If adding values, update ClimateSwingModeMask in c...
ClimateMode
Enum for all modes a climate device can be in.
@ CLIMATE_MODE_OFF
The climate device is off.
bool vector_contains(const List &vec, const char *value, size_t len)
ClimateFanMode
NOTE: If adding values, update ClimateFanModeMask in climate_traits.h to use the new last value.