diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 38473ab..0e64d53 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -81,6 +81,7 @@ Our community and support channels are open for any questions or assistance you - [Enhanced Localization: Translated Values](#enhanced-localization-translated-values) - [Expanded Entity Selection for Home and Climate Pages](#expanded-entity-selection-for-home-and-climate-pages) - [Introducing the Utilities Dashboard](#introducing-the-utilities-dashboard) +- [Expanded Support for "Lock" Entities on Buttons and Chips](#expanded-support-for-lock-entities-on-buttons-and-chips) ## Details of noteworthy changes ### Transition to ESP-IDF as Default Framework @@ -198,6 +199,11 @@ This customization ensures that the dashboard only displays the utilities you're << ADD A PICTURE OF THE PAGE ON NSPANEL >> << ADD A SCREENSHOT OF THE BLUEPRINT >> +### Expanded Support for "Lock" Entities on Buttons and Chips +We're enhancing the NSPanel's integration capabilities by extending support for "lock" entities to both buttons and chips. +This development significantly broadens your ability to interact with and control lock mechanisms directly from the NSPanel. +Whether securing your home or managing access to different areas, these updates streamline the control process, integrating seamlessly with your smart home's security setup. + ## Support For support or more information about this update, visit our [GitHub repository](https://github.com/Blackymas/NSPanel_HA_Blueprint) diff --git a/hmi/dev/nspanel_eu_code/utilities.txt b/hmi/dev/nspanel_eu_code/utilities.txt index 40dcc2f..af61588 100644 --- a/hmi/dev/nspanel_eu_code/utilities.txt +++ b/hmi/dev/nspanel_eu_code/utilities.txt @@ -24,6 +24,48 @@ Page utilities Postinitialize Event sendme +Variable (int32) line_main_d + Attributes + ID : 46 + Scope: local + Value: 1 + +Variable (int32) group01_line_d + Attributes + ID : 47 + Scope: local + Value: 4294967295 + +Variable (int32) group02_line_d + Attributes + ID : 48 + Scope: local + Value: 1 + +Variable (int32) group03_line_d + Attributes + ID : 49 + Scope: local + Value: 4294967295 + +Variable (int32) group04_line_d + Attributes + ID : 50 + Scope: local + Value: 1 + +Variable (int32) group05_line_d + Attributes + ID : 51 + Scope: local + Value: 4294967295 + +Variable (int32) group06_line_d + Attributes + ID : 52 + Scope: local + Value: 1 + Text unavailable Attributes ID : 3 @@ -481,3 +523,76 @@ Timer wakeup_timer wakeup_timer.en=0 } +Timer tm_movement + Attributes + ID : 45 + Scope : local + Period (ms): 50 + Enabled : yes + + Events + Timer Event + //line_main + line_main.val+=line_main_d.val + if(line_main.val>=line_main.maxval) + { + line_main.val=line_main.minval + }else if(line_main.val<=line_main.minval) + { + line_main.val=line_main.maxval + } + //group01_line + group01_line.val+=group01_line_d.val + if(group01_line.val>=group01_line.maxval) + { + group01_line.val=group01_line.minval + }else if(group01_line.val<=group01_line.minval) + { + group01_line.val=group01_line.maxval + } + //group02_line + group02_line.val+=group02_line_d.val + if(group02_line.val>=group02_line.maxval) + { + group02_line.val=group02_line.minval + }else if(group02_line.val<=group02_line.minval) + { + group02_line.val=group02_line.maxval + } + //group03_line + group03_line.val+=group03_line_d.val + if(group03_line.val>=group03_line.maxval) + { + group03_line.val=group03_line.minval + }else if(group03_line.val<=group03_line.minval) + { + group03_line.val=group03_line.maxval + } + //group04_line + group04_line.val+=group04_line_d.val + if(group04_line.val>=group04_line.maxval) + { + group04_line.val=group04_line.minval + }else if(group04_line.val<=group04_line.minval) + { + group04_line.val=group04_line.maxval + } + //group05_line + group05_line.val+=group05_line_d.val + if(group05_line.val>=group05_line.maxval) + { + group05_line.val=group05_line.minval + }else if(group05_line.val<=group05_line.minval) + { + group05_line.val=group05_line.maxval + } + //group06_line + group06_line.val+=group06_line_d.val + if(group06_line.val>=group06_line.maxval) + { + group06_line.val=group06_line.minval + }else if(group06_line.val<=group06_line.minval) + { + group06_line.val=group06_line.maxval + } + diff --git a/hmi/dev/nspanel_us_code/utilities.txt b/hmi/dev/nspanel_us_code/utilities.txt index 3e4b196..0d47821 100644 --- a/hmi/dev/nspanel_us_code/utilities.txt +++ b/hmi/dev/nspanel_us_code/utilities.txt @@ -24,6 +24,48 @@ Page utilities Postinitialize Event sendme +Variable (int32) line_main_d + Attributes + ID : 46 + Scope: local + Value: 4294967295 + +Variable (int32) group01_line_d + Attributes + ID : 47 + Scope: local + Value: 1 + +Variable (int32) group02_line_d + Attributes + ID : 48 + Scope: local + Value: 4294967295 + +Variable (int32) group03_line_d + Attributes + ID : 49 + Scope: local + Value: 1 + +Variable (int32) group04_line_d + Attributes + ID : 50 + Scope: local + Value: 4294967295 + +Variable (int32) group05_line_d + Attributes + ID : 51 + Scope: local + Value: 1 + +Variable (int32) group06_line_d + Attributes + ID : 52 + Scope: local + Value: 4294967295 + Text unavailable Attributes ID : 3 @@ -481,3 +523,76 @@ Timer wakeup_timer wakeup_timer.en=0 } +Timer tm_movement + Attributes + ID : 45 + Scope : local + Period (ms): 50 + Enabled : yes + + Events + Timer Event + //line_main + line_main.val+=line_main_d.val + if(line_main.val>=line_main.maxval) + { + line_main.val=line_main.minval + }else if(line_main.val<=line_main.minval) + { + line_main.val=line_main.maxval + } + //group01_line + group01_line.val+=group01_line_d.val + if(group01_line.val>=group01_line.maxval) + { + group01_line.val=group01_line.minval + }else if(group01_line.val<=group01_line.minval) + { + group01_line.val=group01_line.maxval + } + //group02_line + group02_line.val+=group02_line_d.val + if(group02_line.val>=group02_line.maxval) + { + group02_line.val=group02_line.minval + }else if(group02_line.val<=group02_line.minval) + { + group02_line.val=group02_line.maxval + } + //group03_line + group03_line.val+=group03_line_d.val + if(group03_line.val>=group03_line.maxval) + { + group03_line.val=group03_line.minval + }else if(group03_line.val<=group03_line.minval) + { + group03_line.val=group03_line.maxval + } + //group04_line + group04_line.val+=group04_line_d.val + if(group04_line.val>=group04_line.maxval) + { + group04_line.val=group04_line.minval + }else if(group04_line.val<=group04_line.minval) + { + group04_line.val=group04_line.maxval + } + //group05_line + group05_line.val+=group05_line_d.val + if(group05_line.val>=group05_line.maxval) + { + group05_line.val=group05_line.minval + }else if(group05_line.val<=group05_line.minval) + { + group05_line.val=group05_line.maxval + } + //group06_line + group06_line.val+=group06_line_d.val + if(group06_line.val>=group06_line.maxval) + { + group06_line.val=group06_line.minval + }else if(group06_line.val<=group06_line.minval) + { + group06_line.val=group06_line.maxval + } + diff --git a/hmi/dev/nspanel_us_land_code/utilities.txt b/hmi/dev/nspanel_us_land_code/utilities.txt index 40dcc2f..af61588 100644 --- a/hmi/dev/nspanel_us_land_code/utilities.txt +++ b/hmi/dev/nspanel_us_land_code/utilities.txt @@ -24,6 +24,48 @@ Page utilities Postinitialize Event sendme +Variable (int32) line_main_d + Attributes + ID : 46 + Scope: local + Value: 1 + +Variable (int32) group01_line_d + Attributes + ID : 47 + Scope: local + Value: 4294967295 + +Variable (int32) group02_line_d + Attributes + ID : 48 + Scope: local + Value: 1 + +Variable (int32) group03_line_d + Attributes + ID : 49 + Scope: local + Value: 4294967295 + +Variable (int32) group04_line_d + Attributes + ID : 50 + Scope: local + Value: 1 + +Variable (int32) group05_line_d + Attributes + ID : 51 + Scope: local + Value: 4294967295 + +Variable (int32) group06_line_d + Attributes + ID : 52 + Scope: local + Value: 1 + Text unavailable Attributes ID : 3 @@ -481,3 +523,76 @@ Timer wakeup_timer wakeup_timer.en=0 } +Timer tm_movement + Attributes + ID : 45 + Scope : local + Period (ms): 50 + Enabled : yes + + Events + Timer Event + //line_main + line_main.val+=line_main_d.val + if(line_main.val>=line_main.maxval) + { + line_main.val=line_main.minval + }else if(line_main.val<=line_main.minval) + { + line_main.val=line_main.maxval + } + //group01_line + group01_line.val+=group01_line_d.val + if(group01_line.val>=group01_line.maxval) + { + group01_line.val=group01_line.minval + }else if(group01_line.val<=group01_line.minval) + { + group01_line.val=group01_line.maxval + } + //group02_line + group02_line.val+=group02_line_d.val + if(group02_line.val>=group02_line.maxval) + { + group02_line.val=group02_line.minval + }else if(group02_line.val<=group02_line.minval) + { + group02_line.val=group02_line.maxval + } + //group03_line + group03_line.val+=group03_line_d.val + if(group03_line.val>=group03_line.maxval) + { + group03_line.val=group03_line.minval + }else if(group03_line.val<=group03_line.minval) + { + group03_line.val=group03_line.maxval + } + //group04_line + group04_line.val+=group04_line_d.val + if(group04_line.val>=group04_line.maxval) + { + group04_line.val=group04_line.minval + }else if(group04_line.val<=group04_line.minval) + { + group04_line.val=group04_line.maxval + } + //group05_line + group05_line.val+=group05_line_d.val + if(group05_line.val>=group05_line.maxval) + { + group05_line.val=group05_line.minval + }else if(group05_line.val<=group05_line.minval) + { + group05_line.val=group05_line.maxval + } + //group06_line + group06_line.val+=group06_line_d.val + if(group06_line.val>=group06_line.maxval) + { + group06_line.val=group06_line.minval + }else if(group06_line.val<=group06_line.minval) + { + group06_line.val=group06_line.maxval + } + diff --git a/hmi/nspanel_eu.HMI b/hmi/nspanel_eu.HMI index 09fc581..8886725 100644 Binary files a/hmi/nspanel_eu.HMI and b/hmi/nspanel_eu.HMI differ diff --git a/hmi/nspanel_eu.tft b/hmi/nspanel_eu.tft index ec072d5..f0c8796 100644 Binary files a/hmi/nspanel_eu.tft and b/hmi/nspanel_eu.tft differ diff --git a/hmi/nspanel_us.HMI b/hmi/nspanel_us.HMI index 50a0101..76deb99 100644 Binary files a/hmi/nspanel_us.HMI and b/hmi/nspanel_us.HMI differ diff --git a/hmi/nspanel_us.tft b/hmi/nspanel_us.tft index 6153b42..f082ef0 100644 Binary files a/hmi/nspanel_us.tft and b/hmi/nspanel_us.tft differ diff --git a/hmi/nspanel_us_land.HMI b/hmi/nspanel_us_land.HMI index 827e113..f1791e8 100644 Binary files a/hmi/nspanel_us_land.HMI and b/hmi/nspanel_us_land.HMI differ diff --git a/hmi/nspanel_us_land.tft b/hmi/nspanel_us_land.tft index 62ff41e..ef9eda7 100644 Binary files a/hmi/nspanel_us_land.tft and b/hmi/nspanel_us_land.tft differ diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index de5669b..0f2bf83 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -285,6 +285,7 @@ blueprint: - fan - input_boolean - light + - lock - media_player - sensor - switch @@ -469,6 +470,7 @@ blueprint: - input_boolean - input_button - light + - lock - media_player - remote - scene @@ -585,6 +587,7 @@ blueprint: - input_boolean - input_button - light + - lock - person - remote - scene @@ -840,6 +843,7 @@ blueprint: - input_boolean - input_button - light + - lock - media_player - remote - scene @@ -965,6 +969,7 @@ blueprint: - input_boolean - input_button - light + - lock - media_player - person - remote @@ -6270,8 +6275,8 @@ variables: DRY: 32 FAN_ONLY: 64 states: - "on": ["on", "open", "opening", "true", "True", true, True, "playing", "heat", "cold", "dry", "armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming", 1] - "off": ["off", "closed", "closing", "false", "False", false, False, "standby", "paused", "idle", "disarmed", "disarming"] + "on": ["on", "open", "opening", "true", "True", true, True, "playing", "heat", "cold", "dry", "armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming", "unlocked", 1] + "off": ["off", "closed", "closing", "false", "False", false, False, "standby", "paused", "idle", "disarmed", "disarming", "locked"] unknown: ["unknown", "unavailable", None, none, ""] climate: "on": ["heat_cool", "heat", "heating", "cold", "cooling", "dry", "drying", "fan", "fan_only", "auto"] @@ -6279,6 +6284,9 @@ variables: alarm_control_panel: "on": ["armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming"] "off": ["disarmed", "disarming"] + lock: + "on": ["unlocked"] + "off": ["locked"] # yamllint enable rule:truthy rule:line-length rule:comments-indentation ############################################################# @@ -9333,6 +9341,10 @@ action: {{ entity_domain }}.{{ domain_automation_button_action if domain_automation_button_action is string else "toggle"}} {% elif entity_domain in ["button", "input_button"] %} {{ entity_domain }}.press + {% elif entity_domain in ["lock"] and states(last_click_button.entity) in ["locked"] %} + {{ entity_domain }}.unlock + {% elif entity_domain in ["lock"] and states(last_click_button.entity) in ["unlocked"] %} + {{ entity_domain }}.lock {% elif entity_domain in ["scene", "script"] %} {{ entity_domain }}.turn_on {% elif entity_domain in ["media_player"] %}