nvs optimization - relays (except lights)
This commit is contained in:
@@ -550,70 +550,6 @@ script:
|
||||
// Identify itself
|
||||
ESP_LOGCONFIG(ESPHOME_PROJECT_NAME, " - Core - Hardware - LEDs");
|
||||
|
||||
- id: light_set_state
|
||||
mode: parallel
|
||||
parameters:
|
||||
light_group: uint8_t
|
||||
light_index: uint8_t
|
||||
state: bool
|
||||
then:
|
||||
- lambda: |-
|
||||
static const uint32_t LIGHT_TRANSITION_TURN_ON = ${LIGHT_TRANSITION_TURN_ON};
|
||||
static const uint32_t LIGHT_TRANSITION_TURN_OFF = ${LIGHT_TRANSITION_TURN_OFF};
|
||||
static const uint8_t LIGHT_BRIGHTNESS_TURN_ON = ${LIGHT_BRIGHTNESS_TURN_ON};
|
||||
|
||||
const std::string light_mode_group_1 = id(is_us_model)
|
||||
? "${LIGHT_MODE_LEFT_TEXT}"
|
||||
: "${LIGHT_MODE_BOTTOM_TEXT}";
|
||||
const std::string light_mode_group_2 = id(is_us_model)
|
||||
? "${LIGHT_MODE_RIGHT_TEXT}"
|
||||
: "${LIGHT_MODE_TOP_TEXT}";
|
||||
|
||||
switch (light_group) {
|
||||
case 1:
|
||||
if (light_index >= id(gb_lights_1).size()) {
|
||||
ESP_LOGE("${TAG_CORE_HW_LEDS}", "Invalid set with %s light for Relay %" PRIu8, light_mode_group_1.c_str(), light_index+1);
|
||||
return;
|
||||
}
|
||||
if (state and !id(gb_lights_1)[light_index]->current_values.is_on()) {
|
||||
ESP_LOGI("${TAG_CORE_HW_LEDS}", "Turn-on %s light for Relay %" PRIu8, light_mode_group_1.c_str(), light_index+1);
|
||||
auto call = id(gb_lights_1)[light_index]->turn_on();
|
||||
if (LIGHT_TRANSITION_TURN_ON > 0)
|
||||
call.set_transition_length(LIGHT_TRANSITION_TURN_ON); // in ms
|
||||
if (LIGHT_BRIGHTNESS_TURN_ON > 0 and LIGHT_BRIGHTNESS_TURN_ON <= 100)
|
||||
call.set_brightness(LIGHT_BRIGHTNESS_TURN_ON / 100.0f);
|
||||
call.perform();
|
||||
} else if (!state and id(gb_lights_1)[light_index]->current_values.is_on()) {
|
||||
ESP_LOGI("${TAG_CORE_HW_LEDS}", "Turn-off %s light for Relay %" PRIu8, light_mode_group_1.c_str(), light_index+1);
|
||||
auto call = id(gb_lights_1)[light_index]->turn_off();
|
||||
if (LIGHT_TRANSITION_TURN_OFF > 0)
|
||||
call.set_transition_length(LIGHT_TRANSITION_TURN_OFF); // in ms
|
||||
call.perform();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (light_index >= id(gb_lights_2).size()) {
|
||||
ESP_LOGE("${TAG_CORE_HW_LEDS}", "Invalid set with %s light for Relay %" PRIu8, light_mode_group_2.c_str(), light_index+1);
|
||||
return;
|
||||
}
|
||||
if (state and !id(gb_lights_2)[light_index]->current_values.is_on()) {
|
||||
ESP_LOGI("${TAG_CORE_HW_LEDS}", "Turn-on %s light for Relay %" PRIu8, light_mode_group_2.c_str(), light_index+1);
|
||||
auto call = id(gb_lights_2)[light_index]->turn_on();
|
||||
if (LIGHT_TRANSITION_TURN_ON > 0)
|
||||
call.set_transition_length(LIGHT_TRANSITION_TURN_ON); // in ms
|
||||
if (LIGHT_BRIGHTNESS_TURN_ON > 0 and LIGHT_BRIGHTNESS_TURN_ON <= 100)
|
||||
call.set_brightness(LIGHT_BRIGHTNESS_TURN_ON / 100.0f);
|
||||
call.perform();
|
||||
} else if (!state and id(gb_lights_2)[light_index]->current_values.is_on()) {
|
||||
ESP_LOGI("${TAG_CORE_HW_LEDS}", "Turn-off %s light for Relay %" PRIu8, light_mode_group_2.c_str(), light_index+1);
|
||||
auto call = id(gb_lights_2)[light_index]->turn_off();
|
||||
if (LIGHT_TRANSITION_TURN_OFF > 0)
|
||||
call.set_transition_length(LIGHT_TRANSITION_TURN_OFF); // in ms
|
||||
call.perform();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
select:
|
||||
# EU relay light mode template
|
||||
- &relay_light_mode_eu
|
||||
|
||||
Reference in New Issue
Block a user