diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index abb001d..9665da9 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -205,10 +205,39 @@ The goal was to create a version that allows everyone to use the NSpanel fully l selector: text: {} + ##### BUTTON Page Labels ##### + button_page01_label: + name: Name **"Button Page 1"** (Optional) + description: '* *Displayed on top of **"Button Page 1"***' + default: [] + selector: + text: {} + + button_page02_label: + name: Name **"Button Page 2"** (Optional) + description: '* *Displayed on top of **"Button Page 2"***' + default: [] + selector: + text: {} + + button_page03_label: + name: Name **"Button Page 3"** (Optional) + description: '* *Displayed on top of **"Button Page 3"***' + default: [] + selector: + text: {} + + button_page04_label: + name: Name **"Button Page 4"** (Optional) + description: '* *Displayed on top of **"Button Page 4"***' + default: [] + selector: + text: {} + ##### BUTTONS ##### entity01: name: Button 01 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -217,6 +246,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity01_name: name: Name "Button 01" (Optional) description: '* *Button label - 10 characters are supported*' @@ -225,7 +259,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity02: name: Button 02 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -234,6 +268,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity02_name: name: Name "Button 02" (Optional) description: '* *Button label - 10 characters are supported*' @@ -242,7 +281,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity03: name: Button 03 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -251,6 +290,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity03_name: name: Name "Button 03" (Optional) description: '* *Button label - 10 characters are supported*' @@ -259,7 +303,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity04: name: Button 04 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -268,6 +312,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity04_name: name: Name "Button 04" (Optional) description: '* *Button label - 10 characters are supported*' @@ -276,7 +325,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity05: name: Button 05 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -285,6 +334,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity05_name: name: Name "Button 05" (Optional) description: '* *Button label - 10 characters are supported*' @@ -293,7 +347,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity06: name: Button 06 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -302,6 +356,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity06_name: name: Name "Button 06" (Optional) description: '* *Button label - 10 characters are supported*' @@ -310,7 +369,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity07: name: Button 07 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -319,6 +378,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity07_name: name: Name "Button 07" (Optional) description: '* *Button label - 10 characters are supported*' @@ -327,7 +391,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity08: name: Button 08 (Optional) - description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 1"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -336,6 +400,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity08_name: name: Name "Button 08" (Optional) description: '* *Button label - 10 characters are supported*' @@ -344,7 +413,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity09: name: Button 09 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -353,6 +422,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity09_name: name: Name "Button 09" (Optional) description: '* *Button label - 10 characters are supported*' @@ -361,7 +435,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity10: name: Button 10 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -370,6 +444,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity10_name: name: Name "Button 10" (Optional) description: '* *Button label - 10 characters are supported*' @@ -378,7 +457,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity11: name: Button 11 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -387,6 +466,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity11_name: name: Name "Button 11" (Optional) description: '* *Button label - 10 characters are supported*' @@ -395,7 +479,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity12: name: Button 12 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -404,6 +488,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity12_name: name: Name "Button 12" (Optional) description: '* *Button label - 10 characters are supported*' @@ -412,7 +501,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity13: name: Button 13 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -421,6 +510,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity13_name: name: Name "Button 13" (Optional) description: '* *Button label - 10 characters are supported*' @@ -429,7 +523,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity14: name: Button 14 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -438,6 +532,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity14_name: name: Name "Button 14" (Optional) description: '* *Button label - 10 characters are supported*' @@ -446,7 +545,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity15: name: Button 15 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -455,6 +554,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity15_name: name: Name "Button 15" (Optional) description: '* *Button label - 10 characters are supported*' @@ -463,7 +567,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity16: name: Button 16 (Optional) - description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 2"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -472,6 +576,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity16_name: name: Name "Button 16" (Optional) description: '* *Button label - 10 characters are supported*' @@ -480,7 +589,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity17: name: Button 17 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -489,6 +598,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity17_name: name: Name "Button 17" (Optional) description: '* *Button label - 10 characters are supported*' @@ -497,7 +611,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity18: name: Button 18 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -506,6 +620,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity18_name: name: Name "Button 18" (Optional) description: '* *Button label - 10 characters are supported*' @@ -514,7 +633,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity19: name: Button 19 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -523,6 +642,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity19_name: name: Name "Button 19" (Optional) description: '* *Button label - 10 characters are supported*' @@ -531,7 +655,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity20: name: Button 20 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -540,6 +664,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity20_name: name: Name "Button 20" (Optional) description: '* *Button label - 10 characters are supported*' @@ -548,7 +677,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity21: name: Button 21 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -557,6 +686,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity21_name: name: Name "Button 21" (Optional) description: '* *Button label - 10 characters are supported*' @@ -565,7 +699,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity22: name: Button 22 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -574,6 +708,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity22_name: name: Name "Button 22" (Optional) description: '* *Button label - 10 characters are supported*' @@ -582,7 +721,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity23: name: Button 23 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -591,6 +730,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity23_name: name: Name "Button 23" (Optional) description: '* *Button label - 10 characters are supported*' @@ -599,7 +743,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity24: name: Button 24 (Optional) - description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 3"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -608,6 +752,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity24_name: name: Name "Button 24" (Optional) description: '* *Button label - 10 characters are supported*' @@ -616,7 +765,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity25: name: Button 25 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -625,6 +774,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity25_name: name: Name "Button 25" (Optional) description: '* *Button label - 10 characters are supported*' @@ -633,7 +787,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity26: name: Button 26 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -642,6 +796,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity26_name: name: Name "Button 26" (Optional) description: '* *Button label - 10 characters are supported*' @@ -650,7 +809,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity27: name: Button 27 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -659,6 +818,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity27_name: name: Name "Button 27" (Optional) description: '* *Button label - 10 characters are supported*' @@ -667,7 +831,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity28: name: Button 28 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -676,6 +840,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity28_name: name: Name "Button 28" (Optional) description: '* *Button label - 10 characters are supported*' @@ -684,7 +853,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity29: name: Button 29 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -693,6 +862,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity29_name: name: Name "Button 29" (Optional) description: '* *Button label - 10 characters are supported*' @@ -701,7 +875,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity30: name: Button 30 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -710,6 +884,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity30_name: name: Name "Button 30" (Optional) description: '* *Button label - 10 characters are supported*' @@ -718,7 +897,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity31: name: Button 31 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -727,6 +906,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity31_name: name: Name "Button 31" (Optional) description: '* *Button label - 10 characters are supported*' @@ -735,7 +919,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l text: {} entity32: name: Button 32 (Optional) - description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean)*' + description: '* *Displayed on **"Button Page 4"** - (ONLY light | switch | cover | input_boolean | automation | button | input_button | scene | person)*' default: [] selector: entity: @@ -744,6 +928,11 @@ The goal was to create a version that allows everyone to use the NSpanel fully l - switch - cover - input_boolean + - automation + - button + - input_button + - scene + - person entity32_name: name: Name "Button 32" (Optional) description: '* *Button label - 10 characters are supported*' @@ -836,6 +1025,15 @@ variables: button_switch_on: "65" button_cover_off: "66" button_cover_on: "67" + button_automation_off: "107" + button_automation_on: "108" + button_button_off: "109" + button_button_on: "110" + button_scene_off: "113" + button_scene_on: "114" + button_person_off: "111" + button_person_on: "112" + hardware_button_pic_off: "98" hardware_button_pic_on: "99" cover_pic_closed: "78" @@ -1013,6 +1211,12 @@ variables: accuweather_wind_day_4d: "sensor.{{ accuweather }}_wind_day_4d" accuweather_wind_night_4d: "sensor.{{ accuweather }}_wind_night_4d" + ##### BUTTON Page Labels ##### + button_page01_label: !input button_page01_label + button_page02_label: !input button_page02_label + button_page03_label: !input button_page03_label + button_page04_label: !input button_page04_label + ##### BUTTONS 1- 32 ##### entity01: !input "entity01" entity01_name: !input "entity01_name" @@ -1684,16 +1888,29 @@ action: {%- elif repeat.item.entity is match "input_boolean." and states[repeat.item.entity].state == 'off' -%} {{ button_switch_off }} {%- elif repeat.item.entity is match "cover." and states[repeat.item.entity].state == 'open' -%} {{ button_cover_on }} {%- elif repeat.item.entity is match "cover." and states[repeat.item.entity].state == 'closed' -%} {{ button_cover_off }} + {%- elif repeat.item.entity is match "automation." and states[repeat.item.entity].state == 'on' -%} {{ button_automation_on }} + {%- elif repeat.item.entity is match "automation." and states[repeat.item.entity].state == 'off' -%} {{ button_automation_off }} + {%- elif repeat.item.entity is match "button." -%} {{ button_button_off }} + {%- elif repeat.item.entity is match "input_button." -%} {{ button_button_off }} + {%- elif repeat.item.entity is match "scene." -%} {{ button_scene_off }} + {%- elif repeat.item.entity is match "person." and states[repeat.item.entity].state == 'home' -%} {{ button_person_on }} + {%- elif repeat.item.entity is match "person." and states[repeat.item.entity].state != 'home' -%} {{ button_person_off }} {%- endif -%} # TEXT and BRIGHTNESS Background btn_bg: >- - {%- if states[repeat.item.entity].state == 'on' or states[repeat.item.entity].state == 'open' -%} {{ button_color_1 }} + {%- if repeat.item.entity is match "button." or repeat.item.entity is match "input_button." or repeat.item.entity is match "scene." -%} {{ button_color_2 }} + {%- elif states[repeat.item.entity].state == 'on' or states[repeat.item.entity].state == 'open' -%} {{ button_color_1 }} {%- elif states[repeat.item.entity].state == 'off' or states[repeat.item.entity].state == 'closed' -%} {{ button_color_2 }} + {%- elif repeat.item.entity is match "person." and states[repeat.item.entity].state == 'home' -%} {{ button_color_1 }} + {%- elif repeat.item.entity is match "person." and states[repeat.item.entity].state != 'home' -%} {{ button_color_2 }} {%- endif -%} # TEXT Font btn_txt_font: >- - {%- if states[repeat.item.entity].state == 'on' or states[repeat.item.entity].state == 'open' -%} {{ button_color_2 }} + {%- if repeat.item.entity is match "button." or repeat.item.entity is match "input_button." or repeat.item.entity is match "scene." -%} {{ button_color_1 }} + {%- elif states[repeat.item.entity].state == 'on' or states[repeat.item.entity].state == 'open' -%} {{ button_color_2 }} {%- elif states[repeat.item.entity].state == 'off' or states[repeat.item.entity].state == 'closed' -%} {{ button_color_1 }} + {%- elif repeat.item.entity is match "person." and states[repeat.item.entity].state == 'home' -%} {{ button_color_2 }} + {%- elif repeat.item.entity is match "person." and states[repeat.item.entity].state != 'home' -%} {{ button_color_1 }} {%- endif -%} # BRIGHTNESS Font btn_bri_font: "{{ button_color_2 }}" @@ -2056,16 +2273,29 @@ action: {%- elif trigger.to_state.entity_id is match "input_boolean." and trigger.to_state.state == 'off' -%} {{ button_switch_off }} {%- elif trigger.to_state.entity_id is match "cover." and trigger.to_state.state == 'open' -%} {{ button_cover_on }} {%- elif trigger.to_state.entity_id is match "cover." and trigger.to_state.state == 'closed' -%} {{ button_cover_off }} + {%- elif trigger.to_state.entity_id is match "automation." and trigger.to_state.state == 'on' -%} {{ button_automation_on }} + {%- elif trigger.to_state.entity_id is match "automation." and trigger.to_state.state == 'off' -%} {{ button_automation_off }} + {%- elif trigger.to_state.entity_id is match "button." -%} {{ button_button_on }} + {%- elif trigger.to_state.entity_id is match "input_button." -%} {{ button_button_on }} + {%- elif trigger.to_state.entity_id is match "scene." -%} {{ button_scene_on }} + {%- elif trigger.to_state.entity_id is match "person." and trigger.to_state.state == 'home' -%} {{ button_person_on }} + {%- elif trigger.to_state.entity_id is match "person." and trigger.to_state.state != 'home' -%} {{ button_person_off }} {%- endif -%} # TEXT and BRIGHTNESS Background btn_bg: >- - {%- if trigger.to_state.state == 'on' or trigger.to_state.state == 'open' -%} {{ button_color_1 }} + {%- if trigger.to_state.entity_id is match "button." or trigger.to_state.entity_id is match "input_button." or trigger.to_state.entity_id is match "scene." -%} {{ button_color_1 }} + {%- elif trigger.to_state.state == 'on' or trigger.to_state.state == 'open' -%} {{ button_color_1 }} {%- elif trigger.to_state.state == 'off' or trigger.to_state.state == 'closed' -%} {{ button_color_2 }} + {%- elif trigger.to_state.entity_id is match "person." and trigger.to_state.state == 'home' -%} {{ button_color_1 }} + {%- elif trigger.to_state.entity_id is match "person." and trigger.to_state.state != 'home' -%} {{ button_color_2 }} {%- endif -%} # TEXT Font btn_txt_font: >- - {%- if trigger.to_state.state == 'on' or trigger.to_state.state == 'open' -%} {{ button_color_2 }} + {%- if trigger.to_state.entity_id is match "button." or trigger.to_state.entity_id is match "input_button." or trigger.to_state.entity_id is match "scene." -%} {{ button_color_2 }} + {%- elif trigger.to_state.state == 'on' or trigger.to_state.state == 'open' -%} {{ button_color_2 }} {%- elif trigger.to_state.state == 'off' or trigger.to_state.state == 'closed' -%} {{ button_color_1 }} + {%- elif trigger.to_state.entity_id is match "person." and trigger.to_state.state == 'home' -%} {{ button_color_2 }} + {%- elif trigger.to_state.entity_id is match "person." and trigger.to_state.state != 'home' -%} {{ button_color_1 }} {%- endif -%} # BRIGHTNESS Font btn_bri_font: "{{ button_color_2 }}" @@ -2174,6 +2404,51 @@ action: component: "{{ component_to_update }}bri" message: "{{ btn_bri_txt }}" + ##### release button/scene (stateless) ##### + - if: + - condition: template + value_template: '{{ trigger.to_state.entity_id is match "button." or trigger.to_state.entity_id is match "input_button." or trigger.to_state.entity_id is match "scene." }}' + then: + - delay: + milliseconds: "1000" + - variables: + btn_pic: >- + {%- if trigger.to_state.entity_id is match "button." -%} {{ button_button_off }} + {%- elif trigger.to_state.entity_id is match "input_button." -%} {{ button_button_off }} + {%- elif trigger.to_state.entity_id is match "scene." -%} {{ button_scene_off }} + {%- endif -%} + btn_bg: '{{ button_color_2 }}' + btn_txt_font: '{{ button_color_1 }}' + + ##### Button PIC ##### + - service: "{{ command_printf }}" + data: + cmd: "{{ component_to_update }}pic.pic={{ btn_pic }}" + + ##### TEXT Background ##### + - delay: + milliseconds: "{{ delay_value }}" + - service: "{{ command_background_color }}" + data: + component: "{{ component_to_update }}text" + message: "{{ btn_bg }}" + + ##### TEXT Font Color ##### + - delay: + milliseconds: "{{ delay_value }}" + - service: "{{ command_font_color }}" + data: + component: "{{ component_to_update }}text" + message: "{{ btn_txt_font }}" + + ##### BRIGHTNESS Background Color ##### + - delay: + milliseconds: "{{ delay_value }}" + - service: "{{ command_background_color }}" + data: + component: "{{ component_to_update }}bri" + message: "{{ btn_bg }}" + ##### UPDATE LIGHTSETTING / COVERSETTING PAGE - choose: ##### LIGHTSETTINGS PAGE - LIGHT Entity ##### @@ -2417,15 +2692,25 @@ action: {%- elif states(last_click) == "releasebuttonpage04button07" -%} {{ entity31 }} {%- elif states(last_click) == "releasebuttonpage04button08" -%} {{ entity32 }} {%- endif -%} + - condition: template + value_template: '{{ entity_short is not match "person." }}' - service: >- {% if entity_short is match 'light.' %} - light.toggle + light.toggle {% elif entity_short is match 'switch.' %} - switch.toggle + switch.toggle {% elif entity_short is match 'cover.' %} - cover.toggle + cover.toggle {% elif entity_short is match 'input_boolean.' %} - input_boolean.toggle + input_boolean.toggle + {% elif entity_short is match 'automation.' %} + automation.toggle + {% elif entity_short is match 'button.' %} + button.press + {% elif entity_short is match 'input_button.' %} + input_button.press + {% elif entity_short is match 'scene.' %} + scene.turn_on {% endif %} data: entity_id: "{{ entity_short }}" @@ -3088,13 +3373,13 @@ action: data: cmd: home.weather.pic={{ weather_pic }} - ##### Page changed ##### + ##### PAGE CHANGED ##### - conditions: - condition: trigger id: current_page_changed sequence: - choose: - ## home ## + ## PAGE HOME ## - conditions: '{{ trigger.event.data.new_state.state == page_home }}' sequence: ##### NSPanel Date ##### @@ -3157,7 +3442,7 @@ action: component: home.outdoor_temp message: "{{ outdoor_temp }}°" - ##### Weather Icon Home Page + ##### Weather Icon Home Page ##### - variables: weather_pic: >- {%- if states(weather_entity) == 'sunny' -%} {{ weather_sunny }} @@ -3198,18 +3483,22 @@ action: component: home.left_bt_text message: "{{ left_button_name }}" - ##### SET Left Hardware Button PIC on Home Page #### - - variables: - # Hardware Button PIC - left_hardware_button_state: >- - {%- if states(left_button_entity) == 'off' -%} {{ hardware_button_pic_off }} - {%- elif states(left_button_entity) == 'on' -%} {{ hardware_button_pic_on }} - {%- endif -%} - - delay: - milliseconds: "{{ delay_value }}" - - service: "{{ command_printf }}" - data: - cmd: home.left_bt_pic.pic={{ left_hardware_button_state }} + ##### SET Left Hardware Button PIC on Home Page #### + - if: + - condition: template + value_template: '{{ left_button_entity |length > 0 and states(left_button_entity).state != "unavailable" }}' + then: + - variables: + # Hardware Button PIC + left_hardware_button_state: >- + {%- if states(left_button_entity) == 'off' -%} {{ hardware_button_pic_off }} + {%- elif states(left_button_entity) == 'on' -%} {{ hardware_button_pic_on }} + {%- endif -%} + - delay: + milliseconds: "{{ delay_value }}" + - service: "{{ command_printf }}" + data: + cmd: home.left_bt_pic.pic={{ left_hardware_button_state }} ##### NSPanel Right Button Name ##### - if: @@ -3224,18 +3513,23 @@ action: message: "{{ right_button_name }}" ###### SET Right Hardware Button PIC on Home Page ##### - - variables: + + - if: + - condition: template + value_template: '{{ right_button_entity |length > 0 and states(right_button_entity).state != "unavailable" }}' + then: + - variables: # Hardware Button PIC - right_hardware_button_state: >- - {%- if states(right_button_entity) == 'off' -%} {{ hardware_button_pic_off }} - {%- elif states(right_button_entity) == 'on' -%} {{ hardware_button_pic_on }} - {%- endif -%} - - delay: - milliseconds: "{{ delay_value }}" - - service: "{{ command_printf }}" - data: - cmd: home.right_bt_pic.pic={{ right_hardware_button_state }} - + right_hardware_button_state: >- + {%- if states(right_button_entity) == 'off' -%} {{ hardware_button_pic_off }} + {%- elif states(right_button_entity) == 'on' -%} {{ hardware_button_pic_on }} + {%- endif -%} + - delay: + milliseconds: "{{ delay_value }}" + - service: "{{ command_printf }}" + data: + cmd: home.right_bt_pic.pic={{ right_hardware_button_state }} + ###### StatusBar - Climate Symbol ###### - if: - condition: template @@ -3293,7 +3587,7 @@ action: #hvac_mode: 'heat' temperature: "{{ display_target_temperature }}" - ## weather01 ## + ## PAGE WEATHE01 ## - conditions: '{{ trigger.event.data.new_state.state == page_weather01 }}' sequence: - choose: @@ -3511,7 +3805,7 @@ action: data: cmd: "page {{ page_home }}" - ## weather02 ## + ## PAGE WEATHE02 ## - conditions: '{{ trigger.event.data.new_state.state == page_weather02 }}' sequence: - choose: @@ -3753,7 +4047,7 @@ action: data: cmd: "page {{ page_home }}" - ## weather03 ## + ## PAGE WEATHE03 ## - conditions: '{{ trigger.event.data.new_state.state == page_weather03 }}' sequence: - choose: @@ -3995,7 +4289,7 @@ action: data: cmd: "page {{ page_home }}" - ## weather04 ## + ## PAGE WEATHE04 ## - conditions: '{{ trigger.event.data.new_state.state == page_weather04 }}' sequence: - choose: @@ -4237,7 +4531,7 @@ action: data: cmd: "page {{ page_home }}" - ## weather05 ## + ## PAGE WEATHE05 ## - conditions: '{{ trigger.event.data.new_state.state == page_weather05 }}' sequence: - choose: @@ -4479,7 +4773,7 @@ action: data: cmd: "page {{ page_home }}" - ## climate ## + ## PAGE CLIMATE ## - conditions: '{{ trigger.event.data.new_state.state == page_climate }}' alias: 'climate page' sequence: @@ -4557,41 +4851,77 @@ action: component: climate.hotwater_temp message: "{{ states(hotwatertemp) |round(1) }}°" - ## settings ## + ## PAGE SETTINGS ## - conditions: '{{ trigger.event.data.new_state.state == page_settings }}' sequence: - ## boot ## + ## PAGE BOOT ## - conditions: '{{ trigger.event.data.new_state.state == page_boot }}' sequence: - ## screensaver ## + ## PAGE SCREENSAVER ## - conditions: '{{ trigger.event.data.new_state.state == page_screensaver }}' sequence: - ## lightsettings ## + ## PAGE LIGHTSETTUNGS ## - conditions: '{{ trigger.event.data.new_state.state == page_lightsettings }}' sequence: - ## coversettings ## + ## PAGE COVERSETTINGS ## - conditions: '{{ trigger.event.data.new_state.state == page_coversettings }}' sequence: - ## buttonpage01 ## + ## PAGE BUTTONPAGE01 ## - conditions: '{{ trigger.event.data.new_state.state == page_buttonpage01 }}' sequence: + ##### Button Page Label ##### + - if: + - condition: template + value_template: '{{ button_page01_label |length > 0 }}' + then: + - service: "{{ command_text_printf }}" + data: + component: "bpage01_label" + message: "{{ button_page01_label }}" - ## buttonpage02 ## - - conditions: '{{ trigger.event.data.new_state.state == page_buttonpage01 }}' + ## PAGE BUTTONPAGE02 ## + - conditions: '{{ trigger.event.data.new_state.state == page_buttonpage02 }}' sequence: + ##### Button Page Label ##### + - if: + - condition: template + value_template: '{{ button_page02_label |length > 0 }}' + then: + - service: "{{ command_text_printf }}" + data: + component: "bpage02_label" + message: "{{ button_page02_label }}" - ## buttonpage03 ## + ## PAGE BUTTONPAGE03 ## - conditions: '{{ trigger.event.data.new_state.state == page_buttonpage03 }}' sequence: + ##### Button Page Label ##### + - if: + - condition: template + value_template: '{{ button_page03_label |length > 0 }}' + then: + - service: "{{ command_text_printf }}" + data: + component: "bpage03_label" + message: "{{ button_page03_label }}" - ## buttonpage04 ## + ## PAGE BUTTONPAGE04 ## - conditions: '{{ trigger.event.data.new_state.state == page_buttonpage04 }}' sequence: + ##### Button Page Label ##### + - if: + - condition: template + value_template: '{{ button_page04_label |length > 0 }}' + then: + - service: "{{ command_text_printf }}" + data: + component: "bpage04_label" + message: "{{ button_page04_label }}" ##### Open Climate Settings #####