diff --git a/blueprint.yaml b/blueprint.yaml index 324b664..03898f0 100644 --- a/blueprint.yaml +++ b/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" diff --git a/esphome.yaml b/esphome.yaml index 3f07e16..5e2edeb 100644 --- a/esphome.yaml +++ b/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 #####