111
blueprint.yaml
111
blueprint.yaml
@@ -6,6 +6,8 @@ blueprint:
|
||||
name: NSPanel Configuration
|
||||
description: v2.0.0 - Configuration and synchronization NSpanele via Blueprint
|
||||
domain: automation
|
||||
homeassistant:
|
||||
min_version: 2022.11.1
|
||||
input:
|
||||
|
||||
##### MAIN NAME #####
|
||||
@@ -127,6 +129,12 @@ blueprint:
|
||||
selector:
|
||||
entity:
|
||||
domain: climate
|
||||
climate_optimistic:
|
||||
name: Climate control optimistic mode (BUGGY!)
|
||||
default: false
|
||||
description: Depends on your climate device and HA-Integration. If optimisitc mode is *off* then changes are made wait for response from device. This can cause delays. If *on* we assume changes are set and update the display immediately.
|
||||
selector:
|
||||
boolean:
|
||||
|
||||
##### HARDWARE BUTTONS #####
|
||||
left_button_entity:
|
||||
@@ -732,7 +740,7 @@ trigger_variables:
|
||||
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 }}_current_page"
|
||||
current_page: "sensor.{{ nspanel_name_trigger }}_currentpage"
|
||||
hotwatercharge: !input "hotwatercharge"
|
||||
heatingsystemflame: !input "heatingsystemflame"
|
||||
@@ -767,6 +775,7 @@ variables:
|
||||
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"
|
||||
@@ -2683,11 +2692,19 @@ action:
|
||||
then:
|
||||
- variables:
|
||||
current_setpoint: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: '{{ climate_optimistic == true }}'
|
||||
then:
|
||||
- service: "{{ command_thermostat_cycle }}"
|
||||
data:
|
||||
value: "{{ current_setpoint -1 }}"
|
||||
- service: climate.set_temperature
|
||||
data:
|
||||
entity_id: !input climate
|
||||
#hvac_mode: 'heat'
|
||||
temperature: "{{ current_setpoint -1 }}"
|
||||
|
||||
|
||||
##### Page Climatesettings - increasetemp #####
|
||||
- conditions: '{{ trigger.event.data.new_state.state == "releaseincreasetemp" }}'
|
||||
@@ -2698,12 +2715,73 @@ action:
|
||||
then:
|
||||
- variables:
|
||||
current_setpoint: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: '{{ climate_optimistic == true }}'
|
||||
then:
|
||||
- service: "{{ command_thermostat_cycle }}"
|
||||
data:
|
||||
value: "{{ current_setpoint +1 }}"
|
||||
- service: climate.set_temperature
|
||||
data:
|
||||
entity_id: !input climate
|
||||
#hvac_mode: 'heat'
|
||||
temperature: "{{ current_setpoint +1 }}"
|
||||
|
||||
##### 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.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider3" -%} 14.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider4" -%} 15.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider5" -%} 15.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider6" -%} 16.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider7" -%} 16.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider8" -%} 17.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider9" -%} 17.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider10" -%} 18.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider11" -%} 18.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider12" -%} 19.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider13" -%} 19.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider14" -%} 20.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider15" -%} 20.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider16" -%} 21.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider17" -%} 21.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider18" -%} 22.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider19" -%} 22.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider20" -%} 23.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider21" -%} 23.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider22" -%} 24.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider23" -%} 24.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider24" -%} 25.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider25" -%} 25.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider26" -%} 26.0
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider27" -%} 26.5
|
||||
{%- elif trigger.event.data.new_state.state == "climateslider28" -%} 27.0
|
||||
{%- endif -%}
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: '{{ climate_optimistic == true }}'
|
||||
then:
|
||||
- service: "{{ command_thermostat_cycle }}"
|
||||
data:
|
||||
value: "{{ new_setpoint }}"
|
||||
- service: climate.set_temperature
|
||||
data:
|
||||
entity_id: !input climate
|
||||
#hvac_mode: 'heat'
|
||||
temperature: "{{ new_setpoint }}"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4233,7 +4311,6 @@ action:
|
||||
alias: 'climate page'
|
||||
sequence:
|
||||
- variables:
|
||||
# target_temp: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||||
hvac_mode: "{{ states(climate) }}"
|
||||
outdoor_temp: >-
|
||||
{%- if outdoortemp is match "sensor." -%} {{ states(outdoortemp) |round(0) }}
|
||||
@@ -4259,21 +4336,21 @@ action:
|
||||
then:
|
||||
- variables:
|
||||
target_temp: "{{state_attr(climate, 'temperature') | round(1)}}"
|
||||
- service: "{{ command_text_printf }}"
|
||||
data:
|
||||
component: target_temp
|
||||
message: "{{target_temp}}°"
|
||||
# - service: "{{ command_text_printf }}"
|
||||
# data:
|
||||
# component: target_temp
|
||||
# message: "{{target_temp}}°"
|
||||
- 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_thermostat_cycle }}"
|
||||
data:
|
||||
value: "0"
|
||||
|
||||
- service: "{{ command_text_printf }}"
|
||||
data:
|
||||
@@ -4399,6 +4476,8 @@ action:
|
||||
id: climate_state
|
||||
- condition: template
|
||||
value_template: '{{ states(current_page) == page_climate }}'
|
||||
- condition: template
|
||||
value_template: '{{ climate_optimistic == false }}'
|
||||
sequence:
|
||||
- variables:
|
||||
heating_state: >-
|
||||
@@ -4424,21 +4503,21 @@ action:
|
||||
- condition: template
|
||||
value_template: '{{ trigger.event.data.new_state.state != "off" }}'
|
||||
then:
|
||||
- service: "{{ command_text_printf }}"
|
||||
data:
|
||||
component: target_temp
|
||||
message: "{{trigger.event.data.new_state.attributes.temperature | round(1)}}°"
|
||||
# - service: "{{ command_text_printf }}"
|
||||
# data:
|
||||
# component: target_temp
|
||||
# message: "{{trigger.event.data.new_state.attributes.temperature | round(1)}}°"
|
||||
- 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: " "
|
||||
- service: "{{ command_thermostat_cycle }}"
|
||||
data:
|
||||
value: "0"
|
||||
|
||||
|
||||
|
||||
|
||||
21
esphome.yaml
21
esphome.yaml
@@ -50,6 +50,7 @@ external_components:
|
||||
##### ESPHOME CONFIGURATION #####
|
||||
esphome:
|
||||
name: ${device_name}
|
||||
min_version: 2022.10.2
|
||||
|
||||
##### TYPE OF ESP BOARD #####
|
||||
esp32:
|
||||
@@ -311,6 +312,8 @@ api:
|
||||
id(disp1).send_command_printf("climate_left.pic=%i", left);
|
||||
id(disp1).send_command_printf("climate_middle.pic=%i", mid);
|
||||
id(disp1).send_command_printf("climate_right.pic=%i", right);
|
||||
// send target-temp
|
||||
id(disp1).set_component_text_printf("target_temp", "%.1f°", value);
|
||||
|
||||
|
||||
##### START - GLOBALS CONFIGURATION #####
|
||||
@@ -406,15 +409,15 @@ binary_sensor:
|
||||
- switch.toggle: sleep_modus
|
||||
|
||||
##### Hotwater Charge #####
|
||||
- platform: nextion
|
||||
name: ${device_name} Hotwater Charge
|
||||
page_id: 6
|
||||
component_id: 20
|
||||
on_click:
|
||||
- homeassistant.service:
|
||||
service: switch.toggle
|
||||
data:
|
||||
entity_id: ${ha_hotwater_charge}
|
||||
# - platform: nextion
|
||||
# name: ${device_name} Hotwater Charge
|
||||
# page_id: 6
|
||||
# component_id: 20
|
||||
# on_click:
|
||||
# - homeassistant.service:
|
||||
# service: switch.toggle
|
||||
# data:
|
||||
# entity_id: ${ha_hotwater_charge}
|
||||
|
||||
|
||||
##### START - SENSOR CONFIGURATION #####
|
||||
|
||||
Reference in New Issue
Block a user