diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..35fa893 Binary files /dev/null and b/.DS_Store differ diff --git a/custom_configuration/.DS_Store b/custom_configuration/.DS_Store new file mode 100644 index 0000000..274517d Binary files /dev/null and b/custom_configuration/.DS_Store differ diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/.vscode/settings.json b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/.vscode/settings.json new file mode 100644 index 0000000..a04b218 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.yaml": "home-assistant" + } +} \ No newline at end of file diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/README.md b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/README.md new file mode 100644 index 0000000..cb7a47e --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/README.md @@ -0,0 +1,159 @@ +# NSPanel Custom with HA Blueprint +Custom Firmware for NsPanel (esphome) and HA Blueprint with configuration of button, light settings, thermostate, colorwheel, colortemp, cover, weather preview, automatic TFT upload etc. + +Why another version for the NSPanel? +Well - all versions I've seen have been missing something everywhere. +That's why I decided to create something myself. + +My thanks to Masto, Marcfager, lovejoy777, Hellis81 and SmartHome yourself ( link see below) for sharing your code. Give them the credit they deserve, I'm merely a copy paste ninja. XDD + + +### GOAL: +My goal was to create a version that could be quickly adopted for multiple NSPanels. +In addition, the configuration should be as simple as possible. Therefore I decided to put most of it into a HA Blueprint + +In addition, another NSPanel can be configured very quickly. But have a look yourself ;) + +![My project-1-16](https://user-images.githubusercontent.com/41958506/192649717-6b04cd1a-1829-4fd5-8ba4-09eaf32f85d0.png) +![My project-1-18](https://user-images.githubusercontent.com/41958506/192650810-c7210d15-a07e-4f70-a593-af0a51c7f4bb.png) + +(Home / Thermostat - more pictures see below) + +## Features: +- easy to use and simple configuration via Blueprint +- 40 buttons on 5 button pages with long press function for settings (more buttons are also possible) +- Weather + 5 days weather forcast +- Thermostat + Touch + Relay control for floor heating +- 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) +- Auto Upload TFT File to Nextion Display +- Swipe between pages +- modern design - design easy to change via Adobe Express (free + design template) +- 2 pysical switches +- and much more ;) + + +## NSPanel: +![My project-1-16](https://user-images.githubusercontent.com/41958506/192649717-6b04cd1a-1829-4fd5-8ba4-09eaf32f85d0.png) +![My project-1-17](https://user-images.githubusercontent.com/41958506/192650793-9b657fa2-8056-46d7-aca3-065cde291df8.png) + +(Home / Weather Forcast) + +![My project-1-18](https://user-images.githubusercontent.com/41958506/192650810-c7210d15-a07e-4f70-a593-af0a51c7f4bb.png) +![My project-1-20](https://user-images.githubusercontent.com/41958506/192652078-ec4f3268-c00b-42a8-b1f9-c4da3e53d7a5.png) + +(Thermostat / Settings Page) + +![My project-1-22](https://user-images.githubusercontent.com/41958506/192652105-23baac1d-9dee-40c1-8596-9cae8827cf1c.png) +![My project-1-23](https://user-images.githubusercontent.com/41958506/192652116-93b850d3-553b-4f14-bb0f-78dff959e2fd.png) + +(Light Settings Colorwheel / Light Settings TempColor) + +![My project-1-24](https://user-images.githubusercontent.com/41958506/192652126-91b0aae9-75ae-44a0-842d-0a78d93f2da5.png) +![My project-1-25](https://user-images.githubusercontent.com/41958506/192652131-604c0636-0f96-44b8-ae6a-793bde56d0e1.png) + +(Cover Settings / Button Page) + +![My project-1-26](https://user-images.githubusercontent.com/41958506/192652263-297cda87-3eff-452c-9ec3-3cd76da94de7.png) + +## Blueprint: +![Bildschirmfoto 2022-09-27 um 23 13 33](https://user-images.githubusercontent.com/41958506/192652755-069f91c9-927e-4aea-9569-d596cdfa0e56.png) + +# Pages + +## Home +- current weather with button to Weather Forcast page +- Temperature outside +- Status icons at the top +- Room temperature with button to thermostat page +- Room humidity +- Hot water temperature +- Button to display settings page + +## Weather Forcast +- 5 days Weather Forcast via swipe (Integration Accuweather - but should also go with another integration) +- Lowest and highest temperature outside +- Date +- Rain probability +- Sunshine hours +- Sun pressure +- Thunderstorm probability +- Wind speed +- Night thunderstorm probability and wind speed + +## Thermostat +- Touch Temp control +- Outside temperature +- Hot water +- Floor heating on, off and idle +- Hot water button +- Status icons + +## Display Settings +- Restart NSPanel +- Sleep mode - display off after time X +- Display brightness slider +- Display dim brightness slider +- Status Brightness in % + +## Light Settings +- Light on and off (alignment with HA) +- Light color with Colorwheel +- Light color with TempColor slider +- Brightness Slider +- Brightness in %. +- Tempcolor value +- Jump back to the right button page + +## Cover Settings +- Open and close cover +- Cover position via slider +- Cover battery value (I use Ikea roller blind) +- jump back to the right button page + +## Button Page +- 40 Button +- 5 Button pages +- all buttons with long press function +- automatic detection by long press if it is a light or cover for submenu +- swipe between all pages +- swipe also down and up for fast access to certain pages +- number of buttons and button pages can be extended - functions like long press, light settings and cover settings stay the same + +## Upcoming Features +- Shorten Esphome code and transfer to Blueprint +- Cover page with window open status as image +- small design adjustments +- Notifications on Home Page +- Energy and Gas consumption on home page +- Extra page for energy dashboard +- Garbage plan with icon on home page +- Let's see what ideas I still have ;) + +## HowTo Deutsch +1. den Code aus der Datei esphome.yaml kopieren und in HA unter esphome einfügen. Vorher muss natürlich ein Device erstellt werden. +1.2 in der ESPhome Datei müssen Passwörter eingesetzt werden. Entweder in der ESPHome Secret oder einfach in der ESPhome Datei +1.3 Einige Entities sind aktuell noch in der Esphome Datei angegeben (direkt unter den Passwörtern. Diese Entities müssen noch angepasst werden. In zukunft will ich aber auch diese ins Bluebrint einbauen +3. den Code aus der Datei blueprint.yaml kopieren und eine neue yaml Datei unter config/blueprints erstellen und den Code einfügen +4. HA Automationen neu starten -> Enticklerwerkzege -> YAML -> Automatisierungen +5. den Code aus der Datei sensor.yaml und climate.yaml kopieren und eine eigenen yaml Datei erstellen. Der Code wird in zukunft direkt im Blueprint eingebaut. +6. den Code aus der Datei folder_wather kopieren und in der coniguration.yaml einfügen +7. TFT File auf Home Assistant hochladen (Der Pfad kann später im Blueprint angegeben werden +8. Blueprint unter Automationen auswählen und und Felder ausfüllen. + + + +## Thanks to: +SmartHome yourself: https://www.youtube.com/c/SmarthomeyourselfDe_DIY + +Masto: https://github.com/masto/NSPanel-Demo-Files + +Marcfager: https://github.com/marcfager/nspanel-mf + +lovejoy77: https://github.com/lovejoy777/NSpanel + +Hellis81: https://github.com/Hellis81/NS-panel diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/blueprint.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/blueprint.yaml new file mode 100644 index 0000000..1ac4bc4 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/blueprint.yaml @@ -0,0 +1,14851 @@ +blueprint: + name: NSPanel Configuration + description: v2.0.0 - Configuration and synchronization NSpanele via Blueprint + domain: automation + input: + nspanel_name: + name: NSPanel Name + description: Name NSPanel. Esphome Dive Name is "Nspanel Buero" then HA make it the entity name "nspanel_buero". So nspanel_buero must be entered here. The correct name can also be found if you search for "last_click" under Entities -> sensor.nspanel_buero_last_click + selector: + text: {} + language: + name: Language for NSPanel (coming soon) + description: select your language for the values on the NSPanel display + selector: + select: + options: + - DE + - EN + tft_path: + name: Nextion TFT File Folder for the service Folder Watcher + description: 'TFT Path where the Nextion TFT File is stored (same NSPanel as **"last click"**) Example *"/config/www/nspanel/buero/nspanel_buero.tft"*' + default: /config/www/nspanel/buero/nspanel_buero.tft + selector: + text: {} + delay_jump_page: + name: Delay to avoid sync problems (coming soon) + description: When switching pages, synchronization problems may occur due to the network / WLAN. To avoid this problem enter your value for the delay (milliseconds) + default: [] + selector: + text: {} + sync_value_ha: + name: Synchronization of the values in the Light Settings and Cover Settings submenus + description: This means that if the Light Settings or Cover Settings submenu is open and the state is changed via HA - the changes to the Brightness and Tempcolor values are changed immediately. -> Causes numbers jumps + default: 'No' + selector: + select: + options: + - label: 'No' + value: select_no + - label: 'Yes' + value: select_yes + sync_slider_ha: + name: Synchronization of the Slider in the Light Settings and Cover Settings submenus + description: This means that if the Light Settings or Cover Settings submenu is open and the state is changed via HA - the changes to the Brightness and Tempcolor sliders are changed immediately. -> Causes flickering on the slider + default: 'No' + selector: + select: + options: + - label: 'No' + value: select_no + - label: 'Yes' + value: select_yes + weather: + name: Weather Integration (coming soon) + description: select our Weather Integration + selector: + select: + options: + - Default + - AccuWeather + accuweather: + name: Name assigned to the AccuWeather Integration (Optional) + description: Name assigned to the AccuWeather Integration. For Example - Accuweather Intergations name is Home Weather -> Then please write * home_weather * in it. You can find the needed value in your entities + default: [] + selector: + text: {} + outdoortemp: + name: Outdoor Temperature Sensor (Optional) + description: select the Temperature Sensor. If no outdoor sensor available write "default" or "accuweather" to use the outdoor temperature of the selected Weather Integration. This value is displayed on the Home Page an Thermostat Page + default: [] + selector: + entity: + domain: + - sensor + humidity: + name: Humidity Sensor (Optional) + description: select the humidity Sensor. This value is displayed on the Home Page + default: [] + selector: + entity: + domain: + - sensor + hotwatertemp: + name: Hot Water Temperature Sensor (Optional) + description: select the hot water Sensor. This value is displayed on the Home Page an Thermostat Page + default: [] + selector: + entity: + domain: + - sensor + left_button_entity: + name: Left Button (Optional) + description: Left Hardware Button - Select the entity that should be switched + default: [] + selector: + entity: + domain: + - light + - switch + - input_boolean + - cover + right_button_entity: + name: Right Button (Optional) + description: Right Hardware Button - Select the entity that should be switched + default: [] + selector: + entity: + domain: + - light + - switch + - input_boolean + - cover + +##### Button ##### + entity01: + name: Button 01 (Optional) + description: Nextion Editor - *buttonpage01.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity01_name: + name: Name "Button 01" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity02: + name: Button 02 (Optional) + description: Nextion Editor - *buttonpage01.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity02_name: + name: Name "Button 02" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity03: + name: Button 03 (Optional) + description: Nextion Editor - *buttonpage01.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity03_name: + name: Name "Button 03" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity04: + name: Button 04 (Optional) + description: Nextion Editor - *buttonpage01.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity04_name: + name: Name "Button 04" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity05: + name: Button 05 (Optional) + description: Nextion Editor - *buttonpage01.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity05_name: + name: Name "Button 05" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity06: + name: Button 06 (Optional) + description: Nextion Editor - *buttonpage01.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity06_name: + name: Name "Button 06" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity07: + name: Button 07 (Optional) + description: Nextion Editor - *buttonpage01.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity07_name: + name: Name "Button 07" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity08: + name: Button 08 (Optional) + description: Nextion Editor - *buttonpage01.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity08_name: + name: Name "Button 08" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity09: + name: Button 09 (Optional) + description: Nextion Editor - *buttonpage02.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity09_name: + name: Name "Button 09" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity10: + name: Button 10 (Optional) + description: Nextion Editor - *buttonpage02.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity10_name: + name: Name "Button 10" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity11: + name: Button 11 (Optional) + description: Nextion Editor - *buttonpage02.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity11_name: + name: Name "Button 11" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity12: + name: Button 12 (Optional) + description: Nextion Editor - *buttonpage02.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity12_name: + name: Name "Button 12" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity13: + name: Button 13 (Optional) + description: Nextion Editor - *buttonpage01.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity13_name: + name: Name "Button 13" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity14: + name: Button 14 (Optional) + description: Nextion Editor - *buttonpage02.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity14_name: + name: Name "Button 14" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity15: + name: Button 15 (Optional) + description: Nextion Editor - *buttonpage02.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity15_name: + name: Name "Button 15" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity16: + name: Button 16 (Optional) + description: Nextion Editor - *buttonpage02.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity16_name: + name: Name "Button 16" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity17: + name: Button 17 (Optional) + description: Nextion Editor - *buttonpage03.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity17_name: + name: Name "Button 17" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity18: + name: Button 18 (Optional) + description: Nextion Editor - *buttonpage03.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity18_name: + name: Name "Button 18" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity19: + name: Button 19 (Optional) + description: Nextion Editor - *buttonpage03.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity19_name: + name: Name "Button 19" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity20: + name: Button 20 (Optional) + description: Nextion Editor - *buttonpage03.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity20_name: + name: Name "Button 20" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity21: + name: Button 21 (Optional) + description: Nextion Editor - *buttonpage03.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity21_name: + name: Name "Button 21" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity22: + name: Button 22 (Optional) + description: Nextion Editor - *buttonpage03.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity22_name: + name: Name "Button 22" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity23: + name: Button 23 (Optional) + description: Nextion Editor - *buttonpage03.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity23_name: + name: Name "Button 23" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity24: + name: Button 24 (Optional) + description: Nextion Editor - *buttonpage03.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity24_name: + name: Name "Button 24" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity25: + name: Button 25 (Optional) + description: Nextion Editor - *buttonpage04.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity25_name: + name: Name "Button 25" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity26: + name: Button 26 (Optional) + description: Nextion Editor - *buttonpage04.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity26_name: + name: Name "Button 26" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity27: + name: Button 27 (Optional) + description: Nextion Editor - *buttonpage04.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity27_name: + name: Name "Button 27" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity28: + name: Button 28 (Optional) + description: Nextion Editor - *buttonpage04.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity28_name: + name: Name "Button 28" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity29: + name: Button 29 (Optional) + description: Nextion Editor - *buttonpage04.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity29_name: + name: Name "Button 29" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity30: + name: Button 30 (Optional) + description: Nextion Editor - *buttonpage04.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity30_name: + name: Name "Button 30" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity31: + name: Button 31 (Optional) + description: Nextion Editor - *buttonpage04.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity31_name: + name: Name "Button 31" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + entity32: + name: Button 32 (Optional) + description: Nextion Editor - *buttonpage04.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity32_name: + name: Name "Button 32" (Optional) + description: Button label - 10 characters are supported + default: [] + selector: + text: {} + +mode: parallel +max: 5000 + +######################################### +# +# +############################################################# +##### CLOSE - INPUT ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Variables ##### +############################################################# +# +# +######################################### +trigger_variables: + nspanel_name_trigger: !input "nspanel_name" + last_click: "sensor.{{ nspanel_name_trigger }}_last_click" + last_click_lightsettings: "sensor.{{ nspanel_name_trigger }}_last_click_lightsettings" + last_click_coversettings: "sensor.{{ nspanel_name_trigger }}_last_click_coversettings" + left_button: "binary_sensor.{{ nspanel_name_trigger }}_left_button" + right_button: "binary_sensor.{{ nspanel_name_trigger }}_right_button" + nextion_inited_trigger: "switch.{{ nspanel_name_trigger }}_nextion_inited" + entity_long_trigger: "{{ entity_long }}" + + +variables: + nspanel_name: !input "nspanel_name" + command_text_printf: "esphome.{{ nspanel_name }}_send_command_text_printf" + command_value: "esphome.{{ nspanel_name }}_send_command_value" + command_printf: "esphome.{{ nspanel_name }}_send_command_printf" + command_font_color: "esphome.{{ nspanel_name }}_send_command_font_color" + command_background_color: "esphome.{{ nspanel_name }}_send_command_background_color" + tft_upload: "esphome.{{ nspanel_name }}_upload_tft" + tft_path: !input "tft_path" + humidity: !input "humidity" + hotwatertemp: !input "hotwatertemp" + outdoortemp: !input "outdoortemp" + time: "{{ (as_timestamp(now()) | timestamp_custom('%H:%M')) }}" + weather: !input "weather" + language: !input "language" + left_button_entity: !input "left_button_entity" + right_button_entity: !input "right_button_entity" + +# Sync Settings + delay_jump_page: !input "delay_jump_page" + sync_slider_ha: !input "sync_slider_ha" + sync_value_ha: !input "sync_value_ha" + + +# Icons Mapping + cover_pic_closed: "106" + cover_pic_open: "107" + battery_icon: "108" + light_pic_off: "125" + light_pic_on: "126" + + +# color for buttons + button_light_off: "90" + button_light_on: "91" + button_switch_off: "92" + button_switch_on: "93" + button_cover_off: "94" + button_cover_on: "95" + button_color_1: "65535" + button_color_2: "10597" + + ##### Weather DE ##### + date0_de: "{{ ((as_timestamp(now())) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }}" + date1_de: "{{ ((as_timestamp(now()) + 86400) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }}" + date2_de: "{{ ((as_timestamp(now()) + 172800) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }}" + date3_de: "{{ ((as_timestamp(now()) + 259200) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }}" + date4_de: "{{ ((as_timestamp(now()) + 345600) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Montag,')| replace('Tue', 'Dienstag,')| replace('Wed', 'Mittwoch,')| replace('Thu', 'Donnerstag,')| replace('Fri', 'Freitag,')| replace('Sat', 'Samstag,')| replace('Sun', 'Sonntag,') }}" + + ##### Weather EN ##### + date0_en: "{{ ((as_timestamp(now())) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }}" + date1_en: "{{ ((as_timestamp(now()) + 86400) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }}" + date2_en: "{{ ((as_timestamp(now()) + 172800) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }}" + date3_en: "{{ ((as_timestamp(now()) + 259200) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }}" + date4_en: "{{ ((as_timestamp(now()) + 345600) | timestamp_custom('%a %d.%m' )) | replace('Mon', 'Monday,')| replace('Tue', 'Tuesday,')| replace('Wed', 'Wednesday,')| replace('Thu', 'Thursday,')| replace('Fri', 'Friday,')| replace('Sat', 'Saturday,')| replace('Sun', 'Sunday,') }}" + + ##### Meteorologisk HA Default ##### + ha_weather: "weather.home" + + ##### AccuWeather ##### + accuweather: !input "accuweather" + accuweather_home: "weather.{{ accuweather }}" + ##### Forcast Day 0 Accuweather ##### + accuweather_realfeel_temperature_min_0d: "sensor.{{ accuweather }}_realfeel_temperature_min_0d" + accuweather_realfeel_temperature_max_0d: "sensor.{{ accuweather }}_realfeel_temperature_max_0d" + accuweather_hours_of_sun_0d: "sensor.{{ accuweather }}_hours_of_sun_0d" + accuweather_uv_index_0d: "sensor.{{ accuweather }}_uv_index_0d" + accuweather_thunderstorm_probability_day_0d: "sensor.{{ accuweather }}_thunderstorm_probability_day_0d" + accuweather_thunderstorm_probability_night_0d: "sensor.{{ accuweather }}_thunderstorm_probability_night_0d" + accuweather_wind_day_0d: "sensor.{{ accuweather }}_wind_day_0d" + accuweather_wind_night_0d: "sensor.{{ accuweather }}_wind_night_0d" + ##### Forcast Day 1 AccuWeather ##### + accuweather_realfeel_temperature_min_1d: "sensor.{{ accuweather }}_realfeel_temperature_min_1d" + accuweather_realfeel_temperature_max_1d: "sensor.{{ accuweather }}_realfeel_temperature_max_1d" + accuweather_hours_of_sun_1d: "sensor.{{ accuweather }}_hours_of_sun_1d" + accuweather_uv_index_1d: "sensor.{{ accuweather }}_uv_index_1d" + accuweather_thunderstorm_probability_day_1d: "sensor.{{ accuweather }}_thunderstorm_probability_day_1d" + accuweather_thunderstorm_probability_night_1d: "sensor.{{ accuweather }}_thunderstorm_probability_night_1d" + accuweather_wind_day_1d: "sensor.{{ accuweather }}_wind_day_1d" + accuweather_wind_night_1d: "sensor.{{ accuweather }}_wind_night_1d" + ##### Forcast Day 2 AccuWeather ##### + accuweather_realfeel_temperature_min_2d: "sensor.{{ accuweather }}_realfeel_temperature_min_2d" + accuweather_realfeel_temperature_max_2d: "sensor.{{ accuweather }}_realfeel_temperature_max_2d" + accuweather_hours_of_sun_2d: "sensor.{{ accuweather }}_hours_of_sun_2d" + accuweather_uv_index_2d: "sensor.{{ accuweather }}_uv_index_2d" + accuweather_thunderstorm_probability_day_2d: "sensor.{{ accuweather }}_thunderstorm_probability_day_2d" + accuweather_thunderstorm_probability_night_2d: "sensor.{{ accuweather }}_thunderstorm_probability_night_2d" + accuweather_wind_day_2d: "sensor.{{ accuweather }}_wind_day_2d" + accuweather_wind_night_2d: "sensor.{{ accuweather }}_wind_night_2d" + ##### Forcast Day 3 AccuWeather ##### + accuweather_realfeel_temperature_min_3d: "sensor.{{ accuweather }}_realfeel_temperature_min_3d" + accuweather_realfeel_temperature_max_3d: "sensor.{{ accuweather }}_realfeel_temperature_max_3d" + accuweather_hours_of_sun_3d: "sensor.{{ accuweather }}_hours_of_sun_3d" + accuweather_uv_index_3d: "sensor.{{ accuweather }}_uv_index_3d" + accuweather_thunderstorm_probability_day_3d: "sensor.{{ accuweather }}_thunderstorm_probability_day_3d" + accuweather_thunderstorm_probability_night_3d: "sensor.{{ accuweather }}_thunderstorm_probability_night_3d" + accuweather_wind_day_3d: "sensor.{{ accuweather }}_wind_day_3d" + accuweather_wind_night_3d: "sensor.{{ accuweather }}_wind_night_3d" + ##### Forcast Day 4 AccuWeather ##### + accuweather_realfeel_temperature_min_4d: "sensor.{{ accuweather }}_realfeel_temperature_min_4d" + accuweather_realfeel_temperature_max_4d: "sensor.{{ accuweather }}_realfeel_temperature_max_4d" + accuweather_hours_of_sun_4d: "sensor.{{ accuweather }}_hours_of_sun_4d" + accuweather_uv_index_4d: "sensor.{{ accuweather }}_uv_index_4d" + accuweather_thunderstorm_probability_day_4d: "sensor.{{ accuweather }}_thunderstorm_probability_day_4d" + accuweather_thunderstorm_probability_night_4d: "sensor.{{ accuweather }}_thunderstorm_probability_night_4d" + accuweather_wind_day_4d: "sensor.{{ accuweather }}_wind_day_4d" + accuweather_wind_night_4d: "sensor.{{ accuweather }}_wind_night_4d" + +##### Buttons ##### + entity01: !input "entity01" + entity01_name: !input "entity01_name" + entity02: !input "entity02" + entity02_name: !input "entity02_name" + entity03: !input "entity03" + entity03_name: !input "entity03_name" + entity04: !input "entity04" + entity04_name: !input "entity04_name" + entity05: !input "entity05" + entity05_name: !input "entity05_name" + entity06: !input "entity06" + entity06_name: !input "entity06_name" + entity07: !input "entity07" + entity07_name: !input "entity07_name" + entity08: !input "entity08" + entity08_name: !input "entity08_name" + entity09: !input "entity09" + entity09_name: !input "entity09_name" + entity10: !input "entity10" + entity10_name: !input "entity10_name" + entity11: !input "entity11" + entity11_name: !input "entity11_name" + entity12: !input "entity12" + entity12_name: !input "entity12_name" + entity13: !input "entity13" + entity13_name: !input "entity13_name" + entity14: !input "entity14" + entity14_name: !input "entity14_name" + entity15: !input "entity15" + entity15_name: !input "entity15_name" + entity16: !input "entity16" + entity16_name: !input "entity16_name" + entity17: !input "entity17" + entity17_name: !input "entity17_name" + entity18: !input "entity18" + entity18_name: !input "entity18_name" + entity19: !input "entity19" + entity19_name: !input "entity19_name" + entity20: !input "entity20" + entity20_name: !input "entity20_name" + entity21: !input "entity21" + entity21_name: !input "entity21_name" + entity22: !input "entity22" + entity22_name: !input "entity22_name" + entity23: !input "entity23" + entity23_name: !input "entity23_name" + entity24: !input "entity24" + entity24_name: !input "entity24_name" + entity25: !input "entity25" + entity25_name: !input "entity25_name" + entity26: !input "entity26" + entity26_name: !input "entity26_name" + entity27: !input "entity27" + entity27_name: !input "entity27_name" + entity28: !input "entity28" + entity28_name: !input "entity28_name" + entity29: !input "entity29" + entity29_name: !input "entity29_name" + entity30: !input "entity30" + entity30_name: !input "entity30_name" + entity31: !input "entity31" + entity31_name: !input "entity31_name" + entity32: !input "entity32" + entity32_name: !input "entity32_name" + +######################################### +# +# +############################################################# +##### CLOSE - Variables ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Trigger ##### +############################################################# +# +# +######################################### + +trigger: + ##### TFT Upload ##### + - platform: event + event_type: folder_watcher + event_data: + event_type: modified + path: !input "tft_path" + id: tft_upload + + #### NSPanel boot Step 0 - Start #### nextion_inited_trigger +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# id: nspanel_boot_start + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + id: nspanel_boot_start + + #### NSPanel boot Step 1 - Language #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 5 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:5" + id: nspanel_boot_language + + #### NSPanel boot Step 2 - Buttonpage 1 #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 10 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:10" + id: nspanel_boot_buttonpage01 + + #### NSPanel boot Step 3 - Buttonpage 2 #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 15 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:15" + id: nspanel_boot_buttonpage02 + + #### NSPanel boot Step 4 - Buttonpage 3 #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 20 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:20" + id: nspanel_boot_buttonpage03 + + #### NSPanel boot Step 5 - Buttonpage 4 #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 25 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:25" + id: nspanel_boot_buttonpage04 + + #### NSPanel boot Step 6 - Weather #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 30 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:30" + id: nspanel_boot_weather + + #### NSPanel boot Step 7 - Entities #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 35 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:35" + id: nspanel_boot_entities + + #### NSPanel boot Step 8 - Entities #### +# - platform: state +# entity_id: !input "nextion_inited" +# to: "on" +# for: +# seconds: 50 + - platform: template + value_template: '{{ states(nextion_inited_trigger) is match "on" }}' + for: "00:00:50" + id: nspanel_boot_finish + +######################################################################################################################## + + ##### Page Button - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: "{{ last_click }}" + id: short_press + + ##### Button LONG Press for jump to Lightsetting or Coversetting Page - Trigger ##### + - platform: template + value_template: '{{ states(last_click) is match "press" }}' + for: + seconds: 1 + id: long_press + + ##### Page Lightsettings - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: "{{ last_click_lightsettings }}" + id: light_settings + + ##### Page Coversettings - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: "{{ last_click_coversettings }}" + id: cover_settings + + ##### Page Button Entity sync - Trigger ##### + - platform: template + value_template: '{{ states(last_click) is match "button" }}' + id: button_page + +######################################################################################################################## + + ##### Time - Trigger ##### + - platform: time_pattern + minutes: "/1" + id: time_state + + #### Weather State - Trigger #### + - platform: template + value_template: '{{ states(last_click) is match "weather" }}' + id: weather_update_state + + #### Weather Time - Trigger #### + - platform: time_pattern + minutes: "10" + id: weather_update_time + + ##### Humidity - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: !input "humidity" + id: humidity_state + + ##### Hot Water - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: !input "hotwatertemp" + id: hotwatertemp_state + + ##### Outdoor Temp - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: !input "outdoortemp" + id: outdoortemp_state + + ##### Left Button - Trigger ##### + - platform: template + value_template: '{{ states(left_button) is match "on" }}' + id: left_button_press + + ##### Right Button - Trigger ##### + - platform: template + value_template: '{{ states(right_button) is match "off" }}' + id: right_button_press + +##### Button Sync Trigger ################################################################################################################# + + ##### Button01 Sync - Trigger ##### + - platform: state + entity_id: !input "entity01" + id: current_state_entity01 + + ##### Button02 Sync - Trigger ##### + - platform: state + entity_id: !input "entity02" + id: current_state_entity02 + + ##### Button03 Sync - Trigger ##### + - platform: state + entity_id: !input "entity03" + id: current_state_entity03 + + ##### Button04 Sync - Trigger ##### + - platform: state + entity_id: !input "entity04" + id: current_state_entity04 + + ##### Button05 Sync - Trigger ##### + - platform: state + entity_id: !input "entity05" + id: current_state_entity05 + + ##### Button06 Sync - Trigger ##### + - platform: state + entity_id: !input "entity06" + id: current_state_entity06 + + ##### Button07 Sync - Trigger ##### + - platform: state + entity_id: !input "entity07" + id: current_state_entity07 + + ##### Button08 Sync - Trigger ##### + - platform: state + entity_id: !input "entity08" + id: current_state_entity08 + + ##### Button09 Sync - Trigger ##### + - platform: state + entity_id: !input "entity09" + id: current_state_entity09 + + ##### Button10 Sync - Trigger ##### + - platform: state + entity_id: !input "entity10" + id: current_state_entity10 + + ##### Button11 Sync - Trigger ##### + - platform: state + entity_id: !input "entity11" + id: current_state_entity11 + + ##### Button12 Sync - Trigger ##### + - platform: state + entity_id: !input "entity12" + id: current_state_entity12 + + ##### Button13 Sync - Trigger ##### + - platform: state + entity_id: !input "entity13" + id: current_state_entity13 + + ##### Button14 Sync - Trigger ##### + - platform: state + entity_id: !input "entity14" + id: current_state_entity14 + + ##### Button15 Sync - Trigger ##### + - platform: state + entity_id: !input "entity15" + id: current_state_entity15 + + ##### Button16 Sync - Trigger ##### + - platform: state + entity_id: !input "entity16" + id: current_state_entity16 + + ##### Button17 Sync - Trigger ##### + - platform: state + entity_id: !input "entity17" + id: current_state_entity17 + + ##### Button18 Sync - Trigger ##### + - platform: state + entity_id: !input "entity18" + id: current_state_entity18 + + ##### Button19 Sync - Trigger ##### + - platform: state + entity_id: !input "entity19" + id: current_state_entity19 + + ##### Button20 Sync - Trigger ##### + - platform: state + entity_id: !input "entity20" + id: current_state_entity20 + + ##### Button21 Sync - Trigger ##### + - platform: state + entity_id: !input "entity21" + id: current_state_entity21 + + ##### Button22 Sync - Trigger ##### + - platform: state + entity_id: !input "entity22" + id: current_state_entity22 + + ##### Button23 Sync - Trigger ##### + - platform: state + entity_id: !input "entity23" + id: current_state_entity23 + + ##### Button24 Sync - Trigger ##### + - platform: state + entity_id: !input "entity24" + id: current_state_entity24 + + ##### Button25 Sync - Trigger ##### + - platform: state + entity_id: !input "entity25" + id: current_state_entity25 + + ##### Button26 Sync - Trigger ##### + - platform: state + entity_id: !input "entity26" + id: current_state_entity26 + + ##### Button27 Sync - Trigger ##### + - platform: state + entity_id: !input "entity27" + id: current_state_entity27 + + ##### Button28 Sync - Trigger ##### + - platform: state + entity_id: !input "entity28" + id: current_state_entity28 + + ##### Button29 Sync - Trigger ##### + - platform: state + entity_id: !input "entity29" + id: current_state_entity29 + + ##### Button30 Sync - Trigger ##### + - platform: state + entity_id: !input "entity30" + id: current_state_entity30 + + ##### Button31 Sync - Trigger ##### + - platform: state + entity_id: !input "entity31" + id: current_state_entity31 + + ##### Button32 Sync - Trigger ##### + - platform: state + entity_id: !input "entity32" + id: current_state_entity32 + +######################################### +# +# +############################################################# +##### CLOSE - Trigger ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Action ##### +############################################################# +# +# +######################################### +action: + - variables: + ##### Entity - Page Button - Toggle Entity ##### + entity_short: >- + {%- if states(last_click) == "releasebuttonpage01button01" -%} {{ entity01 }} + {%- elif states(last_click) == "releasebuttonpage01button02" -%} {{ entity02 }} + {%- elif states(last_click) == "releasebuttonpage01button03" -%} {{ entity03 }} + {%- elif states(last_click) == "releasebuttonpage01button04" -%} {{ entity04 }} + {%- elif states(last_click) == "releasebuttonpage01button05" -%} {{ entity05 }} + {%- elif states(last_click) == "releasebuttonpage01button06" -%} {{ entity06 }} + {%- elif states(last_click) == "releasebuttonpage01button07" -%} {{ entity07 }} + {%- elif states(last_click) == "releasebuttonpage01button08" -%} {{ entity08 }} + {%- elif states(last_click) == "releasebuttonpage02button01" -%} {{ entity09 }} + {%- elif states(last_click) == "releasebuttonpage02button02" -%} {{ entity10 }} + {%- elif states(last_click) == "releasebuttonpage02button03" -%} {{ entity11 }} + {%- elif states(last_click) == "releasebuttonpage02button04" -%} {{ entity12 }} + {%- elif states(last_click) == "releasebuttonpage02button05" -%} {{ entity13 }} + {%- elif states(last_click) == "releasebuttonpage02button06" -%} {{ entity14 }} + {%- elif states(last_click) == "releasebuttonpage02button07" -%} {{ entity15 }} + {%- elif states(last_click) == "releasebuttonpage02button08" -%} {{ entity16 }} + {%- elif states(last_click) == "releasebuttonpage03button01" -%} {{ entity17 }} + {%- elif states(last_click) == "releasebuttonpage03button02" -%} {{ entity18 }} + {%- elif states(last_click) == "releasebuttonpage03button03" -%} {{ entity19 }} + {%- elif states(last_click) == "releasebuttonpage03button04" -%} {{ entity20 }} + {%- elif states(last_click) == "releasebuttonpage03button05" -%} {{ entity21 }} + {%- elif states(last_click) == "releasebuttonpage03button06" -%} {{ entity22 }} + {%- elif states(last_click) == "releasebuttonpage03button07" -%} {{ entity23 }} + {%- elif states(last_click) == "releasebuttonpage03button08" -%} {{ entity24 }} + {%- elif states(last_click) == "releasebuttonpage04button01" -%} {{ entity25 }} + {%- elif states(last_click) == "releasebuttonpage04button02" -%} {{ entity26 }} + {%- elif states(last_click) == "releasebuttonpage04button03" -%} {{ entity27 }} + {%- elif states(last_click) == "releasebuttonpage04button04" -%} {{ entity28 }} + {%- elif states(last_click) == "releasebuttonpage04button05" -%} {{ entity29 }} + {%- elif states(last_click) == "releasebuttonpage04button06" -%} {{ entity30 }} + {%- elif states(last_click) == "releasebuttonpage04button07" -%} {{ entity31 }} + {%- elif states(last_click) == "releasebuttonpage04button08" -%} {{ entity32 }} + {%- endif -%} + + ##### Entity - Page Lightsettings ##### + entity_long: >- + {%- if states(last_click) == "pressbuttonpage01button01" -%} {{ entity01 }} + {%- elif states(last_click) == "pressbuttonpage01button02" -%} {{ entity02 }} + {%- elif states(last_click) == "pressbuttonpage01button03" -%} {{ entity03 }} + {%- elif states(last_click) == "pressbuttonpage01button04" -%} {{ entity04 }} + {%- elif states(last_click) == "pressbuttonpage01button05" -%} {{ entity05 }} + {%- elif states(last_click) == "pressbuttonpage01button06" -%} {{ entity06 }} + {%- elif states(last_click) == "pressbuttonpage01button07" -%} {{ entity07 }} + {%- elif states(last_click) == "pressbuttonpage01button08" -%} {{ entity08 }} + {%- elif states(last_click) == "pressbuttonpage02button01" -%} {{ entity09 }} + {%- elif states(last_click) == "pressbuttonpage02button02" -%} {{ entity10 }} + {%- elif states(last_click) == "pressbuttonpage02button03" -%} {{ entity11 }} + {%- elif states(last_click) == "pressbuttonpage02button04" -%} {{ entity12 }} + {%- elif states(last_click) == "pressbuttonpage02button05" -%} {{ entity13 }} + {%- elif states(last_click) == "pressbuttonpage02button06" -%} {{ entity14 }} + {%- elif states(last_click) == "pressbuttonpage02button07" -%} {{ entity15 }} + {%- elif states(last_click) == "pressbuttonpage02button08" -%} {{ entity16 }} + {%- elif states(last_click) == "pressbuttonpage03button01" -%} {{ entity17 }} + {%- elif states(last_click) == "pressbuttonpage03button02" -%} {{ entity18 }} + {%- elif states(last_click) == "pressbuttonpage03button03" -%} {{ entity19 }} + {%- elif states(last_click) == "pressbuttonpage03button04" -%} {{ entity20 }} + {%- elif states(last_click) == "pressbuttonpage03button05" -%} {{ entity21 }} + {%- elif states(last_click) == "pressbuttonpage03button06" -%} {{ entity22 }} + {%- elif states(last_click) == "pressbuttonpage03button07" -%} {{ entity23 }} + {%- elif states(last_click) == "pressbuttonpage03button08" -%} {{ entity24 }} + {%- elif states(last_click) == "pressbuttonpage04button01" -%} {{ entity25 }} + {%- elif states(last_click) == "pressbuttonpage04button02" -%} {{ entity26 }} + {%- elif states(last_click) == "pressbuttonpage04button03" -%} {{ entity27 }} + {%- elif states(last_click) == "pressbuttonpage04button04" -%} {{ entity28 }} + {%- elif states(last_click) == "pressbuttonpage04button05" -%} {{ entity29 }} + {%- elif states(last_click) == "pressbuttonpage04button06" -%} {{ entity30 }} + {%- elif states(last_click) == "pressbuttonpage04button07" -%} {{ entity31 }} + {%- elif states(last_click) == "pressbuttonpage04button08" -%} {{ entity32 }} + {%- endif -%} + + ##### Entity Name - Page Lightsettings ##### + entity_long_name: >- + {%- if states(last_click) == "pressbuttonpage01button01" -%} {{ entity01_name }} + {%- elif states(last_click) == "pressbuttonpage01button02" -%} {{ entity02_name }} + {%- elif states(last_click) == "pressbuttonpage01button03" -%} {{ entity03_name }} + {%- elif states(last_click) == "pressbuttonpage01button04" -%} {{ entity04_name }} + {%- elif states(last_click) == "pressbuttonpage01button05" -%} {{ entity05_name }} + {%- elif states(last_click) == "pressbuttonpage01button06" -%} {{ entity06_name }} + {%- elif states(last_click) == "pressbuttonpage01button07" -%} {{ entity07_name }} + {%- elif states(last_click) == "pressbuttonpage01button08" -%} {{ entity08_name }} + {%- elif states(last_click) == "pressbuttonpage02button01" -%} {{ entity09_name }} + {%- elif states(last_click) == "pressbuttonpage02button02" -%} {{ entity10_name }} + {%- elif states(last_click) == "pressbuttonpage02button03" -%} {{ entity11_name }} + {%- elif states(last_click) == "pressbuttonpage02button04" -%} {{ entity12_name }} + {%- elif states(last_click) == "pressbuttonpage02button05" -%} {{ entity13_name }} + {%- elif states(last_click) == "pressbuttonpage02button06" -%} {{ entity14_name }} + {%- elif states(last_click) == "pressbuttonpage02button07" -%} {{ entity15_name }} + {%- elif states(last_click) == "pressbuttonpage02button08" -%} {{ entity16_name }} + {%- elif states(last_click) == "pressbuttonpage03button01" -%} {{ entity17_name }} + {%- elif states(last_click) == "pressbuttonpage03button02" -%} {{ entity18_name }} + {%- elif states(last_click) == "pressbuttonpage03button03" -%} {{ entity19_name }} + {%- elif states(last_click) == "pressbuttonpage03button04" -%} {{ entity20_name }} + {%- elif states(last_click) == "pressbuttonpage03button05" -%} {{ entity21_name }} + {%- elif states(last_click) == "pressbuttonpage03button06" -%} {{ entity22_name }} + {%- elif states(last_click) == "pressbuttonpage03button07" -%} {{ entity23_name }} + {%- elif states(last_click) == "pressbuttonpage03button08" -%} {{ entity24_name }} + {%- elif states(last_click) == "pressbuttonpage04button01" -%} {{ entity25_name }} + {%- elif states(last_click) == "pressbuttonpage04button02" -%} {{ entity26_name }} + {%- elif states(last_click) == "pressbuttonpage04button03" -%} {{ entity27_name }} + {%- elif states(last_click) == "pressbuttonpage04button04" -%} {{ entity28_name }} + {%- elif states(last_click) == "pressbuttonpage04button05" -%} {{ entity29_name}} + {%- elif states(last_click) == "pressbuttonpage04button06" -%} {{ entity30_name }} + {%- elif states(last_click) == "pressbuttonpage04button07" -%} {{ entity31_name }} + {%- elif states(last_click) == "pressbuttonpage04button08" -%} {{ entity32_name }} + {%- endif -%} + + ##### Entity - Page Lightsettings - Skip Back ##### + entity_back: >- + {%- if states(last_click) == "pressbuttonpage01button01" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button02" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button03" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button04" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button05" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button06" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button07" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button08" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage02button01" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button02" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button03" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button04" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button05" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button06" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button07" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button08" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage03button01" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button02" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button03" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button04" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button05" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button06" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button07" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button08" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage04button01" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button02" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button03" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button04" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button05" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button06" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button07" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button08" -%} {{ "page buttonpage04" }} + {%- endif -%} + +######################################################################################################################## + + ##### NSPanel Loading##### + - choose: + - conditions: + - condition: trigger + id: nspanel_boot_start + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.loading + message: "Loading - PLS WAIT!" + + ##### NSPanel Loading##### + - choose: + - conditions: + - condition: trigger + id: nspanel_boot_finish + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.loading + message: " " + + ##### language Setting DE ##### + - choose: + - conditions: + - condition: trigger + id: nspanel_boot_language + - condition: template + value_template: '{{ language == "DE" }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: weather01.a01 + message: Heute + - service: "{{ command_text_printf }}" + data: + component: weather02.a01 + message: Morgen + - service: "{{ command_text_printf }}" + data: + component: weather03.a01 + message: in 2 Tagen + - service: "{{ command_text_printf }}" + data: + component: weather04.a01 + message: in 3 Tagen + - service: "{{ command_text_printf }}" + data: + component: weather05.a01 + message: in 4 Tagen + - service: "{{ command_text_printf }}" + data: + component: settings.a06 + message: Neustart + - service: "{{ command_text_printf }}" + data: + component: settings.a07 + message: Sleep + - service: "{{ command_text_printf }}" + data: + component: settings.a08 + message: Helligkeit + - service: "{{ command_text_printf }}" + data: + component: settings.a09 + message: Dimmen + - service: "{{ command_text_printf }}" + data: + component: coversettings.a07 + message: Rollo + - service: "{{ command_text_printf }}" + data: + component: coversettings.a08 + message: Position + - service: "{{ command_text_printf }}" + data: + component: lightsettings.a07 + message: Licht + - service: "{{ command_text_printf }}" + data: + component: lightsettings.a08 + message: Helligkeit + + ##### language Setting EN ##### + - choose: + - conditions: + - condition: trigger + id: nspanel_boot_language + - condition: template + value_template: '{{ language == "EN" }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: weather01.a01 + message: Today + - service: "{{ command_text_printf }}" + data: + component: weather02.a01 + message: Tomorrow + - service: "{{ command_text_printf }}" + data: + component: weather03.a01 + message: in 2 Days + - service: "{{ command_text_printf }}" + data: + component: weather04.a01 + message: in 3 Days + - service: "{{ command_text_printf }}" + data: + component: weather05.a01 + message: in 4 Days + - service: "{{ command_text_printf }}" + data: + component: settings.a06 + message: Reboot + - service: "{{ command_text_printf }}" + data: + component: settings.a07 + message: Sleep + - service: "{{ command_text_printf }}" + data: + component: settings.a08 + message: Brightness + - service: "{{ command_text_printf }}" + data: + component: settings.a09 + message: Dimming + - service: "{{ command_text_printf }}" + data: + component: coversettings.a07 + message: Cover + - service: "{{ command_text_printf }}" + data: + component: coversettings.a08 + message: Position + - service: "{{ command_text_printf }}" + data: + component: lightsettings.a07 + message: Light + - service: "{{ command_text_printf }}" + data: + component: lightsettings.a08 + message: Brightness + + ##### Date Home Page + Forcast DE ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_language + - time_state + - condition: template + value_template: '{{ language == "DE" }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a02 + message: "{{ date0_de }}" + - service: "{{ command_text_printf }}" + data: + component: weather01.a02 + message: "{{ date0_de }}" + - service: "{{ command_text_printf }}" + data: + component: weather02.a02 + message: "{{ date1_de }}" + - service: "{{ command_text_printf }}" + data: + component: weather03.a02 + message: "{{ date2_de }}" + - service: "{{ command_text_printf }}" + data: + component: weather04.a02 + message: "{{ date3_de }}" + - service: "{{ command_text_printf }}" + data: + component: weather05.a02 + message: "{{ date4_de }}" + +##### Date Home Page + Forcast EN ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_language + - time_state + - condition: template + value_template: '{{ language == "EN" }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a02 + message: "{{ date0_en }}" + - service: "{{ command_text_printf }}" + data: + component: weather01.a02 + message: "{{ date0_en }}" + - service: "{{ command_text_printf }}" + data: + component: weather02.a02 + message: "{{ date1_en }}" + - service: "{{ command_text_printf }}" + data: + component: weather03.a02 + message: "{{ date2_en }}" + - service: "{{ command_text_printf }}" + data: + component: weather04.a02 + message: "{{ date3_en }}" + - service: "{{ command_text_printf }}" + data: + component: weather05.a02 + message: "{{ date4_de }}" + +##### Time Home Page Loading##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_entities + - time_state + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a01 + message: "{{ time }}" + + + + + +################################################## +##### ACTION - SHORT Press an LONG Press Button Page ########################################################################################################################################################## +################################################## + + + + + +##### ACTION - Page Button - SHORT Press - Toggle Enities ##### + - choose: + - conditions: + - condition: trigger + id: short_press + sequence: + - service: >- + {% if entity_short is match 'light.' %} + light.toggle + {% elif entity_short is match 'switch.' %} + switch.toggle + {% elif entity_short is match 'cover.' %} + cover.toggle + {% elif entity_short is match 'input_boolean.' %} + input_boolean.toggle + {% endif %} + data: + entity_id: "{{ entity_short }}" + + + + + +################################################## +##### ACTION - Light Setting Page ########################################################################################################################################################## +################################################## + + + + + +##### ACTION - Page Lightsettings - JUMP to Page Lightsettings and SYNC Light Settings ##### + - choose: + - conditions: + - condition: trigger + id: long_press + sequence: + ##### send some current Values to Cover Setting page ##### + - if: + - condition: template + value_template: '{{ entity_long is match "light." }}' + then: + - service: "{{ command_printf }}" + data: + cmd: page lightsettings + - delay: + milliseconds: 5 + - service: "{{ command_value }}" + data: + component: lightsettings.lightslider + message: '{{ (state_attr(entity_long, "brightness") | int ) |round(0) }}' + - delay: + milliseconds: 10 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_name + message: '{{ entity_long_name }}' + - delay: + milliseconds: 15 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_value + message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 255) |round(0) }} %' + - delay: + milliseconds: 20 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_value_2 + message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 255) |round(0) }} %' + ##### Light PIC - ON ##### + - if: + - condition: template + value_template: '{{ states(entity_long) == "on" }}' + then: + - delay: + milliseconds: 25 + - service: "{{ command_printf }}" + data: + cmd: lightsettings.light_status.pic={{ light_pic_on }} + ##### Light PIC - OFF ##### + - if: + - condition: template + value_template: '{{ states(entity_long) == "off" }}' + then: + - delay: + milliseconds: 25 + - service: "{{ command_printf }}" + data: + cmd: lightsettings.light_status.pic={{ light_pic_off }} + ##### Check Color_Temp Value is available when yes send some current Values ##### + - if: + - condition: template + value_template: "{{ state_attr(entity_long, 'color_temp') != none }}" + then: + - delay: + milliseconds: 30 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.temp_value + message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}' + - delay: + milliseconds: 35 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.temp_value_2 + message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}' + - delay: + milliseconds: 40 + - service: "{{ command_value }}" + data: + component: lightsettings.tempslider + message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}' + + + + + +##### ACTION - Page Lightsettings - Changes from HA ##### + - choose: + - conditions: + - condition: trigger + id: + - current_state_entity01 + - current_state_entity02 + - current_state_entity03 + - current_state_entity04 + - current_state_entity05 + - current_state_entity06 + - current_state_entity07 + - current_state_entity08 + - current_state_entity09 + - current_state_entity10 + - current_state_entity11 + - current_state_entity12 + - current_state_entity13 + - current_state_entity14 + - current_state_entity15 + - current_state_entity16 + - current_state_entity17 + - current_state_entity18 + - current_state_entity19 + - current_state_entity20 + - current_state_entity21 + - current_state_entity22 + - current_state_entity23 + - current_state_entity24 + - current_state_entity25 + - current_state_entity26 + - current_state_entity27 + - current_state_entity28 + - current_state_entity29 + - current_state_entity30 + - current_state_entity31 + - current_state_entity32 + sequence: + ##### Light PIC - ON ##### + - if: + - condition: template + value_template: '{{ states(entity_long) == "on" }}' + then: + - delay: + milliseconds: 5 + - service: "{{ command_printf }}" + data: + cmd: lightsettings.light_status.pic={{ light_pic_on }} + ##### Light PIC - OFF ##### + - if: + - condition: template + value_template: '{{ states(entity_long) == "off" }}' + then: + - delay: + milliseconds: 5 + - service: "{{ command_printf }}" + data: + cmd: lightsettings.light_status.pic={{ light_pic_off }} + ##### Brightness Slider HA Sync - YES ##### + - if: + - condition: template + value_template: '{{ entity_long is match "light." and sync_slider_ha == "select_yes" }}' + then: + - delay: + milliseconds: 5 + - service: "{{ command_value }}" + data: + component: lightsettings.lightslider + message: '{{ (state_attr(entity_long, "brightness") | int ) |round(0) }}' + ##### Temp Slider HA Sync - YES ##### + - if: + - condition: template + value_template: '{{ state_attr(entity_long, "color_temp") != none and sync_slider_ha == "select_yes" }}' + then: + - delay: + milliseconds: 10 + - service: "{{ command_value }}" + data: + component: lightsettings.tempslider + message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}' + ##### Brightness Value HA Sync - YES ##### + - if: + - condition: template + value_template: '{{ entity_long is match "light." and sync_value_ha == "select_yes" }}' + then: + - delay: + milliseconds: 10 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_value + message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 255) |round(0) }} %' + - delay: + milliseconds: 15 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_value_2 + message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 255) |round(0) }} %' + ##### Temp Value HA Sync - YES ##### + - if: + - condition: template + value_template: '{{ state_attr(entity_long, "color_temp") != none and sync_value_ha == "select_yes" }}' + then: + - delay: + milliseconds: 20 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.temp_value + message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}' + - delay: + milliseconds: 25 + - service: "{{ command_text_printf }}" + data: + component: lightsettings.temp_value_2 + message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}' + + + + + +##### ACTION - Page Lightsettings - Brightness Slider MOVE ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) is match "brightness\d+" }}' + sequence: + - service: light.turn_on + data: + entity_id: "{{ entity_long }}" + brightness: '{{ states(last_click_lightsettings) |replace("brightness","") | int }}' + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_value + message: '{{ ((states(last_click_lightsettings) |replace("brightness","") | int) * 100 /255) |round(0) }} %' + - service: "{{ command_text_printf }}" + data: + component: lightsettings.light_value_2 + message: '{{ ((states(last_click_lightsettings) |replace("brightness","") | int) * 100 /255) |round(0) }} %' + + + + + +##### ACTION - Page Lightsettings - color_Temp Slider MOVE ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) is match "colortemp\d+" }}' + sequence: + - service: light.turn_on + data: + entity_id: "{{ entity_long }}" + color_temp: '{{ states(last_click_lightsettings) |replace("colortemp","") | int }}' + - service: "{{ command_text_printf }}" + data: + component: lightsettings.temp_value + message: '{{ states(last_click_lightsettings) |replace("colortemp","") | int }}' + - service: "{{ command_text_printf }}" + data: + component: lightsettings.temp_value_2 + message: '{{ states(last_click_lightsettings) |replace("colortemp","") | int }}' + + + + + +##### ACTION - Page Lightsettings - Color RGB Slider MOVE ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) is match "\d+,\d+,\d+" }}' + sequence: + - service: light.turn_on + data: + entity_id: "{{ entity_long }}" + rgb_color: '{{ states(last_click_lightsettings).split(",") }}' + + + + + +##### ACTION - Page Lightsettings - Close Lightsetting Page ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) == "releaselightsettingsclose" }}' + sequence: + - service: "{{ command_printf }}" + data: + cmd: "{{ entity_back }}" + + + + + +################################################## +##### ACTION - Cover Setting Page ########################################################################################################################################################## +################################################## + + + + + +##### ACTION - Page Coversettings - JUMP to Page Coversettings and SYNC Cover Settings ##### + - choose: + - conditions: + - condition: trigger + id: long_press + sequence: + ##### send some current Values to Cover Setting page ##### + - if: + - condition: template + value_template: '{{ entity_long is match "cover." }}' + then: + - service: "{{ command_printf }}" + data: + cmd: page coversettings + - delay: + milliseconds: 2 + - service: "{{ command_value }}" + data: + component: coversettings.coverslider + message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }}' + - delay: + milliseconds: 3 + - service: "{{ command_text_printf }}" + data: + component: coversettings.cover_value + message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }} %' + - delay: + milliseconds: 4 + - service: "{{ command_text_printf }}" + data: + component: coversettings.cover_name + message: '{{ entity_long_name }}' + ##### Cover PIC - open ##### + - if: + - condition: template + value_template: '{{ states(entity_long) == "open" }}' + then: + - delay: + milliseconds: 5 + - service: "{{ command_printf }}" + data: + cmd: coversettings.cover_status.pic={{ cover_pic_open }} + ##### Cover PIC - Closed + - if: + - condition: template + value_template: '{{ states(entity_long) == "closed" }}' + then: + - delay: + milliseconds: 6 + - service: "{{ command_printf }}" + data: + cmd: coversettings.cover_status.pic={{ cover_pic_closed }} + ##### Cover Battery ICON Yes / NO ##### + - if: + - condition: template + value_template: "{{ state_attr(entity_long, 'battery') != none }}" + then: + - delay: + milliseconds: 7 + - service: "{{ command_text_printf }}" + data: + component: coversettings.battery_value + message: '{{ (state_attr(entity_long, "battery") | int ) |round(0) }} %' + - service: "{{ command_printf }}" + data: + cmd: coversettings.battery_icon.pic={{ battery_icon }} + + + + + +##### ACTION - Page Coversettings - Changes from HA ##### + - choose: + - conditions: + - condition: trigger + id: + - current_state_entity01 + - current_state_entity02 + - current_state_entity03 + - current_state_entity04 + - current_state_entity05 + - current_state_entity06 + - current_state_entity07 + - current_state_entity08 + - current_state_entity09 + - current_state_entity10 + - current_state_entity11 + - current_state_entity12 + - current_state_entity13 + - current_state_entity14 + - current_state_entity15 + - current_state_entity16 + - current_state_entity17 + - current_state_entity18 + - current_state_entity19 + - current_state_entity20 + - current_state_entity21 + - current_state_entity22 + - current_state_entity23 + - current_state_entity24 + - current_state_entity25 + - current_state_entity26 + - current_state_entity27 + - current_state_entity28 + - current_state_entity29 + - current_state_entity30 + - current_state_entity31 + - current_state_entity32 + sequence: + ##### Cover PIC - open + - if: + - condition: template + value_template: '{{ states(entity_long) == "open" }}' + then: + - delay: + milliseconds: 1 + - service: "{{ command_printf }}" + data: + cmd: coversettings.cover_status.pic={{ cover_pic_open }} + ##### Cover PIC - Closed ##### + - if: + - condition: template + value_template: '{{ states(entity_long) == "closed" }}' + then: + - delay: + milliseconds: 1 + - service: "{{ command_printf }}" + data: + cmd: coversettings.cover_status.pic={{ cover_pic_closed }} + ##### Cover Slider HA Sync - YES ##### + - if: + - condition: template + value_template: '{{ entity_long is match "cover." and sync_slider_ha == "select_yes" }}' + then: + - delay: + milliseconds: 2 + - service: "{{ command_value }}" + data: + component: lightsettings.lightslider + message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }}' + ##### Cover Value HA Sync - YES ##### + - if: + - condition: template + value_template: '{{ entity_long is match "cover." and sync_value_ha == "select_yes" }}' + then: + - delay: + milliseconds: 3 + - service: "{{ command_text_printf }}" + data: + component: coversettings.cover_value + message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }} %' + + + + + +##### ACTION - Page Coversettings - Cover Slider MOVE ##### + - choose: + - conditions: + - condition: trigger + id: + - cover_settings + sequence: + - if: + - condition: template + value_template: '{{ states(last_click_coversettings) is match "coverposition\d+" }}' + then: + - service: cover.set_cover_position + data: + entity_id: "{{ entity_long }}" + position: '{{ states(last_click_coversettings) |replace("coverposition","") | int }}' + - service: "{{ command_text_printf }}" + data: + component: coversettings.cover_value + message: '{{ states(last_click_coversettings) |replace("coverposition","") | int }} %' + - service: "{{ command_text_printf }}" + data: + component: coversettings.cover_value_2 + message: '{{ states(last_click_coversettings) |replace("coverposition","") | int }} %' + + + + + +##### ACTION - Page Coversettings - UP / DOWN / STOP Cover ##### + - choose: + - conditions: + - condition: trigger + id: cover_settings + sequence: + ##### COVER CLOSE Button ##### + - if: + - condition: template + value_template: '{{ states(last_click_coversettings) == "cover_close_press" }}' + then: + - service: cover.close_cover + data: + entity_id: "{{ entity_long }}" + ##### COVER OPEN Button ##### + - if: + - condition: template + value_template: '{{ states(last_click_coversettings) == "cover_open_press" }}' + then: + - service: cover.open_cover + data: + entity_id: "{{ entity_long }}" + ##### COVER STOP Button ##### + - if: + - condition: template + value_template: '{{ states(last_click_coversettings) == "cover_stop_press" }}' + then: + - service: cover.stop_cover + data: + entity_id: "{{ entity_long }}" + + + + + +##### ACTION - Page Coversettings - Close Coversettings ##### + - choose: + - conditions: + - condition: trigger + id: cover_settings + - condition: template + value_template: '{{ states(last_click_coversettings) == "releasecoversettingsclose" }}' + sequence: + - service: "{{ command_printf }}" + data: + cmd: "{{ entity_back }}" + + + + + +################################################## +##### ACTION - Cover Setting Page ########################################################################################################################################################## +################################################## + + + + + + +##### ACTION - TFT Upload Automation ##### + - choose: + - conditions: + - condition: trigger + id: tft_upload + sequence: + - delay: + seconds: 2 + - service: "{{ tft_upload }}" + data: {} + + ##### Humidity ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_entities + - humidity_state + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a04 + message: "{{ states(humidity) |round(0) }}%" + + ##### Hotwater Temp ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_entities + - hotwatertemp_state + - condition: template + value_template: '{{ hotwatertemp is match "sensor." }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a07 + message: "{{ states(hotwatertemp) |round(1) }}°" + - service: "{{ command_text_printf }}" + data: + component: thermostat.a08 + message: "{{ states(hotwatertemp) |round(1) }}°" + - service: "{{ command_printf }}" + data: + cmd: home.p01.pic=68 + + ##### Outdoor Temp Entity ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_entities + - outdoortemp_state + - condition: template + value_template: '{{ outdoortemp is match "sensor." }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a06 + message: "{{ states(outdoortemp) |round(0) }}°" + - service: "{{ command_text_printf }}" + data: + component: thermostat.a07 + message: "{{ states(outdoortemp) |round(0) }}°" + + ##### Outdoor Temp Meteorologisk ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_entities + - weather_update_time + - condition: template + value_template: '{{ outdoortemp == "default" }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a06 + message: '{{state_attr(ha_weather,"temperature") | round(0)}}°' + - service: "{{ command_text_printf }}" + data: + component: thermostat.a07 + message: '{{state_attr(ha_weather,"temperature") | round(0)}}°' + + ##### Outdoor Temp AccuWeather ##### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_entities + - weather_update_time + - condition: template + value_template: '{{ outdoortemp == "accuweather" }}' + sequence: + - service: "{{ command_text_printf }}" + data: + component: home.a06 + message: "{{states(accuweather_realfeel_temperature_max_0d) | round(0)}}°" + - service: "{{ command_text_printf }}" + data: + component: thermostat.a07 + message: "{{states(accuweather_realfeel_temperature_max_0d) | round(0)}}°" + + ##### Left Button - Toggle ##### + - choose: + - conditions: + - condition: trigger + id: left_button_press + sequence: + - service: >- + {% if left_button_entity is match 'light.' %} + light.toggle + {% elif left_button_entity is match 'switch.' %} + switch.toggle + {% elif left_button_entity is match 'cover.' %} + cover.toggle + {% elif left_button_entity is match 'input_boolean.' %} + input_boolean.toggle + {% endif %} + data: + entity_id: "{{ left_button_entity }}" + + ##### Right Button - Toggle ##### + - choose: + - conditions: + - condition: trigger + id: right_button_press + sequence: + - service: >- + {% if right_button_entity is match 'light.' %} + light.toggle + {% elif right_button_entity is match 'switch.' %} + switch.toggle + {% elif right_button_entity is match 'cover.' %} + cover.toggle + {% elif right_button_entity is match 'input_boolean.' %} + input_boolean.toggle + {% endif %} + data: + entity_id: "{{ right_button_entity }}" + + + + + + + + + ######################################### + # + # + ############################################################# + ##### CLOSE - START - Action ##### + ############################################################# + # + ## + ### + ############################################################################################################################################################################################# + ### + ## + # + ############################################################# + ##### START - HA Button SYNC ##### + ############################################################# + # + # + ######################################### + + + + + +################################################################################ +####### buttonpage01.button01 ################################################################# +################################################################################ + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity01 + sequence: + ##### buttonpage01.button01 Design Light OFF ##### + - if: + - condition: template + value_template: '{{ entity01 is match "light." and states(entity01) == "off" }}' + then: + ##### Button LIGHT PIC - OFF ##### + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_light_off }} + ##### "TEXT" Background - Light OFF ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### "TEXT" Font Color - Light OFF ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### "BRIGHTNESS" Background Color - Light OFF ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### "BRIGHTNESS" Font Color - Light OFF ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### "TEXT" Name - Light OFF ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### "BRIGHTNESS" Text - Light OFF ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: " " + + + + ##### buttonpage01.button01 Design light ON ##### + - if: + - condition: template + value_template: '{{ entity01 is match "light." and states(entity01) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: '{{ (state_attr(entity01, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button01 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity01 is match "switch." and states(entity01) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: " " + ##### buttonpage01.button01 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity01 is match "switch." and states(entity01) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: " " + + ##### buttonpage01.button01 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity01 is match "input_boolean." and states(entity01) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: " " + ##### buttonpage01.button01 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity01 is match "input_boolean." and states(entity01) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: " " + + ##### buttonpage01.button01 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity01 is match "cover." and states(entity01) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: " " + ##### buttonpage01.button01 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity01 is match "cover." and states(entity01) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button01pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01text + message: "{{ entity01_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button01bri + message: '{{ (state_attr(entity01, "current_position") | int ) |round(0) }}%' + + +################################################################################ + ####### buttonpage01.button02 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button02 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity02 + sequence: + - if: + - condition: template + value_template: '{{ entity02 is match "light." and states(entity02) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: " " + ##### buttonpage01.button02 light ON ##### + - if: + - condition: template + value_template: '{{ entity02 is match "light." and states(entity02) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: '{{ (state_attr(entity02, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button02 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity02 is match "switch." and states(entity02) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: " " + ##### buttonpage01.button02 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity02 is match "switch." and states(entity02) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: " " + + ##### buttonpage01.button02 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity02 is match "input_boolean." and states(entity02) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: " " + ##### buttonpage01.button02 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity02 is match "input_boolean." and states(entity02) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: " " + + ##### buttonpage01.button02 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity02 is match "cover." and states(entity02) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: " " + ##### buttonpage01.button02 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity02 is match "cover." and states(entity02) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button02pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02text + message: "{{ entity02_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button02bri + message: '{{ (state_attr(entity02, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage01.button03 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button03 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity03 + sequence: + - if: + - condition: template + value_template: '{{ entity03 is match "light." and states(entity03) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: " " + ##### buttonpage01.button03 light ON ##### + - if: + - condition: template + value_template: '{{ entity03 is match "light." and states(entity03) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: '{{ (state_attr(entity03, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button03 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity03 is match "switch." and states(entity03) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: " " + ##### buttonpage01.button03 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity03 is match "switch." and states(entity03) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: " " + + ##### buttonpage01.button03 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity03 is match "input_boolean." and states(entity03) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: " " + ##### buttonpage01.button03 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity03 is match "input_boolean." and states(entity03) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: " " + + ##### buttonpage01.button03 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity03 is match "cover." and states(entity03) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: " " + ##### buttonpage01.button03 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity03 is match "cover." and states(entity03) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button03pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03text + message: "{{ entity03_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button03bri + message: '{{ (state_attr(entity03, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage01.button04 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button04 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity04 + sequence: + - if: + - condition: template + value_template: '{{ entity04 is match "light." and states(entity04) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: " " + ##### buttonpage01.button04 light ON ##### + - if: + - condition: template + value_template: '{{ entity04 is match "light." and states(entity04) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: '{{ (state_attr(entity04, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button04 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity04 is match "switch." and states(entity04) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: " " + ##### buttonpage01.button04 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity04 is match "switch." and states(entity04) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: " " + + ##### buttonpage01.button04 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity04 is match "input_boolean." and states(entity04) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: " " + ##### buttonpage01.button04 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity04 is match "input_boolean." and states(entity04) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: " " + + ##### buttonpage01.button04 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity04 is match "cover." and states(entity04) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: " " + ##### buttonpage01.button04 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity04 is match "cover." and states(entity04) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button04pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04text + message: "{{ entity04_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button04bri + message: '{{ (state_attr(entity04, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage01.button05 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button05 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity05 + sequence: + - if: + - condition: template + value_template: '{{ entity05 is match "light." and states(entity05) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: " " + ##### buttonpage01.button05 light ON ##### + - if: + - condition: template + value_template: '{{ entity05 is match "light." and states(entity05) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: '{{ (state_attr(entity05, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button05 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity05 is match "switch." and states(entity05) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: " " + ##### buttonpage01.button05 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity05 is match "switch." and states(entity05) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: " " + + ##### buttonpage01.button05 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity05 is match "input_boolean." and states(entity05) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: " " + ##### buttonpage01.button05 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity05 is match "input_boolean." and states(entity05) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: " " + + ##### buttonpage01.button05 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity05 is match "cover." and states(entity05) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: " " + ##### buttonpage01.button05 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity05 is match "cover." and states(entity05) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button05pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05text + message: "{{ entity05_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button05bri + message: '{{ (state_attr(entity05, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage01.button06 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button06 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity06 + sequence: + - if: + - condition: template + value_template: '{{ entity06 is match "light." and states(entity06) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: " " + ##### buttonpage01.button06 light ON ##### + - if: + - condition: template + value_template: '{{ entity06 is match "light." and states(entity06) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: '{{ (state_attr(entity06, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button06 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity06 is match "switch." and states(entity06) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: " " + ##### buttonpage01.button06 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity06 is match "switch." and states(entity06) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: " " + + ##### buttonpage01.button06 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity06 is match "input_boolean." and states(entity06) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: " " + ##### buttonpage01.button06 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity06 is match "input_boolean." and states(entity06) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: " " + + ##### buttonpage01.button06 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity06 is match "cover." and states(entity06) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: " " + ##### buttonpage01.button06 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity06 is match "cover." and states(entity06) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button06pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06text + message: "{{ entity06_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button06bri + message: '{{ (state_attr(entity06, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage01.button07 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button07 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity07 + sequence: + - if: + - condition: template + value_template: '{{ entity07 is match "light." and states(entity07) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: " " + ##### buttonpage01.button07 light ON ##### + - if: + - condition: template + value_template: '{{ entity07 is match "light." and states(entity07) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: '{{ (state_attr(entity07, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button07 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity07 is match "switch." and states(entity07) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: " " + ##### buttonpage01.button07 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity07 is match "switch." and states(entity07) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: " " + + ##### buttonpage01.button07 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity07 is match "input_boolean." and states(entity07) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: " " + ##### buttonpage01.button07 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity07 is match "input_boolean." and states(entity07) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: " " + + ##### buttonpage01.button07 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity07 is match "cover." and states(entity07) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: " " + ##### buttonpage01.button07 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity07 is match "cover." and states(entity07) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button07pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07text + message: "{{ entity07_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button07bri + message: '{{ (state_attr(entity07, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage01.button08 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage01.button08 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage01 + - current_state_entity08 + sequence: + - if: + - condition: template + value_template: '{{ entity08 is match "light." and states(entity08) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: " " + ##### buttonpage01.button08 light ON ##### + - if: + - condition: template + value_template: '{{ entity08 is match "light." and states(entity08) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: '{{ (state_attr(entity08, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage01.button08 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity08 is match "switch." and states(entity08) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: " " + ##### buttonpage01.button08 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity08 is match "switch." and states(entity08) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: " " + + ##### buttonpage01.button08 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity08 is match "input_boolean." and states(entity08) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: " " + ##### buttonpage01.button08 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity08 is match "input_boolean." and states(entity08) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: " " + + ##### buttonpage01.button08 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity08 is match "cover." and states(entity08) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: " " + ##### buttonpage01.button08 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity08 is match "cover." and states(entity08) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage01.button08pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage01.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08text + message: "{{ entity08_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage01.button08bri + message: '{{ (state_attr(entity08, "current_position") | int ) |round(0) }}%' + +######################################################################################################################## + +################################################################################ + ####### buttonpage02.button01 ################################################################# +################################################################################ + - choose: + ##### buttonpage02.button01 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity09 + sequence: + - if: + - condition: template + value_template: '{{ entity09 is match "light." and states(entity09) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: " " + ##### buttonpage02.button01 light ON ##### + - if: + - condition: template + value_template: '{{ entity09 is match "light." and states(entity09) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: '{{ (state_attr(entity09, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button01 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity09 is match "switch." and states(entity09) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: " " + ##### buttonpage02.button01 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity09 is match "switch." and states(entity09) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: " " + + ##### buttonpage02.button01 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity09 is match "input_boolean." and states(entity09) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: " " + ##### buttonpage02.button01 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity09 is match "input_boolean." and states(entity09) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: " " + + ##### buttonpage02.button01 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity09 is match "cover." and states(entity09) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: " " + ##### buttonpage02.button01 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity09 is match "cover." and states(entity09) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button01pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01text + message: "{{ entity09_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button01bri + message: '{{ (state_attr(entity09, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button02 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button02 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity10 + sequence: + - if: + - condition: template + value_template: '{{ entity10 is match "light." and states(entity10) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: " " + ##### buttonpage02.button02 light ON ##### + - if: + - condition: template + value_template: '{{ entity10 is match "light." and states(entity10) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: '{{ (state_attr(entity10, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button02 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity10 is match "switch." and states(entity10) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: " " + ##### buttonpage02.button02 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity10 is match "switch." and states(entity10) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: " " + + ##### buttonpage02.button02 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity10 is match "input_boolean." and states(entity10) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: " " + ##### buttonpage02.button02 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity10 is match "input_boolean." and states(entity10) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: " " + + ##### buttonpage02.button02 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity10 is match "cover." and states(entity10) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: " " + ##### buttonpage02.button02 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity10 is match "cover." and states(entity10) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button02pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02text + message: "{{ entity10_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button02bri + message: '{{ (state_attr(entity10, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button03 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button03 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity11 + sequence: + - if: + - condition: template + value_template: '{{ entity11 is match "light." and states(entity11) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: " " + ##### buttonpage02.button03 light ON ##### + - if: + - condition: template + value_template: '{{ entity11 is match "light." and states(entity11) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: '{{ (state_attr(entity11, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button03 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity11 is match "switch." and states(entity11) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: " " + ##### buttonpage02.button03 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity11 is match "switch." and states(entity11) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: " " + + ##### buttonpage02.button03 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity11 is match "input_boolean." and states(entity11) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: " " + ##### buttonpage02.button03 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity11 is match "input_boolean." and states(entity11) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: " " + + ##### buttonpage02.button03 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity11 is match "cover." and states(entity11) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: " " + ##### buttonpage02.button03 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity11 is match "cover." and states(entity11) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button03pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03text + message: "{{ entity11_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button03bri + message: '{{ (state_attr(entity11, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button04 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button04 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity12 + sequence: + - if: + - condition: template + value_template: '{{ entity12 is match "light." and states(entity12) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: " " + ##### buttonpage02.button04 light ON ##### + - if: + - condition: template + value_template: '{{ entity12 is match "light." and states(entity12) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: '{{ (state_attr(entity12, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button04 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity12 is match "switch." and states(entity12) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: " " + ##### buttonpage02.button04 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity12 is match "switch." and states(entity12) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: " " + + ##### buttonpage02.button04 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity12 is match "input_boolean." and states(entity12) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: " " + ##### buttonpage02.button04 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity12 is match "input_boolean." and states(entity12) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: " " + + ##### buttonpage02.button04 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity12 is match "cover." and states(entity12) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: " " + ##### buttonpage02.button04 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity12 is match "cover." and states(entity12) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button04pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04text + message: "{{ entity12_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button04bri + message: '{{ (state_attr(entity12, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button05 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button05 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity13 + sequence: + - if: + - condition: template + value_template: '{{ entity13 is match "light." and states(entity13) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: " " + ##### buttonpage02.button05 light ON ##### + - if: + - condition: template + value_template: '{{ entity13 is match "light." and states(entity13) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: '{{ (state_attr(entity13, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button05 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity13 is match "switch." and states(entity13) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: " " + ##### buttonpage02.button05 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity13 is match "switch." and states(entity13) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: " " + + ##### buttonpage02.button05 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity13 is match "input_boolean." and states(entity13) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: " " + ##### buttonpage02.button05 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity13 is match "input_boolean." and states(entity13) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: " " + + ##### buttonpage02.button05 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity13 is match "cover." and states(entity13) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: " " + ##### buttonpage02.button05 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity13 is match "cover." and states(entity13) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button05pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05text + message: "{{ entity13_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button05bri + message: '{{ (state_attr(entity13, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button06 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button06 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity14 + sequence: + - if: + - condition: template + value_template: '{{ entity14 is match "light." and states(entity14) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: " " + ##### buttonpage02.button06 light ON ##### + - if: + - condition: template + value_template: '{{ entity14 is match "light." and states(entity14) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: '{{ (state_attr(entity14, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button06 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity14 is match "switch." and states(entity14) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: " " + ##### buttonpage02.button06 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity14 is match "switch." and states(entity14) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: " " + + ##### buttonpage02.button06 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity14 is match "input_boolean." and states(entity14) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: " " + ##### buttonpage02.button06 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity14 is match "input_boolean." and states(entity14) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: " " + + ##### buttonpage02.button06 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity14 is match "cover." and states(entity14) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: " " + ##### buttonpage02.button06 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity14 is match "cover." and states(entity14) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button06pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06text + message: "{{ entity14_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button06bri + message: '{{ (state_attr(entity14, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button07 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button07 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity15 + sequence: + - if: + - condition: template + value_template: '{{ entity15 is match "light." and states(entity15) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: " " + ##### buttonpage02.button07 light ON ##### + - if: + - condition: template + value_template: '{{ entity15 is match "light." and states(entity15) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: '{{ (state_attr(entity15, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button07 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity15 is match "switch." and states(entity15) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: " " + ##### buttonpage02.button07 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity15 is match "switch." and states(entity15) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: " " + + ##### buttonpage02.button07 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity15 is match "input_boolean." and states(entity15) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: " " + ##### buttonpage02.button07 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity15 is match "input_boolean." and states(entity15) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: " " + + ##### buttonpage02.button07 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity15 is match "cover." and states(entity15) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: " " + ##### buttonpage02.button07 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity15 is match "cover." and states(entity15) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button07pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07text + message: "{{ entity15_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button07bri + message: '{{ (state_attr(entity15, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage02.button08 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage02.button08 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage02 + - current_state_entity16 + sequence: + - if: + - condition: template + value_template: '{{ entity16 is match "light." and states(entity16) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: " " + ##### buttonpage02.button08 light ON ##### + - if: + - condition: template + value_template: '{{ entity16 is match "light." and states(entity16) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: '{{ (state_attr(entity16, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage02.button08 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity16 is match "switch." and states(entity16) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: " " + ##### buttonpage02.button08 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity16 is match "switch." and states(entity16) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: " " + + ##### buttonpage02.button08 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity16 is match "input_boolean." and states(entity16) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: " " + ##### buttonpage02.button08 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity16 is match "input_boolean." and states(entity16) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: " " + + ##### buttonpage02.button08 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity16 is match "cover." and states(entity16) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: " " + ##### buttonpage02.button08 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity16 is match "cover." and states(entity16) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage02.button08pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage02.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08text + message: "{{ entity16_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage02.button08bri + message: '{{ (state_attr(entity16, "current_position") | int ) |round(0) }}%' + +######################################################################################################################## + +################################################################################ + ####### buttonpage03.button01 ################################################################# +################################################################################ + - choose: + ##### buttonpage03.button01 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity17 + sequence: + - if: + - condition: template + value_template: '{{ entity17 is match "light." and states(entity17) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: " " + ##### buttonpage03.button01 light ON ##### + - if: + - condition: template + value_template: '{{ entity17 is match "light." and states(entity17) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: '{{ (state_attr(entity17, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button01 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity17 is match "switch." and states(entity17) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: " " + ##### buttonpage03.button01 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity17 is match "switch." and states(entity17) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: " " + + ##### buttonpage03.button01 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity17 is match "input_boolean." and states(entity17) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: " " + ##### buttonpage03.button01 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity17 is match "input_boolean." and states(entity17) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: " " + + ##### buttonpage03.button01 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity17 is match "cover." and states(entity17) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: " " + ##### buttonpage03.button01 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity17 is match "cover." and states(entity17) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button01pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01text + message: "{{ entity17_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button01bri + message: '{{ (state_attr(entity17, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button02 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button02 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity18 + sequence: + - if: + - condition: template + value_template: '{{ entity18 is match "light." and states(entity18) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: " " + ##### buttonpage03.button02 light ON ##### + - if: + - condition: template + value_template: '{{ entity18 is match "light." and states(entity18) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: '{{ (state_attr(entity18, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button02 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity18 is match "switch." and states(entity18) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: " " + ##### buttonpage03.button02 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity18 is match "switch." and states(entity18) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: " " + + ##### buttonpage03.button02 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity18 is match "input_boolean." and states(entity18) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: " " + ##### buttonpage03.button02 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity18 is match "input_boolean." and states(entity18) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: " " + + ##### buttonpage03.button02 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity18 is match "cover." and states(entity18) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: " " + ##### buttonpage03.button02 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity18 is match "cover." and states(entity18) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button02pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02text + message: "{{ entity18_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button02bri + message: '{{ (state_attr(entity18, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button03 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button03 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity19 + sequence: + - if: + - condition: template + value_template: '{{ entity19 is match "light." and states(entity19) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: " " + ##### buttonpage03.button03 light ON ##### + - if: + - condition: template + value_template: '{{ entity19 is match "light." and states(entity19) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: '{{ (state_attr(entity19, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button03 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity19 is match "switch." and states(entity19) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: " " + ##### buttonpage03.button03 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity19 is match "switch." and states(entity19) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: " " + + ##### buttonpage03.button03 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity19 is match "input_boolean." and states(entity19) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: " " + ##### buttonpage03.button03 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity19 is match "input_boolean." and states(entity19) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: " " + + ##### buttonpage03.button03 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity19 is match "cover." and states(entity19) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: " " + ##### buttonpage03.button03 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity19 is match "cover." and states(entity19) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button03pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03text + message: "{{ entity19_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button03bri + message: '{{ (state_attr(entity19, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button04 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button04 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity20 + sequence: + - if: + - condition: template + value_template: '{{ entity20 is match "light." and states(entity20) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: " " + ##### buttonpage03.button04 light ON ##### + - if: + - condition: template + value_template: '{{ entity20 is match "light." and states(entity20) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: '{{ (state_attr(entity20, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button04 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity20 is match "switch." and states(entity20) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: " " + ##### buttonpage03.button04 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity20 is match "switch." and states(entity20) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: " " + + ##### buttonpage03.button04 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity20 is match "input_boolean." and states(entity20) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: " " + ##### buttonpage03.button04 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity20 is match "input_boolean." and states(entity20) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: " " + + ##### buttonpage03.button04 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity20 is match "cover." and states(entity20) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: " " + ##### buttonpage03.button04 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity20 is match "cover." and states(entity20) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button04pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04text + message: "{{ entity20_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button04bri + message: '{{ (state_attr(entity20,"current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button05 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button05 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity21 + sequence: + - if: + - condition: template + value_template: '{{ entity21 is match "light." and states(entity21) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: " " + ##### buttonpage03.button05 light ON ##### + - if: + - condition: template + value_template: '{{ entity21 is match "light." and states(entity21) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: '{{ (state_attr(entity21, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button05 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity21 is match "switch." and states(entity21) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: " " + ##### buttonpage03.button05 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity21 is match "switch." and states(entity21) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: " " + + ##### buttonpage03.button05 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity21 is match "input_boolean." and states(entity21) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: " " + ##### buttonpage03.button05 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity21 is match "input_boolean." and states(entity21) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: " " + + ##### buttonpage03.button05 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity21 is match "cover." and states(entity21) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: " " + ##### buttonpage03.button05 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity21 is match "cover." and states(entity21) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button05pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05text + message: "{{ entity21_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button05bri + message: '{{ (state_attr(entity21, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button06 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button06 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity22 + sequence: + - if: + - condition: template + value_template: '{{ entity22 is match "light." and states(entity22) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: " " + ##### buttonpage03.button06 light ON ##### + - if: + - condition: template + value_template: '{{ entity22 is match "light." and states(entity22) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: '{{ (state_attr(entity22, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button06 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity22 is match "switch." and states(entity22) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: " " + ##### buttonpage03.button06 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity22 is match "switch." and states(entity22) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: " " + + ##### buttonpage03.button06 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity22 is match "input_boolean." and states(entity22) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: " " + ##### buttonpage03.button06 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity22 is match "input_boolean." and states(entity22) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: " " + + ##### buttonpage03.button06 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity22 is match "cover." and states(entity22) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: " " + ##### buttonpage03.button06 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity22 is match "cover." and states(entity22) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button06pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06text + message: "{{ entity22_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button06bri + message: '{{ (state_attr(entity22, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button07 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button07 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity23 + sequence: + - if: + - condition: template + value_template: '{{ entity23 is match "light." and states(entity23) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: " " + ##### buttonpage03.button07 light ON ##### + - if: + - condition: template + value_template: '{{ entity23 is match "light." and states(entity23) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: '{{ (state_attr(entity23, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button07 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity23 is match "switch." and states(entity23) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: " " + ##### buttonpage03.button07 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity23 is match "switch." and states(entity23) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: " " + + ##### buttonpage03.button07 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity23 is match "input_boolean." and states(entity23) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: " " + ##### buttonpage03.button07 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity23 is match "input_boolean." and states(entity23) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: " " + + ##### buttonpage03.button07 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity23 is match "cover." and states(entity23) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: " " + ##### buttonpage03.button07 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity23 is match "cover." and states(entity23) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button07pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07text + message: "{{ entity23_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button07bri + message: '{{ (state_attr(entity23, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage03.button08 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage03.button08 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage03 + - current_state_entity24 + sequence: + - if: + - condition: template + value_template: '{{ entity24 is match "light." and states(entity24) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: " " + ##### buttonpage03.button08 light ON ##### + - if: + - condition: template + value_template: '{{ entity24 is match "light." and states(entity24) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: '{{ (state_attr(entity24, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage03.button08 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity24 is match "switch." and states(entity24) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: " " + ##### buttonpage03.button08 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity24 is match "switch." and states(entity24) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: " " + + ##### buttonpage03.button08 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity24 is match "input_boolean." and states(entity24) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: " " + ##### buttonpage03.button08 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity24 is match "input_boolean." and states(entity24) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: " " + + ##### buttonpage03.button08 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity24 is match "cover." and states(entity24) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: " " + ##### buttonpage03.button08 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity24 is match "cover." and states(entity24) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage03.button08pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage03.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08text + message: "{{ entity24_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage03.button08bri + message: '{{ (state_attr(entity24, "current_position") | int ) |round(0) }}%' + +######################################################################################################################## + +################################################################################ + ####### buttonpage04.button01 ################################################################# +################################################################################ + - choose: + ##### buttonpage04.button01 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity25 + sequence: + - if: + - condition: template + value_template: '{{ entity25 is match "light." and states(entity25) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: " " + ##### buttonpage04.button01 light ON ##### + - if: + - condition: template + value_template: '{{ entity25 is match "light." and states(entity25) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: '{{ (state_attr(entity25, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button01 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity25 is match "switch." and states(entity25) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: " " + ##### buttonpage04.button01 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity25 is match "switch." and states(entity25) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: " " + + ##### buttonpage04.button01 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity25 is match "input_boolean." and states(entity25) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: " " + ##### buttonpage04.button01 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity25 is match "input_boolean." and states(entity25) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: " " + + ##### buttonpage04.button01 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity25 is match "cover." and states(entity25) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: " " + ##### buttonpage04.button01 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity25 is match "cover." and states(entity25) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button01pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button01bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01text + message: "{{ entity25_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button01bri + message: '{{ (state_attr(entity25, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button02 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button02 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity26 + sequence: + - if: + - condition: template + value_template: '{{ entity26 is match "light." and states(entity26) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: " " + ##### buttonpage04.button02 light ON ##### + - if: + - condition: template + value_template: '{{ entity26 is match "light." and states(entity26) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: '{{ (state_attr(entity26, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button02 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity26 is match "switch." and states(entity26) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: " " + ##### buttonpage04.button02 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity26 is match "switch." and states(entity26) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: " " + + ##### buttonpage04.button02 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity26 is match "input_boolean." and states(entity26) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: " " + ##### buttonpage04.button02 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity26 is match "input_boolean." and states(entity26) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: " " + + ##### buttonpage04.button02 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity26 is match "cover." and states(entity26) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: " " + ##### buttonpage04.button02 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity26 is match "cover." and states(entity26) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button02pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button02bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02text + message: "{{ entity26_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button02bri + message: '{{ (state_attr(entity26, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button03 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button03 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity27 + sequence: + - if: + - condition: template + value_template: '{{ entity27 is match "light." and states(entity27) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: " " + ##### buttonpage04.button03 light ON ##### + - if: + - condition: template + value_template: '{{ entity27 is match "light." and states(entity27) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: '{{ (state_attr(entity27, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button03 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity27 is match "switch." and states(entity27) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: " " + ##### buttonpage04.button03 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity27 is match "switch." and states(entity27) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: " " + + ##### buttonpage04.button03 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity27 is match "input_boolean." and states(entity27) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: " " + ##### buttonpage04.button03 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity27 is match "input_boolean." and states(entity27) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: " " + + ##### buttonpage04.button03 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity27 is match "cover." and states(entity27) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: " " + ##### buttonpage04.button03 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity27 is match "cover." and states(entity27) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button03pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button03bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03text + message: "{{ entity27_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button03bri + message: '{{ (state_attr(entity27, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button04 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button04 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity28 + sequence: + - if: + - condition: template + value_template: '{{ entity28 is match "light." and states(entity28) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: " " + ##### buttonpage04.button04 light ON ##### + - if: + - condition: template + value_template: '{{ entity28 is match "light." and states(entity28) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: '{{ (state_attr(entity28, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button04 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity28 is match "switch." and states(entity28) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: " " + ##### buttonpage04.button04 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity28 is match "switch." and states(entity28) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: " " + + ##### buttonpage04.button04 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity28 is match "input_boolean." and states(entity28) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: " " + ##### buttonpage04.button04 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity28 is match "input_boolean." and states(entity28) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: " " + + ##### buttonpage04.button04 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity28 is match "cover." and states(entity28) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: " " + ##### buttonpage04.button04 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity28 is match "cover." and states(entity28) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button04pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button04bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04text + message: "{{ entity28_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button04bri + message: '{{ (state_attr(entity28, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button05 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button05 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity29 + sequence: + - if: + - condition: template + value_template: '{{ entity29 is match "light." and states(entity29) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: " " + ##### buttonpage04.button05 light ON ##### + - if: + - condition: template + value_template: '{{ entity29 is match "light." and states(entity29) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: '{{ (state_attr(entity29, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button05 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity29 is match "switch." and states(entity29) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: " " + ##### buttonpage04.button05 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity29 is match "switch." and states(entity29) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: " " + + ##### buttonpage04.button05 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity29 is match "input_boolean." and states(entity29) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: " " + ##### buttonpage04.button05 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity29 is match "input_boolean." and states(entity29) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: " " + + ##### buttonpage04.button05 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity29 is match "cover." and states(entity29) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: " " + ##### buttonpage04.button05 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity29 is match "cover." and states(entity29) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button05pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button05bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05text + message: "{{ entity29_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button05bri + message: '{{ (state_attr(entity29, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button06 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button06 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity30 + sequence: + - if: + - condition: template + value_template: '{{ entity30 is match "light." and states(entity30) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: " " + ##### buttonpage04.button06 light ON ##### + - if: + - condition: template + value_template: '{{ entity30 is match "light." and states(entity30) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: '{{ (state_attr(entity30, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button06 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity30 is match "switch." and states(entity30) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: " " + ##### buttonpage04.button06 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity30 is match "switch." and states(entity30) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: " " + + ##### buttonpage04.button06 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity30 is match "input_boolean." and states(entity30) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: " " + ##### buttonpage04.button06 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity30 is match "input_boolean." and states(entity30) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: " " + + ##### buttonpage04.button06 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity30 is match "cover." and states(entity30) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: " " + ##### buttonpage04.button06 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity30 is match "cover." and states(entity30) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button06pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button06bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06text + message: "{{ entity30_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button06bri + message: '{{ (state_attr(entity30, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button07 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button07 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity31 + sequence: + - if: + - condition: template + value_template: '{{ entity31 is match "light." and states(entity31) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: " " + ##### buttonpage04.button07 light ON ##### + - if: + - condition: template + value_template: '{{ entity31 is match "light." and states(entity31) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: '{{ (state_attr(entity31, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button07 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity31 is match "switch." and states(entity31) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: " " + ##### buttonpage04.button07 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity31 is match "switch." and states(entity31) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: " " + + ##### buttonpage04.button07 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity31 is match "input_boolean." and states(entity31) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: " " + ##### buttonpage04.button07 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity31 is match "input_boolean." and states(entity31) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: " " + + ##### buttonpage04.button07 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity31 is match "cover." and states(entity31) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: " " + ##### buttonpage04.button07 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity31 is match "cover." and states(entity31) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button07pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button07bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07text + message: "{{ entity31_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button07bri + message: '{{ (state_attr(entity31, "current_position") | int ) |round(0) }}%' + +################################################################################ + ####### buttonpage04.button08 ######################################################################################## +################################################################################ + - choose: + ##### buttonpage04.button08 Light OFF ##### + - conditions: + - condition: trigger + id: + - nspanel_boot_buttonpage04 + - current_state_entity32 + sequence: + - if: + - condition: template + value_template: '{{ entity32 is match "light." and states(entity32) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_light_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: " " + ##### buttonpage04.button08 light ON ##### + - if: + - condition: template + value_template: '{{ entity32 is match "light." and states(entity32) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_light_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: '{{ (state_attr(entity32, "brightness") | int * 100 / 254) |round(0) }}%' + + ##### buttonpage04.button08 Switch OFF ##### + - if: + - condition: template + value_template: '{{ entity32 is match "switch." and states(entity32) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: " " + ##### buttonpage04.button08 Switch ON ##### + - if: + - condition: template + value_template: '{{ entity32 is match "switch." and states(entity32) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: " " + + ##### buttonpage04.button08 Input Boolean OFF ##### + - if: + - condition: template + value_template: '{{ entity32 is match "input_boolean." and states(entity32) == "off" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_switch_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: " " + ##### buttonpage04.button08 Input Boolean ON ##### + - if: + - condition: template + value_template: '{{ entity32 is match "input_boolean." and states(entity32) == "on" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_switch_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: " " + + ##### buttonpage04.button08 Cover OFF ##### + - if: + - condition: template + value_template: '{{ entity32 is match "cover." and states(entity32) == "closed" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_cover_off }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: " " + ##### buttonpage04.button08 Cover ON ##### + - if: + - condition: template + value_template: '{{ entity32 is match "cover." and states(entity32) == "open" }}' + then: + - service: "{{ command_printf }}" + data: + cmd: buttonpage04.button08pic.pic={{ button_cover_on }} + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08text + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_background_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_1 }}" + ##### + - service: "{{ command_font_color }}" + data: + component: buttonpage04.button08bri + message: "{{ button_color_2 }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08text + message: "{{ entity32_name }}" + ##### + - service: "{{ command_text_printf }}" + data: + component: buttonpage04.button08bri + message: '{{ (state_attr(entity32, "current_position") | int ) |round(0) }}%' + + ######################################### + # + # + ############################################################# + ##### CLOSE - HA Button SYNC ##### + ############################################################# + # + ## + ### + ############################################################################################################################################################################################# + ### + ## + # + ############################################################# + ##### START - Weather Forcast Meteorologisk HA Default ##### + ############################################################# + # + # + ######################################### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_weather + - weather_update_state + - weather_update_time + - condition: template + value_template: '{{ weather == "Default" }}' + +##### Weather Home Page Symbole Home Meteorologisk HA Default ##### + sequence: + - if: + - condition: template + value_template: "{{states(ha_weather) == 'sunny'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=2 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'cloudy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=3 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'rainy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=4 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'pouring'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=5 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'snowy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=6 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'hail'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=7 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'snowy-rainy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=7 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'fog'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=8 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'windy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=9 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'windy-variant'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=9 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'lightning'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=10 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'partlycloudy' and states('sun.sun') == 'above_horizon' }}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=11 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'partlycloudy' and states('sun.sun') == 'below_horizon' }}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=12 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'lightning-rainy' and states('sun.sun') == 'above_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=13 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'lightning-rainy' and states('sun.sun') == 'below_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=14 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'execptional' and states('sun.sun') == 'above_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=13 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'execptional' and states('sun.sun') == 'below_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=14 + - if: + - condition: template + value_template: "{{states(ha_weather) == 'clear-night'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=15 + +##### Weather Forcast Today Symbole Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[0].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=15 + +##### Weather Forcast Day 1 Symbole Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[1].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=15 + +##### Weather Forcast Day 2 Symbole Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[2].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=15 + +##### Weather Forcast Day 3 Symbole Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[3].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=15 + +##### Weather Forcast Day 4 Symbole Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(ha_weather,"forecast")[4].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=15 + +##### Weather Forcast Today "TEMP" Home Meteorologisk HA Default ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a04 ### Temperature MIN ### + message: " " + - service: "{{ command_text_printf }}" + data: + component: weather01.a05 ### Temperature MAX ### + message: '{{state_attr(ha_weather,"temperature") | round(0)}}°' + +##### Weather Forcast Day 1 "TEMP" Home Meteorologisk HA Default ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a04 ### Temperature MIN ### + message: '{{state_attr(ha_weather,"forecast")[1].templow | round(0)}}°' + - service: "{{ command_text_printf }}" + data: + component: weather02.a05 ### Temperature MAX ### + message: '{{state_attr(ha_weather,"forecast")[1].temperature | round(0)}}°' + +##### Weather Forcast Day 2 "TEMP" Home Meteorologisk HA Default ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a04 ### Temperature MIN ### + message: '{{state_attr(ha_weather,"forecast")[2].templow | round(0)}}°' + - service: "{{ command_text_printf }}" + data: + component: weather03.a05 ### Temperature MAX ### + message: '{{state_attr(ha_weather,"forecast")[2].temperature | round(0)}}°' + +##### Weather Forcast Day 3 "TEMP" Home Meteorologisk HA Default ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a04 ### Temperature MIN ### + message: '{{state_attr(ha_weather,"forecast")[3].templow | round(0)}}°' + - service: "{{ command_text_printf }}" + data: + component: weather04.a05 ### Temperature MAX ### + message: '{{state_attr(ha_weather,"forecast")[3].temperature | round(0)}}°' + +##### Weather Forcast Day 4 "TEMP" Home Meteorologisk HA Default ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a04 ### Temperature MIN ### + message: '{{state_attr(ha_weather,"forecast")[4].templow | round(0)}}°' + - service: "{{ command_text_printf }}" + data: + component: weather05.a05 ### Temperature MAX ### + message: '{{state_attr(ha_weather,"forecast")[4].temperature | round(0)}}°' + +################################################################################ +##### Weather Forcast Details Home Meteorologisk HA Default ################################### +################################################################################ + - choose: + - conditions: + - condition: trigger + id: weather_update_state + - condition: template + value_template: '{{ weather == "Default" }}' + +##### Weather Forcast Today "Details" Home Meteorologisk HA Default ##### + sequence: + - if: + - condition: template + value_template: '{{states(last_click) == "weather01"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a06 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather01.p06.pic=53 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a07 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather01.p07.pic=53 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a08 + message: '{{state_attr(ha_weather,"wind_speed") | round(0)}} km/h' + - service: "{{ command_printf }}" + data: + cmd: weather01.p08.pic=63 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a09 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather01.p09.pic=53 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a10 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather01.p10.pic=53 + +##### Weather Forcast Day 1 "Details" Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather02"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a06 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather02.p06.pic=53 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a07 + message: '{{state_attr(ha_weather,"forecast")[0].precipitation| round(1)}} mm' + - service: "{{ command_printf }}" + data: + cmd: weather02.p07.pic=59 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a08 + message: '{{state_attr(ha_weather,"forecast")[0].wind_speed | round(0)}} km/h' + - service: "{{ command_printf }}" + data: + cmd: weather02.p08.pic=63 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a09 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather02.p09.pic=53 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a10 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather02.p10.pic=53 + +##### Weather Forcast Day 2 "Details" Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather03"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a06 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather03.p06.pic=53 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a07 + message: '{{state_attr(ha_weather,"forecast")[1].precipitation| round(1)}} mm' + - service: "{{ command_printf }}" + data: + cmd: weather03.p07.pic=59 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a08 + message: '{{state_attr(ha_weather,"forecast")[1].wind_speed | round(0)}} km/h' + - service: "{{ command_printf }}" + data: + cmd: weather03.p08.pic=63 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a09 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather03.p09.pic=53 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a10 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather03.p10.pic=53 + +##### Weather Forcast Day 3 "Details" Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather04"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a06 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather04.p06.pic=53 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a07 + message: '{{state_attr(ha_weather,"forecast")[2].precipitation| round(1)}} mm' + - service: "{{ command_printf }}" + data: + cmd: weather04.p07.pic=59 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a08 + message: '{{state_attr(ha_weather,"forecast")[2].wind_speed | round(0)}} km/h' + - service: "{{ command_printf }}" + data: + cmd: weather04.p08.pic=63 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a09 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather04.p09.pic=53 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a10 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather04.p10.pic=53 + +##### Weather Forcast Day 4 "Details" Home Meteorologisk HA Default ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather05"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a06 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather05.p06.pic=53 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a07 + message: '{{state_attr(ha_weather,"forecast")[3].precipitation| round(1)}} mm' + - service: "{{ command_printf }}" + data: + cmd: weather05.p07.pic=59 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a08 + message: '{{state_attr(ha_weather,"forecast")[3].wind_speed | round(0)}} km/h' + - service: "{{ command_printf }}" + data: + cmd: weather05.p08.pic=63 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a09 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather05.p09.pic=53 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a10 + message: " " + - service: "{{ command_printf }}" + data: + cmd: weather05.p10.pic=53 + + ######################################### + # + # + ############################################################# + ##### CLOSE - Weather Forcast Meteorologisk HA Default ##### + ############################################################# + # + ## + ### + ############################################################################################################################################################################################# + ### + ## + # + ############################################################# + ##### START - Weather Forcast AccuWeather ##### + ############################################################# + # + # + ######################################### + - choose: + - conditions: + - condition: trigger + id: + - nspanel_boot_weather + - weather_update_state + - weather_update_time + - condition: template + value_template: '{{ weather == "AccuWeather" }}' + +##### Weather Home Page Symbole Home "AccuWeather" ##### + sequence: + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'sunny'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=2 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'cloudy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=3 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'rainy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=4 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'pouring'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=5 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'snowy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=6 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'hail'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=7 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'snowy-rainy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=7 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'fog'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=8 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'windy'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=9 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'windy-variant'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=9 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'lightning'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=10 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'partlycloudy' and states('sun.sun') == 'above_horizon' }}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=11 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'partlycloudy' and states('sun.sun') == 'below_horizon' }}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=12 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'lightning-rainy' and states('sun.sun') == 'above_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=13 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'lightning-rainy' and states('sun.sun') == 'below_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=14 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'execptional' and states('sun.sun') == 'above_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=13 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'execptional' and states('sun.sun') == 'below_horizon'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=14 + - if: + - condition: template + value_template: "{{states(accuweather_home) == 'clear-night'}}" + then: + - service: "{{ command_printf }}" + data: + cmd: home.a05.pic=15 + +##### Weather Forcast Today Symbole "AccuWeather" ##### + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[0].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather01.a03.pic=15 + +##### Weather Forcast Day 1 Symbole "AccuWeather" ##### + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[1].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather02.a03.pic=15 + +##### Weather Forcast Day 2 Symbole "AccuWeather" ##### + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[2].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather03.a03.pic=15 + +##### Weather Forcast Day 3 Symbole "AccuWeather" ##### + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[3].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather04.a03.pic=15 + +##### Weather Forcast Day 4 Symbole "AccuWeather" ##### + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''sunny''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=2 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''cloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=3 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=4 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''pouring''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=5 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''snowy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=6 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''hail''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''snowy-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=7 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''fog''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=8 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''windy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''windy-variant''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=9 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''lightning''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=10 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''partlycloudy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=11 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''lightning-rainy''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''execptional''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=13 + - if: + - condition: template + value_template: + '{{state_attr(accuweather_home,"forecast")[4].condition + == ''clear-night''}}' + then: + - service: "{{ command_printf }}" + data: + cmd: weather05.a03.pic=15 + +##### Weather Forcast Today "TEMP" "AccuWeather" ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a04 ### Temperature MIN ### + message: "{{states(accuweather_realfeel_temperature_min_0d) | round(0)}}°" + - service: "{{ command_text_printf }}" + data: + component: weather01.a05 ### Temperature MAX ### + message: "{{states(accuweather_realfeel_temperature_max_0d) | round(0)}}°" + +##### Weather Forcast Day 1 "TEMP" "AccuWeather" ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a04 ### Temperature MIN ### + message: "{{states(accuweather_realfeel_temperature_min_1d) | round(0)}}°" + - service: "{{ command_text_printf }}" + data: + component: weather02.a05 ### Temperature MAX ### + message: "{{states(accuweather_realfeel_temperature_max_1d) | round(0)}}°" + +##### Weather Forcast Day 2 "TEMP" "AccuWeather" ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a04 ### Temperature MIN ### + message: "{{states(accuweather_realfeel_temperature_min_2d) | round(0)}}°" + - service: "{{ command_text_printf }}" + data: + component: weather03.a05 ### Temperature MAX ### + message: "{{states(accuweather_realfeel_temperature_max_2d) | round(0)}}°" + +##### Weather Forcast Day 3 "TEMP" "AccuWeather" ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a04 ### Temperature MIN ### + message: "{{states(accuweather_realfeel_temperature_min_3d) | round(0)}}°" + - service: "{{ command_text_printf }}" + data: + component: weather04.a05 ### Temperature MAX ### + message: "{{states(accuweather_realfeel_temperature_max_3d) | round(0)}}°" + +##### Weather Forcast Day 4 "TEMP" "AccuWeather" ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a04 ### Temperature MIN ### + message: "{{states(accuweather_realfeel_temperature_min_4d) | round(0)}}°" + - service: "{{ command_text_printf }}" + data: + component: weather05.a05 ### Temperature MAX ### + message: "{{states(accuweather_realfeel_temperature_max_4d) | round(0)}}°" + +################################################################################ +##### Weather Forcast Details "AccuWeather" ################################### +################################################################################ + - choose: + - conditions: + - condition: trigger + id: weather_update_state + - condition: template + value_template: '{{ weather == "AccuWeather" }}' +##### Weather Forcast Today Details "AccuWeather" ##### + sequence: + - if: + - condition: template + value_template: '{{states(last_click) == "weather01"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a06 + message: "{{ state_attr(accuweather_home,'forecast')[0].precipitation_probability}} %" + - service: "{{ command_printf }}" + data: + cmd: weather01.p06.pic=59 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a07 + message: "{{states(accuweather_hours_of_sun_0d) | round(0)}} h" + - service: "{{ command_printf }}" + data: + cmd: weather01.p07.pic=60 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a08 + message: "{{state_attr(accuweather_uv_index_0d, 'level')}} {{states(accuweather_uv_index_0d) | round(0)}}" + - service: "{{ command_printf }}" + data: + cmd: weather01.p08.pic=61 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a09 + message: "{{states(accuweather_thunderstorm_probability_day_0d) | round(0)}} %" + - service: "{{ command_printf }}" + data: + cmd: weather01.p09.pic=62 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather01.a10 + message: "{{states(accuweather_wind_day_0d) | round(0)}} km/h" + - service: "{{ command_printf }}" + data: + cmd: weather01.p10.pic=63 + +##### Weather Forcast Day 1 Details "AccuWeather" ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather02"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a06 + message: "{{ state_attr(accuweather_home,'forecast')[1].precipitation_probability}} %" + - service: "{{ command_printf }}" + data: + cmd: weather02.p06.pic=59 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a07 + message: "{{states(accuweather_hours_of_sun_1d) | round(0)}} h" + - service: "{{ command_printf }}" + data: + cmd: weather02.p07.pic=60 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a08 + message: "{{state_attr(accuweather_uv_index_1d, 'level')}} {{states(accuweather_uv_index_1d) | round(0)}}" + - service: "{{ command_printf }}" + data: + cmd: weather02.p08.pic=61 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a09 + message: "{{states(accuweather_thunderstorm_probability_day_1d) | round(0)}} %" + - service: "{{ command_printf }}" + data: + cmd: weather02.p09.pic=62 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather02.a10 + message: "{{states(accuweather_wind_day_1d) | round(0)}} km/h" + - service: "{{ command_printf }}" + data: + cmd: weather02.p10.pic=63 + +##### Weather Forcast Day 2 Details "AccuWeather" ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather03"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a06 + message: "{{ state_attr(accuweather_home,'forecast')[2].precipitation_probability}} %" + - service: "{{ command_printf }}" + data: + cmd: weather03.p06.pic=59 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a07 + message: "{{states(accuweather_hours_of_sun_2d) | round(0)}} h" + - service: "{{ command_printf }}" + data: + cmd: weather03.p07.pic=60 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a08 + message: "{{state_attr(accuweather_uv_index_2d, 'level')}} {{states(accuweather_uv_index_2d) | round(0)}}" + - service: "{{ command_printf }}" + data: + cmd: weather03.p08.pic=61 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a09 + message: "{{states(accuweather_thunderstorm_probability_day_2d) | round(0)}} %" + - service: "{{ command_printf }}" + data: + cmd: weather03.p09.pic=62 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather03.a10 + message: "{{states(accuweather_wind_day_2d) | round(0)}} km/h" + - service: "{{ command_printf }}" + data: + cmd: weather03.p10.pic=63 + +##### Weather Forcast Day 3 Details "AccuWeather" ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather04"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a06 + message: "{{ state_attr(accuweather_home,'forecast')[3].precipitation_probability}} %" + - service: "{{ command_printf }}" + data: + cmd: weather04.p06.pic=59 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a07 + message: "{{states(accuweather_hours_of_sun_3d) | round(0)}} h" + - service: "{{ command_printf }}" + data: + cmd: weather04.p07.pic=60 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a08 + message: "{{state_attr(accuweather_uv_index_3d, 'level')}} {{states(accuweather_uv_index_3d) | round(0)}}" + - service: "{{ command_printf }}" + data: + cmd: weather04.p08.pic=61 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a09 + message: "{{states(accuweather_thunderstorm_probability_day_3d) | round(0)}} %" + - service: "{{ command_printf }}" + data: + cmd: weather04.p09.pic=62 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather04.a10 + message: "{{states(accuweather_wind_day_3d) | round(0)}} km/h" + - service: "{{ command_printf }}" + data: + cmd: weather04.p10.pic=63 + +##### Weather Forcast Day 4 Details "AccuWeather" ##### + - if: + - condition: template + value_template: '{{states(last_click) == "weather05"}}' + then: + ##### field 1 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a06 + message: "{{ state_attr(accuweather_home,'forecast')[4].precipitation_probability}} %" + - service: "{{ command_printf }}" + data: + cmd: weather05.p06.pic=59 + ##### field 2 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a07 + message: "{{states(accuweather_hours_of_sun_4d) | round(0)}} h" + - service: "{{ command_printf }}" + data: + cmd: weather05.p07.pic=60 + ##### field 3 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a08 + message: "{{state_attr(accuweather_uv_index_4d, 'level')}} {{states(accuweather_uv_index_4d) | round(0)}}" + - service: "{{ command_printf }}" + data: + cmd: weather05.p08.pic=61 + ##### field 4 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a09 + message: "{{states(accuweather_thunderstorm_probability_day_4d) | round(0)}} %" + - service: "{{ command_printf }}" + data: + cmd: weather05.p09.pic=62 + ##### field 5 ##### + - service: "{{ command_text_printf }}" + data: + component: weather05.a10 + message: "{{states(accuweather_wind_day_4d) | round(0)}} km/h" + - service: "{{ command_printf }}" + data: + cmd: weather05.p10.pic=63 + +######################################### +# +# +############################################################# +##### CLOSE - Weather Forcast AccuWeather ##### +############################################################# +# +## +### +############################################################################################################################################################################################# + diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/climate.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/climate.yaml new file mode 100644 index 0000000..6a64410 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/climate.yaml @@ -0,0 +1,18 @@ +climate: + - platform: generic_thermostat + unique_id: cf308990-0dbd-4e8a-be77-aec56d7a5aa4 + name: NSPanel Büro + heater: switch.nspanel_buro_relay_2 + target_sensor: sensor.nspanel_buro_temperature + min_temp: 13 + max_temp: 27 + ac_mode: false + target_temp: 22 + cold_tolerance: 0.5 + hot_tolerance: 0.5 + min_cycle_duration: + seconds: 60 + keep_alive: + minutes: 3 + initial_hvac_mode: "heat" + precision: 0.5 diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/folder_watcher.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/folder_watcher.yaml new file mode 100644 index 0000000..4a503d1 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/folder_watcher.yaml @@ -0,0 +1,7 @@ +# Please insert into the default file "configuration.yaml +# Folder must be changed to the directory where the tft file (Nextion Editor) will be uploaded +########### +# +#Folder watcher for NS panel auto upload tft +folder_watcher: + - folder: /config/www/nspanel/ \ No newline at end of file diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/sensor.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/sensor.yaml new file mode 100644 index 0000000..1431ae1 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/custom_configuration/sensor.yaml @@ -0,0 +1,78 @@ +##### Sensor ###### +sensor: + + - platform: template + sensors: + wochentag: + friendly_name: "Wochentag" + unique_id: 6ac64850-8563-456c-b562-92343dd96f0b + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,'] %} + {{ now().timestamp() | timestamp_custom(days[now().weekday()] ~ ' %d.%m')}} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag01: + friendly_name: "Wochentag+1" + unique_id: 6b2aad54-3eb0-48cc-ae32-ee3574197f1b + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,'] %} + {{(as_timestamp(now())+ (86400)) | timestamp_custom(days[now().weekday()+1] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag02: + friendly_name: "Wochentag+2" + unique_id: edbddaf0-2791-4774-b8d4-aa706f75cc7a + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,'] %} + {{(as_timestamp(now())+ (172800)) | timestamp_custom(days[now().weekday()+2] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag03: + friendly_name: "Wochentag+3" + unique_id: ad592622-db86-40f7-9961-4c1ffd21c711 + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,', 'Mittwoch,'] %} + {{(as_timestamp(now())+ (259200)) | timestamp_custom(days[now().weekday()+3] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag04: + friendly_name: "Wochentag+4" + unique_id: dcb3ed45-2b89-4672-a04f-a55f025ac745 + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,'] %} + {{(as_timestamp(now())+ (345600)) | timestamp_custom(days[now().weekday()+4] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag05: + friendly_name: "Wochentag+5" + unique_id: 77e642a5-de54-452d-9f4a-febe3a7851c2 + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,'] %} + {{(as_timestamp(now())+ (432000)) | timestamp_custom(days[now().weekday()+ 5] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + +###### NSPanel Büro - climate target temperature ##### + - platform: template + sensors: + nspanel_buro_target_temp: + unique_id: 2393ab74-21ce-42d3-b15e-ec162b9d6f31 + friendly_name: NSPanel Buro Target Temp + value_template: "{{ state_attr('climate.nspanel_buro', 'temperature') }}" + +###### NSPanel Büro - climate target temperature ##### + - platform: template + sensors: + nspanel_lea_target_temp: + unique_id: e8e61ff7-3a41-47ad-bd6c-303f730de96f + friendly_name: NSPanel Lea Target Temp + value_template: "{{ state_attr('climate.nspanel_lea', 'temperature') }}" \ No newline at end of file diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/esphome.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/esphome.yaml new file mode 100644 index 0000000..73cf7e6 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/esphome.yaml @@ -0,0 +1,1198 @@ +############################################################# +##### START - SUBSTITUTIONS ##### +############################################################# +substitutions: +##### GENEREL CONFIG ############################################################################################# + node_name: nspanel-buero # $node_name + device_name: NSPanel Buero # $device_name + + wifi_ssid: !secret wifi_ssid # add in your esphome secrets file. + wifi_password: !secret wifi_password # add in your esphome secrets file. + ota_password: !secret ota_password # add in your esphome secrets file. +# nextion_update_url: !secret nextion_update_url_buero # add in your esphome secrets file. + nextion_update_url: "http://192.168.4.250:8123/local/nspanel/buero/nspanel_buero.tft" +###### EDIT THE BELOW ENTITIES FOR YOURS... ####################################################################### + + #ha_weekday: sensor.wochentag ##### Sensor Wochentag generiert in HA (custom_configuration -> nspanel) ##### + #ha_outdoor_temp: sensor.terrasse_garage_motion_sensor_temperature ##### Temperatur von Bewegungsmelder Outdoor (Zigbee2Mqtt) ##### + #ha_hotwater_temp: sensor.hotwater_temp ##### Buderus Heizung Warmwasser Temperatur (Integration) ##### + ha_hotwater_charge: switch.charge + ha_heating_system_flame: binary_sensor.flamestatus ##### Buderus Heizung Flamen-Status (Integration) ##### + ha_climate_thermostat_target_temp: sensor.nspanel_buro_target_temp ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### + ha_climate_thermostat: climate.nspanel_buro ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### + #ha_humidity: sensor.kinderzimmer_lea_temperatur_sensor_humidity +######################################### +# +# +############################################################# +##### CLOSE - SUBSTITUTIONS ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Settings ##### +############################################################# +# +# +######################################### + +##### Functionality for the Nextion display ##### +external_components: + - source: github://pr#2956 + components: [nextion] + refresh: 1h + +##### ESP home CONFIG ##### +esphome: + name: $node_name + comment: $device_name + +##### TYPE OF ESP BOARD ##### +esp32: + board: esp32dev + +##### WIFI SETUP ##### +wifi: + ssid: $wifi_ssid + password: $wifi_password + power_save_mode: none + +captive_portal: + +##### OTA (Over the air updates) password ##### +ota: + password: $ota_password + safe_mode: true + reboot_timeout: 3min + num_attempts: 3 + +##### LOGGER ##### +logger: +# baud_rate: 0 +# level: WARN + +##### CONFIGURE INTERNAL BUZZER ##### +output: + ##### BUZZER FOR PLAYING RINGTONES ##### + - platform: ledc + id: buzzer_out + pin: + number: 21 + +##### ENABLE RINGTONE MUSIC SUPPORT ##### +rtttl: + id: buzzer + output: buzzer_out + +##### UART FOR NEXTION DISPLAY ##### +uart: + tx_pin: 16 + rx_pin: 17 + baud_rate: 115200 + id: tf_uart + +##### INFO - Time component that fetches time from home Assistant and updates the display once a minute and when the display is ready at bootup (and time is available) ##### +#time: +# - platform: homeassistant +# id: homeassistant_time +# on_time: +# - seconds: 0 +# minutes: /1 +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a01", "%02i:%02i", id(homeassistant_time).now().hour, id(homeassistant_time).now().minute); +# on_time_sync: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a01", "%02i:%02i", id(homeassistant_time).now().hour, id(homeassistant_time).now().minute); + +###### A reboot button is always useful ##### +button: + - platform: restart + name: $device_name Restart + id: restart_nspanel + +######################################### +# +# +############################################################# +##### CLOSE - Settings ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - API ##### +############################################################# +# +# +######################################### + +api: + services: + +##### SERVICE TO UPDATE THE HMI FILE ##### + - service: upload_tft + then: + - lambda: 'id(disp1)->upload_tft();' + +##### Service to send a command "printf" directly to the display. Useful for testing ##### + - service: send_command_printf + variables: + cmd: string + then: + - lambda: 'id(disp1).send_command_printf("%s", cmd.c_str());' + +##### Service to send a command "text_printf" directly to the display. Useful for testing ##### + - service: send_command_text_printf + variables: + component: string + message: string + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).set_component_text_printf(component.c_str(), "%s", message.c_str());' + +##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + - service: send_command_value + variables: + component: string + message: int + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).set_component_value(component.c_str(), message);' + +##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + - service: send_command_hide + variables: + component: string + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).hide_component(component.c_str());' + + + +##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + - service: send_command_font_color + variables: + component: string + message: int + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).set_component_font_color(component.c_str(), message);' +##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + - service: send_command_background_color + variables: + component: string + message: int + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).set_component_background_color(component.c_str(), message);' + +######################################### +# +# +############################################################# +##### CLOSE - API ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - GLOBALS ##### +############################################################# +# +# +######################################### + +globals: + +##### Save Target Temp ##### + - id: climate_target_temp_val_global + type: float + restore_value: true + initial_value: '12' + +##### Save Thermostat PIC Position ##### + - id: climate_slider_val_global + type: int + restore_value: true + initial_value: '0' + +##### Save Display Brightness for NSPanel reboot ##### + - id: display_brightness_global + type: int + restore_value: true + initial_value: '100' + +##### Save Display DIM Brightness for NSPanel reboot + - id: display_dim_brightness_global + type: int + restore_value: true + initial_value: '10' + +##### Save Display DIM Brightness for NSPanel reboot + - id: sleep_modus_global + type: int + restore_value: true + initial_value: '0' + +##### Save State Heating Room ##### + - id: heating_room_global + type: int + restore_value: true + initial_value: '0' + +##### Save State HVAC ##### + - id: hvac_mode_global + type: int + restore_value: true + initial_value: '0' + +######################################### +# +# +############################################################# +##### CLOSE - GLOBALS ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - BINARY SENSOR ##### +############################################################# +# +# +######################################### + +binary_sensor: + +###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY##### + - platform: gpio + name: $device_name Left Button + pin: + number: 14 + inverted: true +# on_click: +# - switch.toggle: relay_1 + +##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY ##### + - platform: gpio + name: $device_name Right Button + pin: + number: 27 + inverted: true +# on_click: +# - switch.toggle: relay_2 + +##### THERMOSTAT - BUTTON DECREASES CLIMATE TARGET TEMPERATURE IN HA ##### + - platform: nextion + name: $device_name Climate Target DOWN + page_id: 6 + component_id: 13 + internal: true + on_click: + - homeassistant.service: + service: climate.set_temperature + data_template: + entity_id: $ha_climate_thermostat + temperature: !lambda return id(climate_target_temp_val_global) - 0.5; + +##### THERMOSTAT - BUTTON INCREASES CLIMATE TARGET TEMPERATURE IN HA ##### + - platform: nextion + name: $device_name Climate Target UP + page_id: 6 + component_id: 14 + internal: true + on_click: + - homeassistant.service: + service: climate.set_temperature + data_template: + entity_id: $ha_climate_thermostat + temperature: !lambda return id(climate_target_temp_val_global) + 0.5; + +##### THERMOSTAT - BUTTON ON / OFF Heating ##### + - platform: nextion + name: $device_name Heating Room State + id: heating_room_state + page_id: 6 + component_id: 16 + internal: true + on_click: + - switch.toggle: hvac_mode + +##### Display Brightness - BUTTON DECREASES Brightness ##### +# - platform: nextion +# name: $device_name Brightness DOWN +# page_id: 7 +# component_id: 12 +# internal: true +# on_click: +# - number.set: +# id: display_brightness +# value: !lambda return id(display_brightness_global) - 1; +# - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); +# - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + +##### Display Brightness - BUTTON INCREASES Brightness ##### +# - platform: nextion +# name: $device_name Brightness UP +# page_id: 7 +# component_id: 13 +# internal: true +# on_click: +# - number.set: +# id: display_brightness +# value: !lambda return id(display_brightness_global) + 1; +# - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); +# - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + +##### Display DIM Brightness - BUTTON DECREASES Brightness ##### +# - platform: nextion +# name: $device_name Brightness DIM DOWN +# page_id: 7 +# component_id: 14 +# internal: true +# on_click: +# - number.set: +# id: display_dim_brightness +# value: !lambda return id(display_dim_brightness_global) - 1; +# - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); +# - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + +##### Display DIM Brightness - BUTTON INCREASES Brightness ##### +# - platform: nextion +# name: $device_name Brightness DIM UP +# page_id: 7 +# component_id: 15 +# internal: true +# on_click: +# - number.set: +# id: display_dim_brightness +# value: !lambda return id(display_dim_brightness_global) + 1; +# - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); +# - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + +##### Restart NSPanel Button ##### + - platform: nextion + name: $device_name Restart + page_id: 7 + component_id: 10 + internal: true + on_click: + - button.press: restart_nspanel + +##### Sleep Modus NSPanel Button ##### + - platform: nextion + name: $device_name Sleep Modus + page_id: 7 + component_id: 5 + internal: true + on_click: + - switch.toggle: sleep_modus + +##### Hotwater Charge ##### + - platform: nextion + name: $device_name Hotwater Charge + page_id: 6 + component_id: 21 + on_click: + - homeassistant.service: + service: switch.toggle + data: + entity_id: $ha_hotwater_charge + +######################################### +# +# +############################################################# +##### CLOSE - BINARY SENSOR ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - SENSOR ##### +############################################################# +# +# +######################################### + +sensor: + +##### INTERNAL TEMPERATUE SENSOR, ADC VALUE ##### + - platform: adc + id: ntc_source + pin: 38 + update_interval: 10s + attenuation: 11db + +##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)##### + - platform: resistance + id: resistance_sensor + sensor: ntc_source + configuration: DOWNSTREAM + resistor: 11.2kOhm + +##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) ##### + - platform: ntc + name: $device_name Temperature + id: temp_nspanel + sensor: resistance_sensor + calibration: + b_constant: 3950 + reference_temperature: 25°C + reference_resistance: 10kOhm + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: id(disp1).set_component_text_printf("home.a03", "%.1f°", id(temp_nspanel).state); # onboard temp (thermostat temp) to home page. + - lambda: id(disp1).set_component_text_printf("thermostat.a04", "%.1f", id(temp_nspanel).state); + +##### TEMPERATURE Outdoor FROM HA ##### +# - platform: homeassistant +# id: temp_outdoor +# entity_id: $ha_outdoor_temp +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a06", "%.0f°", id(temp_outdoor).state); +# - lambda: id(disp1).set_component_text_printf("thermostat.a07", "%.0f°", id(temp_outdoor).state); + +##### HUMIDITY Indoor FROM HA ##### +# - platform: homeassistant +# id: humidity +# entity_id: $ha_humidity +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a04", "%.0f°", id(humidity).state); + + +##### THERMOSTAT HOT WATER TEMP FROM HA ##### +# - platform: homeassistant +# id: temp_hotwater +# entity_id: $ha_hotwater_temp +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a07", "%.1f°", id(temp_hotwater).state); +# - lambda: id(disp1).set_component_text_printf("thermostat.a08", "%.1f°", id(temp_hotwater).state); + +##### THERMOSTAT CLIMATE TARGET TEMPERATURE FROM HA ##### + - platform: homeassistant + id: ha_climate_target_temp + entity_id: $ha_climate_thermostat_target_temp + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - globals.set: + id: climate_target_temp_val_global + value: !lambda 'return float(x);' + - lambda: id(disp1).set_component_text_printf("thermostat.a05", "%.1f", id(climate_target_temp_val_global)); + # THERMO PROGRESS CIRCLE, broken into 3 images to create space for the temperatures in the center. + - lambda: |- + int left=16; // 16 is empty left. + int mid=17; // 17 is empty mid. + int right=18; // 18 is empty right. + if (id(climate_target_temp_val_global) == 13) { + left=16; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 13.5) { + left=19; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 14) { + left=20; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 14.5) { + left=21; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 15) { + left=22; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 15.5) { + left=23; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 16) { + left=24; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 16.5) { + left=25; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 17) { + left=26; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 17.5) { + left=27; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 18) { + left=28; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 18.5) { + left=29; + mid=30; + right=18; + } else if (id(climate_target_temp_val_global) == 19) { + left=29; + mid=31; + right=18; + } else if (id(climate_target_temp_val_global) == 19.5) { + left=29; + mid=32; + right=18; + } else if (id(climate_target_temp_val_global) == 20) { + left=29; + mid=33; + right=18; + } else if (id(climate_target_temp_val_global) == 20.5) { + left=29; + mid=34; + right=18; + } else if (id(climate_target_temp_val_global) == 21) { + left=29; + mid=35; + right=18; + } else if (id(climate_target_temp_val_global) == 21.5) { + left=29; + mid=36; + right=18; + } else if (id(climate_target_temp_val_global) == 22) { + left=29; + mid=37; + right=38; + } else if (id(climate_target_temp_val_global) == 22.5) { + left=29; + mid=37; + right=39; + } else if (id(climate_target_temp_val_global) == 23) { + left=29; + mid=37; + right=40; + } else if (id(climate_target_temp_val_global) == 23.5) { + left=29; + mid=37; + right=41; + } else if (id(climate_target_temp_val_global) == 24) { + left=29; + mid=37; + right=42; + } else if (id(climate_target_temp_val_global) == 24.5) { + left=29; + mid=37; + right=43; + } else if (id(climate_target_temp_val_global) == 25) { + left=29; + mid=37; + right=44; + } else if (id(climate_target_temp_val_global) == 25.5) { + left=29; + mid=37; + right=45; + } else if (id(climate_target_temp_val_global) == 26) { + left=29; + mid=37; + right=46; + } else if (id(climate_target_temp_val_global) == 26.5) { + left=29; + mid=37; + right=47; + } else if (id(climate_target_temp_val_global) == 27) { + left=29; + mid=37; + right=48; + } + // sends the 3 images to the display + id(disp1).send_command_printf("thermostat.a01.pic=%i", left); + id(disp1).send_command_printf("thermostat.a02.pic=%i", mid); + id(disp1).send_command_printf("thermostat.a03.pic=%i", right); + +###### TARGET TEMPERATURE GET VALUE FROM NEXTION CIRCLE SLIDER AND SET GLOBAL VARIBLE ##### + - platform: nextion + id: climate_circleslider + name: $device_name Climate circleslider + variable_name: climateslider + internal: true + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - globals.set: + id: climate_slider_val_global + value: !lambda 'return int(x);' + - lambda: |- + if (id(climate_slider_val_global) == 0) { + id(climate_target_temp_val_global) = 13; + } else if (id(climate_slider_val_global) == 1) { + id(climate_target_temp_val_global) = 13.5; + } else if (id(climate_slider_val_global) == 2) { + id(climate_target_temp_val_global) = 14; + } else if (id(climate_slider_val_global) == 3) { + id(climate_target_temp_val_global) = 14.5; + } else if (id(climate_slider_val_global) == 4) { + id(climate_target_temp_val_global) = 15; + } else if (id(climate_slider_val_global) == 5) { + id(climate_target_temp_val_global) = 15.5; + } else if (id(climate_slider_val_global) == 6) { + id(climate_target_temp_val_global) = 16; + } else if (id(climate_slider_val_global) == 7) { + id(climate_target_temp_val_global) = 16.5; + } else if (id(climate_slider_val_global) == 8) { + id(climate_target_temp_val_global) = 17; + } else if (id(climate_slider_val_global) == 9) { + id(climate_target_temp_val_global) = 17.5; + } else if (id(climate_slider_val_global) == 10) { + id(climate_target_temp_val_global) = 18; + } else if (id(climate_slider_val_global) == 11) { + id(climate_target_temp_val_global) = 18.5; + } else if (id(climate_slider_val_global) == 12) { + id(climate_target_temp_val_global) = 19; + } else if (id(climate_slider_val_global) == 13) { + id(climate_target_temp_val_global) = 19.5; + } else if (id(climate_slider_val_global) == 14) { + id(climate_target_temp_val_global) = 20; + } else if (id(climate_slider_val_global) == 15) { + id(climate_target_temp_val_global) = 20.5; + } else if (id(climate_slider_val_global) == 16) { + id(climate_target_temp_val_global) = 21; + } else if (id(climate_slider_val_global) == 17) { + id(climate_target_temp_val_global) = 21.5; + } else if (id(climate_slider_val_global) == 18) { + id(climate_target_temp_val_global) = 22; + } else if (id(climate_slider_val_global) == 19) { + id(climate_target_temp_val_global) = 22.5; + } else if (id(climate_slider_val_global) == 20) { + id(climate_target_temp_val_global) = 23; + } else if (id(climate_slider_val_global) == 21) { + id(climate_target_temp_val_global) = 23.5; + } else if (id(climate_slider_val_global) == 22) { + id(climate_target_temp_val_global) = 24; + } else if (id(climate_slider_val_global) == 23) { + id(climate_target_temp_val_global) = 24.5; + } else if (id(climate_slider_val_global) == 24) { + id(climate_target_temp_val_global) = 25; + } else if (id(climate_slider_val_global) == 25) { + id(climate_target_temp_val_global) = 25.5; + } else if (id(climate_slider_val_global) == 26) { + id(climate_target_temp_val_global) = 26; + } else if (id(climate_slider_val_global) == 27) { + id(climate_target_temp_val_global) = 26.5; + } else if (id(climate_slider_val_global) == 28) { + id(climate_target_temp_val_global) = 27; + } + - homeassistant.service: + service: climate.set_temperature + data_template: + entity_id: $ha_climate_thermostat + temperature: !lambda return id(climate_target_temp_val_global); + +###### Display Brightness GET VALUE FROM NSPanel SLIDER ##### + - platform: nextion + id: brightslider + name: $device_name brightness Slider + variable_name: brightslider + internal: true + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - number.set: + id: display_brightness + value: !lambda 'return int(x);' + # send text field percentage of current_lightslider_val + - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + +###### Display DIM Brightness GET VALUE FROM NSPanel SLIDER ##### + - platform: nextion + id: dimslider + name: $device_name dim brightness slider + variable_name: dimslider + internal: true + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - number.set: + id: display_dim_brightness + value: !lambda 'return int(x);' + # send text field percentage of current_lightslider_val + - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + + +######################################### +# +# +############################################################# +##### CLOSE - SENSOR ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - TEXT SENSOR##### +############################################################# +# +# +######################################### + +text_sensor: + +##### ESPhome version used to compile the app ##### + - platform: version + name: $device_name ESPhome Version + +##### SUN SENSOR FROM HA ##### + - platform: homeassistant + id: sun_sun + entity_id: sun.sun + +##### last click sensor, the main action variable - push to HA ##### + - platform: nextion + nextion_id: disp1 + name: $device_name last click + id: disp1_last_click_va + update_interval: 50ms + component_name: lastclick + +##### last click lightsettings page, the main action variable - push to HA ##### + - platform: nextion + nextion_id: disp1 + name: $device_name last click lightsettings + id: disp1_last_click_lightsettings + update_interval: 50ms + component_name: lightsetting + +##### last click coversettings page, the main action variable - push to HA ##### + - platform: nextion + nextion_id: disp1 + name: $device_name last click coversettings + id: disp1_last_click_coversettings + update_interval: 50ms + component_name: coverposition + +##### Wochentag SENSOR FROM HA ##### +# - platform: homeassistant +# id: weekday +# entity_id: $ha_weekday +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a02", "%s", id(weekday).state.c_str()); + +##### HEATING System ICON ##### + - platform: homeassistant + entity_id: $ha_heating_system_flame + name: "Heating System" + id: heating_system + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: |- + int symbol=53; // 53 is a blank image 20x20 + if (id(heating_system).state == "on") { + symbol=64; + } + id(disp1).send_command_printf("home.a50.pic=%i", symbol); + id(disp1).send_command_printf("thermostat.a50.pic=%i", symbol); + +##### Hotwater Charge ICON ##### + - platform: homeassistant + entity_id: $ha_hotwater_charge + name: "Hotwater Charge" + id: hotwater_charge + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: |- + if (id(hotwater_charge).state == "on") { + id(disp1).set_component_value("thermostat.a12",1); + } else { + id(disp1).set_component_value("thermostat.a12",0); + } +# - lambda: |- +# id(disp1).set_component_value("thermostat.a12",0); +# if (id(hotwater_charge) == "on") +# { +# id(disp1).set_component_value("thermostat.a12",1); +# } + +##### WEATHER SYMBOL FROM HA WEATHER ENTITY ##### +# - platform: homeassistant +# id: weather_symbol +# entity_id: weather.home_wetter +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: |- +# int symbol=1; // 1 is a empty box. +# if (id(weather_symbol).state == "sunny") { +# symbol=2; +# } else if (id(weather_symbol).state == "cloudy") { +# symbol=3; +# if (id(sun_sun).state == "below_horizon") { +# symbol=3; +# } +# } else if (id(weather_symbol).state == "rainy") { +# symbol=4; +# } else if (id(weather_symbol).state == "pouring") { +# symbol=5; +# } else if (id(weather_symbol).state == "snowy") { +# symbol=6; +# } else if (id(weather_symbol).state == "hail" || id(weather_symbol).state == "snowy-rainy") { +# symbol=7; +# } else if (id(weather_symbol).state == "fog") { +# symbol=8; +# } else if (id(weather_symbol).state == "windy" || id(weather_symbol).state == "windy-variant") { +# symbol=9; +# } else if (id(weather_symbol).state == "lightning") { +# symbol=10; +# } else if (id(weather_symbol).state == "partlycloudy") { +# symbol=11; +# if (id(sun_sun).state == "below_horizon") { +# symbol=12; +# } +# } else if (id(weather_symbol).state == "lightning-rainy" || id(weather_symbol).state == "exceptional") { +# symbol=13; +# if (id(sun_sun).state == "below_horizon") { +# symbol=14; +# } +# } else if (id(weather_symbol).state == "clear-night") { +# symbol=15; +# } +# id(disp1).send_command_printf("home.a05.pic=%i", symbol); + +######################################### +# +# +############################################################# +##### CLOSE - TEXT SENSOR ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - SWITCH ##### +############################################################# +# +# +######################################### + +switch: + +##### global variable to keep track on whether the Nextion display is ready or not. Delays initial info from HA to the display ##### + - platform: template + name: $device_name Nextion inited + id: nextion_init + entity_category: config + restore_state: false + assumed_state: off + optimistic: true + +##### UPDATE TFT DISPLAY ##### + - platform: template + name: Update TFT display + id: tft_update + turn_on_action: + - delay: 16ms + - lambda: id(disp1).upload_tft(); + - switch.turn_off: tft_update + +##### PHYSICAL SWITCH 1 ##### + - platform: gpio + name: $device_name Relay 1 + id: relay_1 + pin: + number: 22 + +##### PHYSICAL SWITCH 2 ###### + - platform: gpio + name: $device_name Relay 2 + id: relay_2 + pin: + number: 19 + on_turn_off: + - globals.set: + id: heating_room_global + value: '0' + - lambda: |- + if (id(hvac_mode_global) == 0) + { + id(disp1).send_command_printf("thermostat.a06.pic=49"); + } else if (id(hvac_mode_global) == 1) { + id(disp1).send_command_printf("thermostat.a06.pic=50"); + } + - lambda: id(disp1).send_command_printf("home.a52.pic=53"); + - lambda: id(disp1).send_command_printf("thermostat.a52.pic=53"); + on_turn_on: + - globals.set: + id: heating_room_global + value: '1' + - lambda: id(disp1).send_command_printf("thermostat.a06.pic=51"); + - lambda: id(disp1).send_command_printf("home.a52.pic=66"); + - lambda: id(disp1).send_command_printf("thermostat.a52.pic=66"); + +##### Switch Climate HVAC Mode ##### + - platform: template + device_class: switch + name: $device_name hvac Mode + id: hvac_mode + restore_state: true + assumed_state: false + optimistic: true + on_turn_off: + - lambda: id(disp1).set_component_value("thermostat.a10",0); + - globals.set: + id: hvac_mode_global + value: '0' + - homeassistant.service: + service: climate.set_hvac_mode + data_template: + entity_id: $ha_climate_thermostat + hvac_mode: 'off' + - lambda: id(disp1).send_command_printf("thermostat.a06.pic=49"); + - lambda: id(disp1).send_command_printf("home.a51.pic=53"); + - lambda: id(disp1).send_command_printf("thermostat.a51.pic=53"); + on_turn_on: + - lambda: id(disp1).set_component_value("thermostat.a10",1); + - globals.set: + id: hvac_mode_global + value: '1' + - homeassistant.service: + service: climate.set_hvac_mode + data_template: + entity_id: $ha_climate_thermostat + hvac_mode: 'heat' + - lambda: |- + if (id(heating_room_global) == 0) + { + id(disp1).send_command_printf("thermostat.a06.pic=50"); + } else if (id(heating_room_global) == 1) { + id(disp1).send_command_printf("thermostat.a06.pic=51"); + } + - lambda: id(disp1).send_command_printf("home.a51.pic=65"); + - lambda: id(disp1).send_command_printf("thermostat.a51.pic=65"); + +##### DISPLAY ALWAYS ON ##### + - platform: gpio + name: $device_name Screen Power + id: screen_power + entity_category: config + pin: + number: 4 + inverted: true + restore_mode: ALWAYS_ON + internal: true + +##### Switch Display Sleep Modus ##### + - platform: template + device_class: switch + name: $device_name Sleep Modus + id: sleep_modus + restore_state: true + assumed_state: false + optimistic: true + on_turn_off: + - lambda: id(disp1).send_command_printf("home.sleepmodus.val=0"); + - globals.set: + id: sleep_modus_global + value: '0' + - lambda: id(disp1).set_component_value("settings.a02",0); + on_turn_on: + - lambda: id(disp1).send_command_printf("home.sleepmodus.val=1"); + - globals.set: + id: sleep_modus_global + value: '1' + - lambda: id(disp1).set_component_value("settings.a02",1); + +######################################### +# +# +############################################################# +##### CLOSE - SWITCH ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - NUMBER ##### +############################################################# +# +# +######################################### + +number: + +##### SCREEN BRIGHTNESS ##### + - platform: template + name: $device_name Display Brightness + id: display_brightness + entity_category: config + unit_of_measurement: '%' + min_value: 1 + max_value: 100 + step: 1 + restore_value: true + optimistic: true + set_action: + then: + - lambda: 'id(disp1).set_backlight_brightness(x/100);' + - lambda: 'id(disp1).send_command_printf("home.brightness.val=%i", int(x));' + - globals.set: + id: display_brightness_global + value: !lambda 'return int(x);' + +##### SCREEN BRIGHTNESS DIMMED DOWN ##### + - platform: template + name: $device_name Display Brightness Dimdown + id: display_dim_brightness + entity_category: config + unit_of_measurement: '%' + min_value: 1 + max_value: 100 + step: 1 + restore_value: true + optimistic: true + set_action: + then: + - lambda: 'id(disp1).send_command_printf("home.brightdd.val=%i", int(x));' + - globals.set: + id: display_dim_brightness_global + value: !lambda 'return int(x);' + +######################################### +# +# +############################################################# +##### CLOSE - NUMBER ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - DISPLAY START##### +############################################################# +# +# +######################################### + +display: + - platform: nextion + id: disp1 + uart_id: tf_uart + tft_url: $nextion_update_url + on_setup: + then: + - lambda: id(disp1).send_command_printf("page 9"); ##### CHANGE! - Loading page ##### + - wait_until: + api.connected + - delay: 0.5s + - rtttl.play: "two short:d=4,o=5,b=100:16e6,16e6" + - delay: 0.5s + - switch.template.publish: + id: nextion_init + state: on + - lambda: id(disp1).send_command_printf("page 0"); #### home page ##### + - delay: 2s ##### gives the display time to update other components & set the home page ##### + - number.set: + id: display_brightness + value: !lambda 'return id(display_brightness_global);' + - number.set: + id: display_dim_brightness + value: !lambda 'return id(display_dim_brightness_global);' + - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + - lambda: id(disp1).send_command_printf("home.sleepmodus.val=%i", id(sleep_modus_global)); + - lambda: |- + id(disp1).set_component_value("settings.a02",0); + if (id(sleep_modus_global) == 1) + { + id(disp1).set_component_value("settings.a02",1); + } + - lambda: |- + id(disp1).send_command_printf("home.a50.pic=53"); + id(disp1).send_command_printf("thermostat.a50.pic=53"); + id(disp1).send_command_printf("thermostat.a06.pic=50"); + if (id(heating_room_global) == 1) + { + id(disp1).send_command_printf("home.a52.pic=66"); + id(disp1).send_command_printf("thermostat.a52.pic=66"); + id(disp1).send_command_printf("thermostat.a06.pic=51"); + } + - lambda: |- + if (id(hvac_mode_global) == 0) { + id(disp1).send_command_printf("home.a51.pic=53"); + id(disp1).send_command_printf("thermostat.a51.pic=53"); + id(disp1).send_command_printf("thermostat.a06.pic=49"); + } else if (id(hvac_mode_global) == 1) { + id(disp1).send_command_printf("home.a51.pic=65"); + id(disp1).send_command_printf("thermostat.a51.pic=65"); + id(disp1).set_component_value("thermostat.a10",1); + } + +############################################################# +##### CLOSE - DISPLAY START ##### +############################################################# \ No newline at end of file diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/nspanel_buero.tft b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/nspanel_buero.tft new file mode 100644 index 0000000..c42ff31 Binary files /dev/null and b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/nspanel_buero.tft differ diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/README.md b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/README.md new file mode 100644 index 0000000..de77f34 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/README.md @@ -0,0 +1,159 @@ +# NSPanel Custom with HA Blueprint +Custom Firmware for NsPanel (esphome) and HA Blueprint with configuration of button, light settings, thermostate, colorwheel, colortemp, cover, weather preview, automatic TFT upload etc. + +Why another version for the NSPanel? +Well - all versions I've seen have been missing something everywhere. +That's why I decided to create something myself. + +My thanks to Masto, Marcfager, lovejoy777, Hellis81 and SmartHome yourself ( link see below) for sharing your code. Give them the credit they deserve, I'm merely a copy paste ninja. XDD + + +### GOAL: +My goal was to create a version that could be quickly adopted for multiple NSPanels. +In addition, the configuration should be as simple as possible. Therefore I decided to put most of it into a HA Blueprint + +In addition, another NSPanel can be configured very quickly. But have a look yourself ;) + +![My project-1-16](https://user-images.githubusercontent.com/41958506/192649717-6b04cd1a-1829-4fd5-8ba4-09eaf32f85d0.png) +![My project-1-18](https://user-images.githubusercontent.com/41958506/192650810-c7210d15-a07e-4f70-a593-af0a51c7f4bb.png) + +(Home / Thermostat - more pictures see below) + +## Features: +- easy to use and simple configuration via Blueprint +- 40 buttons on 5 button pages with long press function for settings (more buttons are also possible) +- Weather + 5 days weather forcast +- Thermostat + Touch + Relay control for floor heating +- 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) +- Auto Upload TFT File to Nextion Display +- Swipe between pages +- modern design - design easy to change via Adobe Express (free + design template) +- 2 pysical switches +- and much more ;) + + +## NSPanel: +![My project-1-16](https://user-images.githubusercontent.com/41958506/192649717-6b04cd1a-1829-4fd5-8ba4-09eaf32f85d0.png) +![My project-1-17](https://user-images.githubusercontent.com/41958506/192650793-9b657fa2-8056-46d7-aca3-065cde291df8.png) + +(Home / Weather Forcast) + +![My project-1-18](https://user-images.githubusercontent.com/41958506/192650810-c7210d15-a07e-4f70-a593-af0a51c7f4bb.png) +![My project-1-20](https://user-images.githubusercontent.com/41958506/192652078-ec4f3268-c00b-42a8-b1f9-c4da3e53d7a5.png) + +(Thermostat / Settings Page) + +![My project-1-22](https://user-images.githubusercontent.com/41958506/192652105-23baac1d-9dee-40c1-8596-9cae8827cf1c.png) +![My project-1-23](https://user-images.githubusercontent.com/41958506/192652116-93b850d3-553b-4f14-bb0f-78dff959e2fd.png) + +(Light Settings Colorwheel / Light Settings TempColor) + +![My project-1-24](https://user-images.githubusercontent.com/41958506/192652126-91b0aae9-75ae-44a0-842d-0a78d93f2da5.png) +![My project-1-25](https://user-images.githubusercontent.com/41958506/192652131-604c0636-0f96-44b8-ae6a-793bde56d0e1.png) + +(Cover Settings / Button Page) + +![My project-1-26](https://user-images.githubusercontent.com/41958506/192652263-297cda87-3eff-452c-9ec3-3cd76da94de7.png) + +## Blueprint: +![Bildschirmfoto 2022-09-27 um 23 13 33](https://user-images.githubusercontent.com/41958506/192652755-069f91c9-927e-4aea-9569-d596cdfa0e56.png) + +# Pages + +## Home +- current weather with button to Weather Forcast page +- Temperature outside +- Status icons at the top +- Room temperature with button to thermostat page +- Room humidity +- Hot water temperature +- Button to display settings page + +## Weather Forcast +- 5 days Weather Forcast via swipe (Integration Accuweather - but should also go with another integration) +- Lowest and highest temperature outside +- Date +- Rain probability +- Sunshine hours +- Sun pressure +- Thunderstorm probability +- Wind speed +- Night thunderstorm probability and wind speed + +## Thermostat +- Touch Temp control +- Outside temperature +- Hot water +- Floor heating on, off and idle +- Hot water button +- Status icons + +## Display Settings +- Restart NSPanel +- Sleep mode - display off after time X +- Display brightness slider +- Display dim brightness slider +- Status Brightness in % + +## Light Settings +- Light on and off (alignment with HA) +- Light color with Colorwheel +- Light color with TempColor slider +- Brightness Slider +- Brightness in %. +- Tempcolor value +- Jump back to the right button page + +## Cover Settings +- Open and close cover +- Cover position via slider +- Cover battery value (I use Ikea roller blind) +- jump back to the right button page + +## Button Page +- 40 Button +- 5 Button pages +- all buttons with long press function +- automatic detection by long press if it is a light or cover for submenu +- swipe between all pages +- swipe also down and up for fast access to certain pages +- number of buttons and button pages can be extended - functions like long press, light settings and cover settings stay the same + +## Upcoming Features +- Shorten Esphome code and transfer to Blueprint +- Cover page with window open status as image +- small design adjustments +- Notifications on Home Page +- Energy and Gas consumption on home page +- Extra page for energy dashboard +- Garbage plan with icon on home page +- Let's see what ideas I still have ;) + +## HowTo Deutsch +1. den Code aus der Datei esphome.yaml kopieren und in HA unter esphome einfügen. Vorher muss natürlich ein Device erstellt werden. +1.2 in der ESPhome Datei müssen Passwörter eingesetzt werden. Entweder in der ESPHome Secret oder einfach in der ESPhome Datei +1.3 Einige Entities sind aktuell noch in der Esphome Datei angegeben (direkt unter den Passwörtern. Diese Entities müssen noch angepasst werden. In zukunft will ich aber auch diese ins Bluebrint einbauen +3. den Code aus der Datei blueprint.yaml kopieren und eine neue yaml Datei unter config/blueprints erstellen und den Code einfügen +4. HA Automationen neu starten -> Enticklerwerkzege -> YAML -> Automatisierungen +5. den Code aus der Datei sensor.yaml und climate.yaml kopieren und eine eigenen yaml Datei erstellen. Der Code wird in zukunft direkt im Blueprint eingebaut. +6. den Code aus der Datei folder_wather kopieren und in der coniguration.yaml einfügen +7. TFT File auf Home Assistant hochladen (Der Pfad kann später im Blueprint angegeben werden +8. Blueprint unter Automationen auswählen und und Felder ausfüllen. + + + +## Thanks to: +SmartHome Yourself: https://www.youtube.com/c/SmarthomeyourselfDe_DIY + +Masto: https://github.com/masto/NSPanel-Demo-Files + +Marcfager: https://github.com/marcfager/nspanel-mf + +lovejoy77: https://github.com/lovejoy777/NSpanel + +Hellis81: https://github.com/Hellis81/NS-panel diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/blueprint.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/blueprint.yaml new file mode 100644 index 0000000..0a16989 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/blueprint.yaml @@ -0,0 +1,3341 @@ +blueprint: + name: NSPanel Configuration + description: Synchronize NSpanel Button with HA Entities and Back! And many other things! + domain: automation + input: + last_click: + name: NSPanel "last click" + description: 'Select NSPanel **"last click"** where the commands should be monitored' + selector: + entity: {} + last_click_coversettings: + name: NSPanel "last click coversettings" + description: 'Select NSPanel **"last click coversettings"** where the commands for Page Coversettings should be monitored (same NSPanel as **"last click"**)' + selector: + entity: {} + last_click_lightsettings: + name: NSPanel "last click lightsettings" + description: 'Select NSPanel **"last click lightsettings"** where the commands for Page Lightsettings should be monitored (same NSPanel as **"last click"**)' + selector: + entity: {} + nextion_inited: + name: NSPanel "Nextion Switch - nextion_inited" + description: 'nextion_inited is set up via esphome and shows the state of the Nspanel - NSPanel ready after Reboot (same NSPanel as **"last click"**) Example *"switch.nspanel_buro_nextion_inited"*' + selector: + entity: {} + command_printf: + name: Light Settings Page JUMP + description: 'Service for jump to the light settings (same NSPanel as **"last click"**) Example *"esphome.nspanel_buero_send_command_printf"*' + default: esphome.nspanel_buero_send_command_printf + selector: + text: {} + command_value: + name: Sync Button Funktion + description: 'Service to synchronize HA Entity State (ON/OFF) to NSPanel Button Page(same NSPanel as **"last click"**) Example *"esphome.nspanel_buero_send_command_value"*' + default: esphome.nspanel_buero_send_command_value + selector: + text: {} + command_text_printf: + name: Sync Light Status + description: 'Service to synchronize Eintity States to NSPanel Lightsettings (same NSPanel as **"last click"**) Example *"esphome.nspanel_buero_send_command_text_printf"*' + default: esphome.nspanel_buero_send_command_text_printf + selector: + text: {} + tft_path: + name: Path for Nextion TFT File + description: 'TFT Path where the Nextion TFT File is stored (same NSPanel as **"last click"**) Example *"/config/www/nspanel/buero/nspanel_buero.tft"*' + default: /config/www/nspanel/buero/nspanel_buero.tft + selector: + text: {} + entity01: + name: Button 01 (Optional) + description: Nextion Editor - *buttonpage01.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity02: + name: Button 02 (Optional) + description: Nextion Editor - *buttonpage01.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity03: + name: Button 03 (Optional) + description: Nextion Editor - *buttonpage01.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity04: + name: Button 04 (Optional) + description: Nextion Editor - *buttonpage01.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity05: + name: Button 05 (Optional) + description: Nextion Editor - *buttonpage01.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity06: + name: Button 06 (Optional) + description: Nextion Editor - *buttonpage01.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity07: + name: Button 07 (Optional) + description: Nextion Editor - *buttonpage01.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity08: + name: Button 08 (Optional) + description: Nextion Editor - *buttonpage01.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity09: + name: Button 09 (Optional) + description: Nextion Editor - *buttonpage02.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity10: + name: Button 10 (Optional) + description: Nextion Editor - *buttonpage02.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity11: + name: Button 11 (Optional) + description: Nextion Editor - *buttonpage02.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity12: + name: Button 12 (Optional) + description: Nextion Editor - *buttonpage02.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity13: + name: Button 13 (Optional) + description: Nextion Editor - *buttonpage01.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity14: + name: Button 14 (Optional) + description: Nextion Editor - *buttonpage02.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity15: + name: Button 15 (Optional) + description: Nextion Editor - *buttonpage02.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity16: + name: Button 16 (Optional) + description: Nextion Editor - *buttonpage02.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity17: + name: Button 17 (Optional) + description: Nextion Editor - *buttonpage03.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity18: + name: Button 18 (Optional) + description: Nextion Editor - *buttonpage03.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity19: + name: Button 19 (Optional) + description: Nextion Editor - *buttonpage03.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity20: + name: Button 20 (Optional) + description: Nextion Editor - *buttonpage03.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity21: + name: Button 21 (Optional) + description: Nextion Editor - *buttonpage03.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity22: + name: Button 22 (Optional) + description: Nextion Editor - *buttonpage03.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity23: + name: Button 23 (Optional) + description: Nextion Editor - *buttonpage03.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity24: + name: Button 24 (Optional) + description: Nextion Editor - *buttonpage03.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity25: + name: Button 25 (Optional) + description: Nextion Editor - *buttonpage04.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity26: + name: Button 26 (Optional) + description: Nextion Editor - *buttonpage04.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity27: + name: Button 27 (Optional) + description: Nextion Editor - *buttonpage04.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity28: + name: Button 28 (Optional) + description: Nextion Editor - *buttonpage04.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity29: + name: Button 29 (Optional) + description: Nextion Editor - *buttonpage04.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity30: + name: Button 30 (Optional) + description: Nextion Editor - *buttonpage04.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity31: + name: Button 31 (Optional) + description: Nextion Editor - *buttonpage04.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity32: + name: Button 32 (Optional) + description: Nextion Editor - *buttonpage04.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity33: + name: Button 33 (Optional) + description: Nextion Editor - *buttonpage05.button01* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity34: + name: Button 34 (Optional) + description: Nextion Editor - *buttonpage05.button02* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity35: + name: Button 35 (Optional) + description: Nextion Editor - *buttonpage05.button03* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity36: + name: Button 36 (Optional) + description: Nextion Editor - *buttonpage05.button04* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity37: + name: Button 37 (Optional) + description: Nextion Editor - *buttonpage05.button05* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity38: + name: Button 38 (Optional) + description: Nextion Editor - *buttonpage05.button06* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity39: + name: Button 39 (Optional) + description: Nextion Editor - *buttonpage05.button07* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + entity40: + name: Button 40 (Optional) + description: Nextion Editor - *buttonpage05.button08* **(ONLY light | switch | cover | input_boolean)** + default: [] + selector: + entity: + domain: + - light + - switch + - cover + - input_boolean + +mode: parallel +max: 500 + +######################################### +# +# +############################################################# +##### CLOSE - INPUT ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Variables ##### +############################################################# +# +# +######################################### +trigger_variables: + last_click: !input 'last_click' + last_click_lightsettings: !input 'last_click_lightsettings' + last_click_coversettings: !input 'last_click_coversettings' + +variables: + command_value: !input 'command_value' + command_text_printf: !input 'command_text_printf' + command_printf: !input 'command_printf' + tft_path: !input 'tft_path' + nextion_inited: !input 'nextion_inited' + +##### Buttons ##### + entity01: !input 'entity01' + entity02: !input 'entity02' + entity03: !input 'entity03' + entity04: !input 'entity04' + entity05: !input 'entity05' + entity06: !input 'entity06' + entity07: !input 'entity07' + entity08: !input 'entity08' + entity09: !input 'entity09' + entity10: !input 'entity10' + entity11: !input 'entity11' + entity12: !input 'entity12' + entity13: !input 'entity13' + entity14: !input 'entity14' + entity15: !input 'entity15' + entity16: !input 'entity16' + entity17: !input 'entity17' + entity18: !input 'entity18' + entity19: !input 'entity19' + entity20: !input 'entity20' + entity21: !input 'entity21' + entity22: !input 'entity22' + entity23: !input 'entity23' + entity24: !input 'entity24' + entity25: !input 'entity25' + entity26: !input 'entity26' + entity27: !input 'entity27' + entity28: !input 'entity28' + entity29: !input 'entity29' + entity30: !input 'entity30' + entity31: !input 'entity31' + entity32: !input 'entity32' + entity33: !input 'entity33' + entity34: !input 'entity34' + entity35: !input 'entity35' + entity36: !input 'entity36' + entity37: !input 'entity37' + entity38: !input 'entity38' + entity39: !input 'entity39' + entity40: !input 'entity40' + +######################################### +# +# +############################################################# +##### CLOSE - Variables ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Trigger ##### +############################################################# +# +# +######################################### + +trigger: +##### Page Button - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: !input 'last_click' + id: short_press + +##### Button LONG Press for jump to Lightsetting or Coversetting Page - Trigger ##### + - platform: template + value_template: '{{ states(last_click) is match "press" }}' + for: + seconds: 2 + id: long_press + +##### Page Lightsettings - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: !input 'last_click_lightsettings' + id: light_settings + +##### Page Coversettings - Trigger ##### + - platform: event + event_type: state_changed + event_data: + entity_id: !input 'last_click_coversettings' + id: cover_settings + +#### Weather - Trigger #### + - platform: time_pattern + minutes: '10' + id: weather + - platform: state + entity_id: !input 'nextion_inited' + to: 'on' + id: weather + +##### TFT Upload ##### + - platform: event + event_type: folder_watcher + event_data: + event_type: modified + path: !input 'tft_path' + id: tft_upload + +##### Button01 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity01' + for: + seconds: 1 + id: current_state_entity01 + +##### Button02 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity02' + for: + seconds: 1 + id: current_state_entity02 + +##### Button03 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity03' + for: + seconds: 1 + id: current_state_entity03 + +##### Button04 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity04' + for: + seconds: 1 + id: current_state_entity04 + +##### Button05 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity05' + for: + seconds: 1 + id: current_state_entity05 + +##### Button06 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity06' + for: + seconds: 1 + id: current_state_entity06 + +##### Button07 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity07' + for: + seconds: 1 + id: current_state_entity07 + +##### Button08 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity08' + for: + seconds: 1 + id: current_state_entity08 + +##### Button09 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity09' + for: + seconds: 1 + id: current_state_entity09 + +##### Button10 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity10' + for: + seconds: 1 + id: current_state_entity10 + +##### Button11 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity11' + for: + seconds: 1 + id: current_state_entity11 + +##### Button12 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity12' + for: + seconds: 1 + id: current_state_entity12 + +##### Button13 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity13' + for: + seconds: 1 + id: current_state_entity13 + +##### Button14 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity14' + for: + seconds: 1 + id: current_state_entity14 + +##### Button15 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity15' + for: + seconds: 1 + id: current_state_entity15 + +##### Button16 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity16' + for: + seconds: 1 + id: current_state_entity16 + +##### Button17 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity17' + for: + seconds: 1 + id: current_state_entity17 + +##### Button18 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity18' + for: + seconds: 1 + id: current_state_entity18 + +##### Button19 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity19' + for: + seconds: 1 + id: current_state_entity19 + +##### Button20 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity20' + for: + seconds: 1 + id: current_state_entity20 + +##### Button21 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity21' + for: + seconds: 1 + id: current_state_entity21 + +##### Button22 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity22' + for: + seconds: 1 + id: current_state_entity22 + +##### Button23 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity23' + for: + seconds: 1 + id: current_state_entity23 + +##### Button24 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity24' + for: + seconds: 1 + id: current_state_entity24 + +##### Button25 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity25' + for: + seconds: 1 + id: current_state_entity25 + +##### Button26 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity26' + for: + seconds: 1 + id: current_state_entity26 + +##### Button27 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity27' + for: + seconds: 1 + id: current_state_entity27 + +##### Button28 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity28' + for: + seconds: 1 + id: current_state_entity28 + +##### Button29 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity29' + for: + seconds: 1 + id: current_state_entity29 + +##### Button30 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity30' + for: + seconds: 1 + id: current_state_entity30 + +##### Button31 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity31' + for: + seconds: 1 + id: current_state_entity31 + +##### Button32 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity32' + for: + seconds: 1 + id: current_state_entity32 + +##### Button33 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity33' + for: + seconds: 1 + id: current_state_entity33 + +##### Button34 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity34' + for: + seconds: 1 + id: current_state_entity34 + +##### Button35 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity35' + for: + seconds: 1 + id: current_state_entity35 + +##### Button36 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity36' + for: + seconds: 1 + id: current_state_entity36 + +##### Button37 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity37' + for: + seconds: 1 + id: current_state_entity37 + +##### Button38 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity38' + for: + seconds: 1 + id: current_state_entity38 + +##### Button39 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity39' + for: + seconds: 1 + id: current_state_entity39 + +##### Button40 Sync - Trigger ##### + - platform: state + entity_id: !input 'entity40' + for: + seconds: 1 + id: current_state_entity40 + +######################################### +# +# +############################################################# +##### CLOSE - Trigger ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Action ##### +############################################################# +# +# +######################################### +action: + - variables: +##### Entity - Page Button - Toggle Entity ##### + entity_short: >- + {%- if states(last_click) == "releasebuttonpage01button01" -%} {{ entity01 }} + {%- elif states(last_click) == "releasebuttonpage01button02" -%} {{ entity02 }} + {%- elif states(last_click) == "releasebuttonpage01button03" -%} {{ entity03 }} + {%- elif states(last_click) == "releasebuttonpage01button04" -%} {{ entity04 }} + {%- elif states(last_click) == "releasebuttonpage01button05" -%} {{ entity05 }} + {%- elif states(last_click) == "releasebuttonpage01button06" -%} {{ entity06 }} + {%- elif states(last_click) == "releasebuttonpage01button07" -%} {{ entity07 }} + {%- elif states(last_click) == "releasebuttonpage01button08" -%} {{ entity08 }} + {%- elif states(last_click) == "releasebuttonpage02button01" -%} {{ entity09 }} + {%- elif states(last_click) == "releasebuttonpage02button02" -%} {{ entity10 }} + {%- elif states(last_click) == "releasebuttonpage02button03" -%} {{ entity11 }} + {%- elif states(last_click) == "releasebuttonpage02button04" -%} {{ entity12 }} + {%- elif states(last_click) == "releasebuttonpage02button05" -%} {{ entity13 }} + {%- elif states(last_click) == "releasebuttonpage02button06" -%} {{ entity14 }} + {%- elif states(last_click) == "releasebuttonpage02button07" -%} {{ entity15 }} + {%- elif states(last_click) == "releasebuttonpage02button08" -%} {{ entity16 }} + {%- elif states(last_click) == "releasebuttonpage03button01" -%} {{ entity17 }} + {%- elif states(last_click) == "releasebuttonpage03button02" -%} {{ entity18 }} + {%- elif states(last_click) == "releasebuttonpage03button03" -%} {{ entity19 }} + {%- elif states(last_click) == "releasebuttonpage03button04" -%} {{ entity20 }} + {%- elif states(last_click) == "releasebuttonpage03button05" -%} {{ entity21 }} + {%- elif states(last_click) == "releasebuttonpage03button06" -%} {{ entity22 }} + {%- elif states(last_click) == "releasebuttonpage03button07" -%} {{ entity23 }} + {%- elif states(last_click) == "releasebuttonpage03button08" -%} {{ entity24 }} + {%- elif states(last_click) == "releasebuttonpage04button01" -%} {{ entity25 }} + {%- elif states(last_click) == "releasebuttonpage04button02" -%} {{ entity26 }} + {%- elif states(last_click) == "releasebuttonpage04button03" -%} {{ entity27 }} + {%- elif states(last_click) == "releasebuttonpage04button04" -%} {{ entity28 }} + {%- elif states(last_click) == "releasebuttonpage04button05" -%} {{ entity29 }} + {%- elif states(last_click) == "releasebuttonpage04button06" -%} {{ entity30 }} + {%- elif states(last_click) == "releasebuttonpage04button07" -%} {{ entity31 }} + {%- elif states(last_click) == "releasebuttonpage04button08" -%} {{ entity32 }} + {%- elif states(last_click) == "releasebuttonpage05button01" -%} {{ entity33 }} + {%- elif states(last_click) == "releasebuttonpage05button02" -%} {{ entity34 }} + {%- elif states(last_click) == "releasebuttonpage05button03" -%} {{ entity35 }} + {%- elif states(last_click) == "releasebuttonpage05button04" -%} {{ entity36 }} + {%- elif states(last_click) == "releasebuttonpage05button05" -%} {{ entity37 }} + {%- elif states(last_click) == "releasebuttonpage05button06" -%} {{ entity38 }} + {%- elif states(last_click) == "releasebuttonpage05button07" -%} {{ entity39 }} + {%- elif states(last_click) == "releasebuttonpage05button08" -%} {{ entity40 }} + {%- endif -%} + +##### Entity - Page Lightsettings ##### + entity_long: >- + {%- if states(last_click) == "pressbuttonpage01button01" -%} {{ entity01 }} + {%- elif states(last_click) == "pressbuttonpage01button02" -%} {{ entity02 }} + {%- elif states(last_click) == "pressbuttonpage01button03" -%} {{ entity03 }} + {%- elif states(last_click) == "pressbuttonpage01button04" -%} {{ entity04 }} + {%- elif states(last_click) == "pressbuttonpage01button05" -%} {{ entity05 }} + {%- elif states(last_click) == "pressbuttonpage01button06" -%} {{ entity06 }} + {%- elif states(last_click) == "pressbuttonpage01button07" -%} {{ entity07 }} + {%- elif states(last_click) == "pressbuttonpage01button08" -%} {{ entity08 }} + {%- elif states(last_click) == "pressbuttonpage02button01" -%} {{ entity09 }} + {%- elif states(last_click) == "pressbuttonpage02button02" -%} {{ entity10 }} + {%- elif states(last_click) == "pressbuttonpage02button03" -%} {{ entity11 }} + {%- elif states(last_click) == "pressbuttonpage02button04" -%} {{ entity12 }} + {%- elif states(last_click) == "pressbuttonpage02button05" -%} {{ entity13 }} + {%- elif states(last_click) == "pressbuttonpage02button06" -%} {{ entity14 }} + {%- elif states(last_click) == "pressbuttonpage02button07" -%} {{ entity15 }} + {%- elif states(last_click) == "pressbuttonpage02button08" -%} {{ entity16 }} + {%- elif states(last_click) == "pressbuttonpage03button01" -%} {{ entity17 }} + {%- elif states(last_click) == "pressbuttonpage03button02" -%} {{ entity18 }} + {%- elif states(last_click) == "pressbuttonpage03button03" -%} {{ entity19 }} + {%- elif states(last_click) == "pressbuttonpage03button04" -%} {{ entity20 }} + {%- elif states(last_click) == "pressbuttonpage03button05" -%} {{ entity21 }} + {%- elif states(last_click) == "pressbuttonpage03button06" -%} {{ entity22 }} + {%- elif states(last_click) == "pressbuttonpage03button07" -%} {{ entity23 }} + {%- elif states(last_click) == "pressbuttonpage03button08" -%} {{ entity24 }} + {%- elif states(last_click) == "pressbuttonpage04button01" -%} {{ entity25 }} + {%- elif states(last_click) == "pressbuttonpage04button02" -%} {{ entity26 }} + {%- elif states(last_click) == "pressbuttonpage04button03" -%} {{ entity27 }} + {%- elif states(last_click) == "pressbuttonpage04button04" -%} {{ entity28 }} + {%- elif states(last_click) == "pressbuttonpage04button05" -%} {{ entity29 }} + {%- elif states(last_click) == "pressbuttonpage04button06" -%} {{ entity30 }} + {%- elif states(last_click) == "pressbuttonpage04button07" -%} {{ entity31 }} + {%- elif states(last_click) == "pressbuttonpage04button08" -%} {{ entity32 }} + {%- elif states(last_click) == "pressbuttonpage05button01" -%} {{ entity33 }} + {%- elif states(last_click) == "pressbuttonpage05button02" -%} {{ entity34 }} + {%- elif states(last_click) == "pressbuttonpage05button03" -%} {{ entity35 }} + {%- elif states(last_click) == "pressbuttonpage05button04" -%} {{ entity36 }} + {%- elif states(last_click) == "pressbuttonpage05button05" -%} {{ entity37 }} + {%- elif states(last_click) == "pressbuttonpage05button06" -%} {{ entity38 }} + {%- elif states(last_click) == "pressbuttonpage05button07" -%} {{ entity39 }} + {%- elif states(last_click) == "pressbuttonpage05button08" -%} {{ entity40 }} + {%- endif -%} + +##### Entity - Page Lightsettings - Skip Back ##### + entity_back: >- + {%- if states(last_click) == "pressbuttonpage01button01" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button02" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button03" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button04" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button05" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button06" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button07" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage01button08" -%} {{ "page buttonpage01" }} + {%- elif states(last_click) == "pressbuttonpage02button01" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button02" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button03" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button04" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button05" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button06" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button07" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage02button08" -%} {{ "page buttonpage02" }} + {%- elif states(last_click) == "pressbuttonpage03button01" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button02" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button03" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button04" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button05" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button06" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button07" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage03button08" -%} {{ "page buttonpage03" }} + {%- elif states(last_click) == "pressbuttonpage04button01" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button02" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button03" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button04" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button05" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button06" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button07" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage04button08" -%} {{ "page buttonpage04" }} + {%- elif states(last_click) == "pressbuttonpage05button01" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button02" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button03" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button04" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button05" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button06" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button07" -%} {{ "page buttonpage05" }} + {%- elif states(last_click) == "pressbuttonpage05button08" -%} {{ "page buttonpage05" }} + {%- endif -%} + +##### Page Button - SHORT Press - Toggle ##### + - choose: + - conditions: + - condition: trigger + id: short_press + sequence: + - service: >- + {% if entity_short is match 'light.' %} + light.toggle + {% elif entity_short is match 'switch.' %} + switch.toggle + {% elif entity_short is match 'cover.' %} + cover.toggle + {% elif entity_short is match 'input_boolean.' %} + input_boolean.toggle + {% endif %} + data: + entity_id: '{{ entity_short }}' + +##### Page Lightsettings - JUMP to Page Lightsettings and SYNC Light Settings ##### + - choose: + - conditions: + - condition: trigger + id: long_press + - condition: template + value_template: '{{ entity_long is match "light." }}' + sequence: + - service: !input command_printf + data: + cmd: page lightsettings + - service: !input command_text_printf + data: + component: lightsettings.a03 + message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 254) |round(0) }}' + - service: !input command_text_printf + data: + component: lightsettings.a04 + message: '{{ state_attr(entity_long, "color_temp") |int }}' + +##### Page Lightsettings - SYNC Light Button ON / OFF ##### + - choose: + - conditions: + - condition: trigger + id: long_press + - condition: template + value_template: '{{ states(entity_long) == "on" }}' + sequence: + - service: !input command_value + data: + component: lightsettings.a06 + message: 1 + +##### Page Lightsettings - Brightness Slider ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) is match "brightness\d+" }}' + sequence: + - service: light.turn_on + data: + entity_id: '{{ entity_long }}' + brightness_pct: '{{ states(last_click_lightsettings) |replace("brightness","") | int }}' + - service: !input command_text_printf + data: + component: lightsettings.a03 + message: '{{ states(last_click_lightsettings) |replace("brightness","") | int }}' + +##### Page Lightsettings - Color_Temp Slider ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) is match "colortemp\d+" }}' + sequence: + - service: light.turn_on + data: + entity_id: '{{ entity_long }}' + color_temp: '{{ states(last_click_lightsettings) |replace("colortemp","") | int }}' + - service: !input command_text_printf + data: + component: lightsettings.a04 + message: '{{ states(last_click_lightsettings) |replace("colortemp","") | int }}' + +##### Page Lightsettings - Color RGB Slider ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) is match "\d+,\d+,\d+" }}' + sequence: + - service: light.turn_on + data: + entity_id: '{{ entity_long }}' + rgb_color: '{{ states(last_click_lightsettings).split(",") }}' + +##### Page Lightsettings - Toggle Light ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) == "releaselight" }}' + sequence: + - service: light.toggle + data: + entity_id: '{{ entity_long }}' + - delay: + milliseconds: 250 + - service: !input command_text_printf + data: + component: lightsettings.a03 + message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 254) |round(0) }}' + - service: !input command_text_printf + data: + component: lightsettings.a04 + message: '{{ state_attr(entity_long, "color_temp") |int }}' + +##### Page Lightsettings - Close Lightsettings ##### + - choose: + - conditions: + - condition: trigger + id: light_settings + - condition: template + value_template: '{{ states(last_click_lightsettings) == "releaselightsettingsclose" }}' + sequence: + - service: !input command_printf + data: + cmd: '{{ entity_back }}' + +##### Page Coversettings - JUMP to Page Coversettings and SYNC Cover Settings ##### + - choose: + - conditions: + - condition: trigger + id: long_press + - condition: template + value_template: '{{ entity_long is match "cover." }}' + sequence: + - service: !input command_printf + data: + cmd: page coversettings + - service: !input command_text_printf + data: + component: coversettings.a03 + message: '{{ (state_attr(entity_long, "position") | int ) |round(0) }}' + - service: !input command_text_printf + data: + component: coversettings.a04 + message: '{{ (state_attr(entity_long, "battery") | int ) |round(0) }}' + +##### Page Coversettings - SYNC Cover Button ON / OFF ##### + - choose: + - conditions: + - condition: trigger + id: long_press + - condition: template + value_template: '{{ states(entity_long) == "open" }}' + sequence: + - service: !input command_value + data: + component: coversettings.a06 + message: 1 + +##### Page Coversettings - Cover Slider ##### + - choose: + - conditions: + - condition: trigger + id: cover_settings + - condition: template + value_template: '{{ states(last_click_coversettings) is match "coverposition\d+" }}' + sequence: + - service: cover.set_cover_position + data: + entity_id: '{{ entity_long }}' + position: '{{ states(last_click_coversettings) |replace("coverposition","") | int }}' + - service: !input command_text_printf + data: + component: coversettings.a03 + message: '{{ states(last_click_coversettings) |replace("coverposition","") | int }}' + +##### Page Coversettings - Toggle Cover ##### + - choose: + - conditions: + - condition: trigger + id: cover_settings + - condition: template + value_template: '{{ states(last_click_coversettings) == "releasecover" }}' + sequence: + - service: cover.toggle + data: + entity_id: '{{ entity_long }}' + - delay: + milliseconds: 250 + - service: !input command_text_printf + data: + component: coversettings.a03 + message: '{{ (state_attr(entity_long, "position") | int ) |round(0) }}' + +##### Page Coversettings - Close Coversettings ##### + - choose: + - conditions: + - condition: trigger + id: cover_settings + - condition: template + value_template: '{{ states(last_click_coversettings) == "releasecoversettingsclose" }}' + sequence: + - service: !input command_printf + data: + cmd: '{{ entity_back }}' + +##### TFT Upload Automation ##### + - choose: + - conditions: + - condition: trigger + id: tft_upload + sequence: + - delay: + seconds: 2 + - service: esphome.nspanel_buero_upload_tft + data: {} + +######################################### +# +# +############################################################# +##### CLOSE - START - Action ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - HA Button SYNC ##### +############################################################# +# +# +######################################### + +##### Button01 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity01 +# - "{{ is_state('entity01', 'on' or 'open') }}" + - condition: state + entity_id: !input entity01 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button01 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity01 +# - "{{ is_state('entity01', 'off' or 'closed') }}" + - condition: state + entity_id: !input entity01 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button01 + message: 0 + +##### Button02 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity02 + - condition: state + entity_id: !input entity02 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button02 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity02 + - condition: state + entity_id: !input entity02 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button02 + message: 0 + +##### Button03 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity03 + - condition: state + entity_id: !input entity03 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button03 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity03 + - condition: state + entity_id: !input entity03 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button03 + message: 0 + +##### Button04 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity04 + - condition: state + entity_id: !input entity04 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button04 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity04 + - condition: state + entity_id: !input entity04 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button04 + message: 0 + +##### Button05 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity05 + - condition: state + entity_id: !input entity05 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button05 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity05 + - condition: state + entity_id: !input entity05 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button05 + message: 0 + +##### Button06 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity06 + - condition: state + entity_id: !input entity06 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button06 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity06 + - condition: state + entity_id: !input entity06 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button06 + message: 0 + +##### Button07 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity07 + - condition: state + entity_id: !input entity07 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button07 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity07 + - condition: state + entity_id: !input entity07 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button07 + message: 0 + +##### Button08 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity08 + - condition: state + entity_id: !input entity08 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage01.button08 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity08 + - condition: state + entity_id: !input entity08 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage01.button08 + message: 0 + +##### Button09 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity09 + - condition: state + entity_id: !input entity09 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button01 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity09 + - condition: state + entity_id: !input entity09 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button01 + message: 0 + +##### Button10 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity10 + - condition: state + entity_id: !input entity10 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button02 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity10 + - condition: state + entity_id: !input entity10 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button02 + message: 0 + +##### Button11 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity11 + - condition: state + entity_id: !input entity11 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button03 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity11 + - condition: state + entity_id: !input entity11 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button03 + message: 0 + +##### Button12 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity12 + - condition: state + entity_id: !input entity12 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button04 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity12 + - condition: state + entity_id: !input entity12 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button04 + message: 0 + +##### Button13 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity13 + - condition: state + entity_id: !input entity13 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button05 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity13 + - condition: state + entity_id: !input entity13 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button05 + message: 0 + +##### Button14 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity14 + - condition: state + entity_id: !input entity14 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button06 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity14 + - condition: state + entity_id: !input entity14 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button06 + message: 0 + +##### Button15 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity15 + - condition: state + entity_id: !input entity15 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button07 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity16 + - condition: state + entity_id: !input entity16 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button07 + message: 0 + +##### Button16 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity16 + - condition: state + entity_id: !input entity16 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage02.button08 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity16 + - condition: state + entity_id: !input entity16 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage02.button08 + message: 0 + +##### Button17 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity17 + - condition: state + entity_id: !input entity17 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button01 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity17 + - condition: state + entity_id: !input entity17 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button01 + message: 0 + +##### Button18 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity18 + - condition: state + entity_id: !input entity18 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button02 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity18 + - condition: state + entity_id: !input entity18 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button02 + message: 0 + +##### Button19 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity19 + - condition: state + entity_id: !input entity19 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button03 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity19 + - condition: state + entity_id: !input entity19 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button03 + message: 0 + +##### Button20 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity20 + - condition: state + entity_id: !input entity20 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button04 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity20 + - condition: state + entity_id: !input entity20 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button04 + message: 0 + +##### Button21 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity21 + - condition: state + entity_id: !input entity21 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button05 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity21 + - condition: state + entity_id: !input entity21 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button05 + message: 0 + +##### Button22 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity22 + - condition: state + entity_id: !input entity22 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button06 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity22 + - condition: state + entity_id: !input entity22 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button06 + message: 0 + +##### Button23 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity23 + - condition: state + entity_id: !input entity23 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button07 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity23 + - condition: state + entity_id: !input entity23 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button07 + message: 0 + +##### Button24 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity24 + - condition: state + entity_id: !input entity24 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage03.button08 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity24 + - condition: state + entity_id: !input entity24 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage03.button08 + message: 0 + +##### Button25 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity25 + - condition: state + entity_id: !input entity25 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button01 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity25 + - condition: state + entity_id: !input entity25 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button01 + message: 0 + +##### Button26 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity26 + - condition: state + entity_id: !input entity26 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button02 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity26 + - condition: state + entity_id: !input entity26 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button02 + message: 0 + +##### Button27 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity27 + - condition: state + entity_id: !input entity27 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button03 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity27 + - condition: state + entity_id: !input entity27 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button03 + message: 0 + +##### Button28 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity28 + - condition: state + entity_id: !input entity28 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button04 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity28 + - condition: state + entity_id: !input entity28 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button04 + message: 0 + +##### Button29 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity29 + - condition: state + entity_id: !input entity29 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button05 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity29 + - condition: state + entity_id: !input entity29 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button05 + message: 0 + +##### Button30 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity30 + - condition: state + entity_id: !input entity30 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button06 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity30 + - condition: state + entity_id: !input entity30 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button06 + message: 0 + +##### Button31 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity31 + - condition: state + entity_id: !input entity31 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button07 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity31 + - condition: state + entity_id: !input entity31 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button07 + message: 0 + +##### Button32 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity32 + - condition: state + entity_id: !input entity32 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage04.button08 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity32 + - condition: state + entity_id: !input entity32 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage04.button08 + message: 0 + +##### Button33 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity33 + - condition: state + entity_id: !input entity33 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button01 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity33 + - condition: state + entity_id: !input entity33 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button01 + message: 0 + +##### Button34 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity34 + - condition: state + entity_id: !input entity34 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button02 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity34 + - condition: state + entity_id: !input entity34 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button02 + message: 0 + +##### Button35 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity35 + - condition: state + entity_id: !input entity35 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button03 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity35 + - condition: state + entity_id: !input entity35 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button03 + message: 0 + +##### Button36 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity36 + - condition: state + entity_id: !input entity36 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button04 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity36 + - condition: state + entity_id: !input entity36 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button04 + message: 0 + +##### Button37 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity37 + - condition: state + entity_id: !input entity37 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button05 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity37 + - condition: state + entity_id: !input entity37 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button05 + message: 0 + +##### Button38 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity38 + - condition: state + entity_id: !input entity38 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button06 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity38 + - condition: state + entity_id: !input entity38 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button06 + message: 0 + +##### Button39 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity39 + - condition: state + entity_id: !input entity39 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button07 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity39 + - condition: state + entity_id: !input entity39 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button07 + message: 0 + +##### Button40 ################################################################# + - choose: + - conditions: + - condition: trigger + id: current_state_entity40 + - condition: state + entity_id: !input entity40 + state: + - "on" + - "open" + sequence: + - service: !input command_value + data: + component: buttonpage05.button08 + message: 1 + - conditions: + - condition: trigger + id: current_state_entity40 + - condition: state + entity_id: !input entity40 + state: + - "off" + - "closed" + sequence: + - service: !input command_value + data: + component: buttonpage05.button08 + message: 0 + +######################################### +# +# +############################################################# +##### CLOSE - HA Button SYNC ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Weather Forcast ##### +############################################################# +# +# +######################################### + - choose: + - conditions: + - condition: trigger + id: weather + sequence: + - service: !input command_text_printf + data: + component: weather01.a02 + message: '{{states("sensor.wochentag")}}' + - service: !input command_text_printf + data: + component: weather01.a04 + message: '{{states("sensor.home_wetter_realfeel_temperature_min_0d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather01.a05 + message: '{{states("sensor.home_wetter_realfeel_temperature_max_0d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather01.a06 + message: '{{ state_attr("weather.home_wetter","forecast")[0].precipitation_probability}} + %' + - service: !input command_text_printf + data: + component: weather01.a07 + message: '{{states("sensor.home_wetter_hours_of_sun_0d") | round(0)}} h' + - service: !input command_text_printf + data: + component: weather01.a08 + message: '{{state_attr("sensor.home_wetter_uv_index_0d", "level")}}' + - service: !input command_text_printf + data: + component: weather01.a09 + message: '{{states("sensor.home_wetter_uv_index_0d") | round(0)}}' + - service: !input command_text_printf + data: + component: weather01.a10 + message: '{{states("sensor.home_wetter_thunderstorm_probability_day_0d") | round(0)}} + %' + - service: !input command_text_printf + data: + component: weather01.a11 + message: '{{states("sensor.home_wetter_wind_day_0d") | round(0)}} km/h' + - service: !input command_text_printf + data: + component: weather01.a12 + message: '{{states("sensor.home_wetter_thunderstorm_probability_night_0d") | + round(0)}} %' + - service: !input command_text_printf + data: + component: weather01.a13 + message: '{{states("sensor.home_wetter_wind_night_0d") | round(0)}} km/h' + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''sunny''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=2 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''cloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=3 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=4 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''pouring''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=5 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''snowy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=6 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''hail''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''snowy-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''fog''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=8 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''windy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''windy-variant''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''lightning''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=10 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''partlycloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=11 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''lightning-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''execptional''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[0].condition + == ''clear-night''}}' + then: + - service: !input command_printf + data: + cmd: weather01.a03.pic=15 + - service: !input command_text_printf + data: + component: weather02.a02 + message: '{{states("sensor.wochentag01")}}' + - service: !input command_text_printf + data: + component: weather02.a04 + message: '{{states("sensor.home_wetter_realfeel_temperature_min_1d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather02.a05 + message: '{{states("sensor.home_wetter_realfeel_temperature_max_1d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather02.a06 + message: '{{ state_attr("weather.home_wetter","forecast")[1].precipitation_probability}} + %' + - service: !input command_text_printf + data: + component: weather02.a07 + message: '{{states("sensor.home_wetter_hours_of_sun_1d") | round(0)}} h' + - service: !input command_text_printf + data: + component: weather02.a08 + message: '{{state_attr("sensor.home_wetter_uv_index_1d", "level")}}' + - service: !input command_text_printf + data: + component: weather02.a09 + message: '{{states("sensor.home_wetter_uv_index_1d") | round(0)}}' + - service: !input command_text_printf + data: + component: weather02.a10 + message: '{{states("sensor.home_wetter_thunderstorm_probability_day_1d") | round(0)}} + %' + - service: !input command_text_printf + data: + component: weather02.a11 + message: '{{states("sensor.home_wetter_wind_day_1d") | round(0)}} km/h' + - service: !input command_text_printf + data: + component: weather02.a12 + message: '{{states("sensor.home_wetter_thunderstorm_probability_night_1d") | + round(0)}} %' + - service: !input command_text_printf + data: + component: weather02.a13 + message: '{{states("sensor.home_wetter_wind_night_1d") | round(0)}} km/h' + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''sunny''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=2 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''cloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=3 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=4 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''pouring''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=5 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''snowy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=6 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''hail''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''snowy-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''fog''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=8 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''windy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''windy-variant''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''lightning''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=10 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''partlycloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=11 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''lightning-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''execptional''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[1].condition + == ''clear-night''}}' + then: + - service: !input command_printf + data: + cmd: weather02.a03.pic=15 + - service: !input command_text_printf + data: + component: weather03.a02 + message: '{{states("sensor.wochentag02")}}' + - service: !input command_text_printf + data: + component: weather03.a04 + message: '{{states("sensor.home_wetter_realfeel_temperature_min_2d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather03.a05 + message: '{{states("sensor.home_wetter_realfeel_temperature_max_2d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather03.a06 + message: '{{ state_attr("weather.home_wetter","forecast")[2].precipitation_probability}} + %' + - service: !input command_text_printf + data: + component: weather03.a07 + message: '{{states("sensor.home_wetter_hours_of_sun_2d") | round(0)}} h' + - service: !input command_text_printf + data: + component: weather03.a08 + message: '{{state_attr("sensor.home_wetter_uv_index_2d", "level")}}' + - service: !input command_text_printf + data: + component: weather03.a09 + message: '{{states("sensor.home_wetter_uv_index_2d") | round(0)}}' + - service: !input command_text_printf + data: + component: weather03.a10 + message: '{{states("sensor.home_wetter_thunderstorm_probability_day_2d") | round(0)}} + %' + - service: !input command_text_printf + data: + component: weather03.a11 + message: '{{states("sensor.home_wetter_wind_day_2d") | round(0)}} km/h' + - service: !input command_text_printf + data: + component: weather03.a12 + message: '{{states("sensor.home_wetter_thunderstorm_probability_night_2d") | + round(0)}} %' + - service: !input command_text_printf + data: + component: weather03.a13 + message: '{{states("sensor.home_wetter_wind_night_2d") | round(0)}} km/h' + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''sunny''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=2 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''cloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=3 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=4 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''pouring''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=5 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''snowy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=6 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''hail''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''snowy-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''fog''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=8 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''windy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''windy-variant''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''lightning''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=10 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''partlycloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=11 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''lightning-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''execptional''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[2].condition + == ''clear-night''}}' + then: + - service: !input command_printf + data: + cmd: weather03.a03.pic=15 + - service: !input command_text_printf + data: + component: weather04.a02 + message: '{{states("sensor.wochentag03")}}' + - service: !input command_text_printf + data: + component: weather04.a04 + message: '{{states("sensor.home_wetter_realfeel_temperature_min_3d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather04.a05 + message: '{{states("sensor.home_wetter_realfeel_temperature_max_3d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather04.a06 + message: '{{ state_attr("weather.home_wetter","forecast")[3].precipitation_probability}} + %' + - service: !input command_text_printf + data: + component: weather04.a07 + message: '{{states("sensor.home_wetter_hours_of_sun_3d") | round(0)}} h' + - service: !input command_text_printf + data: + component: weather04.a08 + message: '{{state_attr("sensor.home_wetter_uv_index_3d", "level")}}' + - service: !input command_text_printf + data: + component: weather04.a09 + message: '{{states("sensor.home_wetter_uv_index_3d") | round(0)}}' + - service: !input command_text_printf + data: + component: weather04.a10 + message: '{{states("sensor.home_wetter_thunderstorm_probability_day_3d") | round(0)}} + %' + - service: !input command_text_printf + data: + component: weather04.a11 + message: '{{states("sensor.home_wetter_wind_day_3d") | round(0)}} km/h' + - service: !input command_text_printf + data: + component: weather04.a12 + message: '{{states("sensor.home_wetter_thunderstorm_probability_night_3d") | + round(0)}} %' + - service: !input command_text_printf + data: + component: weather04.a13 + message: '{{states("sensor.home_wetter_wind_night_3d") | round(0)}} km/h' + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''sunny''}}' + then: + - service: !input command_printf + data: + md: weather04.a03.pic=2 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''cloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=3 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=4 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''pouring''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=5 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''snowy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=6 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''hail''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''snowy-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''fog''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=8 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''windy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''windy-variant''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''lightning''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=10 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''partlycloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=11 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''lightning-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''execptional''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[3].condition + == ''clear-night''}}' + then: + - service: !input command_printf + data: + cmd: weather04.a03.pic=15 + - service: !input command_text_printf + data: + component: weather05.a02 + message: '{{states("sensor.wochentag04")}}' + - service: !input command_text_printf + data: + component: weather05.a04 + message: '{{states("sensor.home_wetter_realfeel_temperature_min_4d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather05.a05 + message: '{{states("sensor.home_wetter_realfeel_temperature_max_4d") | round(0)}}°' + - service: !input command_text_printf + data: + component: weather05.a06 + message: '{{ state_attr("weather.home_wetter","forecast")[4].precipitation_probability}} + %' + - service: !input command_text_printf + data: + component: weather05.a07 + message: '{{states("sensor.home_wetter_hours_of_sun_4d") | round(0)}} h' + - service: !input command_text_printf + data: + component: weather05.a08 + message: '{{state_attr("sensor.home_wetter_uv_index_4d", "level")}}' + - service: !input command_text_printf + data: + component: weather05.a09 + message: '{{states("sensor.home_wetter_uv_index_4d") | round(0)}}' + - service: !input command_text_printf + data: + component: weather05.a10 + message: '{{states("sensor.home_wetter_thunderstorm_probability_day_4d") | round(0)}} + %' + - service: !input command_text_printf + data: + component: weather05.a11 + message: '{{states("sensor.home_wetter_wind_day_4d") | round(0)}} km/h' + - service: !input command_text_printf + data: + component: weather05.a12 + message: '{{states("sensor.home_wetter_thunderstorm_probability_night_4d") | + round(0)}} %' + - service: !input command_text_printf + data: + component: weather05.a13 + message: '{{states("sensor.home_wetter_wind_night_4d") | round(0)}} km/h' + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''sunny''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=2 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''cloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=3 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=4 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''pouring''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=5 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''snowy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=6 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''hail''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''snowy-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=7 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''fog''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=8 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''windy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''windy-variant''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=9 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''lightning''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=10 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''partlycloudy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=11 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''lightning-rainy''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''execptional''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=13 + - if: + - condition: template + value_template: '{{state_attr(''weather.home_wetter'',''forecast'')[4].condition + == ''clear-night''}}' + then: + - service: !input command_printf + data: + cmd: weather05.a03.pic=15 + + ######################################### +# +# +############################################################# +##### CLOSE - Weather Forcast ##### +############################################################# +# +## +### +############################################################################################################################################################################################# diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/climate.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/climate.yaml new file mode 100644 index 0000000..6a64410 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/climate.yaml @@ -0,0 +1,18 @@ +climate: + - platform: generic_thermostat + unique_id: cf308990-0dbd-4e8a-be77-aec56d7a5aa4 + name: NSPanel Büro + heater: switch.nspanel_buro_relay_2 + target_sensor: sensor.nspanel_buro_temperature + min_temp: 13 + max_temp: 27 + ac_mode: false + target_temp: 22 + cold_tolerance: 0.5 + hot_tolerance: 0.5 + min_cycle_duration: + seconds: 60 + keep_alive: + minutes: 3 + initial_hvac_mode: "heat" + precision: 0.5 diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/folder_watcher.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/folder_watcher.yaml new file mode 100644 index 0000000..4a503d1 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/folder_watcher.yaml @@ -0,0 +1,7 @@ +# Please insert into the default file "configuration.yaml +# Folder must be changed to the directory where the tft file (Nextion Editor) will be uploaded +########### +# +#Folder watcher for NS panel auto upload tft +folder_watcher: + - folder: /config/www/nspanel/ \ No newline at end of file diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/sensor.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/sensor.yaml new file mode 100644 index 0000000..1431ae1 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/custom_configuration/sensor.yaml @@ -0,0 +1,78 @@ +##### Sensor ###### +sensor: + + - platform: template + sensors: + wochentag: + friendly_name: "Wochentag" + unique_id: 6ac64850-8563-456c-b562-92343dd96f0b + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,'] %} + {{ now().timestamp() | timestamp_custom(days[now().weekday()] ~ ' %d.%m')}} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag01: + friendly_name: "Wochentag+1" + unique_id: 6b2aad54-3eb0-48cc-ae32-ee3574197f1b + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,'] %} + {{(as_timestamp(now())+ (86400)) | timestamp_custom(days[now().weekday()+1] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag02: + friendly_name: "Wochentag+2" + unique_id: edbddaf0-2791-4774-b8d4-aa706f75cc7a + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,'] %} + {{(as_timestamp(now())+ (172800)) | timestamp_custom(days[now().weekday()+2] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag03: + friendly_name: "Wochentag+3" + unique_id: ad592622-db86-40f7-9961-4c1ffd21c711 + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,', 'Mittwoch,'] %} + {{(as_timestamp(now())+ (259200)) | timestamp_custom(days[now().weekday()+3] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag04: + friendly_name: "Wochentag+4" + unique_id: dcb3ed45-2b89-4672-a04f-a55f025ac745 + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,'] %} + {{(as_timestamp(now())+ (345600)) | timestamp_custom(days[now().weekday()+4] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + + - platform: template + sensors: + wochentag05: + friendly_name: "Wochentag+5" + unique_id: 77e642a5-de54-452d-9f4a-febe3a7851c2 + value_template: > + {% set days = ['Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,', 'Samstag,', 'Sonntag,', 'Montag,', 'Dienstag,', 'Mittwoch,', 'Donnerstag,', 'Freitag,'] %} + {{(as_timestamp(now())+ (432000)) | timestamp_custom(days[now().weekday()+ 5] ~ ' %d.%m') }} + icon_template: mdi:calendar-range + +###### NSPanel Büro - climate target temperature ##### + - platform: template + sensors: + nspanel_buro_target_temp: + unique_id: 2393ab74-21ce-42d3-b15e-ec162b9d6f31 + friendly_name: NSPanel Buro Target Temp + value_template: "{{ state_attr('climate.nspanel_buro', 'temperature') }}" + +###### NSPanel Büro - climate target temperature ##### + - platform: template + sensors: + nspanel_lea_target_temp: + unique_id: e8e61ff7-3a41-47ad-bd6c-303f730de96f + friendly_name: NSPanel Lea Target Temp + value_template: "{{ state_attr('climate.nspanel_lea', 'temperature') }}" \ No newline at end of file diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/esphome.yaml b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/esphome.yaml new file mode 100644 index 0000000..ad8632d --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/esphome.yaml @@ -0,0 +1,1168 @@ +############################################################# +##### START - SUBSTITUTIONS ##### +############################################################# +substitutions: +##### GENEREL CONFIG ############################################################################################# + node_name: nspanel-buero # $node_name + device_name: NSPanel Büro # $device_name + + wifi_ssid: !secret wifi_ssid # add in your esphome secrets file. + wifi_password: !secret wifi_password # add in your esphome secrets file. + ota_password: !secret ota_password # add in your esphome secrets file. + nextion_update_url: !secret nextion_update_url_buero # add in your esphome secrets file. + +###### EDIT THE BELOW ENTITIES FOR YOURS... ####################################################################### + + #ha_weekday: sensor.wochentag ##### Sensor Wochentag generiert in HA (custom_configuration -> nspanel) ##### + #ha_outdoor_temp: sensor.terrasse_garage_motion_sensor_temperature ##### Temperatur von Bewegungsmelder Outdoor (Zigbee2Mqtt) ##### + #ha_hotwater_temp: sensor.hotwater_temp ##### Buderus Heizung Warmwasser Temperatur (Integration) ##### + ha_hotwater_charge: switch.charge + ha_heating_system_flame: binary_sensor.flamestatus ##### Buderus Heizung Flamen-Status (Integration) ##### + ha_climate_thermostat_target_temp: sensor.nspanel_buro_target_temp ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### + ha_climate_thermostat: climate.nspanel_buro ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### + #ha_humidity: sensor.kinderzimmer_lea_temperatur_sensor_humidity +######################################### +# +# +############################################################# +##### CLOSE - SUBSTITUTIONS ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - Settings ##### +############################################################# +# +# +######################################### + +##### Functionality for the Nextion display ##### +external_components: + - source: github://pr#2956 + components: [nextion] + refresh: 1h + +##### ESP home CONFIG ##### +esphome: + name: $node_name + comment: $device_name + +##### TYPE OF ESP BOARD ##### +esp32: + board: esp32dev + +##### WIFI SETUP ##### +wifi: + ssid: $wifi_ssid + password: $wifi_password + power_save_mode: none + +captive_portal: + +##### OTA (Over the air updates) password ##### +ota: + password: $ota_password + safe_mode: true + reboot_timeout: 3min + num_attempts: 3 + +##### LOGGER ##### +logger: +# baud_rate: 0 +# level: WARN + +##### CONFIGURE INTERNAL BUZZER ##### +output: + ##### BUZZER FOR PLAYING RINGTONES ##### + - platform: ledc + id: buzzer_out + pin: + number: 21 + +##### ENABLE RINGTONE MUSIC SUPPORT ##### +rtttl: + id: buzzer + output: buzzer_out + +##### UART FOR NEXTION DISPLAY ##### +uart: + tx_pin: 16 + rx_pin: 17 + baud_rate: 115200 + id: tf_uart + +##### INFO - Time component that fetches time from home Assistant and updates the display once a minute and when the display is ready at bootup (and time is available) ##### +#time: +# - platform: homeassistant +# id: homeassistant_time +# on_time: +# - seconds: 0 +# minutes: /1 +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a01", "%02i:%02i", id(homeassistant_time).now().hour, id(homeassistant_time).now().minute); +# on_time_sync: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a01", "%02i:%02i", id(homeassistant_time).now().hour, id(homeassistant_time).now().minute); + +###### A reboot button is always useful ##### +button: + - platform: restart + name: $device_name Restart + id: restart_nspanel + +######################################### +# +# +############################################################# +##### CLOSE - Settings ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - API ##### +############################################################# +# +# +######################################### + +api: + services: + +##### SERVICE TO UPDATE THE HMI FILE ##### + - service: upload_tft + then: + - lambda: 'id(disp1)->upload_tft();' + +##### Service to send a command "printf" directly to the display. Useful for testing ##### + - service: send_command_printf + variables: + cmd: string + then: + - lambda: 'id(disp1).send_command_printf("%s", cmd.c_str());' + +##### Service to send a command "text_printf" directly to the display. Useful for testing ##### + - service: send_command_text_printf + variables: + component: string + message: string + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).set_component_text_printf(component.c_str(), "%s", message.c_str());' + +##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + - service: send_command_value + variables: + component: string + message: int + then: + - wait_until: + switch.is_on: nextion_init + - lambda: 'id(disp1).set_component_value(component.c_str(), message);' + +######################################### +# +# +############################################################# +##### CLOSE - API ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - GLOBALS ##### +############################################################# +# +# +######################################### + +globals: + +##### Save Target Temp ##### + - id: climate_target_temp_val_global + type: float + restore_value: true + initial_value: '12' + +##### Save Thermostat PIC Position ##### + - id: climate_slider_val_global + type: int + restore_value: true + initial_value: '0' + +##### Save Display Brightness for NSPanel reboot ##### + - id: display_brightness_global + type: int + restore_value: true + initial_value: '100' + +##### Save Display DIM Brightness for NSPanel reboot + - id: display_dim_brightness_global + type: int + restore_value: true + initial_value: '10' + +##### Save Display DIM Brightness for NSPanel reboot + - id: sleep_modus_global + type: int + restore_value: true + initial_value: '0' + +##### Save State Heating Room ##### + - id: heating_room_global + type: int + restore_value: true + initial_value: '0' + +##### Save State HVAC ##### + - id: hvac_mode_global + type: int + restore_value: true + initial_value: '0' + +######################################### +# +# +############################################################# +##### CLOSE - GLOBALS ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - BINARY SENSOR ##### +############################################################# +# +# +######################################### + +binary_sensor: + +###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY##### + - platform: gpio + name: $device_name Left Button + pin: + number: 14 + inverted: true + on_click: + - switch.toggle: relay_1 + +##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY ##### + - platform: gpio + name: $device_name Right Button + pin: + number: 27 + inverted: true + on_click: + - switch.toggle: relay_2 + +##### THERMOSTAT - BUTTON DECREASES CLIMATE TARGET TEMPERATURE IN HA ##### + - platform: nextion + name: $device_name Climate Target DOWN + page_id: 6 + component_id: 14 + internal: true + on_click: + - homeassistant.service: + service: climate.set_temperature + data_template: + entity_id: $ha_climate_thermostat + temperature: !lambda return id(climate_target_temp_val_global) - 0.5; + +##### THERMOSTAT - BUTTON INCREASES CLIMATE TARGET TEMPERATURE IN HA ##### + - platform: nextion + name: $device_name Climate Target UP + page_id: 6 + component_id: 15 + internal: true + on_click: + - homeassistant.service: + service: climate.set_temperature + data_template: + entity_id: $ha_climate_thermostat + temperature: !lambda return id(climate_target_temp_val_global) + 0.5; + +##### THERMOSTAT - BUTTON ON / OFF Heating ##### + - platform: nextion + name: $device_name Heating Room State + id: heating_room_state + page_id: 6 + component_id: 17 + internal: true + on_click: + - switch.toggle: hvac_mode + +##### Display Brightness - BUTTON DECREASES Brightness ##### + - platform: nextion + name: $device_name Brightness DOWN + page_id: 7 + component_id: 12 + internal: true + on_click: + - number.set: + id: display_brightness + value: !lambda return id(display_brightness_global) - 1; + - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + +##### Display Brightness - BUTTON INCREASES Brightness ##### + - platform: nextion + name: $device_name Brightness UP + page_id: 7 + component_id: 13 + internal: true + on_click: + - number.set: + id: display_brightness + value: !lambda return id(display_brightness_global) + 1; + - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + +##### Display DIM Brightness - BUTTON DECREASES Brightness ##### + - platform: nextion + name: $device_name Brightness DIM DOWN + page_id: 7 + component_id: 14 + internal: true + on_click: + - number.set: + id: display_dim_brightness + value: !lambda return id(display_dim_brightness_global) - 1; + - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + +##### Display DIM Brightness - BUTTON INCREASES Brightness ##### + - platform: nextion + name: $device_name Brightness DIM UP + page_id: 7 + component_id: 15 + internal: true + on_click: + - number.set: + id: display_dim_brightness + value: !lambda return id(display_dim_brightness_global) + 1; + - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + +##### Restart NSPanel Button ##### + - platform: nextion + name: $device_name Restart + page_id: 7 + component_id: 11 + internal: true + on_click: + - button.press: restart_nspanel + +##### Sleep Modus NSPanel Button ##### + - platform: nextion + name: $device_name Sleep Modus + page_id: 7 + component_id: 6 + internal: true + on_click: + - switch.toggle: sleep_modus + +##### Hotwater Charge ##### + - platform: nextion + name: $device_name Hotwater Charge + page_id: 6 + component_id: 22 + on_click: + - homeassistant.service: + service: switch.toggle + data: + entity_id: $ha_hotwater_charge + +######################################### +# +# +############################################################# +##### CLOSE - BINARY SENSOR ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - SENSOR ##### +############################################################# +# +# +######################################### + +sensor: + +##### INTERNAL TEMPERATUE SENSOR, ADC VALUE ##### + - platform: adc + id: ntc_source + pin: 38 + update_interval: 10s + attenuation: 11db + +##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)##### + - platform: resistance + id: resistance_sensor + sensor: ntc_source + configuration: DOWNSTREAM + resistor: 11.2kOhm + +##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) ##### + - platform: ntc + name: $device_name Temperature + id: temp_nspanel + sensor: resistance_sensor + calibration: + b_constant: 3950 + reference_temperature: 25°C + reference_resistance: 10kOhm + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: id(disp1).set_component_text_printf("home.a03", "%.1f°", id(temp_nspanel).state); # onboard temp (thermostat temp) to home page. + - lambda: id(disp1).set_component_text_printf("thermostat.a04", "%.1f", id(temp_nspanel).state); + +##### TEMPERATURE Outdoor FROM HA ##### +# - platform: homeassistant +# id: temp_outdoor +# entity_id: $ha_outdoor_temp +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a06", "%.0f°", id(temp_outdoor).state); +# - lambda: id(disp1).set_component_text_printf("thermostat.a07", "%.0f°", id(temp_outdoor).state); + +##### HUMIDITY Indoor FROM HA ##### +# - platform: homeassistant +# id: humidity +# entity_id: $ha_humidity +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a04", "%.0f°", id(humidity).state); + + +##### THERMOSTAT HOT WATER TEMP FROM HA ##### +# - platform: homeassistant +# id: temp_hotwater +# entity_id: $ha_hotwater_temp +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a07", "%.1f°", id(temp_hotwater).state); +# - lambda: id(disp1).set_component_text_printf("thermostat.a08", "%.1f°", id(temp_hotwater).state); + +##### THERMOSTAT CLIMATE TARGET TEMPERATURE FROM HA ##### + - platform: homeassistant + id: ha_climate_target_temp + entity_id: $ha_climate_thermostat_target_temp + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - globals.set: + id: climate_target_temp_val_global + value: !lambda 'return float(x);' + - lambda: id(disp1).set_component_text_printf("thermostat.a05", "%.1f", id(climate_target_temp_val_global)); + # THERMO PROGRESS CIRCLE, broken into 3 images to create space for the temperatures in the center. + - lambda: |- + int left=16; // 16 is empty left. + int mid=17; // 17 is empty mid. + int right=18; // 18 is empty right. + if (id(climate_target_temp_val_global) == 13) { + left=16; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 13.5) { + left=19; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 14) { + left=20; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 14.5) { + left=21; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 15) { + left=22; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 15.5) { + left=23; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 16) { + left=24; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 16.5) { + left=25; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 17) { + left=26; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 17.5) { + left=27; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 18) { + left=28; + mid=17; + right=18; + } else if (id(climate_target_temp_val_global) == 18.5) { + left=29; + mid=30; + right=18; + } else if (id(climate_target_temp_val_global) == 19) { + left=29; + mid=31; + right=18; + } else if (id(climate_target_temp_val_global) == 19.5) { + left=29; + mid=32; + right=18; + } else if (id(climate_target_temp_val_global) == 20) { + left=29; + mid=33; + right=18; + } else if (id(climate_target_temp_val_global) == 20.5) { + left=29; + mid=34; + right=18; + } else if (id(climate_target_temp_val_global) == 21) { + left=29; + mid=35; + right=18; + } else if (id(climate_target_temp_val_global) == 21.5) { + left=29; + mid=36; + right=18; + } else if (id(climate_target_temp_val_global) == 22) { + left=29; + mid=37; + right=38; + } else if (id(climate_target_temp_val_global) == 22.5) { + left=29; + mid=37; + right=39; + } else if (id(climate_target_temp_val_global) == 23) { + left=29; + mid=37; + right=40; + } else if (id(climate_target_temp_val_global) == 23.5) { + left=29; + mid=37; + right=41; + } else if (id(climate_target_temp_val_global) == 24) { + left=29; + mid=37; + right=42; + } else if (id(climate_target_temp_val_global) == 24.5) { + left=29; + mid=37; + right=43; + } else if (id(climate_target_temp_val_global) == 25) { + left=29; + mid=37; + right=44; + } else if (id(climate_target_temp_val_global) == 25.5) { + left=29; + mid=37; + right=45; + } else if (id(climate_target_temp_val_global) == 26) { + left=29; + mid=37; + right=46; + } else if (id(climate_target_temp_val_global) == 26.5) { + left=29; + mid=37; + right=47; + } else if (id(climate_target_temp_val_global) == 27) { + left=29; + mid=37; + right=48; + } + // sends the 3 images to the display + id(disp1).send_command_printf("thermostat.a01.pic=%i", left); + id(disp1).send_command_printf("thermostat.a02.pic=%i", mid); + id(disp1).send_command_printf("thermostat.a03.pic=%i", right); + +###### TARGET TEMPERATURE GET VALUE FROM NEXTION CIRCLE SLIDER AND SET GLOBAL VARIBLE ##### + - platform: nextion + id: climate_circleslider + name: $device_name Climate circleslider + variable_name: climateslider + internal: true + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - globals.set: + id: climate_slider_val_global + value: !lambda 'return int(x);' + - lambda: |- + if (id(climate_slider_val_global) == 0) { + id(climate_target_temp_val_global) = 13; + } else if (id(climate_slider_val_global) == 1) { + id(climate_target_temp_val_global) = 13.5; + } else if (id(climate_slider_val_global) == 2) { + id(climate_target_temp_val_global) = 14; + } else if (id(climate_slider_val_global) == 3) { + id(climate_target_temp_val_global) = 14.5; + } else if (id(climate_slider_val_global) == 4) { + id(climate_target_temp_val_global) = 15; + } else if (id(climate_slider_val_global) == 5) { + id(climate_target_temp_val_global) = 15.5; + } else if (id(climate_slider_val_global) == 6) { + id(climate_target_temp_val_global) = 16; + } else if (id(climate_slider_val_global) == 7) { + id(climate_target_temp_val_global) = 16.5; + } else if (id(climate_slider_val_global) == 8) { + id(climate_target_temp_val_global) = 17; + } else if (id(climate_slider_val_global) == 9) { + id(climate_target_temp_val_global) = 17.5; + } else if (id(climate_slider_val_global) == 10) { + id(climate_target_temp_val_global) = 18; + } else if (id(climate_slider_val_global) == 11) { + id(climate_target_temp_val_global) = 18.5; + } else if (id(climate_slider_val_global) == 12) { + id(climate_target_temp_val_global) = 19; + } else if (id(climate_slider_val_global) == 13) { + id(climate_target_temp_val_global) = 19.5; + } else if (id(climate_slider_val_global) == 14) { + id(climate_target_temp_val_global) = 20; + } else if (id(climate_slider_val_global) == 15) { + id(climate_target_temp_val_global) = 20.5; + } else if (id(climate_slider_val_global) == 16) { + id(climate_target_temp_val_global) = 21; + } else if (id(climate_slider_val_global) == 17) { + id(climate_target_temp_val_global) = 21.5; + } else if (id(climate_slider_val_global) == 18) { + id(climate_target_temp_val_global) = 22; + } else if (id(climate_slider_val_global) == 19) { + id(climate_target_temp_val_global) = 22.5; + } else if (id(climate_slider_val_global) == 20) { + id(climate_target_temp_val_global) = 23; + } else if (id(climate_slider_val_global) == 21) { + id(climate_target_temp_val_global) = 23.5; + } else if (id(climate_slider_val_global) == 22) { + id(climate_target_temp_val_global) = 24; + } else if (id(climate_slider_val_global) == 23) { + id(climate_target_temp_val_global) = 24.5; + } else if (id(climate_slider_val_global) == 24) { + id(climate_target_temp_val_global) = 25; + } else if (id(climate_slider_val_global) == 25) { + id(climate_target_temp_val_global) = 25.5; + } else if (id(climate_slider_val_global) == 26) { + id(climate_target_temp_val_global) = 26; + } else if (id(climate_slider_val_global) == 27) { + id(climate_target_temp_val_global) = 26.5; + } else if (id(climate_slider_val_global) == 28) { + id(climate_target_temp_val_global) = 27; + } + - homeassistant.service: + service: climate.set_temperature + data_template: + entity_id: $ha_climate_thermostat + temperature: !lambda return id(climate_target_temp_val_global); + +###### Display Brightness GET VALUE FROM NSPanel SLIDER ##### + - platform: nextion + id: brightslider + name: $device_name brightness Slider + variable_name: brightslider + internal: true + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - number.set: + id: display_brightness + value: !lambda 'return int(x);' + # send text field percentage of current_lightslider_val + - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + +###### Display DIM Brightness GET VALUE FROM NSPanel SLIDER ##### + - platform: nextion + id: dimslider + name: $device_name dim brightness slider + variable_name: dimslider + internal: true + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - number.set: + id: display_dim_brightness + value: !lambda 'return int(x);' + # send text field percentage of current_lightslider_val + - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + + +######################################### +# +# +############################################################# +##### CLOSE - SENSOR ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - TEXT SENSOR##### +############################################################# +# +# +######################################### + +text_sensor: + +##### ESPhome version used to compile the app ##### + - platform: version + name: $device_name ESPhome Version + +##### SUN SENSOR FROM HA ##### + - platform: homeassistant + id: sun_sun + entity_id: sun.sun + +##### last click sensor, the main action variable - push to HA ##### + - platform: nextion + nextion_id: disp1 + name: $device_name last click + id: disp1_last_click_va + update_interval: 50ms + component_name: lastclick + +##### last click lightsettings page, the main action variable - push to HA ##### + - platform: nextion + nextion_id: disp1 + name: $device_name last click lightsettings + id: disp1_last_click_lightsettings + update_interval: 50ms + component_name: lightsetting + +##### last click coversettings page, the main action variable - push to HA ##### + - platform: nextion + nextion_id: disp1 + name: $device_name last click coversettings + id: disp1_last_click_coversettings + update_interval: 50ms + component_name: coverposition + +##### Wochentag SENSOR FROM HA ##### +# - platform: homeassistant +# id: weekday +# entity_id: $ha_weekday +# on_value: +# then: +# - wait_until: +# switch.is_on: nextion_init +# - lambda: id(disp1).set_component_text_printf("home.a02", "%s", id(weekday).state.c_str()); + +##### HEATING System ICON ##### + - platform: homeassistant + entity_id: $ha_heating_system_flame + name: "Heating System" + id: heating_system + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: |- + int symbol=60; // 60 is a blank image 30x30 + if (id(heating_system).state == "on") { + symbol=61; + } + id(disp1).send_command_printf("home.a50.pic=%i", symbol); + id(disp1).send_command_printf("thermostat.a50.pic=%i", symbol); + +##### Hotwater Charge ICON ##### + - platform: homeassistant + entity_id: $ha_hotwater_charge + name: "Hotwater Charge" + id: hotwater_charge + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: |- + if (id(hotwater_charge).state == "on") { + id(disp1).set_component_value("thermostat.a12",1); + } else { + id(disp1).set_component_value("thermostat.a12",0); + } +# - lambda: |- +# id(disp1).set_component_value("thermostat.a12",0); +# if (id(hotwater_charge) == "on") +# { +# id(disp1).set_component_value("thermostat.a12",1); +# } + +##### WEATHER SYMBOL FROM HA WEATHER ENTITY ##### + - platform: homeassistant + id: weather_symbol + entity_id: weather.home_wetter + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - lambda: |- + int symbol=1; // 1 is a empty box. + if (id(weather_symbol).state == "sunny") { + symbol=2; + } else if (id(weather_symbol).state == "cloudy") { + symbol=3; + if (id(sun_sun).state == "below_horizon") { + symbol=3; + } + } else if (id(weather_symbol).state == "rainy") { + symbol=4; + } else if (id(weather_symbol).state == "pouring") { + symbol=5; + } else if (id(weather_symbol).state == "snowy") { + symbol=6; + } else if (id(weather_symbol).state == "hail" || id(weather_symbol).state == "snowy-rainy") { + symbol=7; + } else if (id(weather_symbol).state == "fog") { + symbol=8; + } else if (id(weather_symbol).state == "windy" || id(weather_symbol).state == "windy-variant") { + symbol=9; + } else if (id(weather_symbol).state == "lightning") { + symbol=10; + } else if (id(weather_symbol).state == "partlycloudy") { + symbol=11; + if (id(sun_sun).state == "below_horizon") { + symbol=12; + } + } else if (id(weather_symbol).state == "lightning-rainy" || id(weather_symbol).state == "exceptional") { + symbol=13; + if (id(sun_sun).state == "below_horizon") { + symbol=14; + } + } else if (id(weather_symbol).state == "clear-night") { + symbol=15; + } + id(disp1).send_command_printf("home.a05.pic=%i", symbol); + +######################################### +# +# +############################################################# +##### CLOSE - TEXT SENSOR ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - SWITCH ##### +############################################################# +# +# +######################################### + +switch: + +##### global variable to keep track on whether the Nextion display is ready or not. Delays initial info from HA to the display ##### + - platform: template + name: $device_name Nextion inited + id: nextion_init + entity_category: config + restore_state: false + assumed_state: off + optimistic: true + +##### UPDATE TFT DISPLAY ##### + - platform: template + name: Update TFT display + id: tft_update + turn_on_action: + - delay: 16ms + - lambda: id(disp1).upload_tft(); + - switch.turn_off: tft_update + +##### PHYSICAL SWITCH 1 ##### + - platform: gpio + name: $device_name Relay 1 + id: relay_1 + pin: + number: 22 + +##### PHYSICAL SWITCH 2 ###### + - platform: gpio + name: $device_name Relay 2 + id: relay_2 + pin: + number: 19 + on_turn_off: + - globals.set: + id: heating_room_global + value: '0' + - lambda: |- + if (id(hvac_mode_global) == 0) + { + id(disp1).send_command_printf("thermostat.a06.pic=51"); + } else if (id(hvac_mode_global) == 1) { + id(disp1).send_command_printf("thermostat.a06.pic=52"); + } + - lambda: id(disp1).send_command_printf("home.a52.pic=60"); + - lambda: id(disp1).send_command_printf("thermostat.a52.pic=60"); + on_turn_on: + - globals.set: + id: heating_room_global + value: '1' + - lambda: id(disp1).send_command_printf("thermostat.a06.pic=53"); + - lambda: id(disp1).send_command_printf("home.a52.pic=63"); + - lambda: id(disp1).send_command_printf("thermostat.a52.pic=63"); + +##### Switch Climate HVAC Mode ##### + - platform: template + device_class: switch + name: $device_name hvac Mode + id: hvac_mode + restore_state: true + assumed_state: false + optimistic: true + on_turn_off: + - lambda: id(disp1).set_component_value("thermostat.a10",0); + - globals.set: + id: hvac_mode_global + value: '0' + - homeassistant.service: + service: climate.set_hvac_mode + data_template: + entity_id: $ha_climate_thermostat + hvac_mode: 'off' + - lambda: id(disp1).send_command_printf("thermostat.a06.pic=51"); + - lambda: id(disp1).send_command_printf("home.a51.pic=60"); + - lambda: id(disp1).send_command_printf("thermostat.a51.pic=60"); + on_turn_on: + - lambda: id(disp1).set_component_value("thermostat.a10",1); + - globals.set: + id: hvac_mode_global + value: '1' + - homeassistant.service: + service: climate.set_hvac_mode + data_template: + entity_id: $ha_climate_thermostat + hvac_mode: 'heat' + - lambda: |- + if (id(heating_room_global) == 0) + { + id(disp1).send_command_printf("thermostat.a06.pic=52"); + } else if (id(heating_room_global) == 1) { + id(disp1).send_command_printf("thermostat.a06.pic=53"); + } + - lambda: id(disp1).send_command_printf("home.a51.pic=62"); + - lambda: id(disp1).send_command_printf("thermostat.a51.pic=62"); + +##### DISPLAY ALWAYS ON ##### + - platform: gpio + name: $device_name Screen Power + id: screen_power + entity_category: config + pin: + number: 4 + inverted: true + restore_mode: ALWAYS_ON + internal: true + +##### Switch Display Sleep Modus ##### + - platform: template + device_class: switch + name: $device_name Sleep Modus + id: sleep_modus + restore_state: true + assumed_state: false + optimistic: true + on_turn_off: + - lambda: id(disp1).send_command_printf("home.sleepmodus.val=0"); + - globals.set: + id: sleep_modus_global + value: '0' + - lambda: id(disp1).set_component_value("settings.a02",0); + on_turn_on: + - lambda: id(disp1).send_command_printf("home.sleepmodus.val=1"); + - globals.set: + id: sleep_modus_global + value: '1' + - lambda: id(disp1).set_component_value("settings.a02",1); + +######################################### +# +# +############################################################# +##### CLOSE - SWITCH ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - NUMBER ##### +############################################################# +# +# +######################################### + +number: + +##### SCREEN BRIGHTNESS ##### + - platform: template + name: $device_name Display Brightness + id: display_brightness + entity_category: config + unit_of_measurement: '%' + min_value: 1 + max_value: 100 + step: 1 + restore_value: true + optimistic: true + set_action: + then: + - lambda: 'id(disp1).set_backlight_brightness(x/100);' + - lambda: 'id(disp1).send_command_printf("home.brightness.val=%i", int(x));' + - globals.set: + id: display_brightness_global + value: !lambda 'return int(x);' + +##### SCREEN BRIGHTNESS DIMMED DOWN ##### + - platform: template + name: $device_name Display Brightness Dimdown + id: display_dim_brightness + entity_category: config + unit_of_measurement: '%' + min_value: 1 + max_value: 100 + step: 1 + restore_value: true + optimistic: true + set_action: + then: + - lambda: 'id(disp1).send_command_printf("home.brightdd.val=%i", int(x));' + - globals.set: + id: display_dim_brightness_global + value: !lambda 'return int(x);' + +######################################### +# +# +############################################################# +##### CLOSE - NUMBER ##### +############################################################# +# +## +### +############################################################################################################################################################################################# +### +## +# +############################################################# +##### START - DISPLAY START##### +############################################################# +# +# +######################################### + +display: + - platform: nextion + id: disp1 + uart_id: tf_uart + tft_url: $nextion_update_url + on_setup: + then: + - lambda: id(disp1).send_command_printf("page 9"); ##### CHANGE! - Loading page ##### + - wait_until: + api.connected + - delay: 0.5s + - rtttl.play: "two short:d=4,o=5,b=100:16e6,16e6" + - delay: 0.5s + - switch.template.publish: + id: nextion_init + state: on + - lambda: id(disp1).send_command_printf("page 0"); #### home page ##### + - delay: 2s ##### gives the display time to update other components & set the home page ##### + - number.set: + id: display_brightness + value: !lambda 'return id(display_brightness_global);' + - number.set: + id: display_dim_brightness + value: !lambda 'return id(display_dim_brightness_global);' + - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + - lambda: id(disp1).send_command_printf("home.sleepmodus.val=%i", id(sleep_modus_global)); + - lambda: |- + id(disp1).set_component_value("settings.a02",0); + if (id(sleep_modus_global) == 1) + { + id(disp1).set_component_value("settings.a02",1); + } + - lambda: |- + id(disp1).send_command_printf("home.a50.pic=60"); + id(disp1).send_command_printf("thermostat.a50.pic=60"); + id(disp1).send_command_printf("thermostat.a06.pic=52"); + if (id(heating_room_global) == 1) + { + id(disp1).send_command_printf("home.a52.pic=63"); + id(disp1).send_command_printf("thermostat.a52.pic=63"); + id(disp1).send_command_printf("thermostat.a06.pic=53"); + } + - lambda: |- + if (id(hvac_mode_global) == 0) { + id(disp1).send_command_printf("home.a51.pic=60"); + id(disp1).send_command_printf("thermostat.a51.pic=60"); + id(disp1).send_command_printf("thermostat.a06.pic=51"); + } else if (id(hvac_mode_global) == 1) { + id(disp1).send_command_printf("home.a51.pic=62"); + id(disp1).send_command_printf("thermostat.a51.pic=62"); + id(disp1).set_component_value("thermostat.a10",1); + } + +############################################################# +##### CLOSE - DISPLAY START ##### +############################################################# diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/nspanel_buero.tft b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/nspanel_buero.tft new file mode 100644 index 0000000..abfc207 Binary files /dev/null and b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-main/nspanel_buero.tft differ diff --git a/esphome.yaml b/esphome.yaml index 7470765..fd98b04 100644 --- a/esphome.yaml +++ b/esphome.yaml @@ -805,8 +805,31 @@ text_sensor: nextion_id: disp1 name: $device_name last click id: disp1_last_click_va - update_interval: 50ms + # update_interval: 50ms component_name: lastclick + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - number.set: + id: display_brightness + value: !lambda 'return string(x);' + + + + # - platform: nextion + # id: brightslider + # name: $device_name brightness Slider + # variable_name: brightslider + # internal: true + # on_value: + # then: + # - wait_until: + # switch.is_on: nextion_init + # - number.set: + # id: display_brightness + # value: !lambda 'return int(x);' + ##### last click lightsettings page, the main action variable - push to HA ##### - platform: nextion