Splitting global_settings service
Looks like ESPHome didn't like the service calls with so many parameters.
This commit is contained in:
@@ -294,10 +294,9 @@ api:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
##### Service for transferring global settings from the blueprint to ESPHome #####
|
##### Service for transferring relay's settings from the blueprint to ESPHome #####
|
||||||
- service: global_settings
|
- service: relay_settings
|
||||||
variables:
|
variables:
|
||||||
blueprint_version: string
|
|
||||||
relay1_local_control: bool
|
relay1_local_control: bool
|
||||||
relay1_icon: string
|
relay1_icon: string
|
||||||
relay1_icon_color: int
|
relay1_icon_color: int
|
||||||
@@ -306,6 +305,22 @@ api:
|
|||||||
relay2_icon: string
|
relay2_icon: string
|
||||||
relay2_icon_color: int
|
relay2_icon_color: int
|
||||||
relay2_fallback: bool
|
relay2_fallback: bool
|
||||||
|
then:
|
||||||
|
- script.execute:
|
||||||
|
id: relay_settings
|
||||||
|
relay1_local_control: !lambda "return relay1_local_control;"
|
||||||
|
relay1_icon: !lambda "return relay1_icon;"
|
||||||
|
relay1_icon_color: !lambda "return relay1_icon_color;"
|
||||||
|
relay1_fallback: !lambda "return relay1_fallback;"
|
||||||
|
relay2_local_control: !lambda "return relay2_local_control;"
|
||||||
|
relay2_icon: !lambda "return relay2_icon;"
|
||||||
|
relay2_icon_color: !lambda "return relay2_icon_color;"
|
||||||
|
relay2_fallback: !lambda "return relay2_fallback;"
|
||||||
|
|
||||||
|
##### Service for transferring global settings from the blueprint to ESPHome #####
|
||||||
|
- service: global_settings
|
||||||
|
variables:
|
||||||
|
blueprint_version: string
|
||||||
embedded_climate: bool
|
embedded_climate: bool
|
||||||
embedded_climate_friendly_name: string
|
embedded_climate_friendly_name: string
|
||||||
embedded_indoor_temperature: bool
|
embedded_indoor_temperature: bool
|
||||||
@@ -317,14 +332,6 @@ api:
|
|||||||
- script.execute:
|
- script.execute:
|
||||||
id: global_settings
|
id: global_settings
|
||||||
blueprint_version: !lambda "return blueprint_version;"
|
blueprint_version: !lambda "return blueprint_version;"
|
||||||
relay1_local_control: !lambda "return relay1_local_control;"
|
|
||||||
relay1_icon: !lambda "return relay1_icon;"
|
|
||||||
relay1_icon_color: !lambda "return relay1_icon_color;"
|
|
||||||
relay1_fallback: !lambda "return relay1_fallback;"
|
|
||||||
relay2_local_control: !lambda "return relay2_local_control;"
|
|
||||||
relay2_icon: !lambda "return relay2_icon;"
|
|
||||||
relay2_icon_color: !lambda "return relay2_icon_color;"
|
|
||||||
relay2_fallback: !lambda "return relay2_fallback;"
|
|
||||||
embedded_climate: !lambda "return embedded_climate;"
|
embedded_climate: !lambda "return embedded_climate;"
|
||||||
embedded_climate_friendly_name: !lambda "return embedded_climate_friendly_name;"
|
embedded_climate_friendly_name: !lambda "return embedded_climate_friendly_name;"
|
||||||
embedded_indoor_temperature: !lambda "return embedded_indoor_temperature;"
|
embedded_indoor_temperature: !lambda "return embedded_indoor_temperature;"
|
||||||
@@ -1782,14 +1789,6 @@ script:
|
|||||||
mode: restart
|
mode: restart
|
||||||
parameters:
|
parameters:
|
||||||
blueprint_version: string
|
blueprint_version: string
|
||||||
relay1_local_control: bool
|
|
||||||
relay1_icon: string
|
|
||||||
relay1_icon_color: int
|
|
||||||
relay1_fallback: bool
|
|
||||||
relay2_local_control: bool
|
|
||||||
relay2_icon: string
|
|
||||||
relay2_icon_color: int
|
|
||||||
relay2_fallback: bool
|
|
||||||
embedded_climate: bool
|
embedded_climate: bool
|
||||||
embedded_climate_friendly_name: string
|
embedded_climate_friendly_name: string
|
||||||
embedded_indoor_temperature: bool
|
embedded_indoor_temperature: bool
|
||||||
@@ -1805,21 +1804,6 @@ script:
|
|||||||
id(version_blueprint) = blueprint_version;
|
id(version_blueprint) = blueprint_version;
|
||||||
check_versions->execute();
|
check_versions->execute();
|
||||||
|
|
||||||
// Relays
|
|
||||||
ESP_LOGV(TAG, "Setup relays");
|
|
||||||
relay1_local->publish_state(relay1_local_control);
|
|
||||||
relay2_local->publish_state(relay2_local_control);
|
|
||||||
id(relay_1_fallback) = relay1_fallback;
|
|
||||||
id(relay_2_fallback) = relay2_fallback;
|
|
||||||
disp1->set_component_font_color("home.icon_top_01", relay1_icon_color);
|
|
||||||
disp1->set_component_font_color("home.icon_top_02", relay2_icon_color);
|
|
||||||
disp1->set_component_text_printf("home.icon_top_01", "%s", relay1_icon.c_str());
|
|
||||||
disp1->set_component_text_printf("home.icon_top_02", "%s", relay2_icon.c_str());
|
|
||||||
id(home_relay1_icon) = relay1_icon.c_str();
|
|
||||||
id(home_relay2_icon) = relay2_icon.c_str();
|
|
||||||
id(home_relay1_icon_color) = relay1_icon_color;
|
|
||||||
id(home_relay2_icon_color) = relay2_icon_color;
|
|
||||||
|
|
||||||
// Embedded thermostat
|
// Embedded thermostat
|
||||||
ESP_LOGV(TAG, "Load embedded thermostat");
|
ESP_LOGV(TAG, "Load embedded thermostat");
|
||||||
id(is_embedded_thermostat) = embedded_climate;
|
id(is_embedded_thermostat) = embedded_climate;
|
||||||
@@ -2334,6 +2318,36 @@ script:
|
|||||||
"\uE5A9"); // mdi:wifi-off
|
"\uE5A9"); // mdi:wifi-off
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- id: relay_settings
|
||||||
|
mode: restart
|
||||||
|
parameters:
|
||||||
|
relay1_local_control: bool
|
||||||
|
relay1_icon: string
|
||||||
|
relay1_icon_color: int
|
||||||
|
relay1_fallback: bool
|
||||||
|
relay2_local_control: bool
|
||||||
|
relay2_icon: string
|
||||||
|
relay2_icon_color: int
|
||||||
|
relay2_fallback: bool
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
static const char *const TAG = "script.relay_settings";
|
||||||
|
// Relays
|
||||||
|
ESP_LOGV(TAG, "Setup relays");
|
||||||
|
relay1_local->publish_state(relay1_local_control);
|
||||||
|
relay2_local->publish_state(relay2_local_control);
|
||||||
|
id(relay_1_fallback) = relay1_fallback;
|
||||||
|
id(relay_2_fallback) = relay2_fallback;
|
||||||
|
disp1->set_component_font_color("home.icon_top_01", relay1_icon_color);
|
||||||
|
disp1->set_component_font_color("home.icon_top_02", relay2_icon_color);
|
||||||
|
disp1->set_component_text_printf("home.icon_top_01", "%s", relay1_icon.c_str());
|
||||||
|
disp1->set_component_text_printf("home.icon_top_02", "%s", relay2_icon.c_str());
|
||||||
|
id(home_relay1_icon) = relay1_icon.c_str();
|
||||||
|
id(home_relay2_icon) = relay2_icon.c_str();
|
||||||
|
id(home_relay1_icon_color) = relay1_icon_color;
|
||||||
|
id(home_relay2_icon_color) = relay2_icon_color;
|
||||||
|
ESP_LOGV(TAG, "Finished");
|
||||||
|
|
||||||
- id: service_call_alarm_control_panel
|
- id: service_call_alarm_control_panel
|
||||||
mode: restart
|
mode: restart
|
||||||
parameters:
|
parameters:
|
||||||
@@ -2524,6 +2538,7 @@ script:
|
|||||||
refresh_datetime->stop();
|
refresh_datetime->stop();
|
||||||
refresh_relays->stop();
|
refresh_relays->stop();
|
||||||
refresh_wifi_icon->stop();
|
refresh_wifi_icon->stop();
|
||||||
|
relay_settings->stop();
|
||||||
service_call_alarm_control_panel->stop();
|
service_call_alarm_control_panel->stop();
|
||||||
set_brightness->stop();
|
set_brightness->stop();
|
||||||
set_climate->stop();
|
set_climate->stop();
|
||||||
|
|||||||
@@ -3963,6 +3963,7 @@ variables:
|
|||||||
page_settings: 'esphome.{{ nspanel_name }}_page_settings'
|
page_settings: 'esphome.{{ nspanel_name }}_page_settings'
|
||||||
printf: 'esphome.{{ nspanel_name }}_send_command_printf'
|
printf: 'esphome.{{ nspanel_name }}_send_command_printf'
|
||||||
qrcode: 'esphome.{{ nspanel_name }}_qrcode'
|
qrcode: 'esphome.{{ nspanel_name }}_qrcode'
|
||||||
|
relay_settings: 'esphome.{{ nspanel_name }}_relay_settings'
|
||||||
set_button: 'esphome.{{ nspanel_name }}_set_button'
|
set_button: 'esphome.{{ nspanel_name }}_set_button'
|
||||||
set_climate: 'esphome.{{ nspanel_name }}_set_climate'
|
set_climate: 'esphome.{{ nspanel_name }}_set_climate'
|
||||||
set_component_color: 'esphome.{{ nspanel_name }}_set_component_color'
|
set_component_color: 'esphome.{{ nspanel_name }}_set_component_color'
|
||||||
@@ -7063,7 +7064,7 @@ action:
|
|||||||
{{
|
{{
|
||||||
entity_state
|
entity_state
|
||||||
if entity_domain != "alarm_control_panel"
|
if entity_domain != "alarm_control_panel"
|
||||||
else ( mui.alarm[entity_state | replace("armed_", "") | replace("disarmed", "disarm")] | default(entity_state) if entity_state else None )
|
else ( mui[language].alarm[entity_state | replace("armed_", "") | replace("disarmed", "disarm")] | default(entity_state) if entity_state else None )
|
||||||
}}
|
}}
|
||||||
state_is_number: '{{ entity_state_is_number }}'
|
state_is_number: '{{ entity_state_is_number }}'
|
||||||
domain: '{{ entity_domain }}'
|
domain: '{{ entity_domain }}'
|
||||||
@@ -7081,7 +7082,7 @@ action:
|
|||||||
}}
|
}}
|
||||||
supported_features: '{{ state_attr(entity_id, "supported_features") | default(None) if entity_id_is_valid else None }}'
|
supported_features: '{{ state_attr(entity_id, "supported_features") | default(None) if entity_id_is_valid else None }}'
|
||||||
icon: >
|
icon: >
|
||||||
{% set icon_domain = nextion.icon.domain[entity_domain] | default(all_icons.blank) %}
|
{% set icon_domain = nextion.icon.domain[entity_domain] | default(all_icons.blank) if entity_domain else all_icons.blank %}
|
||||||
{% if overlap is defined and overlap.icon is defined and overlap.icon is string and overlap.icon.split(":") | count == 2 %}
|
{% if overlap is defined and overlap.icon is defined and overlap.icon is string and overlap.icon.split(":") | count == 2 %}
|
||||||
{{ all_icons[overlap.icon[1]] | default(icon_domain) }}
|
{{ all_icons[overlap.icon[1]] | default(icon_domain) }}
|
||||||
{% elif entity_domain == "climate" %}
|
{% elif entity_domain == "climate" %}
|
||||||
@@ -7331,9 +7332,8 @@ action:
|
|||||||
continue_on_error: true
|
continue_on_error: true
|
||||||
- *delay-default
|
- *delay-default
|
||||||
|
|
||||||
- service: '{{ nextion.command.global_settings }}'
|
- service: '{{ nextion.command.relay_settings }}'
|
||||||
data:
|
data:
|
||||||
blueprint_version: '{{ blueprint_version }}'
|
|
||||||
relay1_local_control: '{{ hardware.buttons.left.entity == relay01_entity }}'
|
relay1_local_control: '{{ hardware.buttons.left.entity == relay01_entity }}'
|
||||||
relay1_icon: >
|
relay1_icon: >
|
||||||
{{
|
{{
|
||||||
@@ -7378,13 +7378,19 @@ action:
|
|||||||
((hardware.relays.relay2.icon_color_rgb[2] //(2**3)))
|
((hardware.relays.relay2.icon_color_rgb[2] //(2**3)))
|
||||||
}}
|
}}
|
||||||
relay2_fallback: '{{ hardware.relays.relay2.fallback }}'
|
relay2_fallback: '{{ hardware.relays.relay2.fallback }}'
|
||||||
|
continue_on_error: true
|
||||||
|
- *delay-default
|
||||||
|
|
||||||
|
- service: '{{ nextion.command.global_settings }}'
|
||||||
|
data:
|
||||||
|
blueprint_version: '{{ blueprint_version }}'
|
||||||
embedded_climate: '{{ climate == thermostat_embedded }}'
|
embedded_climate: '{{ climate == thermostat_embedded }}'
|
||||||
embedded_climate_friendly_name: '{{ (state_attr(climate, "friendly_name") | default("")) if embedded_climate and state_attr(climate, "friendly_name") != None else "" }}'
|
embedded_climate_friendly_name: '{{ (state_attr(climate, "friendly_name") | default("")) if embedded_climate and state_attr(climate, "friendly_name") != None else "" }}'
|
||||||
embedded_indoor_temperature: '{{ embedded_indoor_temperature }}'
|
embedded_indoor_temperature: '{{ embedded_indoor_temperature }}'
|
||||||
temperature_unit_is_fahrenheit: '{{ state_attr((nspaneltemp if embedded_indoor_temperature else indoor_temperature_sensor), "unit_of_measurement") | default("") in ["°F", "F"]}}'
|
temperature_unit_is_fahrenheit: '{{ state_attr((nspaneltemp if embedded_indoor_temperature else indoor_temperature_sensor), "unit_of_measurement") | default("") in ["°F", "F"]}}'
|
||||||
mui_please_confirm: '{{ mui[language].please_confirm }}'
|
mui_please_confirm: '{{ mui[language].please_confirm }}'
|
||||||
screensaver_time: '{{ screensaver_display_time if screensaver_display_time is bool else false }}'
|
screensaver_time: '{{ screensaver_display_time if screensaver_display_time is boolean else false }}'
|
||||||
screensaver_time_color: '{{ screensaver_display_time_font_color if screensaver_display_time_font_color is sequence other [64, 64, 64] }}'
|
screensaver_time_color: '{{ screensaver_display_time_font_color if screensaver_display_time_font_color is sequence else [64, 64, 64] }}'
|
||||||
continue_on_error: true
|
continue_on_error: true
|
||||||
- *delay-default
|
- *delay-default
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user