diff --git a/esphome/components/template/select/__init__.py b/esphome/components/template/select/__init__.py index 93aa2c8b05..0e9c240547 100644 --- a/esphome/components/template/select/__init__.py +++ b/esphome/components/template/select/__init__.py @@ -73,15 +73,18 @@ async def to_code(config): cg.add(var.set_template(template_)) else: - cg.add(var.set_optimistic(config[CONF_OPTIMISTIC])) + # Only set if non-default to avoid bloating setup() function + if config[CONF_OPTIMISTIC]: + cg.add(var.set_optimistic(True)) initial_option_index = config[CONF_OPTIONS].index(config[CONF_INITIAL_OPTION]) # Only set if non-zero to avoid bloating setup() function # (initial_option_index_ is zero-initialized in the header) if initial_option_index != 0: cg.add(var.set_initial_option_index(initial_option_index)) - if CONF_RESTORE_VALUE in config: - cg.add(var.set_restore_value(config[CONF_RESTORE_VALUE])) + # Only set if True (default is False) + if config.get(CONF_RESTORE_VALUE): + cg.add(var.set_restore_value(True)) if CONF_SET_ACTION in config: await automation.build_automation(