Official Honeywell evohome/Round Thermostat integration (EU-only)

@zxdavb thanks for the response. I’ve got a Hassio setup so not sure where to search for the .log file, but will try. I think I will need to wait for another battery failure and then get logging on and see whats reported. In this case it was a battery report from the Hot Water sensor, but would imagine that any of the radiator sensors might also report in the same way. I’ll report back when I’ve got something of use.

@zxdavb ok found the log file and have an error in the system, reporting a comms fault with the heating valve actuator. Would be interested to know if there are any indications of this in the attached logs.home-assistant-log.yaml (349.4 KB)

@zxdavb Sorry should have also reported that given the time of year, I’ve started over-riding the schedule for certain rooms at certain times of the day. When I try and set a temporary over-ride, its reported back at the entity level as a permanent over-ride. I checked on the Evohome controller and its shown as permanent there also.

The the component is only telling you the same thing as the controller, no?

You have to give me more information. For a start: how are you setting the temporary override? At the TRV, the Controller, Honeywell’s website/app, or via HA?

@zxdavb sorry mybad for the incomplete explanation. So I’m using HA to set the temp, selecting ‘temporary over-ride’ to the new temp. HA reports that as Permanent. The evohome controller reports it as Permanent also.

The system is at Auto, Follow-schedule before change.

Hope that helps.

Hallo all. Install of component is great. Thank you for the contribution and development!

Can we set a temporary override until a specific time? Because I can create automation to adapt the operation_mode but I cannot specify a temperature or until.

Thanks for the help

Short answer: yes.

Long answer:

    def set_temperature(self, **kwargs):
        """Set a target temperature (setpoint) for a zone."""
        temperature = kwargs.get(ATTR_TEMPERATURE)

        if temperature is None:
            _LOGGER.error(
                "set_temperature(%s): Temperature must not be None (cancelling call).",
                self._id + " [" + self._name + "]"
            )
            return False

        until = kwargs.get(ATTR_UNTIL)
        if until is None:
            # until either the next scheduled setpoint, or just 1 hour from now
            if self._params[CONF_USE_SCHEDULES]:
                until = self._next_switchpoint_time
            else:
                until = datetime.now() + timedelta(hours=1)

        self._set_temperature(temperature, until)

If you call set_temperature via the web UI, you only pass temperature as a parameter. The until is either an hour, or the next scheduled setpoint, depending whether you have use_schedules: true in configuration.yaml

If you call set_temperature as a service call, you have the option of passing until as a parameter.

When you get it working, could you post back the service call? For example, an automation would be something like:

- alias: Set temp each morning
  trigger:
    platform: time
    at: "07:00:00"
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.kitchen
        temperature: 19.5
        until: 08:30:00

Sorry, but this part of the component is not extensively tested, and it may be that HA simply wont let you pass that parameter (although my code would accept it), in which case you will need two automations - one to set the temp to what you want, and a second to set it back after a period of time.

1 Like

This is awesome to see - thank you. Are the sensed windows open exposed in the api?

No, only setpoint (which will be min_temperature) and mode (either Follow, or Temp - I can’t recall).

I tried to add some heuristics to ‘detect’ when the system is in OpenWindowMode, but it was very unsatisfactory.

No problem, it’s a nice to have anyway! :slight_smile:

Thank you for taking the time to answer me. I tried the until but it gives an error in Hassio. Until is not a known attribute.
I worked around it for the moment with automations for resetting every evening if a permenantoverride is active.
Not perfect but much better than working with ifttt. Thank you for developing this!

Working great with my system (12 zone and 1 hot water) this is exactly what i have been looking for.

Id like to second what @BVE said if its possible to directly integrate a set temperature ‘until’ time it would be perfect for me, unfortunately my skill set is very limited in this field to offer up any help.

I will have a look at this - it may need changes elsewhere in HA.

My lovelace fronted
Thank you for your work


2 Likes

Very nice indeed!

Would you be able to share the yaml used to create the view seen in your screenshots please?

Seconded - id love to see how you’re pulling the evohome view in

it’s just a picture element
very very long code

I’m not a programmer
but I would love to see it as a card

info bar color is not yet resolved
5-15.5 ° C color: blue
16-18.5 ° C turquoise (or green)
19-21.5 ° C Yellow
22-24.5 ° C orange
25-35 ° C red

Honeywell Picture elements

ui-lovelace.yaml:

resources:
  - url: /local/state-attribute-element.js
type: js
   - url: /local/vertical-stack-in-card.js
type: js   

views:



##################################################################
##                           CLIMATE                            ##
##################################################################

  - title: Climates
icon: mdi:temperature-celsius
cards:

- type: custom:vertical-stack-in-card
    cards:    
      - type: picture-elements
        image: /local/icon/0.5_row_empty.png
        elements:
          - type: image             ######______Honeywell_logo______######
            image: /local/icon/honeywell_logo.png
            style:
              top: 60%
              left: 50%
              width: 50%
      - type: picture-elements
        image: /local/icon/2.2_row_empty_honeywell.png
        elements:
          - type: image             ######______Fürdőszoba______######
            entity: climate.furdoszoba
            title: climate_furdoszoba
            image: /local/icon/honeywell.png
            style:
              top: 50%
              left: 18%
              width: 30%
              opacity: 0.7
          - type: image                                       # Info bar (orange area on the card)
            title: climate_furdoszoba
            image: /local/icon/honeywell_info_bar.png
            style:
              top: 85.1%
              left: 18%
              width: 30%
              background: orange
          - type: image                                       # Connection error
            entity: climate.furdoszoba
            image: /local/icon/honeywell_empty_icon.png
            state_image:
              'unavailable': /local/icon/honeywell_error.png
            style:
              top: 50%
              left: 82%
              width: 29%                  
          - type: custom:state-attribute-element              # Current temperature
            entity: climate.furdoszoba
            attribute: current_temperature
            suffix: "°"
            style:
              top: 45%
              left: 18%
              color: black
              font-family: Arial
              font-size: 195%
          - type: custom:state-attribute-element               # The set temperature of the thermostat
            entity: climate.furdoszoba
            attribute: temperature
            suffix: "°C"
            style:
              top: 85%
              left: 12%
              color: white
              font-family: Arial
              font-size: 110%
          - type: image                                         # Thermostat operation mode icon
            entity: sensor.honeywell_furdoszoba_operation_mode
            image: /local/icon/honeywell_empty_icon.png
            state_image:
              'TemporaryOverride': /local/icon/honeywell_clock_icon.png
              'PermanentOverride': /local/icon/honeywell_continuous_icon.png
            style:
              top: 84.5%
              left: 28%
              width: 5%
          - type: custom:state-attribute-element
            entity: climate.furdoszoba                           # Thermostat name
            attribute: friendly_name
            style:
              top: 23%
              left: 18%
              color: black
              font-family: Arial
              opacity: 0.5
              font-size: 90%
          - type: image                                           # Full thermostat card area tap-action
            entity: climate.furdoszoba
            title: climate_furdoszoba
            image: /local/icon/honeywell.png
            style:
              top: 50%
              left: 18%
              width: 30%
              opacity: 0
          - type: image             ######______Kis_fürdőszoba______######
            entity: climate.kis_furdoszoba
            title: climate_kis_furdoszoba
            image: /local/icon/honeywell.png
            style:
              top: 50%
              left: 50%
              width: 30%
              opacity: 0.7
          - type: image
            title: climate_kis_furdoszoba
            image: /local/icon/honeywell_info_bar.png
            style:
              top: 85.1%
              left: 50%
              width: 30%
              background: orange
          - type: image
            entity: climate.kis_furdoszoba
            image: /local/icon/honeywell_empty_icon.png
            state_image:
              'unavailable': /local/icon/honeywell_error.png
            style:
              top: 50%
              left: 82%
              width: 29%
          - type: custom:state-attribute-element
            entity: climate.kis_furdoszoba
            attribute: current_temperature
            suffix: "°"
            style:
              top: 45%
              left: 50%
              color: black
              font-family: Arial
              font-size: 195%
          - type: custom:state-attribute-element
            entity: climate.kis_furdoszoba
            attribute: temperature
            suffix: "°C"
            style:
              top: 85%
              left: 42%
              color: white
              font-family: Arial
              font-size: 110%
          - type: image
            entity: sensor.honeywell_kis_furdoszoba_operation_mode
            image: /local/icon/honeywell_empty_icon.png
            state_image:
              'TemporaryOverride': /local/icon/honeywell_clock_icon.png
              'PermanentOverride': /local/icon/honeywell_continuous_icon.png
            style:
              top: 84.5%
              left: 60%
              width: 5%
          - type: custom:state-attribute-element
            entity: climate.kis_furdoszoba
            attribute: friendly_name
            style:
              top: 23%
              left: 50%
              color: black
              font-family: Arial
              opacity: 0.5
              font-size: 90%
          - type: image                                              
            entity: climate.kis_furdoszoba
            title: climate_kis_furdoszoba
            image: /local/icon/honeywell.png
            style:
              top: 50%
              left: 50%
              width: 30%
              opacity: 0
          - type: image             ######______Vendégszoba______######
            entity: climate.vendegszoba
            title: climate_vendegszoba
            image: /local/icon/honeywell.png
            style:
              top: 50%
              left: 82%
              width: 30%
              opacity: 0.7
          - type: image
            title: climate_vendegszoba
            image: /local/icon/honeywell_info_bar.png
            style:
              top: 85.1%
              left: 82%
              width: 30%
              background: orange
          - type: image
            entity: climate.vendegszoba
            image: /local/icon/honeywell_empty_icon.png
            state_image:
              'unavailable': /local/icon/honeywell_error.png
            style:
              top: 50%
              left: 82%
              width: 29%
          - type: custom:state-attribute-element
            entity: climate.vendegszoba
            attribute: current_temperature
            suffix: "°"
            style:
              top: 45%
              left: 82%
              color: black
              font-family: Arial
              font-size: 195%
          - type: custom:state-attribute-element
            entity: climate.vendegszoba
            attribute: temperature
            suffix: "°C"
            style:
              top: 85%
              left: 74%
              color: white
              font-family: Arial
              font-size: 110%
          - type: custom:state-attribute-element
            entity: climate.vendegszoba
            attribute: friendly_name
            style:
              top: 23%
              left: 82%
              color: black
              font-family: Arial
              opacity: 0.5
              font-size: 90%
          - type: image
            entity: sensor.honeywell_vendegszoba_operation_mode
            image: /local/icon/honeywell_empty_icon.png
            state_image:
              'TemporaryOverride': /local/icon/honeywell_clock_icon.png
              'PermanentOverride': /local/icon/honeywell_continuous_icon.png
            style:
              top: 84.5%
              left: 92%
              width: 5%
          - type: image             
            entity: climate.vendegszoba
            title: climate_vendegszoba
            image: /local/icon/honeywell.png
            style:
              top: 50%
              left: 82%
              width: 30%
              opacity: 0
      - type: picture-elements
        image: /local/icon/2.2_row_empty_honeywell.png
        elements:
          - type: image
              .              
              .
              .
              .

configuration.yaml

sensor:         ############ Honeywell operation mode sensor #############
   - platform: template
     sensors:
       honeywell_furdoszoba_operation_mode:
         friendly_name: 'Honeywell furdoszoba operation mode'
         value_template: "{{ states.climate.furdoszoba.attributes.operation_mode }}"
   - platform: template
     sensors:
       honeywell_kis_furdoszoba_operation_mode:
         friendly_name: 'Honeywell kis furdoszoba operation mode'
         value_template: "{{ states.climate.kis_furdoszoba.attributes.operation_mode }}"
   - platform: template
     sensors:
       honeywell_vendegszoba_operation_mode:
         friendly_name: 'Honeywell vendegszoba operation mode'
         value_template: "{{ states.climate.vendegszoba.attributes.operation_mode }}"
2 Likes

First of all: congrats on the integration of the controller to the release!!

Thanks for all the work.

Question: is it safe to upgrade? Or should we wait? I see the configuration yaml is the same as the custom component and no heating zones are supported. Thanks

It is safe to upgrade to 0.80. However, you should keep the custom component for now.

The HA component will miss out on features seen only in the custom component for the foreseeable future - this is due to restrictions placed upon it by HA.

When I get my Dev machine back I will start porting some of the functionality of the custom component across to the built-in version.

If I start to use this component just now what is the better choice?
To use your custom component or use the HA component (and wait for porting)?
Now the HA component doesn’t work at me. The log:
Invalid config for [evohome]: expected a dictionary for dictionary value @ data[‘evohome’]. Got [OrderedDict([(‘username’, ‘username’), (‘password’, ‘password’)])]. (See /home/homeassistant/.homeassistant/configuration.yaml, line 234). Please check the docs at https://home-assistant.io/components/evohome/