diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..277feeb Binary files /dev/null and b/.DS_Store differ diff --git a/blueprint.yaml b/blueprint.yaml index f0cae2f..cfe0571 100644 --- a/blueprint.yaml +++ b/blueprint.yaml @@ -8,13 +8,14 @@ blueprint: domain: automation input: nspanel_name: - name: NSPanel Name - description: Name NSPanel. Esphome Dive Name is "Nspanel Buero" then HA make it the entity name "nspanel_buero". So nspanel_buero must be entered here. The correct name can also be found if you search for "last_click" under Entities -> sensor.nspanel_buero_last_click + name: ESPhome Node Name + description: 'Here you have to enter the exact same name "node_name" as in the ESPHome file. Example nspanel_name' + default: [nspanel_name] selector: text: {} language: - name: Language for NSPanel (coming soon) - description: select your language for the values on the NSPanel display + name: Language for NSPanel + description: 'select your language for the NSPanel Display' selector: select: options: @@ -22,19 +23,19 @@ blueprint: - EN tft_path: name: Nextion TFT File Folder for the service Folder Watcher - description: 'TFT Path where the Nextion TFT File is stored (same NSPanel as **"last click"**) Example *"/config/www/nspanel/buero/nspanel_buero.tft"*' - default: /config/www/nspanel/buero/nspanel_buero.tft + description: 'TFT Path where the Nextion TFT File is stored ESPHome Example *"/config/www/nspanel/nspanel.tft"* Attention! The folder watcher must also be configured in the configuration.yaml. Only needed for manual upload of the TFT file. See HowTo' + default: [/config/www/nspanel/nspanel.tft] selector: text: {} delay: name: Delay to avoid sync problems (coming soon) - description: When switching pages, synchronization problems may occur due to the network / WLAN. To avoid this problem enter your value for the delay (milliseconds) - default: [] + description: 'Synchronization Problems may occur due to the NETWORK / WLAN. To avoid this problem enter your value for the delay (milliseconds)' + default: [10] selector: text: {} sync_value_ha: - name: Synchronization of the values in the Light Settings and Cover Settings submenus - description: This means that if the Light Settings or Cover Settings submenu is open and the state is changed via HA - the changes to the Brightness and Tempcolor values are changed immediately. -> Causes numbers jumps + name: Synchronization of all values from HA to NSPanel for Lightsetting and Coversetting Page. + description: 'Synchronization of values between HA and NSPanel for Lightsetting and Coversetting Page -> Maybe causes number jumps' default: 'No' selector: select: @@ -44,8 +45,8 @@ blueprint: - label: 'Yes' value: select_yes sync_slider_ha: - name: Synchronization of the Slider in the Light Settings and Cover Settings submenus - description: This means that if the Light Settings or Cover Settings submenu is open and the state is changed via HA - the changes to the Brightness and Tempcolor sliders are changed immediately. -> Causes flickering on the slider + name: Synchronization of all Sliders from HA to NSPanel for LIGHTSETTING and COVERSETTING Page. + description: 'Synchronization of sliders between HA and NSPanel for Lightsetting and Coversetting Page -> Maybe causes flickering on the Slider' default: 'No' selector: select: @@ -55,8 +56,8 @@ blueprint: - label: 'Yes' value: select_yes weather: - name: Weather Integration (coming soon) - description: select our Weather Integration + name: Weather Integration + description: 'select our Weather Integration' selector: select: options: @@ -64,13 +65,13 @@ blueprint: - AccuWeather accuweather: name: Name assigned to the AccuWeather Integration (Optional) - description: Name assigned to the AccuWeather Integration. For Example - Accuweather Intergations name is Home Weather -> Then please write * home_weather * in it. You can find the needed value in your entities + 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 is *"Home"* Weather then please write *"home_weather"*' default: [] selector: text: {} outdoortemp: name: Outdoor Temperature Sensor (Optional) - description: select the Temperature Sensor. If no outdoor sensor available write "default" or "accuweather" to use the outdoor temperature of the selected Weather Integration. This value is displayed on the Home Page an Thermostat Page + description: 'If no outdoor sensor is available, leave the field empty. If this field is not filled in, the outdoor temperature will be taken from your selected weather integration. If an entity is selected, the value is displayed on the *"Home Page"* and *"Thermostat Page"*' default: [] selector: entity: @@ -78,7 +79,7 @@ blueprint: - sensor humidity: name: Humidity Sensor (Optional) - description: select the humidity Sensor. This value is displayed on the Home Page + description: 'If an entity is selected, the value is displayed on the *"Home Page"*' default: [] selector: entity: @@ -86,7 +87,7 @@ blueprint: - sensor hotwatertemp: name: Hot Water Temperature Sensor (Optional) - description: select the hot water Sensor. This value is displayed on the Home Page an Thermostat Page + description: 'If an entity is selected, the value is displayed on the *"Home Page"* and *"Thermostat Page"*' default: [] selector: entity: @@ -94,7 +95,7 @@ blueprint: - sensor left_button_entity: name: Left Button (Optional) - description: Left Hardware Button - Select the entity that should be switched + description: 'Left Hardware Button - Select the entity that should be switched' default: [] selector: entity: @@ -103,9 +104,16 @@ blueprint: - 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 + description: 'Right Hardware Button - Select the entity that should be switched' default: [] selector: entity: @@ -114,6 +122,12 @@ blueprint: - switch - input_boolean - cover + right_button_name: + name: Name "Right Button" (Optional) + description: 'Right Button label - 10 characters are supported' + default: [] + selector: + text: {} ##### Button ##### entity01: @@ -686,32 +700,42 @@ trigger_variables: entity_long_trigger: "{{ entity_long }}" variables: + ##### GENERAL ##### nspanel_name: !input "nspanel_name" + time: "{{ (as_timestamp(now()) | timestamp_custom('%H:%M')) }}" + weather: !input "weather" + 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" - tft_upload: "esphome.{{ nspanel_name }}_upload_tft" - tft_path: !input "tft_path" - humidity: !input "humidity" - hotwatertemp: !input "hotwatertemp" - outdoortemp: !input "outdoortemp" - time: "{{ (as_timestamp(now()) | timestamp_custom('%H:%M')) }}" - weather: !input "weather" - language: !input "language" - left_button_entity: !input "left_button_entity" - right_button_entity: !input "right_button_entity" - # Sync Settings + ###### 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" + ##### TFT UPLOAD ##### + tft_upload: "esphome.{{ nspanel_name }}_upload_tft" + tft_path: !input "tft_path" - # Icons Mapping + ##### GENERAL ENTITYS ##### + humidity: !input "humidity" + hotwatertemp: !input "hotwatertemp" + outdoortemp: !input "outdoortemp" + + #### 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 ##### cover_pic_closed: "106" cover_pic_open: "107" battery_icon: "108" @@ -744,7 +768,7 @@ variables: weather_icon_lightning: "62" weather_icon_wind: "63" - # color for buttons + ###### NEXTION COLOR BUTTON DESIGN ##### button_light_off: "90" button_light_on: "91" button_switch_off: "92" @@ -754,42 +778,42 @@ variables: button_color_1: "65535" button_color_2: "10597" - ##### Date - DE ##### + ##### DATE - DE ##### date01_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,') }}" date02_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,') }}" date03_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,') }}" date04_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,') }}" date05_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,') }}" - ##### Date - EN ##### + ##### DATE - EN ##### date01_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,') }}" date02_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,') }}" date03_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,') }}" date04_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,') }}" date05_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,') }}" - ##### Day - DE ##### + ##### DAY WEATHER FORCAST - DE ##### day01_de: "Heute" day02_de: "Morgen" day03_de: "in 2 Tagen" day04_de: "in 3 Tagen" day05_de: "in 4 tagen" - ##### Day - EN ##### + ##### DAY WEATHER FORCAST - EN ##### day01_en: "Today" day02_en: "Tomorrow" day03_en: "in 2 Days" day04_en: "in 3 Days" day05_en: "in 4 Days" - ##### Meteorologisk HA Default ##### + ##### WEATHER INTEGRATION - METEOROLOGISK HA DEFAULT ##### ha_weather: "weather.home" - ##### AccuWeather ##### + ##### WEATHER INTEGRATION _ ACCUWEATHER ##### accuweather: !input "accuweather" accuweather_value: "weather.{{ accuweather }}" - ##### Forcast Day 0 Accuweather ##### + ##### 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" @@ -798,7 +822,7 @@ variables: accuweather_thunderstorm_probability_night_0d: "sensor.{{ accuweather }}_thunderstorm_probability_night_0d" accuweather_wind_day_0d: "sensor.{{ accuweather }}_wind_day_0d" accuweather_wind_night_0d: "sensor.{{ accuweather }}_wind_night_0d" - ##### Forcast Day 1 AccuWeather ##### + ##### 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" @@ -807,7 +831,7 @@ variables: accuweather_thunderstorm_probability_night_1d: "sensor.{{ accuweather }}_thunderstorm_probability_night_1d" accuweather_wind_day_1d: "sensor.{{ accuweather }}_wind_day_1d" accuweather_wind_night_1d: "sensor.{{ accuweather }}_wind_night_1d" - ##### Forcast Day 2 AccuWeather ##### + ##### 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" @@ -816,7 +840,7 @@ variables: accuweather_thunderstorm_probability_night_2d: "sensor.{{ accuweather }}_thunderstorm_probability_night_2d" accuweather_wind_day_2d: "sensor.{{ accuweather }}_wind_day_2d" accuweather_wind_night_2d: "sensor.{{ accuweather }}_wind_night_2d" - ##### Forcast Day 3 AccuWeather ##### + ##### 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" @@ -825,7 +849,7 @@ variables: accuweather_thunderstorm_probability_night_3d: "sensor.{{ accuweather }}_thunderstorm_probability_night_3d" accuweather_wind_day_3d: "sensor.{{ accuweather }}_wind_day_3d" accuweather_wind_night_3d: "sensor.{{ accuweather }}_wind_night_3d" - ##### Forcast Day 4 AccuWeather ##### + ##### 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" @@ -835,7 +859,7 @@ variables: accuweather_wind_day_4d: "sensor.{{ accuweather }}_wind_day_4d" accuweather_wind_night_4d: "sensor.{{ accuweather }}_wind_night_4d" - ##### Buttons ##### + ##### BUTTONS 1- 32 ##### entity01: !input "entity01" entity01_name: !input "entity01_name" entity02: !input "entity02" diff --git a/custom_configuration/.DS_Store b/custom_configuration/.DS_Store new file mode 100644 index 0000000..274517d Binary files /dev/null and b/custom_configuration/.DS_Store differ diff --git a/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/.vscode/settings.json b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/.vscode/settings.json new file mode 100644 index 0000000..a04b218 --- /dev/null +++ b/custom_configuration/OLD NSPanel version/NSPanel_HA_Blueprint-beta/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.yaml": "home-assistant" + } +} \ No newline at end of file diff --git a/esphome.yaml b/esphome.yaml index 1326470..4891772 100644 --- a/esphome.yaml +++ b/esphome.yaml @@ -804,6 +804,35 @@ text_sensor: ##### last click sensor, the main action variable - push to HA ##### - platform: nextion nextion_id: disp1 +<<<<<<< HEAD + name: $device_name last click + id: disp1_last_click_va + # update_interval: 50ms + component_name: lastclick + on_value: + then: + - wait_until: + switch.is_on: nextion_init + - number.set: + id: display_brightness + value: !lambda 'return string(x);' + + + + # - platform: nextion + # id: brightslider + # name: $device_name brightness Slider + # variable_name: brightslider + # internal: true + # on_value: + # then: + # - wait_until: + # switch.is_on: nextion_init + # - number.set: + # id: display_brightness + # value: !lambda 'return int(x);' + +======= name: ${device_name} Last Click id: disp1_last_click_nextion update_interval: 50ms @@ -821,6 +850,7 @@ text_sensor: - globals.set: id: lastclick_global value: !lambda return x; +>>>>>>> 629aafbba250e71a90531a9472055b2d2e19ca0c ##### last click lightsettings page, the main action variable - push to HA ##### - platform: nextion diff --git a/nspanel_buero.HMI b/nspanel.HMI similarity index 99% rename from nspanel_buero.HMI rename to nspanel.HMI index 27f7e92..21f9598 100644 Binary files a/nspanel_buero.HMI and b/nspanel.HMI differ diff --git a/nspanel_buero.tft b/nspanel.tft similarity index 99% rename from nspanel_buero.tft rename to nspanel.tft index 5647a74..609abe0 100644 Binary files a/nspanel_buero.tft and b/nspanel.tft differ