Drayton Wiser Home Assistant Integration

Does it actually boost?

All this functionality is within HA code (core and integration), so the obvious question (after have you switched it off and on again! :grinning:) is what has changed? Any upgrades performed?

Hi Mark, yes, it does boost - the trigger just wasnā€™t fired.

And no, there were no changes I can think of that would have caused it to stop working. No updates or reboots.

However, I have now changed it to a Device trigger and it is now working fine!

triggers:
  - device_id: 3b33c2b5b652d5c29b5107abe8f702d6
    domain: wiser
    entity_id: climate.wiser_living_room
    type: boosted
    trigger: device

I also found this sagely advice from a previous post of yours: Drayton Wiser Home Assistant Integration - #835 by msp1974

I.e. make sure the YAML is saved without quotes around the boolean values. I donā€™t know if this is still an issue but I will certainly try it if I run into issues again.

Hi,

Just got this integration up and running with my wiser home hub and trvā€™s. Firstly to say great work.

Have a couple of questions though where itā€™s hard to find the answers. Sometimes the TRVā€™s will be on and displayed as on on the wiser app but will not say ā€˜heatingā€™ on the wiser card.

I have my lounge set to a schedule and all other rooms are in passive mode to my preferred heat settings.

Additionally is there a way to set thresholds between temperatures? Iā€™m not sure if wiser does this itself as I donā€™t monitor it constantly but weā€™re having a cold week and with the lounge schedule set to 20C the heating is on/off constantly, it would seem once is decrements by 0.5C

I said I wouldnā€™t contribute to this thread anymore butā€¦no-one else is helping you out.

I donā€™t think there is a way to set increments, Wiser thermostats and the hub, as far as I know work with 0.5C increments.
You are describing how I thought Wiser works.
It doesnā€™t do anything until 0.5C under unless it thinks it will fall further below that before the end of the schedule when it will kick in again until it thinks the temp fall will be within its schedule.
With Passive this is amplified because there is a hard coded 0.5C increment. @msp1974 can confirm this (or deny).
The best person to clarify this is @robertwigley who designed the Passive mode algorithm.

Apologies to all tagged :bowing_man:

I canā€™t remember the exact algorithm for Passive Mode off the top of my head, but itā€™s discussed further up the thread. Search and you should find both the discussion and the original automation I wrote that @msp1974 incorporated into the integration.

There is an option to change the increments for Passive Mode from the default of 0.5. Open the Wiser Integration in Devices and Services, then select Configure / Automation Parameters / Passive Mode, but I wouldnā€™t recommend changing this unless you have read the discussion about how the automation works.

1 Like

Great, thank you for the time spent clarifying this for me, Iā€™ll have a further search around this thread further.

Can I just clarify, the Wiser Hub needs a static IP for HA to be able to find it?

In that case, my router does not provide any options for me to reserve a IP. Is there a way to set a static IP somehow in/on the hub?

No, you cannot fix an ip on the hub, dhcp only. However, instead of using the IP address in the HA config, you could use the dns name.

Ie wiserheatxxxxx.local

Or what ever your dns domain is. Try getting the dns name to ping first before setting in config.

2 Likes

DNS name worked perfectly, thanks :slight_smile: I may do the same with some of my other Tuya devices!

1 Like

Did you manage to pair EER53000 TRV ?
I am struggling with mine, and my generic coordinator (sonoff dongle e).

For the action wiser.boost_heating, is it possible to specify the entity ids from a list of strings? if so, how do I do that? Thanks!

For example:

action: wiser.boost_heating
data:
  time_period: 15
  temperature_delta: 2
target:
  entity_id: >-
          {% set ns = namespace(heat_rooms=[]) %} 
          {% for room in
        ['masters_bedroom', 'bedroom_2'] %}
            {% set climate_room = 'climate.wiser_' + room %}
            {% set ns.heat_rooms = ns.heat_rooms + [climate_room] %}
          {% endfor %} 
          {{ ','.join(ns.heat_rooms) }}

You just need to return a list (not a comma seperated string like you are). So, your example should beā€¦

action: wiser.boost_heating
data:
  time_period: 15
  temperature_delta: 2
target:
  entity_id: >-
          {% set ns = namespace(heat_rooms=[]) %} 
          {% for room in ['masters_bedroom', 'bedroom_2'] %}
            {% set ns.heat_rooms = ns.heat_rooms + [climate.wiser_' + room] %}
          {% endfor %} 
          {{ ns.heat_rooms }}
2 Likes

Thanks for this - it works :slight_smile:

Just a little contribution in case it helps anyone - I was looking for a simple way to have low battery status flagged to me. I did search this thread but its getting a bit big! Anyway here is a really simple solution that some might find helpful - it uses the auto-entities custom card.

type: custom:auto-entities
show_empty: false
card:
  type: entities
  title: Low Battery
filter:
  include:
    - entity_id: "sensor.wiser*battery"
  exclude:
    - state: ">40"

Quick question: Can the wiser schedule card be used with non Wiser climate entities? For example, I would love to be able to schedule my air conditioner climate entities using the same interface that I already know and love. The scheduler-card comes pretty close, but my wife immediately noticed that ā€œpretty closeā€ wasnā€™t ā€œthe sameā€ and registered a complaint about having to learn a new interface.

Speaking of batteries and notifications of them being low. Does everyone else find they drop to 20% and then just die?

I have a notification system setup to alert me when any of my batteries in any device drop to 10% for 10 minutes, but I never get alerted for any of the Wiser batteries as they donā€™t ever hit 10% for 10 minutes. The native app also never seems to alert me that the batteries are low. The first I know a battery has died is when I get a device offline alert from the native app.

@msp1974 Maybe the calculations for the battery percentage can be adjusted if itā€™s not just me that is experiencing this.

Actually, the first I usually know that a Wiser battery (iTRV) is on the way out is that it becomes unable to manage the valve ā€¦ so the valve stays open regardless of what the temperature is, so the room temperature runs away with itself. I have looked into trying to spot this automatically but its currently on the ā€œtoo hardā€ pile!

I find the Room Thermostats (as I donā€™t find the iTRVs temperatures are accurate enough I have 9 of them) are the same as the iTRVs. Both seem to hit 20% for a few days and then just die. I could write a separate automation for the Wiser batteries with different thresholds, but notification at 10% seems to work for all my other devices. I only noticed this recently as I have had a few that have needed their batteries changing within a week or two of each other.

In case itā€™s useful to anyone, hereā€™s the automation I use for low battery notifications. I also have one for critical notifications, with a trigger below 6. You can obviously adjust the numeric trigger values to suit, but below 11 seems to work well for me other than for Wiser. Note, sending the notification will need to be changed appropriately for iOS. This is for Android.

# Battery low notification
- id: CE536DD9-6DE5-498E-92F8-D9118823C27E
  alias: "Batteries: Low notification"
  mode: queued
  variables:
    var_date: "{{ now().strftime('%d/%m/%Y') }}"
    var_time: "{{ now().strftime('%H:%M:%S') }}"
  triggers:
    - trigger: numeric_state
      entity_id:
        # Shortened battery sensor list
        - sensor.hallway_thermostat_battery
        - sensor.hallway_trv_battery
        - sensor.living_room_thermostat_battery
        - sensor.living_room_trv_front_battery
        - sensor.living_room_trv_back_battery
        - sensor.kitchen_thermostat_battery
        - sensor.kitchen_trv_front_battery
        - sensor.kitchen_trv_back_battery
      below: 11
      above: 5
      for: 00:10:00
  actions:
    # Send a notification
    # Do not use states() or state_attr() functions with trigger.from_state or trigger.to_state as they return 'unknown'
    - action: notify.all_devices
      data:
        title: "{{ trigger.to_state.attributes.friendly_name }} Low"
        message: >-
          The {{ trigger.to_state.attributes.friendly_name[:-8] }} battery level is at {{ trigger.to_state.state }}%.<br>
          <br>
          {%- if is_state('trigger.to_state.attributes.number_of_batteries', 'Integrated') -%}
            Batteries Required: {{ trigger.to_state.attributes.number_of_batteries }} {{ trigger.to_state.attributes.battery_type }}<br>
          {%- else -%}
            Batteries Required: {{ trigger.to_state.attributes.number_of_batteries }}x {{ trigger.to_state.attributes.battery_type }}<br>
          {%- endif -%}
          <br>
          {{- var_time }} {{ var_date -}}
        data:
          notification_icon: mdi:battery-low
          actions:
            - action: URI
              title: View
              uri: /lovelace-home/batteries
            - action: dismiss_{{ trigger.entity_id[7:] }}
              title: Dismiss
            - action: replace_{{ trigger.entity_id[7:] }}
              title: Replace
          clickAction: /lovelace-home/batteries
          ttl: 0
          priority: high
          color: '#FFA500' # orange
          sticky: true
          group: Batteries
          tag: "{{ trigger.entity_id[7:] }}" # i.e. front_door_battery ...