4725 lines
224 KiB
YAML
4725 lines
224 KiB
YAML
#############################################################
|
||
##### START - INPUT #####
|
||
#############################################################
|
||
|
||
blueprint:
|
||
name: NSPanel Configuration
|
||
description: '# Configuration and synchronization NSPanel via Blueprint
|
||
|
||
This Blueprint makes it possible to configure the complete NSPanel easily via blueprint
|
||
|
||
It is no longer necessary to change anything in the code. All entities can be set and configured via the blueprint.
|
||
|
||
The only requirement is that the NSPanel was flashed with ESPHome. See Wiki.
|
||
|
||
|
||
📕 Full documentation is available here [NSPanel Configuration, Setup and HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki).
|
||
|
||
|
||
ℹ️ Version 2.0.0
|
||
|
||
'
|
||
|
||
source_url: https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/nspnael_blueprint.yaml
|
||
domain: automation
|
||
homeassistant:
|
||
min_version: 2022.11.1
|
||
input:
|
||
|
||
##### MAIN NAME #####
|
||
nspanel_name:
|
||
name: ESPhome Node Name
|
||
description: '* *here you have to enter exactly the same **"device_name"** you entered in the Esphome file*'
|
||
default: [nspanel_name]
|
||
selector:
|
||
text: {}
|
||
|
||
##### SYSTEM SETTINGS #####
|
||
language:
|
||
name: Language for NSPanel
|
||
description: '* *select the language for your NSPanel*'
|
||
default: 'EN'
|
||
selector:
|
||
select:
|
||
options:
|
||
- DE
|
||
- EN
|
||
tft_path:
|
||
name: Nextion TFT File Folder (Optional)
|
||
description: '* *TFT Path where the Nextion TFT File is stored. Attention! The **"Folder-Watcher"** must also be configured in the configuration.yaml. **Only necessary for manual upload of TFT file in ESPHome Advaced mode.** See HowTo*'
|
||
default: []
|
||
selector:
|
||
text: {}
|
||
delay:
|
||
name: Delay to avoid synchronization problem
|
||
description: '* *Synchronization Problems may occur due to the **NETWORK / WLAN**. To avoid this problem enter your value for the delay (milliseconds)*'
|
||
default: '10'
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 100
|
||
sync_value_ha:
|
||
name: Synchronization of all values (Optional)
|
||
description: '* *Synchronization of values between HA and NSPanel for Lightsetting and Coversetting Page -> Maybe causes number jumps*'
|
||
default: 'select_no'
|
||
selector:
|
||
select:
|
||
options:
|
||
- label: 'No'
|
||
value: select_no
|
||
- label: 'Yes'
|
||
value: select_yes
|
||
sync_slider_ha:
|
||
name: Synchronization of all Sliders (Optional)
|
||
description: '* *Synchronization of sliders between HA and NSPanel for Lightsetting and Coversetting Page -> Maybe causes flickering on the Slider*'
|
||
default: 'select_no'
|
||
selector:
|
||
select:
|
||
options:
|
||
- label: 'No'
|
||
value: select_no
|
||
- label: 'Yes'
|
||
value: select_yes
|
||
|
||
##### WEATHER #####
|
||
weather:
|
||
name: Weather Integration
|
||
description: '* *select our Weather Integration*'
|
||
default: 'Default'
|
||
selector:
|
||
select:
|
||
options:
|
||
- Default
|
||
- AccuWeather
|
||
accuweather:
|
||
name: Name assigned to the AccuWeather Integration (Optional)
|
||
description: '* *If you use Accuweather Integration, the name of the Accuweather Integration must be entered here. ATTENTION! You must enter the name as specified in the entity. Example: Name of Accuweather is **"Home Weather"** then please write **"home_weather"** in the field*'
|
||
default: []
|
||
selector:
|
||
text: {}
|
||
|
||
##### GENERAL ENTITYS #####
|
||
outdoortemp:
|
||
name: Outdoor Temperature Sensor (Optional)
|
||
description: '* *If no outdoor sensor is available, leave the field empty and the value from your selected weather integration will be used automatically.*'
|
||
default: []
|
||
selector:
|
||
entity:
|
||
domain:
|
||
- sensor
|
||
humidity:
|
||
name: Humidity Sensor (Optional)
|
||
description: '* *Choose your humidity sensor*'
|
||
default: []
|
||
selector:
|
||
entity:
|
||
domain:
|
||
- sensor
|
||
hotwatertemp:
|
||
name: Hot Water Temperature Sensor (Optional)
|
||
description: '* *Choose your hot water sensor*'
|
||
default: []
|
||
selector:
|
||
entity:
|
||
domain:
|
||
- sensor
|
||
hotwatercharge:
|
||
name: Hot Water Charge (Optional)
|
||
description: '* *Choose your switch to turn your hot water ON or OFF*'
|
||
default: []
|
||
selector:
|
||
entity:
|
||
domain:
|
||
- switch
|
||
- input_boolean
|
||
heatingsystemflame:
|
||
name: Top Menu 04 (Optional)
|
||
description: '* *Top Menu 04 is a Flame icon. When your selected sensor is on, a flame icon is displayed*'
|
||
default: []
|
||
selector:
|
||
entity:
|
||
domain:
|
||
- binary_sensor
|
||
climate:
|
||
name: Climate to control (Optional)
|
||
description: '* *If an entity is selected, the **"Thermostat page"** is activated and enabled. If you have **"Underfloor Heating System"** and want to switch it via the relay, you must create a separate climate in HA. See HowTo*'
|
||
default: []
|
||
selector:
|
||
entity:
|
||
domain: climate
|
||
climate_optimistic:
|
||
name: Climate control optimistic mode (Optional)
|
||
default: true
|
||
description: '* *Depends on your climate device and HA-Integration. If optimisitc mode is **OFF** then changes are made will wait for response from device to update temperature in the display. This can cause delays or jumping values. If **ON** the script update the display immediately but apply changes after closing climate-page* '
|
||
selector:
|
||
boolean:
|
||
|
||
##### HARDWARE BUTTONS #####
|
||
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
|
||
left_button_name:
|
||
name: Name "Left Button" (Optional)
|
||
description: '* *Left Button label - 10 characters are supported*'
|
||
default: []
|
||
selector:
|
||
text: {}
|
||
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
|
||
right_button_name:
|
||
name: Name "Right Button" (Optional)
|
||
description: '* *Right Button label - 10 characters are supported*'
|
||
default: []
|
||
selector:
|
||
text: {}
|
||
|
||
##### BUTTONS #####
|
||
entity01:
|
||
name: Button 01 (Optional)
|
||
description: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 1"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 2"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 3"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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: '* *Displayed on **"Button Page 4"** - (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"
|
||
last_click_climatesettings: "sensor.{{ nspanel_name_trigger }}_last_click_climatesettings"
|
||
left_button: "binary_sensor.{{ nspanel_name_trigger }}_left_button"
|
||
right_button: "binary_sensor.{{ nspanel_name_trigger }}_right_button"
|
||
weather_forcast_button: "binary_sensor.{{ nspanel_name_trigger }}_weather_forcast"
|
||
nextion_inited_trigger: "switch.{{ nspanel_name_trigger }}_nextion_inited"
|
||
# current_page: "sensor.{{ nspanel_name_trigger }}_current_page"
|
||
current_page: "sensor.{{ nspanel_name_trigger }}_currentpage"
|
||
hotwatercharge: !input "hotwatercharge"
|
||
heatingsystemflame: !input "heatingsystemflame"
|
||
display_target_temperature: "sensor.{{ nspanel_name_trigger }}_display_target_temperature"
|
||
relay01_entity: "switch.{{ nspanel_name_trigger }}_relay_1"
|
||
relay02_entity: "switch.{{ nspanel_name_trigger }}_relay_2"
|
||
|
||
##### WEATHER Trigger #####
|
||
weather: !input "weather"
|
||
ha_weather: "weather.home"
|
||
accuweather: !input "accuweather"
|
||
accuweather_value: "weather.{{ accuweather }}"
|
||
weather_entity: >-
|
||
{%- if weather == "Default" -%} {{ ha_weather }}
|
||
{%- elif weather == "AccuWeather" -%} {{ accuweather_value }}
|
||
{%- endif -%}
|
||
|
||
variables:
|
||
##### GENERAL #####
|
||
nspanel_name: !input "nspanel_name"
|
||
time: "{{ (as_timestamp(now()) | timestamp_custom('%H:%M')) }}"
|
||
language: !input "language"
|
||
|
||
##### PUSH TO NEXTION DISPLAY #####
|
||
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"
|
||
command_thermostat_cycle: "esphome.{{ nspanel_name }}_send_thermostat_cycle_state"
|
||
|
||
###### SYNC SETTINGS #####
|
||
delay_boot: !input "delay"
|
||
delay_value: !input "delay"
|
||
delay_jump_page: !input "delay"
|
||
sync_slider_ha: !input "sync_slider_ha"
|
||
sync_value_ha: !input "sync_value_ha"
|
||
climate_optimistic: !input "climate_optimistic"
|
||
|
||
##### TFT UPLOAD #####
|
||
tft_upload: "esphome.{{ nspanel_name }}_upload_tft"
|
||
tft_path: !input "tft_path"
|
||
|
||
##### GENERAL ENTITYS #####
|
||
humidity: !input "humidity"
|
||
hotwatertemp: !input "hotwatertemp"
|
||
outdoortemp: !input "outdoortemp"
|
||
climate: !input "climate"
|
||
|
||
#### HARDWARE BUTTONS #####
|
||
left_button_entity: !input "left_button_entity"
|
||
left_button_name: !input "left_button_name"
|
||
right_button_entity: !input "right_button_entity"
|
||
right_button_name: !input "right_button_name"
|
||
|
||
##### NEXTION PIC MAPPING #####
|
||
button_light_off: "62"
|
||
button_light_on: "63"
|
||
button_switch_off: "64"
|
||
button_switch_on: "65"
|
||
button_cover_off: "66"
|
||
button_cover_on: "67"
|
||
hardware_button_pic_off: "98"
|
||
hardware_button_pic_on: "99"
|
||
cover_pic_closed: "78"
|
||
cover_pic_open: "79"
|
||
battery_icon: "80"
|
||
light_pic_off: "96"
|
||
light_pic_on: "97"
|
||
# hotwater_pic_off: "60"
|
||
hotwater_pic_on: "61"
|
||
flame_pic_on: "57"
|
||
# flame_pic_off: "60"
|
||
top_menu_blank: "60"
|
||
thermostat_pic_on: "58"
|
||
heat_pic_on: "59"
|
||
relay01_pic_on: "105"
|
||
relay02_pic_on: "106"
|
||
|
||
|
||
weather_sunny: "2"
|
||
weather_cloudy: "3"
|
||
weather_rainy: "4"
|
||
weather_pouring: "5"
|
||
weather_snowy: "6"
|
||
weather_hail: "7"
|
||
weather_snowy_rainy: "7"
|
||
weather_fog: "8"
|
||
weather_windy: "9"
|
||
weather_windy_variant: "9"
|
||
weather_lightning: "10"
|
||
weather_partlycloudy_day: "11"
|
||
weather_partlycloudy_night: "12"
|
||
weather_lightning_rainy_day: "13"
|
||
weather_lightning_rainy_night: "14"
|
||
weather_execptional_day: "13"
|
||
weather_execptional_night: "14"
|
||
weather_clear_night: "15"
|
||
|
||
weather_icon_blank: "51"
|
||
weather_icon_rain: "52"
|
||
weather_icon_sun: "53"
|
||
weather_icon_protect: "54"
|
||
weather_icon_lightning: "55"
|
||
weather_icon_wind: "56"
|
||
|
||
# hotw_bt_pic
|
||
hotw_bt_blank: "100"
|
||
hotw_bt_off: "101"
|
||
hotw_bt_on: "102"
|
||
|
||
# heating_bt_pic
|
||
heating_bt_pic_off: "103"
|
||
heating_bt_pic_on: "104"
|
||
|
||
###### NEXTION COLOR MAPPING #####
|
||
button_color_1: "65535"
|
||
button_color_2: "10597"
|
||
|
||
###### NEXTION PAGE MAPPING #####
|
||
page_home: "home"
|
||
page_weather01: "weather01"
|
||
page_weather02: "weather02"
|
||
page_weather03: "weather03"
|
||
page_weather04: "weather04"
|
||
page_weather05: "weather05"
|
||
page_climate: "climate"
|
||
page_settings: "settings"
|
||
page_boot: "boot"
|
||
page_screensaver: "screensaver"
|
||
page_lightsettings: "lightsettings"
|
||
page_coversettings: "coversettings"
|
||
page_buttonpage01: "buttonpage01"
|
||
page_buttonpage02: "buttonpage02"
|
||
page_buttonpage03: "buttonpage03"
|
||
page_buttonpage04: "buttonpage04"
|
||
|
||
|
||
##### MUI Multilingual User Interface (DE/EN) #####
|
||
date01_mui: >-
|
||
{%- if language == "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,') }}
|
||
{%- elif language == "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,') }}
|
||
{%- endif -%}
|
||
date02_mui: >-
|
||
{%- if language == "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,') }}
|
||
{%- elif language == "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,') }}
|
||
{%- endif -%}
|
||
date03_mui: >-
|
||
{%- if language == "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,') }}
|
||
{%- elif language == "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,') }}
|
||
{%- endif -%}
|
||
date04_mui: >-
|
||
{%- if language == "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,') }}
|
||
{%- elif language == "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,') }}
|
||
{%- endif -%}
|
||
date05_mui: >-
|
||
{%- if language == "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,') }}
|
||
{%- elif language == "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,') }}
|
||
{%- endif -%}
|
||
day01_mui: >-
|
||
{%- if language == "DE" -%} Heute
|
||
{%- elif language == "EN" -%} Today
|
||
{%- endif -%}
|
||
day02_mui: >-
|
||
{%- if language == "DE" -%} Morgen
|
||
{%- elif language == "EN" -%} Tomorrow
|
||
{%- endif -%}
|
||
day03_mui: >-
|
||
{%- if language == "DE" -%} in 2 Tagen
|
||
{%- elif language == "EN" -%} in 2 Days
|
||
{%- endif -%}
|
||
day04_mui: >-
|
||
{%- if language == "DE" -%} in 3 Tagen
|
||
{%- elif language == "EN" -%} in 3 Days
|
||
{%- endif -%}
|
||
day05_mui: >-
|
||
{%- if language == "DE" -%} in 4 Tagen
|
||
{%- elif language == "EN" -%} in 4 Days
|
||
{%- endif -%}
|
||
on_mui: >-
|
||
{%- if language == "DE" -%} ein
|
||
{%- elif language == "EN" -%} on
|
||
{%- endif -%}
|
||
off_mui: >-
|
||
{%- if language == "DE" -%} aus
|
||
{%- elif language == "EN" -%} off
|
||
{%- endif -%}
|
||
heat_mui: >-
|
||
{%- if language == "DE" -%} heizen
|
||
{%- elif language == "EN" -%} heat
|
||
{%- endif -%}
|
||
|
||
|
||
##### FORCAST ACCUWEATHER - DAY 0 #####
|
||
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 ACCUWEATHER - DAY 1 #####
|
||
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 ACCUWEATHER - DAY 2 #####
|
||
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 ACCUWEATHER - DAY 3 #####
|
||
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 ACCUWEATHER - DAY 4 #####
|
||
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 1- 32 #####
|
||
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:
|
||
|
||
##### Trigger - General #################################################################################################################
|
||
|
||
###### DELME - Trigger "nspanel_boot_init" ######
|
||
- platform: state
|
||
entity_id: input_boolean.trigger_nspanel_boot
|
||
to: "on"
|
||
id: nspanel_boot_init
|
||
|
||
##### Reboot - Trigger "nspanel_boot_init" #####
|
||
- platform: template
|
||
value_template: '{{ states(nextion_inited_trigger) is match "on" }}'
|
||
id: nspanel_boot_init
|
||
|
||
##### TFT Upload - Trigger "tft_upload" #####
|
||
- platform: event
|
||
event_type: folder_watcher
|
||
event_data:
|
||
event_type: modified
|
||
path: !input "tft_path"
|
||
id: tft_upload
|
||
|
||
##### Time - Trigger "time_state" #####
|
||
- platform: time_pattern
|
||
minutes: "/1"
|
||
id: time_state
|
||
|
||
#### Weather state changed #######
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: '{{ weather_entity }}'
|
||
id: weather_state_change
|
||
|
||
##### Humidity - Trigger "humidity_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "humidity"
|
||
id: humidity_state
|
||
|
||
##### Climate - Trigger "climate_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "climate"
|
||
id: climate_state
|
||
|
||
##### Hot Water - Trigger "hotwatertemp_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "hotwatertemp"
|
||
id: hotwatertemp_state
|
||
|
||
##### Outdoor Temp - Trigger "outdoortemp_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "outdoortemp"
|
||
id: outdoortemp_state
|
||
|
||
##### Hot Water Charge - Trigger "hotwatercharge_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "hotwatercharge"
|
||
id: hotwatercharge_state
|
||
|
||
##### Heating System Flame - Trigger "heatingsystemflame_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "heatingsystemflame"
|
||
id: heatingsystemflame_state
|
||
|
||
##### Relay01 - Trigger "relay01_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: '{{ relay01_entity }}'
|
||
id: relay01_state
|
||
|
||
##### Relay02 - Trigger "relay02_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: '{{ relay02_entity }}'
|
||
id: relay02_state
|
||
|
||
##### Left Button - Trigger "left_button_press" #####
|
||
- platform: template
|
||
value_template: '{{ states(left_button) is match "on" }}'
|
||
id: left_button_press
|
||
|
||
##### Right Button - Trigger "right_button_press" #####
|
||
- platform: template
|
||
value_template: '{{ states(right_button) is match "on" }}'
|
||
id: right_button_press
|
||
|
||
##### Left Button - State "left_button_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "left_button_entity"
|
||
id: left_button_state
|
||
|
||
##### Right Button - State "right_button_state" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: !input "right_button_entity"
|
||
id: right_button_state
|
||
|
||
#### Climate - Trigger ####
|
||
- platform: template
|
||
value_template: '{{ states(last_click) is match "releaseclimate" }}'
|
||
id: open_climate_settings
|
||
|
||
##### Trigger - Button General #################################################################################################################
|
||
|
||
##### Page Button - Trigger "short_press" - SHORT Press via "last_click" #####
|
||
- platform: template
|
||
value_template: '{{ states(last_click) is match "releasebutton" }}'
|
||
id: short_press
|
||
|
||
##### Page Button - Trigger "long_press" - LONG Press via "last_click" - Button LONG Press for jump to Lightsetting or Coversetting Page #####
|
||
- platform: template
|
||
value_template: '{{ states(last_click) is match "press" }}'
|
||
for:
|
||
seconds: 1
|
||
id: long_press
|
||
|
||
##### Page Lightsettings - Trigger "light_settings" - Changes Lightsettings Page via "last_click_lightsettings" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: "{{ last_click_lightsettings }}"
|
||
id: light_settings
|
||
|
||
##### Page Coversettings - Trigger "cover_settings" - Changes Coversettings Page via "last_click_coversettings" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: "{{ last_click_coversettings }}"
|
||
id: cover_settings
|
||
|
||
##### Page Climatesettings - Trigger "climate_settings" - Changes Climatesettings Page via "last_click_climatesettings" #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: "{{ last_click_climatesettings }}"
|
||
id: climate_settings
|
||
|
||
##### Current page changed #####
|
||
- platform: event
|
||
event_type: state_changed
|
||
event_data:
|
||
entity_id: "{{ current_page }}"
|
||
id: current_page_changed
|
||
|
||
##### Page Button - Trigger "button_page" Entity sync #####
|
||
- platform: template
|
||
value_template: '{{ states(last_click) is match "button" }}'
|
||
id: button_page
|
||
|
||
|
||
|
||
##### Trigger - Button State change #################################################################################################################
|
||
|
||
##### Button01 Sync - Trigger "current_state_entity01" #####
|
||
- platform: state
|
||
entity_id: !input "entity01"
|
||
id: current_state_entity01
|
||
|
||
##### Button02 Sync - Trigger "current_state_entity02" #####
|
||
- platform: state
|
||
entity_id: !input "entity02"
|
||
id: current_state_entity02
|
||
|
||
##### Button03 Sync - Trigger "current_state_entity03" #####
|
||
- platform: state
|
||
entity_id: !input "entity03"
|
||
id: current_state_entity03
|
||
|
||
##### Button04 Sync - Trigger "current_state_entity04" #####
|
||
- platform: state
|
||
entity_id: !input "entity04"
|
||
id: current_state_entity04
|
||
|
||
##### Button05 Sync - Trigger "current_state_entity05" #####
|
||
- platform: state
|
||
entity_id: !input "entity05"
|
||
id: current_state_entity05
|
||
|
||
##### Button06 Sync - Trigger "current_state_entity06" #####
|
||
- platform: state
|
||
entity_id: !input "entity06"
|
||
id: current_state_entity06
|
||
|
||
##### Button07 Sync - Trigger "current_state_entity07" #####
|
||
- platform: state
|
||
entity_id: !input "entity07"
|
||
id: current_state_entity07
|
||
|
||
##### Button08 Sync - Trigger "current_state_entity08" #####
|
||
- platform: state
|
||
entity_id: !input "entity08"
|
||
id: current_state_entity08
|
||
|
||
##### Button09 Sync - Trigger "current_state_entity09" #####
|
||
- platform: state
|
||
entity_id: !input "entity09"
|
||
id: current_state_entity09
|
||
|
||
##### Button10 Sync - Trigger "current_state_entity10" #####
|
||
- platform: state
|
||
entity_id: !input "entity10"
|
||
id: current_state_entity10
|
||
|
||
##### Button11 Sync - Trigger "current_state_entity11" #####
|
||
- platform: state
|
||
entity_id: !input "entity11"
|
||
id: current_state_entity11
|
||
|
||
##### Button12 Sync - Trigger "current_state_entity12" #####
|
||
- platform: state
|
||
entity_id: !input "entity12"
|
||
id: current_state_entity12
|
||
|
||
##### Button13 Sync - Trigger "current_state_entity13" #####
|
||
- platform: state
|
||
entity_id: !input "entity13"
|
||
id: current_state_entity13
|
||
|
||
##### Button14 Sync - Trigger "current_state_entity14" #####
|
||
- platform: state
|
||
entity_id: !input "entity14"
|
||
id: current_state_entity14
|
||
|
||
##### Button15 Sync - Trigger "current_state_entity15" #####
|
||
- platform: state
|
||
entity_id: !input "entity15"
|
||
id: current_state_entity15
|
||
|
||
##### Button16 Sync - Trigger "current_state_entity16" #####
|
||
- platform: state
|
||
entity_id: !input "entity16"
|
||
id: current_state_entity16
|
||
|
||
##### Button17 Sync - Trigger "current_state_entity17" #####
|
||
- platform: state
|
||
entity_id: !input "entity17"
|
||
id: current_state_entity17
|
||
|
||
##### Button18 Sync - Trigger "current_state_entity18" #####
|
||
- platform: state
|
||
entity_id: !input "entity18"
|
||
id: current_state_entity18
|
||
|
||
##### Button19 Sync - Trigger "current_state_entity19" #####
|
||
- platform: state
|
||
entity_id: !input "entity19"
|
||
id: current_state_entity19
|
||
|
||
##### Button20 Sync - Trigger "current_state_entity20" #####
|
||
- platform: state
|
||
entity_id: !input "entity20"
|
||
id: current_state_entity20
|
||
|
||
##### Button21 Sync - Trigger "current_state_entity21" #####
|
||
- platform: state
|
||
entity_id: !input "entity21"
|
||
id: current_state_entity21
|
||
|
||
##### Button22 Sync - Trigger "current_state_entity22" #####
|
||
- platform: state
|
||
entity_id: !input "entity22"
|
||
id: current_state_entity22
|
||
|
||
##### Button23 Sync - Trigger "current_state_entity23" #####
|
||
- platform: state
|
||
entity_id: !input "entity23"
|
||
id: current_state_entity23
|
||
|
||
##### Button24 Sync - Trigger "current_state_entity24" #####
|
||
- platform: state
|
||
entity_id: !input "entity24"
|
||
id: current_state_entity24
|
||
|
||
##### Button25 Sync - Trigger "current_state_entity25" #####
|
||
- platform: state
|
||
entity_id: !input "entity25"
|
||
id: current_state_entity25
|
||
|
||
##### Button26 Sync - Trigger "current_state_entity26" #####
|
||
- platform: state
|
||
entity_id: !input "entity26"
|
||
id: current_state_entity26
|
||
|
||
##### Button27 Sync - Trigger "current_state_entity27" #####
|
||
- platform: state
|
||
entity_id: !input "entity27"
|
||
id: current_state_entity27
|
||
|
||
##### Button28 Sync - Trigger "current_state_entity28" #####
|
||
- platform: state
|
||
entity_id: !input "entity28"
|
||
id: current_state_entity28
|
||
|
||
##### Button29 Sync - Trigger "current_state_entity29" #####
|
||
- platform: state
|
||
entity_id: !input "entity29"
|
||
id: current_state_entity29
|
||
|
||
##### Button30 Sync - Trigger "current_state_entity30" #####
|
||
- platform: state
|
||
entity_id: !input "entity30"
|
||
id: current_state_entity30
|
||
|
||
##### Button31 Sync - Trigger "current_state_entity31" #####
|
||
- platform: state
|
||
entity_id: !input "entity31"
|
||
id: current_state_entity31
|
||
|
||
##### Button32 Sync - Trigger "current_state_entity32" #####
|
||
- platform: state
|
||
entity_id: !input "entity32"
|
||
id: current_state_entity32
|
||
|
||
|
||
#############################################################
|
||
##### CLOSE - Trigger #####
|
||
#############################################################
|
||
|
||
|
||
#############################################################
|
||
##### START - Action #####
|
||
#############################################################
|
||
|
||
action:
|
||
- variables:
|
||
##### 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 -%}
|
||
|
||
########################################################################################################################
|
||
|
||
# main - alias: "choose alias (name)"
|
||
- choose:
|
||
|
||
##### NSPanel boot init #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: nspanel_boot_init
|
||
sequence:
|
||
|
||
##### NSPanel boot init start #####
|
||
- delay:
|
||
milliseconds: 100
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.loading
|
||
message: "Loading - PLS WAIT!"
|
||
|
||
##### NSPanel boot init Date #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.date
|
||
message: "{{ date01_mui }}"
|
||
|
||
##### NSPanel boot init buttons #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- repeat:
|
||
for_each:
|
||
- entity: "{{ entity01 }}"
|
||
button_label: "{{ entity01_name }}"
|
||
button: buttonpage01.button01
|
||
- entity: "{{ entity02 }}"
|
||
button_label: "{{ entity02_name }}"
|
||
button: buttonpage01.button02
|
||
- entity: "{{ entity03 }}"
|
||
button_label: "{{ entity03_name }}"
|
||
button: buttonpage01.button03
|
||
- entity: "{{ entity04 }}"
|
||
button_label: "{{ entity04_name }}"
|
||
button: buttonpage01.button04
|
||
- entity: "{{ entity05 }}"
|
||
button_label: "{{ entity05_name }}"
|
||
button: buttonpage01.button05
|
||
- entity: "{{ entity06 }}"
|
||
button_label: "{{ entity06_name }}"
|
||
button: buttonpage01.button06
|
||
- entity: "{{ entity07 }}"
|
||
button_label: "{{ entity07_name }}"
|
||
button: buttonpage01.button07
|
||
- entity: "{{ entity08 }}"
|
||
button_label: "{{ entity08_name }}"
|
||
button: buttonpage01.button08
|
||
- entity: "{{ entity09 }}"
|
||
button_label: "{{ entity09_name }}"
|
||
button: buttonpage02.button01
|
||
- entity: "{{ entity10 }}"
|
||
button_label: "{{ entity10_name }}"
|
||
button: buttonpage02.button02
|
||
- entity: "{{ entity11 }}"
|
||
button_label: "{{ entity11_name }}"
|
||
button: buttonpage02.button03
|
||
- entity: "{{ entity12 }}"
|
||
button_label: "{{ entity12_name }}"
|
||
button: buttonpage02.button04
|
||
- entity: "{{ entity13 }}"
|
||
button_label: "{{ entity13_name }}"
|
||
button: buttonpage02.button05
|
||
- entity: "{{ entity14 }}"
|
||
button_label: "{{ entity14_name }}"
|
||
button: buttonpage02.button06
|
||
- entity: "{{ entity15 }}"
|
||
button_label: "{{ entity15_name }}"
|
||
button: buttonpage02.button07
|
||
- entity: "{{ entity16 }}"
|
||
button_label: "{{ entity16_name }}"
|
||
button: buttonpage02.button08
|
||
- entity: "{{ entity17 }}"
|
||
button_label: "{{ entity17_name }}"
|
||
button: buttonpage03.button01
|
||
- entity: "{{ entity18 }}"
|
||
button_label: "{{ entity18_name }}"
|
||
button: buttonpage03.button02
|
||
- entity: "{{ entity19 }}"
|
||
button_label: "{{ entity19_name }}"
|
||
button: buttonpage03.button03
|
||
- entity: "{{ entity20 }}"
|
||
button_label: "{{ entity20_name }}"
|
||
button: buttonpage03.button04
|
||
- entity: "{{ entity21 }}"
|
||
button_label: "{{ entity21_name }}"
|
||
button: buttonpage03.button05
|
||
- entity: "{{ entity22 }}"
|
||
button_label: "{{ entity22_name }}"
|
||
button: buttonpage03.button06
|
||
- entity: "{{ entity23 }}"
|
||
button_label: "{{ entity23_name }}"
|
||
button: buttonpage03.button07
|
||
- entity: "{{ entity24 }}"
|
||
button_label: "{{ entity24_name }}"
|
||
button: buttonpage03.button08
|
||
- entity: "{{ entity25 }}"
|
||
button_label: "{{ entity17_name }}"
|
||
button: buttonpage04.button01
|
||
- entity: "{{ entity26 }}"
|
||
button_label: "{{ entity26_name }}"
|
||
button: buttonpage04.button02
|
||
- entity: "{{ entity27 }}"
|
||
button_label: "{{ entity27_name }}"
|
||
button: buttonpage04.button03
|
||
- entity: "{{ entity28 }}"
|
||
button_label: "{{ entity28_name }}"
|
||
button: buttonpage04.button04
|
||
- entity: "{{ entity29 }}"
|
||
button_label: "{{ entity29_name }}"
|
||
button: buttonpage04.button05
|
||
- entity: "{{ entity30 }}"
|
||
button_label: "{{ entity30_name }}"
|
||
button: buttonpage04.button06
|
||
- entity: "{{ entity31 }}"
|
||
button_label: "{{ entity31_name }}"
|
||
button: buttonpage04.button07
|
||
- entity: "{{ entity32 }}"
|
||
button_label: "{{ entity32_name }}"
|
||
button: buttonpage04.button08
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ repeat.item.entity|length > 0 and states[repeat.item.entity].state != "unavailable" }}'
|
||
then:
|
||
- variables:
|
||
component_to_update: "{{ repeat.item.button }}"
|
||
# Button PIC
|
||
btn_pic: >-
|
||
{%- if repeat.item.entity is match "light." and states[repeat.item.entity].state == 'on' -%} {{ button_light_on }}
|
||
{%- elif repeat.item.entity is match "light." and states[repeat.item.entity].state == 'off' -%} {{ button_light_off }}
|
||
{%- elif repeat.item.entity is match "switch." and states[repeat.item.entity].state == 'on' -%} {{ button_switch_on }}
|
||
{%- elif repeat.item.entity is match "switch." and states[repeat.item.entity].state == 'off' -%} {{ button_switch_off }}
|
||
{%- elif repeat.item.entity is match "input_boolean." and states[repeat.item.entity].state == 'on' -%} {{ button_switch_on }}
|
||
{%- elif repeat.item.entity is match "input_boolean." and states[repeat.item.entity].state == 'off' -%} {{ button_switch_off }}
|
||
{%- elif repeat.item.entity is match "cover." and states[repeat.item.entity].state == 'open' -%} {{ button_cover_on }}
|
||
{%- elif repeat.item.entity is match "cover." and states[repeat.item.entity].state == 'closed' -%} {{ button_cover_off }}
|
||
{%- endif -%}
|
||
# TEXT and BRIGHTNESS Background
|
||
btn_bg: >-
|
||
{%- if states[repeat.item.entity].state == 'on' or states[repeat.item.entity].state == 'open' -%} {{ button_color_1 }}
|
||
{%- elif states[repeat.item.entity].state == 'off' or states[repeat.item.entity].state == 'closed' -%} {{ button_color_2 }}
|
||
{%- endif -%}
|
||
# TEXT Font
|
||
btn_txt_font: >-
|
||
{%- if states[repeat.item.entity].state == 'on' or states[repeat.item.entity].state == 'open' -%} {{ button_color_2 }}
|
||
{%- elif states[repeat.item.entity].state == 'off' or states[repeat.item.entity].state == 'closed' -%} {{ button_color_1 }}
|
||
{%- endif -%}
|
||
# BRIGHTNESS Font
|
||
btn_bri_font: "{{ button_color_2 }}"
|
||
# BTN Label
|
||
btn_label: "{{ repeat.item.button_label }}"
|
||
btn_bri_txt: >-
|
||
{%- if repeat.item.entity is match "light." and states(repeat.item.entity) == 'on' and state_attr(repeat.item.entity, "brightness") != None -%} {{ (state_attr(repeat.item.entity, "brightness") | int * 100 /255) | round(0) }}%
|
||
{%- elif repeat.item.entity is match "cover." and states(repeat.item.entity) == 'open' and state_attr(repeat.item.entity, "current_position") != None -%} {{ (state_attr(repeat.item.entity, "current_position") | int(100)) | round(0) }}%
|
||
{%- else -%} 0
|
||
{%- endif -%}
|
||
|
||
##### SET Buttons ####
|
||
#
|
||
##### Button PIC #####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "{{ component_to_update }}pic.pic={{ btn_pic }}"
|
||
##### TEXT Background #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_background_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}text"
|
||
message: "{{ btn_bg }}"
|
||
##### TEXT Font Color #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_font_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}text"
|
||
message: "{{ btn_txt_font }}"
|
||
##### BRIGHTNESS Background Color #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_background_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: "{{ btn_bg }}"
|
||
##### BRIGHTNESS Font Color #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_font_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: "{{ btn_bri_font }}"
|
||
##### "TEXT" Label #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: "{{ component_to_update }}text"
|
||
message: "{{ btn_label }}"
|
||
##### "BRIGHTNESS" Text #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- if:
|
||
- condition: template
|
||
value_template: "{{ btn_bri_txt == 0 }}"
|
||
then:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: " "
|
||
else:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: "{{ btn_bri_txt }}"
|
||
|
||
##### NSPanel boot init - Time #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.time
|
||
message: "{{ time }}"
|
||
|
||
##### NSPanel boot init - Humidity #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ humidity is match "sensor." and states(humidity).state != "unavailable" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.humidity_state
|
||
message: "{{ states(humidity) |round(0) }}%"
|
||
|
||
##### NSPanel boot init - Hotwater #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ hotwatertemp is match "sensor." and states(hotwatertemp).state != "unavailable" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.hotwater_pic.pic={{ hotwater_pic_on }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.hotwater_temp
|
||
message: "{{ states(hotwatertemp) |round(1) }}°"
|
||
|
||
##### NSPanel boot init - Outdoor Temp #####
|
||
- variables:
|
||
outdoor_temp: >-
|
||
{%- if outdoortemp is match "sensor." and states(hotwatertemp).state != "unavailable" -%} {{ states(outdoortemp) |round(0) }}
|
||
{%- elif weather == "Default" and state_attr(ha_weather, "temperature") != None -%} {{state_attr(ha_weather,"temperature") | round(0)}}
|
||
{%- elif weather == "AccuWeather" and state_attr(accuweather_value, "temperature") != None -%} {{state_attr(accuweather_value,"temperature") | round(0)}}
|
||
{%- else -%} 0
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.outdoor_temp
|
||
message: "{{ outdoor_temp }}°"
|
||
|
||
##### Weather Icon Home Page
|
||
- variables:
|
||
weather_pic: >-
|
||
{%- if states(weather_entity) == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif states(weather_entity) == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif states(weather_entity) == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif states(weather_entity) == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif states(weather_entity) == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif states(weather_entity) == 'hail' -%} {{ weather_hail }}
|
||
{%- elif states(weather_entity) == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif states(weather_entity) == 'fog' -%} {{ weather_fog }}
|
||
{%- elif states(weather_entity) == 'windy' -%} {{ weather_windy }}
|
||
{%- elif states(weather_entity) == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif states(weather_entity) == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif states(weather_entity) == 'partlycloudy' and states('sun.sun') == 'above_horizon' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif states(weather_entity) == 'partlycloudy' and states('sun.sun') == 'below_horizon' -%} {{ weather_partlycloudy_night }}
|
||
{%- elif states(weather_entity) == 'lightning-rainy' and states('sun.sun') == 'above_horizon' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif states(weather_entity) == 'lightning-rainy' and states('sun.sun') == 'below_horizon' -%} {{ weather_lightning_rainy_night }}
|
||
{%- elif states(weather_entity) == 'execptional' and states('sun.sun') == 'above_horizon' -%} {{ weather_execptional_day }}
|
||
{%- elif states(weather_entity) == 'execptional' and states('sun.sun') == 'below_horizon' -%} {{ weather_execptional_night }}
|
||
{%- elif states(weather_entity) == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.weather.pic={{ weather_pic }}
|
||
|
||
##### NSPanel boot init - Left Button Name #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ left_button_name |length > 0 }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.left_bt_text
|
||
message: "{{ left_button_name }}"
|
||
|
||
##### SET Left Hardware Button PIC on Home Page ####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ left_button_entity |length > 0 and states(left_button_entity).state != "unavailable" }}'
|
||
then:
|
||
- variables:
|
||
# Hardware Button PIC
|
||
left_hardware_button_state: >-
|
||
{%- if states(left_button_entity) == 'off' -%} {{ hardware_button_pic_off }}
|
||
{%- elif states(left_button_entity) == 'on' -%} {{ hardware_button_pic_on }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.left_bt_pic.pic={{ left_hardware_button_state }}
|
||
|
||
##### NSPanel boot init - Right Button Name #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ right_button_name |length > 0 }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.right_bt_text
|
||
message: "{{ right_button_name }}"
|
||
|
||
###### SET Right Hardware Button PIC on Home Page #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ right_button_entity |length > 0 and states(right_button_entity).state != "unavailable" }}'
|
||
then:
|
||
- variables:
|
||
# Hardware Button PIC
|
||
right_hardware_button_state: >-
|
||
{%- if states(right_button_entity) == 'off' -%} {{ hardware_button_pic_off }}
|
||
{%- elif states(right_button_entity) == 'on' -%} {{ hardware_button_pic_on }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.right_bt_pic.pic={{ right_hardware_button_state }}
|
||
|
||
###### StatusBar - Climate Symbol ######
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate |length > 0 }}'
|
||
then:
|
||
- variables:
|
||
top_menu_climate: >-
|
||
{%- if states(climate) == "heat" and state_attr(climate, "hvac_action") != None and state_attr(climate, "hvac_action") == "heating" -%} {{ heat_pic_on }}
|
||
{%- elif states(climate) == "heat" -%} {{ thermostat_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_03.pic={{ top_menu_climate }}
|
||
|
||
###### StatusBar - Relay Symbols ######
|
||
- variables:
|
||
relay01_pic: >-
|
||
{%- if states(relay01_entity) == 'on' -%} {{ relay01_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
relay02_pic: >-
|
||
{%- if states(relay02_entity) == 'on' -%} {{ relay02_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_01.pic={{ relay01_pic }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_02.pic={{ relay02_pic }}
|
||
|
||
##### NSPanel boot init finished #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.loading
|
||
message: " "
|
||
|
||
###### StatusBar - Icon 04 ######
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ heatingsystemflame |length > 0 }}'
|
||
then:
|
||
- variables:
|
||
flame_pic: >-
|
||
{%- if states(heatingsystemflame) == "on" -%} {{ flame_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_04.pic={{ flame_pic }}
|
||
|
||
#### TFT Upload Automation #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: tft_upload
|
||
sequence:
|
||
- delay:
|
||
seconds: 2
|
||
- service: "{{ tft_upload }}"
|
||
data: {}
|
||
|
||
|
||
##### Update Button Page and Lightsettings / Coversettings Page #####
|
||
- 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:
|
||
- alias: "Set variable(s) for entity change"
|
||
variables:
|
||
component_to_update: >-
|
||
{%- if trigger.entity_id == entity01 -%} buttonpage01.button01
|
||
{%- elif trigger.entity_id == entity02 -%} buttonpage01.button02
|
||
{%- elif trigger.entity_id == entity03 -%} buttonpage01.button03
|
||
{%- elif trigger.entity_id == entity04 -%} buttonpage01.button04
|
||
{%- elif trigger.entity_id == entity05 -%} buttonpage01.button05
|
||
{%- elif trigger.entity_id == entity06 -%} buttonpage01.button06
|
||
{%- elif trigger.entity_id == entity07 -%} buttonpage01.button07
|
||
{%- elif trigger.entity_id == entity08 -%} buttonpage01.button08
|
||
{%- elif trigger.entity_id == entity09 -%} buttonpage02.button01
|
||
{%- elif trigger.entity_id == entity10 -%} buttonpage02.button02
|
||
{%- elif trigger.entity_id == entity11 -%} buttonpage02.button03
|
||
{%- elif trigger.entity_id == entity12 -%} buttonpage02.button04
|
||
{%- elif trigger.entity_id == entity13 -%} buttonpage02.button05
|
||
{%- elif trigger.entity_id == entity14 -%} buttonpage02.button06
|
||
{%- elif trigger.entity_id == entity15 -%} buttonpage02.button07
|
||
{%- elif trigger.entity_id == entity16 -%} buttonpage02.button08
|
||
{%- elif trigger.entity_id == entity17 -%} buttonpage03.button01
|
||
{%- elif trigger.entity_id == entity18 -%} buttonpage03.button02
|
||
{%- elif trigger.entity_id == entity19 -%} buttonpage03.button03
|
||
{%- elif trigger.entity_id == entity20 -%} buttonpage03.button04
|
||
{%- elif trigger.entity_id == entity21 -%} buttonpage03.button05
|
||
{%- elif trigger.entity_id == entity22 -%} buttonpage03.button06
|
||
{%- elif trigger.entity_id == entity23 -%} buttonpage03.button07
|
||
{%- elif trigger.entity_id == entity24 -%} buttonpage03.button08
|
||
{%- elif trigger.entity_id == entity25 -%} buttonpage04.button01
|
||
{%- elif trigger.entity_id == entity26 -%} buttonpage04.button02
|
||
{%- elif trigger.entity_id == entity27 -%} buttonpage04.button03
|
||
{%- elif trigger.entity_id == entity28 -%} buttonpage04.button04
|
||
{%- elif trigger.entity_id == entity29 -%} buttonpage04.button05
|
||
{%- elif trigger.entity_id == entity30 -%} buttonpage04.button06
|
||
{%- elif trigger.entity_id == entity31 -%} buttonpage04.button07
|
||
{%- elif trigger.entity_id == entity32 -%} buttonpage04.button08
|
||
{%- endif -%}
|
||
# Button PIC
|
||
btn_pic: >-
|
||
{%- if trigger.to_state.entity_id is match "light." and trigger.to_state.state == 'on' -%} {{ button_light_on }}
|
||
{%- elif trigger.to_state.entity_id is match "light." and trigger.to_state.state == 'off' -%} {{ button_light_off }}
|
||
{%- elif trigger.to_state.entity_id is match "switch." and trigger.to_state.state == 'on' -%} {{ button_switch_on }}
|
||
{%- elif trigger.to_state.entity_id is match "switch." and trigger.to_state.state == 'off' -%} {{ button_switch_off }}
|
||
{%- elif trigger.to_state.entity_id is match "input_boolean." and trigger.to_state.state == 'on' -%} {{ button_switch_on }}
|
||
{%- elif trigger.to_state.entity_id is match "input_boolean." and trigger.to_state.state == 'off' -%} {{ button_switch_off }}
|
||
{%- elif trigger.to_state.entity_id is match "cover." and trigger.to_state.state == 'open' -%} {{ button_cover_on }}
|
||
{%- elif trigger.to_state.entity_id is match "cover." and trigger.to_state.state == 'closed' -%} {{ button_cover_off }}
|
||
{%- endif -%}
|
||
# TEXT and BRIGHTNESS Background
|
||
btn_bg: >-
|
||
{%- if trigger.to_state.state == 'on' or trigger.to_state.state == 'open' -%} {{ button_color_1 }}
|
||
{%- elif trigger.to_state.state == 'off' or trigger.to_state.state == 'closed' -%} {{ button_color_2 }}
|
||
{%- endif -%}
|
||
# TEXT Font
|
||
btn_txt_font: >-
|
||
{%- if trigger.to_state.state == 'on' or trigger.to_state.state == 'open' -%} {{ button_color_2 }}
|
||
{%- elif trigger.to_state.state == 'off' or trigger.to_state.state == 'closed' -%} {{ button_color_1 }}
|
||
{%- endif -%}
|
||
# BRIGHTNESS Font
|
||
btn_bri_font: "{{ button_color_2 }}"
|
||
# BTN Label
|
||
btn_label: >-
|
||
{%- if trigger.entity_id == entity01 -%} {{ entity01_name }}
|
||
{%- elif trigger.entity_id == entity02 -%} {{ entity02_name }}
|
||
{%- elif trigger.entity_id == entity03 -%} {{ entity03_name }}
|
||
{%- elif trigger.entity_id == entity04 -%} {{ entity04_name }}
|
||
{%- elif trigger.entity_id == entity05 -%} {{ entity05_name }}
|
||
{%- elif trigger.entity_id == entity06 -%} {{ entity06_name }}
|
||
{%- elif trigger.entity_id == entity07 -%} {{ entity07_name }}
|
||
{%- elif trigger.entity_id == entity08 -%} {{ entity08_name }}
|
||
{%- elif trigger.entity_id == entity09 -%} {{ entity09_name }}
|
||
{%- elif trigger.entity_id == entity10 -%} {{ entity10_name }}
|
||
{%- elif trigger.entity_id == entity11 -%} {{ entity11_name }}
|
||
{%- elif trigger.entity_id == entity12 -%} {{ entity12_name }}
|
||
{%- elif trigger.entity_id == entity13 -%} {{ entity13_name }}
|
||
{%- elif trigger.entity_id == entity14 -%} {{ entity14_name }}
|
||
{%- elif trigger.entity_id == entity15 -%} {{ entity15_name }}
|
||
{%- elif trigger.entity_id == entity16 -%} {{ entity16_name }}
|
||
{%- elif trigger.entity_id == entity17 -%} {{ entity17_name }}
|
||
{%- elif trigger.entity_id == entity18 -%} {{ entity18_name }}
|
||
{%- elif trigger.entity_id == entity19 -%} {{ entity19_name }}
|
||
{%- elif trigger.entity_id == entity20 -%} {{ entity20_name }}
|
||
{%- elif trigger.entity_id == entity21 -%} {{ entity21_name }}
|
||
{%- elif trigger.entity_id == entity22 -%} {{ entity22_name }}
|
||
{%- elif trigger.entity_id == entity23 -%} {{ entity23_name }}
|
||
{%- elif trigger.entity_id == entity24 -%} {{ entity24_name }}
|
||
{%- elif trigger.entity_id == entity25 -%} {{ entity25_name }}
|
||
{%- elif trigger.entity_id == entity26 -%} {{ entity26_name }}
|
||
{%- elif trigger.entity_id == entity27 -%} {{ entity27_name }}
|
||
{%- elif trigger.entity_id == entity28 -%} {{ entity28_name }}
|
||
{%- elif trigger.entity_id == entity29 -%} {{ entity29_name }}
|
||
{%- elif trigger.entity_id == entity30 -%} {{ entity30_name }}
|
||
{%- elif trigger.entity_id == entity31 -%} {{ entity31_name }}
|
||
{%- elif trigger.entity_id == entity32 -%} {{ entity32_name }}
|
||
{%- endif -%}
|
||
btn_bri_txt: >-
|
||
{%- if trigger.to_state.entity_id is match "light." and trigger.to_state.state == 'on' and trigger.to_state.attributes.brightness is defined -%} {{ (trigger.to_state.attributes.brightness | int * 100 /255) | round(0) }}%
|
||
{%- elif trigger.to_state.entity_id is match "cover." and trigger.to_state.state == 'open' and trigger.to_state.attributes.current_position is defined -%} {{ (trigger.to_state.attributes.current_position | int) | round(0) }}%
|
||
{%- else -%} 0
|
||
{%- endif -%}
|
||
|
||
##### Button PIC #####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "{{ component_to_update }}pic.pic={{ btn_pic }}"
|
||
|
||
##### TEXT Background #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_background_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}text"
|
||
message: "{{ btn_bg }}"
|
||
|
||
##### TEXT Font Color #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_font_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}text"
|
||
message: "{{ btn_txt_font }}"
|
||
|
||
##### BRIGHTNESS Background Color #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_background_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: "{{ btn_bg }}"
|
||
|
||
##### BRIGHTNESS Font Color #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_font_color }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: "{{ btn_bri_font }}"
|
||
|
||
##### "TEXT" Label #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: "{{ component_to_update }}text"
|
||
message: "{{ btn_label }}"
|
||
|
||
##### "BRIGHTNESS" Text #####
|
||
- if:
|
||
- condition: template
|
||
value_template: "{{ btn_bri_txt == 0 }}"
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: " "
|
||
else:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: "{{ component_to_update }}bri"
|
||
message: "{{ btn_bri_txt }}"
|
||
|
||
##### UPDATE LIGHTSETTING / COVERSETTING PAGE
|
||
- choose:
|
||
##### LIGHTSETTINGS PAGE - LIGHT Entity #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ entity_long is match "light." }}'
|
||
sequence:
|
||
- choose:
|
||
##### LIGHT ON / OFF
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "on" }}'
|
||
sequence:
|
||
##### LIGHT PIC - ON #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: lightsettings.light_status.pic={{ light_pic_on }}
|
||
|
||
##### LIGHT Brightness Slider HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_slider_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: lightsettings.lightslider
|
||
message: '{{ (state_attr(entity_long, "brightness") | int ) |round(0) }}'
|
||
|
||
##### LIGHT Temp Slider HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_slider_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: lightsettings.tempslider
|
||
message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}'
|
||
|
||
##### LIGHT Brightness Value HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_value_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value
|
||
message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 255) |round(0) }}%'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value_2
|
||
message: '{{ (state_attr(entity_long, "brightness") | int * 100 / 255) |round(0) }}%'
|
||
|
||
##### LIGHT Temp Value HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_value_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.temp_value
|
||
message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.temp_value_2
|
||
message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}'
|
||
|
||
##### LIGHT - OFF #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "off" }}'
|
||
sequence:
|
||
##### LIGHT PIC - OFF #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: lightsettings.light_status.pic={{ light_pic_off }}
|
||
|
||
##### LIGHT Brightness Slider HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_slider_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: lightsettings.lightslider
|
||
message: '0'
|
||
|
||
##### LIGHT Brightness Value HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_value_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value
|
||
message: '0 %'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value_2
|
||
message: '0 %'
|
||
|
||
##### COVERSETTINGS PAGE - COVER Entity #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ entity_long is match "cover." }}'
|
||
sequence:
|
||
##### COVER OPEN #####
|
||
- choose:
|
||
##### Cover PIC - OPEN #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "open" }}'
|
||
sequence:
|
||
##### COVER PIC - OPEN
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: coversettings.cover_status.pic={{ cover_pic_open }}
|
||
|
||
##### Cover Slider HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_slider_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: coversettings.coverslider
|
||
message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }}'
|
||
|
||
##### Cover Value HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_value_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.cover_value
|
||
message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }} %'
|
||
|
||
##### Cover - Closed #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "closed" }}'
|
||
sequence:
|
||
##### COVER PIC - CLOSED
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: coversettings.cover_status.pic={{ cover_pic_closed }}
|
||
|
||
##### Cover Slider HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_slider_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: coversettings.coverslider
|
||
message: '0'
|
||
|
||
##### Cover Value HA Sync - YES #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ sync_value_ha == "select_yes" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.cover_value
|
||
message: '0 %'
|
||
|
||
|
||
##### Page Button - SHORT Press - Toggle Enities #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: short_press
|
||
sequence:
|
||
- 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 -%}
|
||
- 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 Button - LONG Press - JUMP to Page Lightsettings / Coversettings #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: long_press
|
||
sequence:
|
||
- choose:
|
||
##### LONG Press - LIGHT Entity #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ entity_long is match "light." }}'
|
||
sequence:
|
||
##### LIGHT Generel Values #####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: page lightsettings
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_name
|
||
message: '{{ entity_long_name }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- if:
|
||
- condition: template
|
||
value_template: "{{ state_attr(entity_long, 'brightness') != none }}"
|
||
then:
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: lightsettings.lightslider
|
||
message: '{{ (state_attr(entity_long, "brightness") | int ) |round(0) }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value
|
||
message: '{{ (state_attr(entity_long, "brightness") | int * 100 /255) | round(0) }}%'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value_2
|
||
message: '{{ (state_attr(entity_long, "brightness") | int * 100 /255) | round(0) }}%'
|
||
else:
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: lightsettings.lightslider
|
||
message: '0'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value
|
||
message: '0 %'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value_2
|
||
message: '0 %'
|
||
|
||
##### LIGHT 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: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.temp_value
|
||
message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.temp_value_2
|
||
message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: lightsettings.tempslider
|
||
message: '{{ (state_attr(entity_long, "color_temp") | int ) |round(0) }}'
|
||
|
||
##### LIGHT ON / OFF #####
|
||
- choose:
|
||
##### LIGHT PIC - ON #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "on" }}'
|
||
sequence:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: lightsettings.light_status.pic={{ light_pic_on }}
|
||
|
||
##### LIGHT PIC - OFF #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "off" }}'
|
||
sequence:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: lightsettings.light_status.pic={{ light_pic_off }}
|
||
|
||
##### LONG Press - COVER Entity #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ entity_long is match "cover." }}'
|
||
sequence:
|
||
##### COVER Generel Values #####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: page coversettings
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_value }}"
|
||
data:
|
||
component: coversettings.coverslider
|
||
message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.cover_value
|
||
message: '{{ (state_attr(entity_long, "current_position") | int ) |round(0) }} %'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.cover_name
|
||
message: '{{ entity_long_name }}'
|
||
|
||
##### COVER Battery ICON Yes / NO #####
|
||
- if:
|
||
- condition: template
|
||
value_template: "{{ state_attr(entity_long, 'battery') != none }}"
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.battery_value
|
||
message: '{{ (state_attr(entity_long, "battery") | int ) |round(0) }} %'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: coversettings.battery_icon.pic={{ battery_icon }}
|
||
|
||
##### COVER OPEN / CLOSE
|
||
- choose:
|
||
##### COVER PIC - open #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "open" }}'
|
||
sequence:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: coversettings.cover_status.pic={{ cover_pic_open }}
|
||
|
||
##### COVER PIC - Closed
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ states(entity_long) == "closed" }}'
|
||
sequence:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: coversettings.cover_status.pic={{ cover_pic_closed }}
|
||
|
||
|
||
##### LASTCLICK_LIGHTSETTINGS - Changes on page Light-Settings #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: light_settings
|
||
sequence:
|
||
- choose:
|
||
##### Page Lightsettings - Brightness Slider MOVE #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state is match "brightness\d+" and trigger.event.data.new_state.state == states(last_click_lightsettings) }}'
|
||
sequence:
|
||
- service: light.turn_on
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
brightness: '{{ trigger.event.data.new_state.state |replace("brightness","") | int }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value
|
||
message: '{{ (trigger.event.data.new_state.state |replace("brightness","") | int * 100 /255) |round(0) }}%'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.light_value_2
|
||
message: '{{ (trigger.event.data.new_state.state |replace("brightness","") | int * 100 /255) |round(0) }}%'
|
||
|
||
##### Page Lightsettings - color_Temp Slider MOVE #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state is match "colortemp\d+" and trigger.event.data.new_state.state == states(last_click_lightsettings) }}'
|
||
sequence:
|
||
- service: light.turn_on
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
color_temp: '{{ trigger.event.data.new_state.state |replace("colortemp","") | int }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.temp_value
|
||
message: '{{ trigger.event.data.new_state.state |replace("colortemp","") | int }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: lightsettings.temp_value_2
|
||
message: '{{ trigger.event.data.new_state.state |replace("colortemp","") | int }}'
|
||
|
||
##### Page Lightsettings - Color RGB Slider MOVE #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state is match "\d+,\d+,\d+" }}'
|
||
sequence:
|
||
- service: light.turn_on
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
rgb_color: '{{ trigger.event.data.new_state.state.split(",") }}'
|
||
|
||
##### Page Lightsettings - Close Lightsetting Page #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state == "releaselightsettingsclose" }}'
|
||
sequence:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "{{ entity_back }}"
|
||
|
||
|
||
##### LASTCLICK_COVERSETTINGS - Changes on page Cover-Settings #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: cover_settings
|
||
sequence:
|
||
- choose:
|
||
##### Page Coversettings - Cover Slider MOVE #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state is match "coverposition\d+" and trigger.event.data.new_state.state == states(last_click_coversettings) }}'
|
||
sequence:
|
||
- service: cover.set_cover_position
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
position: '{{ trigger.event.data.new_state.state |replace("coverposition","") | int }}'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.cover_value
|
||
message: '{{ trigger.event.data.new_state.state |replace("coverposition","") | int }} %'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: coversettings.cover_value_2
|
||
message: '{{ trigger.event.data.new_state.state |replace("coverposition","") | int }} %'
|
||
|
||
##### Page Coversettings - Cover CLOSE Button #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state == "cover_close_press" }}'
|
||
sequence:
|
||
- service: cover.close_cover
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
|
||
##### Page Coversettings - Cover OPEN Button #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state == "cover_open_press" }}'
|
||
sequence:
|
||
- service: cover.open_cover
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
|
||
##### Page Coversettings - Cover STOP Button #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state == "cover_stop_press" }}'
|
||
sequence:
|
||
- service: cover.stop_cover
|
||
data:
|
||
entity_id: "{{ entity_long }}"
|
||
|
||
##### Page Coversettings - Close Coversettings Page #####
|
||
- conditions:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state == "releasecoversettingsclose" }}'
|
||
sequence:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "{{ entity_back }}"
|
||
|
||
|
||
##### LASTCLICK_CLIMATESETTINGS - Changes on page Climate-Settings #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: climate_settings
|
||
sequence:
|
||
- choose:
|
||
##### Page Climatesettings - hotwater #####
|
||
- conditions: '{{ trigger.event.data.new_state.state == "releasehotwater" }}'
|
||
sequence:
|
||
- service: >-
|
||
{% if hotwatercharge is match 'switch.' %}
|
||
switch.toggle
|
||
{% elif hotwatercharge is match 'input_boolean.' %}
|
||
input_boolean.toggle
|
||
{% endif %}
|
||
data:
|
||
entity_id: "{{ hotwatercharge }}"
|
||
|
||
##### Page Climatesettings - heating #####
|
||
- conditions: '{{ trigger.event.data.new_state.state == "releaseheating" }}'
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ states(climate) == "off" }}'
|
||
then:
|
||
- service: climate.turn_on ############
|
||
data:
|
||
entity_id: !input climate
|
||
# - service: climate.set_temperature
|
||
# data:
|
||
# entity_id: !input climate
|
||
# hvac_mode: 'heat'
|
||
# temperature: "{{ state_attr(climate, 'temperature') }}"
|
||
else:
|
||
- service: climate.turn_off ############
|
||
data:
|
||
entity_id: !input climate
|
||
# - service: climate.set_temperature
|
||
# data:
|
||
# entity_id: !input climate
|
||
# hvac_mode: 'off'
|
||
# temperature: "{{ state_attr(climate, 'temperature') }}"
|
||
|
||
##### Page Climatesettings - decreasetemp #####
|
||
- conditions: '{{ trigger.event.data.new_state.state == "releasedecreasetemp" }}'
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ states(climate) != "off" }}'
|
||
then:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate_optimistic == true }}'
|
||
then:
|
||
- variables:
|
||
current_setpoint: "{{states(display_target_temperature) | round(1)}}"
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "{{ current_setpoint -0.5 }}"
|
||
else:
|
||
- variables:
|
||
current_setpoint: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||
- service: climate.set_temperature
|
||
data:
|
||
entity_id: !input climate
|
||
#hvac_mode: 'heat'
|
||
temperature: "{{ current_setpoint -0.5 }}"
|
||
|
||
|
||
##### Page Climatesettings - increasetemp #####
|
||
- conditions: '{{ trigger.event.data.new_state.state == "releaseincreasetemp" }}'
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ states(climate) != "off" }}'
|
||
then:
|
||
- variables:
|
||
current_setpoint: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate_optimistic == true }}'
|
||
then:
|
||
- variables:
|
||
current_setpoint: "{{states(display_target_temperature) | round(1)}}"
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "{{ current_setpoint +0.5 }}"
|
||
else:
|
||
- variables:
|
||
current_setpoint: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||
- service: climate.set_temperature
|
||
data:
|
||
entity_id: !input climate
|
||
#hvac_mode: 'heat'
|
||
temperature: "{{ current_setpoint +0.5 }}"
|
||
|
||
|
||
##### Page Climatesettings - climateslider #####
|
||
- conditions: '{{ trigger.event.data.new_state.state is match "climateslider\d+" and trigger.event.data.new_state.state == states(last_click_climatesettings) }}'
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ states(climate) != "off" }}'
|
||
then:
|
||
- variables:
|
||
#climateslider: '{{ trigger.event.data.new_state.state |replace("climateslider","") | int }}'
|
||
new_setpoint: >-
|
||
{%- if trigger.event.data.new_state.state == "climateslider0" -%} 13.0
|
||
{%- elif trigger.event.data.new_state.state == "climateslider1" -%} 13.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider2" -%} 14
|
||
{%- elif trigger.event.data.new_state.state == "climateslider3" -%} 14.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider4" -%} 15
|
||
{%- elif trigger.event.data.new_state.state == "climateslider5" -%} 15.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider6" -%} 16
|
||
{%- elif trigger.event.data.new_state.state == "climateslider7" -%} 16.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider8" -%} 17
|
||
{%- elif trigger.event.data.new_state.state == "climateslider9" -%} 17.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider10" -%} 18
|
||
{%- elif trigger.event.data.new_state.state == "climateslider11" -%} 18.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider12" -%} 19
|
||
{%- elif trigger.event.data.new_state.state == "climateslider13" -%} 19.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider14" -%} 20
|
||
{%- elif trigger.event.data.new_state.state == "climateslider15" -%} 20.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider16" -%} 21
|
||
{%- elif trigger.event.data.new_state.state == "climateslider17" -%} 21.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider18" -%} 22
|
||
{%- elif trigger.event.data.new_state.state == "climateslider19" -%} 22.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider20" -%} 23
|
||
{%- elif trigger.event.data.new_state.state == "climateslider21" -%} 23.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider22" -%} 24
|
||
{%- elif trigger.event.data.new_state.state == "climateslider23" -%} 24.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider24" -%} 25
|
||
{%- elif trigger.event.data.new_state.state == "climateslider25" -%} 25.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider26" -%} 26
|
||
{%- elif trigger.event.data.new_state.state == "climateslider27" -%} 26.5
|
||
{%- elif trigger.event.data.new_state.state == "climateslider28" -%} 27
|
||
{%- endif -%}
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate_optimistic == true }}'
|
||
then:
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "{{ new_setpoint }}"
|
||
else:
|
||
- service: climate.set_temperature
|
||
data:
|
||
entity_id: !input climate
|
||
#hvac_mode: 'heat'
|
||
temperature: "{{ new_setpoint }}"
|
||
|
||
|
||
##### Left button press #####
|
||
- 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 }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
|
||
##### Left button State #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: left_button_state
|
||
sequence:
|
||
|
||
###### Left Hardware Button PIC #####
|
||
- variables:
|
||
# Hardware Button PIC
|
||
left_hardware_button_state: >-
|
||
{%- if trigger.event.data.new_state.state == 'off' -%} {{ hardware_button_pic_off }}
|
||
{%- elif trigger.event.data.new_state.state == 'on' -%} {{ hardware_button_pic_on }}
|
||
{%- endif -%}
|
||
|
||
##### SET Right hardware Button PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.left_bt_pic.pic={{ left_hardware_button_state }}
|
||
|
||
|
||
##### Right button press #####
|
||
- 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 }}"
|
||
|
||
|
||
##### Right button State #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: right_button_state
|
||
sequence:
|
||
|
||
###### Left Hardware Button PIC #####
|
||
- variables:
|
||
# Hardware Button PIC
|
||
right_hardware_button_state: >-
|
||
{%- if trigger.event.data.new_state.state == 'off' -%} {{ hardware_button_pic_off }}
|
||
{%- elif trigger.event.data.new_state.state == 'on' -%} {{ hardware_button_pic_on }}
|
||
{%- endif -%}
|
||
|
||
##### SET Right hardware Button PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.right_bt_pic.pic={{ right_hardware_button_state }}
|
||
|
||
|
||
##### Date and Time Home Page #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: time_state
|
||
sequence:
|
||
##### Time Home Page #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.time
|
||
message: "{{ time }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.date
|
||
message: "{{ date01_mui }}"
|
||
|
||
|
||
##### Humidity #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: humidity_state
|
||
sequence:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.humidity_state
|
||
message: "{{ trigger.event.data.new_state.state |round(0) }}%"
|
||
|
||
|
||
##### Hotwater Temp #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: hotwatertemp_state
|
||
sequence:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.hotwater_temp
|
||
message: "{{ trigger.event.data.new_state.state |round(1) }}°"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: climate.hotwater_temp
|
||
message: "{{ trigger.event.data.new_state.state |round(1) }}°"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.hotwater_pic.pic={{ hotwater_pic_on }}
|
||
|
||
|
||
##### Outdoor Temp Entity #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: outdoortemp_state
|
||
sequence:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.outdoor_temp
|
||
message: "{{ trigger.event.data.new_state.state |round(0) }}°"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: climate.outdoor_temp
|
||
message: "{{ trigger.event.data.new_state.state |round(0) }}°"
|
||
|
||
|
||
##### Weather state change update #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: weather_state_change
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ outdoortemp is not match "sensor." }}'
|
||
then:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.outdoor_temp
|
||
message: '{{trigger.event.data.new_state.attributes.temperature | round(0)}}°'
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: climate.outdoor_temp
|
||
message: '{{trigger.event.data.new_state.attributes.temperature | round(0)}}°'
|
||
|
||
- variables:
|
||
weather_pic: >-
|
||
{%- if trigger.event.data.new_state.state == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif trigger.event.data.new_state.state == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif trigger.event.data.new_state.state == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif trigger.event.data.new_state.state == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif trigger.event.data.new_state.state == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif trigger.event.data.new_state.state == 'hail' -%} {{ weather_hail }}
|
||
{%- elif trigger.event.data.new_state.state == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif trigger.event.data.new_state.state == 'fog' -%} {{ weather_fog }}
|
||
{%- elif trigger.event.data.new_state.state == 'windy' -%} {{ weather_windy }}
|
||
{%- elif trigger.event.data.new_state.state == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif trigger.event.data.new_state.state == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif trigger.event.data.new_state.state == 'partlycloudy' and states('sun.sun') == 'above_horizon' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif trigger.event.data.new_state.state == 'partlycloudy' and states('sun.sun') == 'below_horizon' -%} {{ weather_partlycloudy_night }}
|
||
{%- elif trigger.event.data.new_state.state == 'lightning-rainy' and states('sun.sun') == 'above_horizon' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif trigger.event.data.new_state.state == 'lightning-rainy' and states('sun.sun') == 'below_horizon' -%} {{ weather_lightning_rainy_night }}
|
||
{%- elif trigger.event.data.new_state.state == 'execptional' and states('sun.sun') == 'above_horizon' -%} {{ weather_execptional_day }}
|
||
{%- elif trigger.event.data.new_state.state == 'execptional' and states('sun.sun') == 'below_horizon' -%} {{ weather_execptional_night }}
|
||
{%- elif trigger.event.data.new_state.state == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.weather.pic={{ weather_pic }}
|
||
|
||
##### Page changed #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: current_page_changed
|
||
sequence:
|
||
- choose:
|
||
## home ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_home }}'
|
||
sequence:
|
||
##### NSPanel Date #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.date
|
||
message: "{{ date01_mui }}"
|
||
|
||
##### NSPanel Time #####
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.time
|
||
message: "{{ time }}"
|
||
|
||
##### NSPanel Humidity #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ humidity is match "sensor." and states(humidity).state != "unavailable" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.humidity_state
|
||
message: "{{ states(humidity) |round(0) }}%"
|
||
|
||
##### NSPanel Hotwater #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ hotwatertemp is match "sensor." and states(hotwatertemp).state != "unavailable" }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.hotwater_pic.pic={{ hotwater_pic_on }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.hotwater_temp
|
||
message: "{{ states(hotwatertemp) |round(1) }}°"
|
||
|
||
##### NSPanel Outdoor Temp #####
|
||
- variables:
|
||
outdoor_temp: >-
|
||
{%- if outdoortemp is match "sensor." and states(hotwatertemp).state != "unavailable" -%} {{ states(outdoortemp) |round(0) }}
|
||
{%- elif weather == "Default" and state_attr(ha_weather, "temperature") != None -%} {{state_attr(ha_weather,"temperature") | round(0)}}
|
||
{%- elif weather == "AccuWeather" and state_attr(accuweather_value, "temperature") != None -%} {{state_attr(accuweather_value,"temperature") | round(0)}}
|
||
{%- else -%} 0
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.outdoor_temp
|
||
message: "{{ outdoor_temp }}°"
|
||
|
||
##### Weather Icon Home Page
|
||
- variables:
|
||
weather_pic: >-
|
||
{%- if states(weather_entity) == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif states(weather_entity) == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif states(weather_entity) == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif states(weather_entity) == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif states(weather_entity) == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif states(weather_entity) == 'hail' -%} {{ weather_hail }}
|
||
{%- elif states(weather_entity) == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif states(weather_entity) == 'fog' -%} {{ weather_fog }}
|
||
{%- elif states(weather_entity) == 'windy' -%} {{ weather_windy }}
|
||
{%- elif states(weather_entity) == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif states(weather_entity) == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif states(weather_entity) == 'partlycloudy' and states('sun.sun') == 'above_horizon' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif states(weather_entity) == 'partlycloudy' and states('sun.sun') == 'below_horizon' -%} {{ weather_partlycloudy_night }}
|
||
{%- elif states(weather_entity) == 'lightning-rainy' and states('sun.sun') == 'above_horizon' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif states(weather_entity) == 'lightning-rainy' and states('sun.sun') == 'below_horizon' -%} {{ weather_lightning_rainy_night }}
|
||
{%- elif states(weather_entity) == 'execptional' and states('sun.sun') == 'above_horizon' -%} {{ weather_execptional_day }}
|
||
{%- elif states(weather_entity) == 'execptional' and states('sun.sun') == 'below_horizon' -%} {{ weather_execptional_night }}
|
||
{%- elif states(weather_entity) == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.weather.pic={{ weather_pic }}
|
||
|
||
##### NSPanel Left Button Name #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ left_button_name |length > 0 }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.left_bt_text
|
||
message: "{{ left_button_name }}"
|
||
|
||
##### SET Left Hardware Button PIC on Home Page ####
|
||
- variables:
|
||
# Hardware Button PIC
|
||
left_hardware_button_state: >-
|
||
{%- if states(left_button_entity) == 'off' -%} {{ hardware_button_pic_off }}
|
||
{%- elif states(left_button_entity) == 'on' -%} {{ hardware_button_pic_on }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.left_bt_pic.pic={{ left_hardware_button_state }}
|
||
|
||
##### NSPanel Right Button Name #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ right_button_name |length > 0 }}'
|
||
then:
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: home.right_bt_text
|
||
message: "{{ right_button_name }}"
|
||
|
||
###### SET Right Hardware Button PIC on Home Page #####
|
||
- variables:
|
||
# Hardware Button PIC
|
||
right_hardware_button_state: >-
|
||
{%- if states(right_button_entity) == 'off' -%} {{ hardware_button_pic_off }}
|
||
{%- elif states(right_button_entity) == 'on' -%} {{ hardware_button_pic_on }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.right_bt_pic.pic={{ right_hardware_button_state }}
|
||
|
||
###### StatusBar - Climate Symbol ######
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate |length > 0 }}'
|
||
then:
|
||
- variables:
|
||
top_menu_climate: >-
|
||
{%- if states(climate) == "heat" and state_attr(climate, "hvac_action") != None and state_attr(climate, "hvac_action") == "heating" -%} {{ heat_pic_on }}
|
||
{%- elif states(climate) == "heat" -%} {{ thermostat_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_03.pic={{ top_menu_climate }}
|
||
|
||
###### StatusBar - Relay Symbols ######
|
||
- variables:
|
||
relay01_pic: >-
|
||
{%- if states(relay01_entity) == 'on' -%} {{ relay01_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
relay02_pic: >-
|
||
{%- if states(relay02_entity) == 'on' -%} {{ relay02_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_01.pic={{ relay01_pic }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_02.pic={{ relay02_pic }}
|
||
|
||
##### climate-page left - apply climate temperature if climate_optimistic #####
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.old_state.state == page_climate }}'
|
||
then:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate_optimistic == true }}'
|
||
then:
|
||
- variables:
|
||
display_target_temperature: "{{states(display_target_temperature) | round(1)}}"
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ display_target_temperature != 0.0 }}'
|
||
then:
|
||
- service: climate.set_temperature
|
||
data:
|
||
entity_id: !input climate
|
||
#hvac_mode: 'heat'
|
||
temperature: "{{ display_target_temperature }}"
|
||
|
||
## weather01 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_weather01 }}'
|
||
sequence:
|
||
- choose:
|
||
- conditions: '{{ weather == "Default" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if states(ha_weather) == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif states(ha_weather) == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif states(ha_weather) == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif states(ha_weather) == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif states(ha_weather) == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif states(ha_weather) == 'hail' -%} {{ weather_hail }}
|
||
{%- elif states(ha_weather) == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif states(ha_weather) == 'fog' -%} {{ weather_fog }}
|
||
{%- elif states(ha_weather) == 'windy' -%} {{ weather_windy }}
|
||
{%- elif states(ha_weather) == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif states(ha_weather) == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif states(ha_weather) == 'partlycloudy' and states('sun.sun') == 'above_horizon' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif states(ha_weather) == 'partlycloudy' and states('sun.sun') == 'below_horizon' -%} {{ weather_partlycloudy_night }}
|
||
{%- elif states(ha_weather) == 'lightning-rainy' and states('sun.sun') == 'above_horizon' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif states(ha_weather) == 'lightning-rainy' and states('sun.sun') == 'below_horizon' -%} {{ weather_lightning_rainy_night }}
|
||
{%- elif states(ha_weather) == 'execptional' and states('sun.sun') == 'above_horizon' -%} {{ weather_execptional_day }}
|
||
{%- elif states(ha_weather) == 'execptional' and states('sun.sun') == 'below_horizon' -%} {{ weather_execptional_night }}
|
||
{%- elif states(ha_weather) == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.temp_max ### Temperature MAX ###
|
||
message: '{{state_attr(ha_weather,"temperature") | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.day
|
||
message: "{{ day01_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.date
|
||
message: "{{ date01_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
|
||
##### field 2 #####
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.value03
|
||
message: '{{state_attr(ha_weather,"wind_speed") | round(0)}} km/h'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.value03_pic.pic={{ weather_icon_wind }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
|
||
##### field 5 #####
|
||
|
||
- conditions: '{{ weather == "AccuWeather" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(accuweather_value,"forecast")[0].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[0].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.temp_min ### Temperature MIN ###
|
||
message: '{{states(accuweather_realfeel_temperature_min_0d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.temp_max ### Temperature MAX ###
|
||
message: '{{states(accuweather_realfeel_temperature_max_0d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.day
|
||
message: "{{ day01_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.date
|
||
message: "{{ date01_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.value01
|
||
message: "{{ state_attr(accuweather_value,'forecast')[0].precipitation_probability}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.value01_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.value02
|
||
message: "{{states(accuweather_hours_of_sun_0d) | round(0)}} h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.value02_pic.pic={{ weather_icon_sun }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.value03
|
||
message: "{{state_attr(accuweather_uv_index_0d, 'level')}} {{states(accuweather_uv_index_0d) | round(0)}}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.value03_pic.pic={{ weather_icon_protect }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.value04
|
||
message: "{{states(accuweather_thunderstorm_probability_day_0d) | round(0)}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.value04_pic.pic={{ weather_icon_lightning }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 5 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather01.value05
|
||
message: "{{states(accuweather_wind_day_0d) | round(0)}} km/h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather01.value05_pic.pic={{ weather_icon_wind }}
|
||
|
||
default:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "page {{ page_home }}"
|
||
|
||
## weather02 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_weather02 }}'
|
||
sequence:
|
||
- choose:
|
||
- conditions: '{{ weather == "Default" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(ha_weather,"forecast")[0].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[0].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.temp_min ### Temperature MIN ###
|
||
message: '{{state_attr(ha_weather,"forecast")[0].templow | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.temp_max ### Temperature MAX ###
|
||
message: '{{state_attr(ha_weather,"forecast")[0].temperature | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.day
|
||
message: "{{ day02_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.date
|
||
message: "{{ date02_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value02
|
||
message: '{{state_attr(ha_weather,"forecast")[0].precipitation| round(1)}} mm'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value02_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value03
|
||
message: '{{state_attr(ha_weather,"forecast")[0].wind_speed | round(1)}} km/h'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value03_pic.pic={{ weather_icon_wind }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
|
||
##### field 5 #####
|
||
|
||
- conditions: '{{ weather == "AccuWeather" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(accuweather_value,"forecast")[1].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[1].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.temp_min ### Temperature MIN ###
|
||
message: '{{states(accuweather_realfeel_temperature_min_1d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.temp_max ### Temperature MAX ###
|
||
message: '{{states(accuweather_realfeel_temperature_max_1d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.day
|
||
message: "{{ day02_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.date
|
||
message: "{{ date02_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value01
|
||
message: "{{ state_attr(accuweather_value,'forecast')[1].precipitation_probability}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value01_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value02
|
||
message: "{{states(accuweather_hours_of_sun_1d) | round(0)}} h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value02_pic.pic={{ weather_icon_sun }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value03
|
||
message: "{{state_attr(accuweather_uv_index_1d, 'level')}} {{states(accuweather_uv_index_1d) | round(0)}}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value03_pic.pic={{ weather_icon_protect }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value04
|
||
message: "{{states(accuweather_thunderstorm_probability_day_1d) | round(0)}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value04_pic.pic={{ weather_icon_lightning }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 5 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather02.value05
|
||
message: "{{states(accuweather_wind_day_1d) | round(0)}} km/h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather02.value05_pic.pic={{ weather_icon_wind }}
|
||
|
||
default:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "page {{ page_home }}"
|
||
|
||
## weather03 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_weather03 }}'
|
||
sequence:
|
||
- choose:
|
||
- conditions: '{{ weather == "Default" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(ha_weather,"forecast")[1].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[1].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.temp_min ### Temperature MIN ###
|
||
message: '{{state_attr(ha_weather,"forecast")[1].templow | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.temp_max ### Temperature MAX ###
|
||
message: '{{state_attr(ha_weather,"forecast")[1].temperature | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.day
|
||
message: "{{ day03_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.date
|
||
message: "{{ date03_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value02
|
||
message: '{{state_attr(ha_weather,"forecast")[1].precipitation| round(1)}} mm'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value02_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value03
|
||
message: '{{state_attr(ha_weather,"forecast")[1].wind_speed | round(1)}} km/h'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value03_pic.pic={{ weather_icon_wind }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
|
||
##### field 5 #####
|
||
|
||
- conditions: '{{ weather == "AccuWeather" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(accuweather_value,"forecast")[2].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[2].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.temp_min ### Temperature MIN ###
|
||
message: '{{states(accuweather_realfeel_temperature_min_2d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.temp_max ### Temperature MAX ###
|
||
message: '{{states(accuweather_realfeel_temperature_max_2d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.day
|
||
message: "{{ day03_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.date
|
||
message: "{{ date03_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value01
|
||
message: "{{ state_attr(accuweather_value,'forecast')[2].precipitation_probability}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value01_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value02
|
||
message: "{{states(accuweather_hours_of_sun_2d) | round(0)}} h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value02_pic.pic={{ weather_icon_sun }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value03
|
||
message: "{{state_attr(accuweather_uv_index_2d, 'level')}} {{states(accuweather_uv_index_2d) | round(0)}}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value03_pic.pic={{ weather_icon_protect }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value04
|
||
message: "{{states(accuweather_thunderstorm_probability_day_2d) | round(0)}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value04_pic.pic={{ weather_icon_lightning }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 5 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather03.value05
|
||
message: "{{states(accuweather_wind_day_2d) | round(0)}} km/h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather03.value05_pic.pic={{ weather_icon_wind }}
|
||
|
||
default:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "page {{ page_home }}"
|
||
|
||
## weather04 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_weather04 }}'
|
||
sequence:
|
||
- choose:
|
||
- conditions: '{{ weather == "Default" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(ha_weather,"forecast")[2].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[2].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.temp_min ### Temperature MIN ###
|
||
message: '{{state_attr(ha_weather,"forecast")[2].templow | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.temp_max ### Temperature MAX ###
|
||
message: '{{state_attr(ha_weather,"forecast")[2].temperature | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.day
|
||
message: "{{ day04_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.date
|
||
message: "{{ date04_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value02
|
||
message: '{{state_attr(ha_weather,"forecast")[2].precipitation| round(1)}} mm'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value02_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value03
|
||
message: '{{state_attr(ha_weather,"forecast")[2].wind_speed | round(1)}} km/h'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value03_pic.pic={{ weather_icon_wind }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
|
||
##### field 5 #####
|
||
|
||
- conditions: '{{ weather == "AccuWeather" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(accuweather_value,"forecast")[3].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[3].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.temp_min ### Temperature MIN ###
|
||
message: '{{states(accuweather_realfeel_temperature_min_3d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.temp_max ### Temperature MAX ###
|
||
message: '{{states(accuweather_realfeel_temperature_max_3d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.day
|
||
message: "{{ day04_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.date
|
||
message: "{{ date04_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value01
|
||
message: "{{ state_attr(accuweather_value,'forecast')[3].precipitation_probability}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value01_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value02
|
||
message: "{{states(accuweather_hours_of_sun_3d) | round(0)}} h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value02_pic.pic={{ weather_icon_sun }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value03
|
||
message: "{{state_attr(accuweather_uv_index_3d, 'level')}} {{states(accuweather_uv_index_3d) | round(0)}}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value03_pic.pic={{ weather_icon_protect }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value04
|
||
message: "{{states(accuweather_thunderstorm_probability_day_3d) | round(0)}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value04_pic.pic={{ weather_icon_lightning }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 5 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather04.value05
|
||
message: "{{states(accuweather_wind_day_3d) | round(0)}} km/h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather04.value05_pic.pic={{ weather_icon_wind }}
|
||
|
||
default:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "page {{ page_home }}"
|
||
|
||
## weather05 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_weather05 }}'
|
||
sequence:
|
||
- choose:
|
||
- conditions: '{{ weather == "Default" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(ha_weather,"forecast")[3].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(ha_weather,"forecast")[3].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.temp_min ### Temperature MIN ###
|
||
message: '{{state_attr(ha_weather,"forecast")[3].templow | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.temp_max ### Temperature MAX ###
|
||
message: '{{state_attr(ha_weather,"forecast")[3].temperature | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.day
|
||
message: "{{ day05_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.date
|
||
message: "{{ date05_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value02
|
||
message: '{{state_attr(ha_weather,"forecast")[3].precipitation| round(1)}} mm'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value02_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value03
|
||
message: '{{state_attr(ha_weather,"forecast")[3].wind_speed | round(1)}} km/h'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value03_pic.pic={{ weather_icon_wind }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
|
||
##### field 5 #####
|
||
|
||
- conditions: '{{ weather == "AccuWeather" }}'
|
||
sequence:
|
||
- variables:
|
||
# weather PIC
|
||
weather_icon: >-
|
||
{%- if state_attr(accuweather_value,"forecast")[4].condition == 'sunny' -%} {{ weather_sunny }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'cloudy' -%} {{ weather_cloudy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'rainy' -%} {{ weather_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'pouring' -%} {{ weather_pouring }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'snowy' -%} {{ weather_snowy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'hail' -%} {{ weather_hail }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'snowy-rainy' -%} {{ weather_snowy_rainy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'fog' -%} {{ weather_fog }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'windy' -%} {{ weather_windy }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'windy-variant' -%} {{ weather_windy-variant }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'lightning' -%} {{ weather_lightning }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'partlycloudy' -%} {{ weather_partlycloudy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'lightning-rainy' -%} {{ weather_lightning_rainy_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'execptional' -%} {{ weather_execptional_day }}
|
||
{%- elif state_attr(accuweather_value,"forecast")[4].condition == 'clear-night' -%} {{ weather_clear_night }}
|
||
{%- endif -%}
|
||
|
||
##### SET weather PIC on Home Page ####
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.weather_icon.pic={{ weather_icon }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MIN ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.temp_min ### Temperature MIN ###
|
||
message: '{{states(accuweather_realfeel_temperature_min_4d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Slash #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.slash
|
||
message: '/'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### SET TEMP MAX ####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.temp_max ### Temperature MAX ###
|
||
message: '{{states(accuweather_realfeel_temperature_max_4d) | round(0)}}°'
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Name #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.day
|
||
message: "{{ day05_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### Day Date #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.date
|
||
message: "{{ date05_mui }}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 1 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value01
|
||
message: "{{ state_attr(accuweather_value,'forecast')[4].precipitation_probability}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value01_pic.pic={{ weather_icon_rain }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 2 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value02
|
||
message: "{{states(accuweather_hours_of_sun_4d) | round(0)}} h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value02_pic.pic={{ weather_icon_sun }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 3 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value03
|
||
message: "{{state_attr(accuweather_uv_index_4d, 'level')}} {{states(accuweather_uv_index_4d) | round(0)}}"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value03_pic.pic={{ weather_icon_protect }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 4 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value04
|
||
message: "{{states(accuweather_thunderstorm_probability_day_4d) | round(0)}} %"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value04_pic.pic={{ weather_icon_lightning }}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
|
||
##### field 5 #####
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: weather05.value05
|
||
message: "{{states(accuweather_wind_day_4d) | round(0)}} km/h"
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: weather05.value05_pic.pic={{ weather_icon_wind }}
|
||
|
||
default:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "page {{ page_home }}"
|
||
|
||
## climate ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_climate }}'
|
||
alias: 'climate page'
|
||
sequence:
|
||
- variables:
|
||
hvac_mode: "{{ states(climate) }}"
|
||
outdoor_temp: >-
|
||
{%- if outdoortemp is match "sensor." and states(hotwatertemp).state != "unavailable" -%} {{ states(outdoortemp) |round(0) }}
|
||
{%- elif weather == "Default" and state_attr(ha_weather, "temperature") != None -%} {{state_attr(ha_weather,"temperature") | round(0)}}
|
||
{%- elif weather == "AccuWeather" and state_attr(accuweather_value, "temperature") != None -%} {{state_attr(accuweather_value,"temperature") | round(0)}}
|
||
{%- else -%} 0
|
||
{%- endif -%}
|
||
heating_state: >-
|
||
{%- if hvac_mode == "off" -%} {{ off_mui }}
|
||
{%- elif hvac_mode != "off" -%} {{ on_mui }}
|
||
{%- endif -%}
|
||
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: outdoor_temp
|
||
message: "{{ outdoor_temp }}°"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: current_temp
|
||
message: "{{state_attr(climate, 'current_temperature') | round(1)}}°"
|
||
- if:
|
||
condition: template
|
||
value_template: '{{ hvac_mode != "off" }}'
|
||
then:
|
||
- variables:
|
||
target_temp: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "{{target_temp}}"
|
||
else:
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "0"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: target_temp
|
||
message: " "
|
||
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: heating_state
|
||
message: "{{heating_state}}"
|
||
|
||
# HVAC Button PIC
|
||
- variables:
|
||
heating_bt_pic: >-
|
||
{%- if hvac_mode == "off" -%} {{ heating_bt_pic_off }}
|
||
{%- else -%} {{ heating_bt_pic_on }}
|
||
{%- endif -%}
|
||
- delay:
|
||
milliseconds: "{{ delay_value }}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: heating_bt_pic.pic={{ heating_bt_pic }}
|
||
- variables:
|
||
hotw_bt_pic: >-
|
||
{%- if hotwatercharge | length > 0 and states(hotwatercharge) == 'on' -%} {{ hotw_bt_on }}
|
||
{%- elif hotwatercharge | length > 0 and states(hotwatercharge) == 'off' -%} {{ hotw_bt_off }}
|
||
{%- else -%} {{ hotw_bt_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: hotw_bt_pic.pic={{ hotw_bt_pic }}
|
||
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ hotwatertemp is match "sensor." }}'
|
||
then:
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: climate.hotwater_temp
|
||
message: "{{ states(hotwatertemp) |round(1) }}°"
|
||
|
||
## settings ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_settings }}'
|
||
sequence:
|
||
|
||
## boot ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_boot }}'
|
||
sequence:
|
||
|
||
## screensaver ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_screensaver }}'
|
||
sequence:
|
||
|
||
## lightsettings ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_lightsettings }}'
|
||
sequence:
|
||
|
||
## coversettings ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_coversettings }}'
|
||
sequence:
|
||
|
||
## buttonpage01 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_buttonpage01 }}'
|
||
sequence:
|
||
|
||
## buttonpage02 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_buttonpage01 }}'
|
||
sequence:
|
||
|
||
## buttonpage03 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_buttonpage03 }}'
|
||
sequence:
|
||
|
||
## buttonpage04 ##
|
||
- conditions: '{{ trigger.event.data.new_state.state == page_buttonpage04 }}'
|
||
sequence:
|
||
|
||
|
||
##### Open Climate Settings #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: open_climate_settings
|
||
sequence:
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ climate |length > 0 }}'
|
||
then:
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: "page {{ page_climate }}"
|
||
|
||
|
||
##### Set Flame-Symbol #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: heatingsystemflame_state
|
||
sequence:
|
||
- variables:
|
||
flame_pic: >-
|
||
{%- if trigger.event.data.new_state.state == 'on' -%} {{ flame_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_04.pic={{ flame_pic }}
|
||
|
||
|
||
##### Set Relay01-Symbol #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: relay01_state
|
||
sequence:
|
||
- variables:
|
||
relay01_pic: >-
|
||
{%- if trigger.event.data.new_state.state == 'on' -%} {{ relay01_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_01.pic={{ relay01_pic }}
|
||
|
||
|
||
##### Set Relay02-Symbol #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: relay02_state
|
||
sequence:
|
||
- variables:
|
||
relay02_pic: >-
|
||
{%- if trigger.event.data.new_state.state == 'on' -%} {{ relay02_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_02.pic={{ relay02_pic }}
|
||
|
||
|
||
##### Sync Hotwater Charge button-symbol #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: hotwatercharge_state
|
||
- condition: template
|
||
value_template: '{{ states(current_page) == page_climate }}'
|
||
sequence:
|
||
- variables:
|
||
hotw_bt_pic: >-
|
||
{%- if trigger.event.data.new_state.state == 'on' -%} {{ hotw_bt_on }}
|
||
{%- elif trigger.event.data.new_state.state == 'off' -%} {{ hotw_bt_off }}
|
||
{%- else -%} {{ hotw_bt_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: hotw_bt_pic.pic={{ hotw_bt_pic }}
|
||
|
||
##### Sync Climate #####
|
||
- conditions:
|
||
- condition: trigger
|
||
id: climate_state
|
||
# - condition: template
|
||
# value_template: '{{ states(current_page) == page_climate }}'
|
||
# - condition: template
|
||
# value_template: '{{ climate_optimistic == false }}'
|
||
sequence:
|
||
- choose:
|
||
### current page is climate ###
|
||
- conditions: '{{ states(current_page) == page_climate }}'
|
||
sequence:
|
||
- variables:
|
||
heating_state: >-
|
||
{%- if trigger.event.data.new_state.state == "off" -%} {{ off_mui }}
|
||
{%- elif trigger.event.data.new_state.state != "off" -%} {{ on_mui }}
|
||
{%- endif -%}
|
||
heating_bt_pic: >-
|
||
{%- if trigger.event.data.new_state.state == "off" -%} {{ heating_bt_pic_off }}
|
||
{%- else -%} {{ heating_bt_pic_on }}
|
||
{%- endif -%}
|
||
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: current_temp
|
||
message: "{{ trigger.event.data.new_state.attributes.current_temperature | round(1)}}°"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: heating_state
|
||
message: "{{heating_state}}"
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: heating_bt_pic.pic={{ heating_bt_pic }}
|
||
- if:
|
||
- condition: template
|
||
value_template: '{{ trigger.event.data.new_state.state != "off" }}'
|
||
then:
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "{{trigger.event.data.new_state.attributes.temperature | round(1)}}"
|
||
else:
|
||
- service: "{{ command_thermostat_cycle }}"
|
||
data:
|
||
value: "0"
|
||
- service: "{{ command_text_printf }}"
|
||
data:
|
||
component: target_temp
|
||
message: " "
|
||
|
||
### current page is home ###
|
||
- conditions: '{{ states(current_page) == page_home }}'
|
||
sequence:
|
||
- variables:
|
||
top_menu_climate: >-
|
||
{%- if trigger.event.data.new_state.state == "heat" and trigger.event.data.new_state.attributes.hvac_action is defined and trigger.event.data.new_state.attributes.hvac_action == "heating" -%} {{ heat_pic_on }}
|
||
{%- elif trigger.event.data.new_state.state == "heat" -%} {{ thermostat_pic_on }}
|
||
{%- else -%} {{ top_menu_blank }}
|
||
{%- endif -%}
|
||
- service: "{{ command_printf }}"
|
||
data:
|
||
cmd: home.icon_top_03.pic={{ top_menu_climate }}
|
||
|
||
|
||
|
||
#############################################################
|
||
##### CLOSE - Action #####
|
||
############################################################# |