Merge pull request #93 from Blackymas/dev

New Domains, Icons and Button Page Label
This commit is contained in:
Blackymas
2022-12-10 22:37:53 +01:00
committed by GitHub
4 changed files with 424 additions and 92 deletions

View File

@@ -19,6 +19,8 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
🎉 Roadmap Roadmap can be found here [Roadmap](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/roadmap)
💥 Please move pull request to DEV branch and not to main branch - thanks!
🙋 WE ARE LOOKING FOR YOU! _**We are always looking for people who would like to support this project. We are looking for help with "programming new features, writing documentation or translating documentation to EN. If you are interested then please contact us :)**_
## NSPanel:
@@ -43,7 +45,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
![8 Cover](https://user-images.githubusercontent.com/41958506/203654290-c6ec2f2f-7924-492c-914c-0d96dc3907e0.png)
![9 Weather](https://user-images.githubusercontent.com/41958506/203654307-24000d00-b7e1-47eb-bd64-9e97b508db52.png)
(Coversetting and Weather Forcast)
(Coversetting and Weather Forecast)
![10 Settings](https://user-images.githubusercontent.com/41958506/203654386-e4e574ad-8674-4268-84dd-1c4e40f98eb9.png)
@@ -56,7 +58,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
![Device Setting 2](https://user-images.githubusercontent.com/41958506/203724491-53ecd93d-bc7c-4c2d-850b-f106691e2639.png)
(HA Device Seeting for Example temperature correction)
(HA Device Setting for Example temperature correction)
## Blueprint:
@@ -66,28 +68,28 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
## Features:
- easy to use and simple configuration via Blueprint - no change in the code is necessary
- Easy to use and simple configuration via Blueprint - no change in the code is necessary
- 32 buttons on 4 button pages with long press function for settings (more buttons are also possible)
- Button design is automatically generated based on the selected entity
- Buttons show current brightness and cover position in the button itself
- Buttons label can be assigned via blueprint
- Weather + 5 days weather forcast
- Weather + 5 days weather forecast
- Thermostat + Touch + Relay control for floor heating
- Light control (brightness-slider, colorwheel, TempColor-slider) - via Long Press
- Light control (brightness-slider, colorwheel, TempColor-slider) - via long Press
- Cover control (open, close, position-slider) - via long press
- Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel)
- Swipe between pages
- Top menu with 10 icons for specific states
- Heating control (hot water)
- modern design - design easy to change via Adobe Express (free + design template)
- 2 pysical switches
- Modern design - design easy to change via Adobe Express (free + design template)
- 2 physical switches
- and much more ;)
# Pages
## Home
- current weather with button to Weather Forcast page
- Current weather with button to Weather Forcast page
- Hardware buttons can be freely assigned
- Hardware button label or without label
- Blue line indicates on or off of the entity
@@ -134,8 +136,8 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
- Hot water button
## Weather Forcast
- 5 days Weather Forcast via swipe (Integration Accuweather - but should also go with another integration)
## Weather Forecast
- 5 days Weather Forecast via swipe (Integration Accuweather - but should also go with another integration)
- Lowest and highest temperature outside
- Date
- Rain probability

Binary file not shown.

Binary file not shown.

View File

@@ -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,6 +2692,8 @@ 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
@@ -2426,6 +2703,14 @@ action:
cover.toggle
{% elif entity_short is match 'input_boolean.' %}
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 }}
@@ -3199,6 +3484,10 @@ action:
message: "{{ left_button_name }}"
##### 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: >-
@@ -3224,6 +3513,11 @@ action:
message: "{{ right_button_name }}"
###### SET Right Hardware Button PIC on Home Page #####
- 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: >-
@@ -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 #####