mirror of
https://github.com/esphome/esphome.git
synced 2025-09-02 19:32:19 +01:00
Add support for fan preset modes (#5694)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
@@ -293,6 +293,8 @@ bool APIConnection::send_fan_state(fan::Fan *fan) {
|
||||
}
|
||||
if (traits.supports_direction())
|
||||
resp.direction = static_cast<enums::FanDirection>(fan->direction);
|
||||
if (traits.supports_preset_modes())
|
||||
resp.preset_mode = fan->preset_mode;
|
||||
return this->send_fan_state_response(resp);
|
||||
}
|
||||
bool APIConnection::send_fan_info(fan::Fan *fan) {
|
||||
@@ -307,6 +309,8 @@ bool APIConnection::send_fan_info(fan::Fan *fan) {
|
||||
msg.supports_speed = traits.supports_speed();
|
||||
msg.supports_direction = traits.supports_direction();
|
||||
msg.supported_speed_count = traits.supported_speed_count();
|
||||
for (auto const &preset : traits.supported_preset_modes())
|
||||
msg.supported_preset_modes.push_back(preset);
|
||||
msg.disabled_by_default = fan->is_disabled_by_default();
|
||||
msg.icon = fan->get_icon();
|
||||
msg.entity_category = static_cast<enums::EntityCategory>(fan->get_entity_category());
|
||||
@@ -328,6 +332,8 @@ void APIConnection::fan_command(const FanCommandRequest &msg) {
|
||||
}
|
||||
if (msg.has_direction)
|
||||
call.set_direction(static_cast<fan::FanDirection>(msg.direction));
|
||||
if (msg.has_preset_mode)
|
||||
call.set_preset_mode(msg.preset_mode);
|
||||
call.perform();
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user