Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Config.yaml:
- climate:
- #
- - platform: mqtt
- modes:
- - "off"
- - "heat"
- name: Dormitor HVAC
- current_temperature_topic: "HVAC/dormitor/ct"
- mode_command_topic: "HVAC/dormitor/mode/set"
- temperature_command_topic: "HVAC/dormitor/st"
- min_temp: 12
- max_temp: 26
- value_template: "{{ value }}"
- temp_step: 0.5
- #
- - platform: mqtt
- modes:
- - "off"
- - "heat"
- name: Copii HVAC
- current_temperature_topic: "HVAC/copii/ct"
- mode_command_topic: "HVAC/copii/mode/set"
- temperature_command_topic: "HVAC/copii/st"
- min_temp: 12
- max_temp: 26
- value_template: "{{ value }}"
- temp_step: 0.5
- #
- - platform: mqtt
- modes:
- - "off"
- - "heat"
- name: Sufragerie HVAC
- current_temperature_topic: "HVAC/sufragerie/ct"
- mode_command_topic: "HVAC/dormitor/sufragerie/set"
- temperature_command_topic: "HVAC/sufragerie/st"
- min_temp: 12
- max_temp: 26
- value_template: "{{ value }}"
- temp_step: 0.5
- #
- binary_sensor:
- #
- - platform: mqtt
- name: copii_geam
- state_topic: 'zigbee2mqtt/Copii_geam'
- value_template: "{{ value_json.contact }}"
- payload_on: false
- payload_off: true
- qos: 0
- retain: true
- #
- - platform: mqtt
- name: dormitor_geam
- state_topic: 'zigbee2mqtt/Dormitor_geam'
- value_template: "{{ value_json.contact }}"
- payload_on: false
- payload_off: true
- qos: 0
- retain: true
- #
- - platform: mqtt
- name: sufragerie_geam
- state_topic: 'zigbee2mqtt/Sufragerie_geam'
- value_template: "{{ value_json.contact }}"
- payload_on: false
- payload_off: true
- qos: 0
- retain: true
- #
- Automations:
- #
- - alias: temp_dormitor
- trigger:
- - platform: state
- entity_id: sensor.0x00158d000465809a_temperature
- action:
- service: mqtt.publish
- data:
- payload: "{{ states('sensor.0x00158d000465809a_temperature') }}"
- topic: "HVAC/dormitor/ct"
- qos: 0
- retain: true
- #
- - alias: temp_copii
- trigger:
- - platform: state
- entity_id: sensor.0x00158d000464b329_temperature
- action:
- service: mqtt.publish
- data:
- payload: "{{ states('sensor.0x00158d000464b329_temperature') }}"
- topic: "HVAC/copii/ct"
- qos: 0
- retain: true
- #
- - alias: temp_sufragerie
- trigger:
- - platform: state
- entity_id: sensor.0x00158d00045d01f4_temperature
- action:
- service: mqtt.publish
- data:
- payload: "{{ states('sensor.0x00158d00045d01f4_temperature') }}"
- topic: "HVAC/sufragerie/ct"
- qos: 0
- retain: true
- #
- - alias: trv_copii
- trigger:
- - platform: state
- entity_id: climate.copii_hvac, sensor.0x00158d000464b329_temperature, binary_sensor.copii_geam
- action:
- - service: mqtt.publish
- data:
- payload_template: >-
- {% set targetTemp = state_attr('climate.copii_hvac', 'temperature') %}
- {% set currentTemp = states('sensor.0x00158d000464b329_temperature') %}
- {% set window = states('binary_sensor.copii_geam') %}
- {% if targetTemp == None or currentTemp == None or currentTemp == 'unknown' or window == None %}
- {{ {"system_mode": "heat"} }}
- {% else %}
- {% if targetTemp|float > currentTemp|float and window == 'off' %}
- {{ {"system_mode": "heat"} }}
- {% else %}
- {{ {"system_mode": "off"} }}
- {% endif %}
- {% endif %}
- topic: "zigbee2mqtt/Copii/set"
- - event: FIRE_OT_RECALC_EVENT
- #
- - alias: trv_dormitor
- trigger:
- - platform: state
- entity_id: climate.dormitor_hvac, sensor.0x00158d000465809a_temperature, binary_sensor.dormitor_geam
- action:
- - service: mqtt.publish
- data:
- payload_template: >-
- {% set targetTemp = state_attr('climate.dormitor_hvac', 'temperature') %}
- {% set currentTemp = states('sensor.0x00158d000465809a_temperature') %}
- {% set window = states('binary_sensor.dormitor_geam') %}
- {% if targetTemp == None or currentTemp == None or currentTemp == 'unknown' or window == None %}
- {{ {"system_mode": "heat"} }}
- {% else %}
- {% if targetTemp|float > currentTemp|float and window == 'off' %}
- {{ {"system_mode": "heat"} }}
- {% else %}
- {{ {"system_mode": "off"} }}
- {% endif %}
- {% endif %}
- topic: "zigbee2mqtt/Dormitor/set"
- - event: FIRE_OT_RECALC_EVENT
- #
- - alias: trv_sufragerie
- trigger:
- - platform: state
- entity_id: climate.sufragerie_hvac, sensor.0x00158d00045d01f4_temperature, binary_sensor.sufragerie_geam
- action:
- - service: mqtt.publish
- data:
- payload_template: >-
- {% set targetTemp = state_attr('climate.sufragerie_hvac', 'temperature') %}
- {% set currentTemp = states('sensor.0x00158d00045d01f4_temperature') %}
- {% set window = states('binary_sensor.sufragerie_geam') %}
- {% if targetTemp == None or currentTemp == None or currentTemp == 'unknown' or window == None %}
- {{ {"system_mode": "heat"} }}
- {% else %}
- {% if targetTemp|float > currentTemp|float and window == 'off' %}
- {{ {"system_mode": "heat"} }}
- {% else %}
- {{ {"system_mode": "off"} }}
- {% endif %}
- {% endif %}
- topic: "zigbee2mqtt/Sufragerie/set"
- - event: FIRE_OT_RECALC_EVENT
- #
- - alias: OpenTherm Calculation
- trigger:
- - platform: event
- event_type: FIRE_OT_RECALC_EVENT
- action:
- - service: mqtt.publish
- data:
- payload_template: >-
- {% set targetTemp1 = state_attr('climate.dormitor_hvac', 'temperature') %}
- {% set currentTemp1 = states('sensor.0x00158d000465809a_temperature') %}
- {% set window1 = states('binary_sensor.dormitor_geam') %}
- {% set targetTemp2 = state_attr('climate.copii_hvac', 'temperature') %}
- {% set currentTemp2 = states('sensor.0x00158d000464b329_temperature') %}
- {% set window2 = states('binary_sensor.copii_geam') %}
- {% set targetTemp3 = state_attr('climate.sufragerie_hvac', 'temperature') %}
- {% set currentTemp3 = states('sensor.0x00158d00045d01f4_temperature') %}
- {% set window3 = states('binary_sensor.sufragerie_geam') %}
- {% if targetTemp1|float > currentTemp1|float and window1 == 'off' %}
- {% set result1 = targetTemp1 %}
- {% else %}
- {% set result1 = '30' %}
- {% endif %}
- {% if targetTemp2|float > currentTemp2|float and window2 == 'off' %}
- {% set result2 = targetTemp2 %}
- {% else %}
- {% set result2 = '30' %}
- {% endif %}
- {% if targetTemp3|float > currentTemp3|float and window3 == 'off' %}
- {% set result3 = targetTemp3 %}
- {% else %}
- {% set result3 = '30' %}
- {% endif %}
- {% if result1 == [result1|float, result2|float, result3|float]|min and result1 < 30 %}
- {% set result = (targetTemp1,currentTemp1|float) %}
- {% else %}
- {% if result2 == [result1|float, result2|float, result3|float]|min and result2 < 30 %}
- {% set result = (targetTemp2,currentTemp2|float) %}
- {% else %}
- {% if result3 == [result1|float, result2|float, result3|float]|min and result3 < 30 %}
- {% set result = (targetTemp3,currentTemp3|float) %}
- {% else %}
- {% set result = (1.0,20.0) %}
- {% endif%}
- {% endif %}
- {% endif %}
- {{ result }}
- topic: "HVAC/otresult"
- retain: true
- #
- - alias: OpenTherm Force Recalc
- trigger:
- - platform: time_pattern
- seconds: "/20"
- action:
- - event: FIRE_OT_RECALC_EVENT
- #
- - alias: OpenTherm Send
- trigger:
- - platform: mqtt
- topic: "HVAC/otresult"
- action:
- - service: mqtt.publish
- data: trigger.data.split(',')[0]
- topic: "opentherm-thermostat/setpoint-temperature/set"
- retain: false
- qos: 0
- - service: mqtt.publish
- data: trigger.data.split(',')[1]
- topic: "opentherm-thermostat/current-temperature/set"
- retain: false
- qos: 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement