Refactored Honeywell evohome custom_component (EU-only)


#121

@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.


#122

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


#123

Sorry for this brief answer, but I am a little overloaded currently.

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.


#124

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


#125

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.


#126

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


#127

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!


#128

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.


#129

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


#130

My lovelace fronted
Thank you for your work



#131

Very nice indeed!

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


#132

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


#133

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 }}"

#134

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


#135

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.


#136

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/


#137

The custom component will be the better option for a while, with the possible exception of Google/Amazon integration.

Then I’d say the custom component won’t work either - check your configuration.yaml content/format, it is notorious for it’s difficulties with beginners…


#138

After updated to 0.81.2 the evohome custom component doesn’t work.


#139

I am waiting to upgrade because I realy need this component.
Came to rely on and love this this :slight_smile:


#140

The latest version now works with v0.81.2