Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save agasy18/4b7706ec940ddc4595188acad3dfa477 to your computer and use it in GitHub Desktop.
Save agasy18/4b7706ec940ddc4595188acad3dfa477 to your computer and use it in GitHub Desktop.
fix second trigger as trigger_variables was not defined
# # based on: https://community.home-assistant.io/t/tuya-radiator-valve-ts0601-calibration-from-external-sensor-via-zigbee2mqtt/337991
# # alternative: https://community.home-assistant.io/t/sync-trv-with-external-tempature-sensor/298024
blueprint:
name: Temperature Calibration
description: Temperature calibration for Zigbee valve TS0601, according to external temperature sensor
domain: automation
input:
valve:
name: Smart Valve
selector:
entity:
domain: climate
temp_sensor:
name: Temperature Sensor
selector:
entity:
domain: sensor
device_class: temperature
variables:
valve: !input valve
temp_sensor: !input temp_sensor
trigger_variables:
valve: !input valve
temp_sensor: !input temp_sensor
trigger:
- platform: time_pattern
minutes: "/10"
- platform: template
value_template: "{{ ( state_attr(valve, 'current_temperature')|float - states(temp_sensor)|float)|abs > 0.25 }}"
for: "00:00:02"
condition:
condition: and
conditions:
- condition: template
value_template: "{{ states(temp_sensor) != 'unavailable' }}"
- condition: template
value_template: "{{ states(temp_sensor) != 'unknown' }}"
- condition: template
value_template: "{{states(temp_sensor)|float(0) | round(1,'half') - (state_attr(valve,'current_temperature')|float(0) | round(1, 'half') - state_attr(valve,'local_temperature_calibration')|float(0) | round(1, 'half')) != state_attr(valve, 'local_temperature_calibration')|float(0) | round(1, 'half')}}"
action:
- service: mqtt.publish
data_template:
topic: "zigbee2mqtt/{{valve.split('.')[1]}}/set/local_temperature_calibration"
payload_template: >-
{{states(temp_sensor)|float(0) | round(1,'half') - (state_attr(valve,'current_temperature')|float(0) | round(1, 'half') - state_attr(valve,'local_temperature_calibration')|float(0) | round(1, 'half'))}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment