Drayton Wiser Home Assistant Integration

Yes this can be done.

EDIT: Sorry corrections. This is not an event but a trigger. As such, automation listens for device changing target temp. You can run something every x mins that will iterate all the rooms and check if boosted and what target temp is and correct it if above your limits.

You can listen for the event ‘current_temperature_changed’ which will provide you with the climate entity id relating to the room. You can then get whether the room is boosted from the climate entity attributes and if over a max temp, either cancel overrides or set the boost to a certain temp.

If you use the dev tools to listen to that event and boost one of your rooms, you will be able to see the data sent. PM if you want to have a stab at this and need some more help.

Sorry, let me be more helpful here.

The below will fire and event when a room gets boosted. Put this in an automation. Then you can write another automation to decide what to do when this event fires.

alias: Fire Event When Room Is Boosted
description: ""
trigger:
  - platform: event
    event_type: state_changed
    variables:
      room: "{{trigger.event.data.entity_id}}"
condition:
  - condition: template
    value_template: |-
      {% if room in integration_entities(wiser_integration)
              and room.startswith(climate_prefix)
              and not trigger.event.data.old_state.attributes.is_boosted
              and trigger.event.data.new_state.attributes.is_boosted
      %}
        True
      {% endif %}
action:
  - event: wiser_room_boosted
    event_data:
      entity_id: "{{room}}"
      old_target_temp: "{{trigger.event.data.old_state.attributes.temperature}}"
      new_target_temp: "{{trigger.event.data.new_state.attributes.temperature}}"
      boost_time_remaining: "{{trigger.event.data.new_state.attributes.boost_time_remaining}}"
trigger_variables:
  wiser_integration: wiser
  climate_prefix: climate.wiser
mode: queued
max: 25

Example of automation to listen to your event and cancel the boost. Obviously put your own conditions etc in here but to show you how to use data from event or set a variable from the entity passed and use.

alias: Cancel Boost if set
description: Listens for wiser_room_boosted event
trigger:
  - platform: event
    event_type: wiser_room_boosted
    variables:
      room: "{{trigger.event.data.entity_id}}"
      target_temp: "{{trigger.event.data.new_target_temp}}"
      schedule_temp: "{{state_attr(room, 'current_schedule_temp')|float(0)}}"
action:
  - service: climate.set_preset_mode
    data:
      preset_mode: Cancel Overrides
    target:
      entity_id: {{room}}
mode: queued
max: 10
4 Likes

That was quick! I will work my way through it. First time I have had cause to set up a remotely complex automation and looking forward to learning some more.
Many many thanks for the suggested automation approach and how to get at the various states.

I noticed the climate entities have common attributes min_temp: 5 & max_temp: 30. Presumably these are global soft limits that exist in the Wiser system. Can they be changed?

No, they are limits set by the Wiser hub. I would worry for your heating bills if you want to go above 30C! :wink:

2 Likes

There are regular arguments in our house about whether it is warm enough. I prefer it cooler and try to convince the rest it’s healthier (read cheaper)! But I was thinking more reducing max_temp and, if that’s configurable, whether it influences things in a Wiser system. e.g. as a global limit over which no associated thermostat will be set?

Thanks again for this Mark. Before seeing your solution, I thought only of handling the problem in one automation. Now I see the benefits for reuse in separating the event.
I’ve used your example automation as follows and it appears to work :slightly_smiling_face::

alias: Cap boost temperature
description: Listens for wiser_room_boosted event
trigger:
  - platform: event
    event_type: wiser_room_boosted
    variables:
      cap_temp: 23.5
      room: "{{trigger.event.data.entity_id}}"
      target_temp: "{{trigger.event.data.new_target_temp}}"
      # schedule_temp: "{{state_attr(room, 'current_schedule_temp')|float(0)}}"
condition:
  - condition: template
    value_template: |-
      {% if target_temp|float > cap_temp %}
        True
      {% endif %}
action:
  - service: climate.set_temperature
    data:
      temperature: "{{cap_temp}}"
    target:
      entity_id: "{{room}}"
mode: queued
max: 10

That’s great, glad to hear.

No, these are not settings in the hub just limits. You could use a similar approach to your boost control to reduce the temp if above your cap. That way, if set by the Wiser app it will also activate and limit it.

1 Like

Usually we would expect both iTRVs to move in that case. Keep an eye on it and see if it happens again. Also check your battery state in the app.

What we have implemented in the new version (soon to be released) is a far quicker recovery of the WiFi connection if it drops for any reason. Why the WiFi connection drops can be varied; low signal then intermittent interference (like a microwave turning on), congestion leading to the WiFi stack thinking it doesn’t have a route to the internet and not failing fast, mesh network hand-offs and channel hopping, the list is long and we have seen all of these cause issues in the data the community and others have supplied. So to address this we have a new implementation that, while some WiFi drops will still occur (due to the above), the downtime should be measured in single digit seconds which in reality will make no difference to the user experience. Our alpha testers have this build now and it’s looking good so once we have all the results we will push out an update to everyone.

6 Likes

If there is no room thermostat, it’s possible that only one radiator would come on then? If so, why is that? I have also noticed that occasionally only one of the two radiators in my Kitchen comes on. I have no room thermostat and just iTRVs in the room. Thanks.

This is due to the optimal way to read the room temperature which sounds simple, but in reality is anything but.

Within the iTRV there is a sensor that reads the room temperature and compensates, after 10’s of thousands of hours of lab testing, and 100’s of thousands of hours real world data, the real room temperature despite being a few centimetres away from a sometimes very hot, large metal heat source, your radiator. So in isolation, the iTRVs uses a complex algorithm to determine if it should open or close the valve, and often, how open or close it should be (degrees of torque) as it has a very fine grained control over how much hot or cold water will enter the radiator.

The iTRV is super accurate, but what is the gold standard of room temperature sensing, as proven by BEIS and others, is a thermostat at the right height, away from direct sunlight, and optimally placed for the entire room. So for Wiser, if someone has installed a room thermostat as per the instructions, we always take that reading regardless of the number of iTRVs in the room. So without a room thermostat the iTRVs do a very accurate, but independent job, of keeping the room temperature exactly as you want it.

Hope that helps.

5 Likes

I’m seeing far more drops on the hub since 3.2.0, I was running the beta previously.

It’s gone from every couple of days (beta improved from daily) to multiple times per day.

Updated on 24/10

The issue with the radiators in the same room not both coming on is happening again now. In my living room, which has a room thermostat and two radiators. The one nearest the thermostat is off. The one further away is on.

The iTRV of the one that is off reports 19.2 °C through the Home Assistant attribute. The iTRV of the one that is on reports 23.2 °C. The room stat reports 18.8 °C.

In the Wiser app the Living Room reports 19 °C. Both iTRVs show Green battery level. In HA they are both reporting 2.7 volts.

I’m not using HA to control the Wiser system at all - just monitor it.

that is weird… The weird bit for me is the trv with he higher temp is the one turned on… I assume the temp next to the trv is not 23.2C right (use a esphome, smartthings temp sensor etc). Maybe a hw fault?

My, “used to work in support”, solution is turn it off and on again. Have you tried removing both trvs and roomstat from the system, then adding them again…

Anyone else receive this?

2 Likes

Yes. Interesting….lighting control maybe?

Yep - perhaps they are bringing out black coloured iTRVs :thinking:

Or maybe just dark mode in the app!!

2 Likes

Haha. Yep it’s probably more likely that…

you are a VIP for Schneider :wink:
Light is coming in UK ?

1 Like