šŸ”„ šŸŒ”ļøTado Offset adjustment (Zigbee thermometers, Start/End times, Switch for only when HEAT)

Hi DLLFPP, thanks for this blueprint. I will check it out. Did you just update this blueprint? Do you use this blueprint in combination with better thermostat or the advanced heating control blueprint?

Hi!
Iā€™ve been using this blueprint since last cold season but only now I had the idea of sharing it because I thought it was worth it.
I personally use Tado app for scheduling so thatā€™s why I needed an external offset.

Thanks!
Got it to work!

1 Like

Great blueprint. Saves me a lot of templating/testing.
But there is one remark I want to make. The switch was not working in my setup (Tado). After some investigation I found out that the blueprint is checking the state to be ā€˜heatā€™. But as I use the tado app to set up the time schedules, the state of my climate entity stays on ā€˜autoā€™. So the switch in the template does never get triggered.
Therefor I changed the blueprint to check the attribute ā€˜hvac_actionā€™ to be ā€˜heatingā€™.

- condition: template
  value_template: '{{ enable_switch == false }}'
- condition: and
  conditions:
  - condition: template
    value_template: '{{ enable_switch == true }}'
  - condition: state
    entity_id: !input entity_to_update
    attribute: hvac_action
    state: heating
1 Like

Thanks, awesome example of how the community helps and supports each other members.
Iā€™ve updated my GitHub code (see details), you can just re-add the blueprint and overwrite it.
I suggest the same to all of those who downloaded the bp to proceed and update it again.
Thanks!

This automation blueprint is exactly what Iā€™ve been looking for / trying to create. So thank you for sharing.

I do have an issue I canā€™t solve though, if anyone can help.

I have set the automation for my Tado system, when ever I run the trace, I get True/True and a offset figureā€¦ but then the offset of the tado never updates and the temps in the tado app donā€™t match my Zigbee 2ā€™s

I being trying to solve this for a while now, but Iā€™m not getting anywhere. Can anyone help me please.

Thanks.

1 Like

Have you ever tried to run the offset update action manually with a static value, just to see if your Tado integration works correctly? Iā€™m not having this issue honestly.

Iā€™ve recently updated the BP so, just in case, try and add it again so if you have an older version you get the latest code.
Let me know!

Iā€™m running into the same problem as David.buck.
I tried the action in de developers tools as you suggested, that works fine. It looks like the BP doesnā€™t execute the set offset action somehow.

I copied the last part of your code on your Github en replaced it for the code in the BP I downloaded, now it is working as expected.

Code Github:
action:

  • if:
    • condition: numeric_state
      entity_id:
      • !input sensor_to_monitor
      • !input entity_to_update
        value_template: ā€œ{{ (states(sensor_to_monitor)|float - state_attr(entity_to_update, ā€˜current_temperatureā€™)|float)|abs }}ā€
        above: !input threshold
        then:
    • service: tado.set_climate_temperature_offset
      data:
      offset: ā€œ{{( state_attr(entity_to_update, ā€˜offset_celsiusā€™)|float if state_attr(entity_to_update, ā€˜offset_celsiusā€™) is not none else 0 ) + ((states(sensor_to_monitor)|float - state_attr(entity_to_update, ā€˜current_temperatureā€™)|float) if states(sensor_to_monitor) is not none and state_attr(entity_to_update, ā€˜current_temperatureā€™) is not none else 0 ) | round(1)}}ā€
      target:
      entity_id: !input entity_to_update

trace:
stored_traces: 96

Code BP:
action:

  • if:
    • condition: numeric_state
      entity_id:
      • !input sensor_to_monitor
      • !input entity_to_update
        value_template: ā€œ{{ (states(sensor_to_monitor)|float - state_attr(entity_to_update, ā€˜current_temperatureā€™)|float)|abs }}ā€
        above: !input threshold
        then:
    • service: tado.set_climate_temperature_offset
      data:
      offset: ā€œ{{( state_attr(entity_to_update, ā€˜offset_celsiusā€™)|float if state_attr(entity_to_update, ā€˜offset_celsiusā€™) is not none else 0 ) + ((states(sensor_to_monitor)|float - state_attr(entity_to_update, ā€˜current_temperatureā€™)|float) if states(sensor_to_monitor) is not none and state_attr(entity_to_update, ā€˜current_temperatureā€™) is not none else 0 ) | round(1)}}ā€
      target:
      entity_id: !input entity_to_update

trace:
stored_traces: 96

Thatā€™s crazy because itā€™s the very same codeā€¦

Thanks both of you. Iā€™m glad itā€™s not just me doing something wrong.

I would like to try this and copy the code as suggested. Where would I do this, Iā€™m not a coder and do everything via the GUI.

Should I update the BP code or the automation code? Also would you mind telling me how.

Thanks again.

Iā€™ve actually just got it to work, I had added the radiator thermostat entity to the automation, and after some trial and error in the Dev tool area, I found I needed to add the room climate entity. All
5 rooms now work perfectly and have updated offsets. First time theyā€™ve ever read the right temp on the Tado app. :wink:

Thanks for your help and a great Blueprint.

1 Like

Thanks for the blueprint, thatā€™s exactly what I was looking for to avoid using Better Thermostat.
Iā€™ll see how well the blueprint works as it is, but for now Iā€™ve converted it to customise it myself.
What would be desirable is to be able to customise the 15min trigger in the blueprint.
I myself want it to trigger every 60 minutes.

One question:
What are the checks enable_switch == false and enable_switch == true for?

The switch makes the automation run based on the condition:

attribute:hvac_action
state: heating

If turned on, the automation will run only when the heating is active (this to save unnecessary offset calibration when radiator is off). When off, automation will run even when hvac is on off/auto, always still within time ranges defined in the blueprint.

Fot what concerns timing, I tried to let users specify but couldnā€™t get through it. Since it was done a long time ago, Iā€™ll have a look soon.

:rocket: UPDATE: 3.0

Bug fixes:
None

New features:
- Added the possibility to change the frequency of the offset to be calibrated for each automation (before 15 minutes was hardcoded).

Thanks @TDCroPower for the suggestion (here):

Donā€™t forget to re-download this blueprint to update your local file!

1 Like

My bad, I copied the same code twiceā€¦
But anyway, I donā€™t know why my imported blueprint had a different code for action, but I doesnā€™t matter. I re-downloaded your newest version and it works perfect! Thanks so much!!

1 Like

Thanks for the blueprint! Iā€™m playing around with it now but canā€™t seem to get the offset to update (Presume I should be able to see the offset change within the tado app?)

Seems like everything is being fired so not sure where Iā€™m gone wrong, any ideas?

P.s Iā€™m on the new Tado X system.

if
Executed: 21 December 2024 at 15:26:20
Result:
result: true
if/condition/0
[If Outdoor temperature and Loft Smart Radiator Thermostat X are above 1]
Executed: 21 December 2024 at 15:26:20
Result:
result: true
if/condition/0/entity_id/0
[Unknown condition]
Executed: 21 December 2024 at 15:26:20
Result:
result: true
state: 4.210000000000001
if/condition/0/entity_id/1
[Unknown condition]
Executed: 21 December 2024 at 15:26:20
Result:
result: true
state: 4.210000000000001

Huhā€¦I suppose thatā€™s the problem here.
Most likely the system is speaking a different language than mine, but unfortunately I donā€™t have therefore I cannot test/fix anything on this, Iā€™m sorryā€¦

Take a look here Using tadoĀ° Smart Thermostat X through Matter - #122 by TDCroPower

It looks like this user has accomplished your need with this blueprint, on TadoX evironment.

it works with the tado X devices, but you should note that it takes some time until the value is actually set in the tado system.

Is anyone aware of any downsides to setting the interval really short (~2mins) ? I have a few rooms where the sensors drift very quickly at certain times of day.