Drayton Wiser Home Assistant Integration

Just embed the change to the --state-climate-auto-color inside an if statement, changing the colour to suit. Colour variables can be found here, or use any hex value you want.

It only becomes a lot more complicated if you don’t want other elements that use that variable to change as well.

{%- if state_attr(config.entity, 'is_heating') -%}
    ha-card {
      --state-climate-auto-color: var(--light-green-color);
    }
{%- elif state_attr(config.entity, 'is_boosted') -%}
    ha-card {
      --state-climate-auto-color: var(--amber-color);
    }
{%- endif -%}
1 Like

Silly question but seeing as a lot of you are using passive mode, I thought Id enable it and try somethings out. Is there no way to set the min temp using set schedule from file or from string? I set the upper and lower temps then downloaded the schedule but only saw the max temp in there so guessing it cant be done?

So wow. This is not made easy by the way this card is built. So here is how to color for pasisve mode. I have created new css vars at the top so you can pick your passive-auto and passive-heat colors, and it applies the way through.

Also this has kept @robertwigley bits to hide +/- buttons and color status/target labels if there is some demand. Both are easy to change by:

Show/hide buttons - set button-visibiliy to visible
Don’t highlight when demand but not heating - change show-demands-highlight to var(inherit)

And finally added the ability to show that it is in passive mode with text and text color.
image

image

Here is full card_mod section.

card_mod:
  style:
    ha-state-control-climate-temperature:
      .: |
        :host {
          --passive-auto-color: var(--light-green-color);
          --passive-heat-color: var(--amber-color);
          --button-visibility: hidden;
          --show-demand-highlight: var(--state-climate-heat-color, inherit);
          --passive-mode-text: "Passive Mode";
          --passive-mode-text-color: var(--action-color);
        }
      $:
        .: |
          .buttons { visibility: var(--button-visibility); } 
          {%- if state_attr(config.entity,'percentage_demand') | float(0) > 0 %}
            .label { color: var(--show-demand-highlight) !important; }
          {%- endif -%}
          {%- if state_attr(config.entity, 'is_passive') %}
            .info > p:last-of-type::after { content: "\a" var(--passive-mode-text); white-space: pre; color: var(--passive-mode-text-color)}
          {% endif %}
        ha-control-circular-slider:
          $: |
            {%- if state_attr(config.entity, 'is_passive') %}
              .high {
                  stroke: var(--disabled-color) !important;
              }
              {% if is_state(config.entity, 'auto') -%}
                .background, .low {
                  stroke: var(--passive-auto-color) !important;
                  opacity: 0.75 !important; 
                }
                .low {
                  opacity: 0.50 !important; 
                }
              {% elif is_state(config.entity, 'heat') -%}
                .background, .low {
                  stroke: var(--passive-heat-color) !important;
                  opacity: 0.75 !important; 
                }
                .low {
                  opacity: 0.50 !important; 
                }
              {% endif %}
            {% endif %}
    hui-card-features $ hui-climate-hvac-modes-card-feature $ ha-control-select:
      $: |
        {%- if state_attr(config.entity, 'is_passive') %}
          #option-auto::before {
            background-color: var(--passive-auto-color)
          }
          #option-heat::before {
            background-color: var(--passive-heat-color)
          }
        {% endif %}

Oh and just a little extra thing I thought of. You can also add additional attribute data on the card. For example, set the passive mode text variable to:

--passive-mode-text: "Demand {{ state_attr(config.entity,'percentage_demand')}}%";

image

2 Likes

Wow! This is fantastic @msp1974. :heart_eyes: Thank you! Do you have a buy me a coffee link or similar? I couldn’t find one on the repository and wanted to send you something for all the work you do on this integration and helping out here.

1 Like

Passive mode temperatures are not stored in the schedule, as it is not part of Wiser and the schedules are stored on the hub. Once you set your min and max it is remembered. You can use the standard HA service climate.set_temperature to adjust the min and max values via an automation.

service: climate.set_temperature
target:
  entity_id: climate.spare_room_climate
data:
  target_temp_high: 16
  target_temp_low: 12

No i just do it for the love but thanks! :slightly_smiling_face:

I’ll add this to the recipe section on the wiki so it is easier to find in the future.

3 Likes

Does anyone here have a Wiser Heat Switch? Im finally getting to 2nd fix of bathrooms and fitting these to control the dual fuel rad.

Im curious if you need to see them or not (ie can i put it in a cupbard). from what I can see, the only reason to see it is to a) pair it, and b) see if its powering the towel rad…

Thanks Robert, I didn’t realise it was a simple as adding that at the top level - all styled how I would like now :slight_smile:

I am trying to call an automation to set preset mode, but it fails:

Preset mode Passive is not valid. Valid preset modes are: Cancel Overrides, Boost 30m, Boost 1h, Boost 2h, Boost 3h.
    - service: climate.set_preset_mode
      target:
        entity_id:
          - climate.bath
          - climate.bed_1
          - climate.bed_2
          - climate.bed_3
          - climate.kitchen
      data:
        preset_mode: 'Passive'

what am I doing wrong ?

OK, seems I have to call the switch instead:

    - service: switch.turn_on
      target:
        entity_id: 
          - switch.wiser_bath_passive_mode
          - switch.wiser_bed_1_passive_mode
          - switch.wiser_bed_2_passive_mode
          - switch.wiser_bed_3_passive_mode
          - switch.wiser_kitchen_passive_mode

I use mine with zigbee2mqtt - the only thing you can see on the switch is the led to tell you if it’s on or off and the button for pairing. With zigbee2mqtt the capacitive button can’t be used for anything else. I’m not sure whether you can use the button for boosting when used with the wiser hub.

My electrician is suggesting to embed it behind one of my switches (partition wall, loads of space). I can pair it easily before putting it in, and you know if its on as the towel rad is hot :slight_smile: so I dont see an issue… The towel rad is 400w ( I think ) so thats 1.6Amps way under the rating so I cant see any issues… Can u?

has anyone ever looked into spoofing the Wiser room thermostats so we can send temperatures from 3rd party sensors to Wiser via zigbee?

I have temp sensors in every room already, all data goes into HA so it would be great to forward that data to Wiser by pretending to be a room stat.

I don’t have any zigbee devices (besides Wiser) so not sure if this is feasible / where to begin.

I only have one set of pipes coming from boiler and using diver valves it can heat HW tank, radiators or HW tank + radiators. I have following automation working really well

Actions
 Choose between 2 actions
    Option 1:
      Conditions:
        Confirm Wiser Heating is On
        Confirm Wiser Hot Water is Off
        Confirm the time is after 6:00 and before 19:00
        Test if any of 3 conditions matches
          Confirm the day is Saturday or Sunday
          Confirm the time is after 6:00 and before 7:00
          Confirm the time is after 17:00 and before 19:00
      Actions:
        Press Wiser Toggle Hot Water button
    Option 2:
      Conditions:
        Confirm Wiser Heating is Off
        Confirm Wiser Hot Water is On
    Actions:
      Press Wiser Toggle Hot Water button

For work days only need to heat water for the morning and evening, but for weekend all day.
Hope that helps, I did setup whole thing using UI as it allows to use tracing and debugging :wink:

Wiser uses some tricky back and forth messaging approach which is not standard like other zigbee devices. There were many attempts to use iTVRs directly with zigbee2mqtt, it starts working correctly, but gets slower and slower to publish and eventually gets stuck and stops working. So unlikely that someone will be able to spoof this.
There are automation recipe available https://github.com/asantaga/wiserHomeAssistantPlatform/blob/1437d1290251179c8b6a60b7b6f5c84f760bcd97/recipes/manage_temps_v2.md which allows to use different temperature sensors to boost room temperature up to what is set in schedule. I’ve also developed different recipe which gradually adjust target temperature up and down rather than using boost, but need to sit down, document it and create PR to put it on repo :slight_smile:

Hi everyone,

I’ve been using Wiser for a couple of months and decided to add more TRVs. However, this led to the fact that the ones farther away from the HubR have intermittent connection, so I decided to but a Smart Plug to act as an extender. The problem is, the app says the device failed to join, although the device’s LED seems to be about right (green), but there is no guarantee that it actually joined Wiser’s ZigBee network.

So I started wondering whether it might be a problem with the outdated HubR firmware - 3.10.8. I tried with the latest Android app (6.6.0) and with many previous app versions (down to 4.x) and also with the installer mode, which supposedly allows to download the fw locally to the mobile device - none of these managed to update the HubR firmware to the latest version for me. Note: located in Bulgaria.

Hence, two questions to you guys:

  1. Has anyone been able to add the Smart Plug to the HubR?
  2. Is there a way to force the fw update of the HubR?

Thanks in advance!
Sinisha

Here’s mine:

alias: Wiser Passive Water
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.wiser_heating
condition: []
action:
  - if:
      - condition: state
        entity_id: select.wiser_hot_water_mode
        state: "Manual"
    then:
      - if:
          - condition: state
            entity_id: sensor.wiser_heating
            state: "On"
        then:
          - if:
              - condition: state
                entity_id: sensor.wiser_hot_water
                state: "Off"
            then:
              - service: button.press
                metadata: {}
                data: {}
                target:
                  entity_id: button.wiser_toggle_hot_water
        else:
          - if:
              - condition: state
                entity_id: sensor.wiser_hot_water
                state: "On"
            then:
              - service: button.press
                metadata: {}
                data: {}
                target:
                  entity_id: button.wiser_toggle_hot_water
mode: single

@robertwigley so just back from my 3 days out of the UK and just catching up.
I have quickly scanned this blog since our last posts regarding my shared WIP card-mod stuff for the new thermostat card and I can see that @msp1974 has contributed to our discussion which, as always, is greatly appreciated.

So my question is, has the colour issue of the “features” buttons been addressed? (As that was the next thing I was going to work on, as we discussed.) and have my issue with Non Passive sliders colours also been solved by Mark?
Just asking before I have to work though the card-mod stuff that @msp1974 posted. But that will be after my the jetlag goes :slight_smile:

@Duke_box, yes this now all works.

  • The circle slider colours correctly
  • The HVAC mode buttons colour correctly
  • The heat active glow now maintains its original colour
  • You can show/hide the +/- buttons
  • You can add additional text (fixed or a room attribute value) to the card
  • You can colour the labels if demand > 0% but not heating

I have updated slightly what was posted above and added the ability to recolour the non pasisve modes too. This is now on the Wiki with some explanaitions.

2 Likes

That’s great. Thanks for your response and the link, which will now obviously save me loads of time. I have spent way too much of that on this already!

Although I could already hide/show the +/- buttons and the colour labels, ( as that is my code), I appreciate you completing and fine tuning the rest. Thanks, especially the non passive modes which I hadn’t accomplished at the time of my post of my code in response to @robertwigley’s original request for help.

Again many thanks for your added input.
Cheers
Mike