Support to code_arm_required

Only shows the alarm PIN keyboard if a code is required for arming (or when disarming).
This commit is contained in:
Edward Firmo
2023-08-22 08:45:39 +02:00
parent 3975806078
commit 2edfeef095
11 changed files with 46 additions and 19 deletions

View File

@@ -530,6 +530,7 @@ api:
state: string
supported_features: int
code_format: string
code_arm_required: bool
entity: string
mui_alarm: string[] #std::vector<std::string> #std::map
then:
@@ -549,6 +550,7 @@ api:
ESP_LOGD("service.alarm_settings", "state: %s", state.c_str());
ESP_LOGD("service.alarm_settings", "supported_features: %i", supported_features);
ESP_LOGD("service.alarm_settings", "code_format: %s", code_format.c_str());
ESP_LOGD("service.alarm_settings", "code_arm_required: %i", (code_arm_required) ? 1 : 0);
ESP_LOGD("service.alarm_settings", "entity: %s", entity.c_str());
}
@@ -558,6 +560,7 @@ api:
id(update_alarm_icon)->execute("icon_state", state.c_str());
id(disp1).set_component_text_printf("page_label", "%s", page_title.c_str());
id(disp1).set_component_text_printf("code_format", "%s", code_format.c_str());
if (code_arm_required) id(disp1).set_component_text_printf("code_arm_req", "1"); else id(disp1).set_component_text_printf("code_arm_req", "0");
id(disp1).set_component_text_printf("entity", "%s", entity.c_str());
// Alarm page - Button's icons
@@ -1033,8 +1036,9 @@ text_sensor:
else if (domain == "alarm")
{
std::string code_format = doc["code_format"];
std::string code_arm_req = doc["code_arm_req"];
std::string title = doc["mui"];
if (code_format=="number")
if (code_format=="number" and (key=="disarm" or code_arm_req=="1"))
{
id(disp1).send_command_printf("page keyb_num");
id(disp1).set_component_value("keyb_num.page_id", 23); //Calling from Alarm page